linux 内核构成
和其他操作系统一样,Linux包含进程调度与进程间通信(IPC)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口等,下图给出了Linux的组成及其关系:
Linux内核源代码包括多个目录:
(1)arch:包括硬件特定的内核代码,如arm、mips、i386等;
(2)drivers:包含硬件驱动代码,如char、cdrom、scsi、mtd等;
(3)include:通用头文件及针对不同平台特定的头文件,如asm-i386、asm-arm等;
(4)init:内核初始化代码;
(5)ipc:进程间通信代码;
(6)kernel:内核核心代码;
(7)mm:内存管理代码;
(8)net:与网络协议栈相关的代码,如ipv4、ipv6、ethernet等;
(9)fs:文件系统相关代码,如nfs、vfat等;
(10)lib:库文件,与平台无关的strlen、strcpy等,如在string.c中包含:
char * strcpy(char * dest,const char *src)
{
char *tmp = dest;
while ((*dest++ = *src++) != '')
/* nothing */;
return tmp;
}
(11)Documentation:文档。
在Linux内核的实现中,有一些数据结构使用非常频繁,对研读内核的人来说至为关键,它们是:
1.task_struct
Linux内核利用task_struct数据结构代表一个进程,用task_struct指针形成一个task数组。当建立新进程的时候,Linux为新的进程分配一个task_struct结构,然后将指针保存在task数组中。调度程序维护current指针,它指向当前正在运行的进程。
2.mm_struct
每个进程的虚拟内存由mm_struct结构代表。该结构中包含了一组指向vm-area_struct结构的指针,vm-area_struct结构描述了虚拟内存的一个区域。
相关文档:
最近在维护论坛,论坛的构建是linux nginx+php5.3+mysql5.1。最近一段时间老是出现问题,刚开始由于php版本以及设置的问题还有以前老版本留下的问题,使得论坛老被挂马,找了一个星期的问题,各处都补漏了一下的!php也升级了一下!
  ......
1. Download all packet and patchs Done
2. To be involved in the mail list
3. Check Host Requirements Done
还学习了 cut 显示某行的指定field ,head 显示前几行,readlin ......
[精华] 完全用 GNU/Linux 工作
http://www.chinaunix.net 作者:enfuzion 发表于:2005-12-08 16:05:56
【发表评论】【查看原文】【Linux讨论区】【关闭】
转自http://www.chinaunix.net/jh/4/16102.html
完全用 GNU/Linux 工作
— 摈弃 Windows 低效率的工作方式,发掘&n ......
看LDD3中设备模型一章,觉得思维有些混乱。这里从整体的角度来理理思路。
本文从四个方面来总结一些内容:
1.底层数据结构:kobject,kset.
2.linux设备模型层次关系:bus_type,device,device_driver.
3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析.
4.面向对象的思想在linux设备模型中的应用分析.
......
在Linux 2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?
用udev在/dev/下动态生成设备文件,这样用户就不用手工调用mknod了。
利用的kernel API:
&nb ......