Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285616
  • 博文数量: 49
  • 博客积分: 3083
  • 博客等级: 中校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 08:22
文章分类

全部博文(49)

文章存档

2009年(8)

2008年(41)

分类: LINUX

2008-06-15 19:54:53

/Documentation 文档资料
/arch 体系结构相关代码
/drivers linux支持的外围设备的驱动程序
/fs linux支持的所有文件系统在fs目录下都有一个对应的子目录
/include linux源程序树中大部分.h文件
        /linux 内核和用户应用程序请求特定内核服务时所用的常量 数据结构在头文件中定义,这里就是头文件
        /net 供与网络子系统有关的头文件使用
        /scs 与SCSI控制器和 SCSI设备有关的头文件使用
        /video 与显卡和帧显示缓存有关的头文件使用
/init 引导程序,main.c包含了大部分协调内核初始化的代码
/ipc 实现了System V的进程间通信(IPC)
/kernel 实现平台独立的基本功能
        /sched.c 进程调度
        /fock.c 创建进程
        /exit.c 撤销进程
/lib
        /inflate.c 能够在系统启动时展开经过压缩的内核
        /*其他文件实现一个标准C库的有用子集
/mm 体系结构无关的内存管理代码,为每个平台实现最底层结构的是源于,他的体系结构特有的内存管理程序是        存储在/arch/platform/mm
/net 包含了linux应用的网络协议代码,例如:AppleTalk ,TCP/IP ,IPX等
/scripts 包含了用来配置内核的脚本

1、系统启动与初始化
        通过loadlin.exe或者LILO将核心载入内存并将控制传递给他。程序位于/arch/Kernel/head.s完成处理器相关操作并转跳到init/main.c中的main()
2、内存管理
        处理器结构相关部分放在arch/*/mm中,页面出错处理代码位于mm下的/memory.c文件中,内存映射与页面cache代码位于 filemap.c中,buffer cache 在mm/buffer.c中,swap cache位于/mm/swap_state.c和/mm/swapfile.c中
3、核心
        处理器相关代码放在arch/*/Kernel中,调度器位于/kernel/sched.c中,底层部分处理代码位于/include/linux/interrupt.h,task_struct的描述在/linux/sched.h中可以找到
4、PCI
        PCI伪设备驱动在/drivers/pci/pci.c中,系统通用定义放在/include/linux/pci.h中,每个处理器结构具有特殊的PCI BIOS代码,位于/arch/*/kernel/bois32.c中(有变化)
5、进程间通信
        所有代码在ipc中,System V IPC对象都包含一个ipc-perm结构,在/include/linux/ipc.h中,System V消息在/ipc/msg.c中实现,共享内存在ipc/shm.c中,信号灯位于/ipc/sem.h,管道在/ipc/pipe.c
6、中断处理
        中断处理代码位于/arch/*/kernel/irq.c 定义位于/include/asm-*/irq.h中
7、设备驱动
        /block 块设备驱动包括ID(在ide.c中)驱动。初始化过程/drivers/block/genhd.c中的device_setup().当安装一个nfs系统时不但要初始化硬盘,还需要初始化网络,块设备包括IDE和SCSI设备。
        /char包含字符设备的驱动
        /cdrom 包含所有linux CDROM代码.IDE接口的CD驱动位于/drivers/block/ide-cd.c中,SCSI CD驱动位于drivers/scsi/scsi.c中。
        /pci 包含了pci伪设备驱动的源代码。可以找到PCI子系统映射与初始化的代码
        /scsi 所有SCSI代码,及linux支持的SCSI设备驱动
        /net 包含网络驱动源代码
        /sound 所有声卡驱动源代码
8、文件系统
        EXT2位于/fs/ext2中,数据结构定义位于/include/linux/ext2_fs.h、ext2_fs_i.h及 ext2_fs_sb.h中。虚拟文件系统数据结构在/include/linux/fs/h中描述,代码在fs/*中,buffer cache和update核心后台进程在fs/buffer.c中实现
9、网络
        代码位于/net目录中,大多数包含文件位于/include/net中。BSD套接口代码位于/net/socket.c中,IPV4的INET套接口 代码位于/net/ipv4/af_inet.c中,通用协议支撑代码(包括sk_buff处理过程)位于net/core中,TCP/IP网络代码位于 /net/ipv4中,网络设备驱动代码位于/drivers/net中/
10、模块
        核心模块代码位于/modules包中,核心代码位于/kernel/modules.c,数据结构与核心后台进程kerneld消息位于 /include/linux/module.h和/include/linux/kerneld.h中。必要时需查询/include/linux /elf.h中的ELF模块。



---------------------------------------------------------------------

有些地方跟最新版本的有区别,但是大部分都可以参考的。以前看书的时候做的笔记,当时花了我一晚上的时间总结。前几天又给找出来了,顺便共享交流下!!


PS:感觉/Documentation这个目录里的东西很是不错,哈哈。里面可以参考的资料很多的。
阅读(1682) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:文件的压缩与解压缩总结

给主人留下些什么吧!~~