当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 从何处开始阅读源代码?
帖子发表于 : 2007-11-10 16:26 

注册: 2007-09-06 16:24
帖子: 193
地址: 中国上海
送出感谢: 0 次
接收感谢: 0 次
在Internet,有人制作了源代码导航器,为阅读源代码提供了良好的条件,站点为lxr.linux.no/source。
下面给出阅读源代码的线索:
系统的启动和初始化:
在基于Intel的系统上,当loadlin.exe或LILO把内核装入到内存并把控制权传递给内核时,内核开始启动。关于这一部分请看,arch/i386/kernel/head.S,head.S进行特定结构的设置,然后跳转到init/main.c的main()例程。
内存管理:
内存管理的代码主要在/mm,但是特定结构的代码在arch/*/mm。缺页中断处理的代码在/mm/memory.c ,而内存映射和页高速缓存器的代码在/mm/filemap.c 。缓冲器高速缓存是在/mm/buffer.c 中实现,而交换高速缓存是在mm/swap_state.c和mm/swapfile.c。
内核:
内核中,特定结构的代码在arch/*/kernel,调度程序在kernel/sched.c,fork的代码在kernel/fork.c,内核例程处理程序在include/linux/interrupt.h,task_struct数据结构在inlucde/linux/sched.h中。
PCI:
PCI伪驱动程序在drivers/pci/pci.c,其定义在inclulde/linux/pci.h。每一种结构都有一些特定的PCI BIOS代码,Intel的在arch/alpha/kernel/bios32.c中。
进程间通信:
所有的SystemVIPC对象权限都包含在ipc_perm数据结构中,这可以在include/linux/ipc.h中找到。SystemV消息是在ipc/msg.c中实现。共享内存在ipc/shm.c中实现。信号量在ipc/sem.c中,管道在/ipc/pipe.c中实现。
中断处理:
内核的中断处理代码几乎所有的微处理器特有的。中断处理代码在arch/i386/kernel/irq.c中,其定义在include/asm-i386/irq.h中。


Linux 内核源代码的结构

Linux内核源代码位于/usr/src/linux目录下。

/include子目录包含了建立内核代码时所需的大部分包含文件,这个模块利用其他模块重建内核。

/init 子目录包含了内核的初始化代码,这是内核工作的开始的起点。

/arch子目录包含了所有硬件结构特定的内核代码。如:i386,alpha

/drivers子目录包含了内核中所有的设备驱动程序,如块设备和SCSI设备。

/fs子目录包含了所有的文件系统的代码。如:ext2,vfat等。

/net子目录包含了内核的连网代码。

/mm子目录包含了所有内存管理代码。

/ipc子目录包含了进程间通信代码。

/kernel子目录包含了主内核代码。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译