linux内核接口的进一步认识

写在前面:1.一切都是文件;2.内存中的虚拟文件;堪比特权文件

1.一切都是文件,如果我们用命令行查看所有分组  或 在图形界面打开用户管理

会发现有很多用户组  组中有各种用户   比如sudo组

他们用分权的方式将root架空   保证系统稳定运转的同时完成各种任务

2.我们老一辈的老一辈  ,longlongage在查看内核状态时都是写一些特权级的程序直接访问内核中的数据结构,这是非常危险的,

现在,我们用/proc。     /proc并不存在磁盘中,他是内核在状态改变时在内存创建的动态文件夹,可以通过他来获知内核的信息。

初稿,占位稿,修改待续。。。。

时间: 2024-10-09 11:28:38

linux内核接口的进一步认识的相关文章

Linux内核接口特定的类型

内核中一些通常使用的数据类型有它们自己的 typedef 语句, 因此阻止了任何移植性问 题. 例如, 一个进程标识符 ( pid ) 常常是 pid_t 而不是 int. 使用 pid_t 屏蔽了任 何在实际数据类型上的不同. 我们使用接口特定的表达式来指一个类型, 由一个库定义的, 以便于提供一个接口给一个特定的数据结构. 注意, 在近期, 已经相对少定义新的接口特定类型. 使用 typedef 语句已经有许多内核 开发者不喜欢, 它们宁愿看到代码中直接使用的真实类型信息, 不是藏在一个用户

linux内核中的排序接口--sort函数

linux内核中的sort函数,事实上跟我们所说的qsort函数非常像,我们来看看qsort: qsort 的函数原型是 void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*)); 參数:  1 .待排序数组首地址 2 .数组中待排序元素数量 3 .各元素的占用空间大小 4 .指向函数的指针.用于确定排序的顺序. 当中compare函数应写为: 1 2 3 4 int c

linux内核中的线程创建接口

介绍一些内核给我们提供的用于在内核中创建线程的内核接口函数. 其实在linux内核中,无论是进程还是线程,都是用struct task_struct结构体来表示的. 用于创建一个内核线程的函数: struct task_struct * kthread_create( int (*threadfn)(void *data),                                           void *data,                                 

Linux内核中添加系统调用接口简单示例

1. Linux体系结构 Linux系统的地址空间分为用户空间和内核空间,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移. 2. 系统调用接口 ① 一般情况下,用户进程不能访问内核空间.Linux内核中提供了一组用于实现各种系统功能的子程序,用户可以调用它们访问Linux内核的数据和函数,这些子程序称为系统调用接口(SCI). ② 系统调用和普通函数的区别:系统调用由操作系统内核实现,运行于内核态:普通函数调用由函数库或用户自己提供,运行于用户态. 3. 系统调用分类:主要分3大类 ①

Linux Kernel - Debug Guide (Linux内核调试指南 )

http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环

linux内核分析之内存管理

1.struct page 1 /* Each physical page in the system has a struct page associated with 2 * it to keep track of whatever it is we are using the page for at the 3 * moment. Note that we have no way to track which tasks are using 4 * a page, though if it

Linux 内核无线子系统

Linux 内核无线子系统 浅谈 Linux 内核无线子系统 Table of Contents 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢?刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高层次的问题.跟踪探索了一段时间的源代码后,我写下了这篇总

uboot环境变量(设置bootargs向linux内核传递正确的参数)

这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行),但是运行nfs根文件系统的时候一直出错,各种错误.查看了很多资料后猜想应该是uboot传递给linux内核的参数有问题,也就是bootargs的设置有问题. #printenv bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 rootfstype=yaffs2 rw mem=64M bo

大战C100K之-Linux内核调优篇--转载

原文地址:http://joyexpr.com/2013/11/22/c100k-4-kernel-tuning/ 早期的系统,系统资源包括CPU.内存等都是非常有限的,系统为了保持公平,默认要限制进程对资源的使用情况.由于Linux的默认内核配置无法满足C100K的要求,因此需要对其进行适当的调优. 我们可以通过 ulimit 查看一下典型的机器默认的限制情况: $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -