手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Linux内核结构

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

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

  /include子目录包含了建立内核代码时所需的大部分包含文档,这个模块利用其他模块重建内核。
  
  /init 子目录包含了内核的初始化代码,这是内核工作的开始的起点。
  
  /arch子目录包含了任何硬件结构特定的内核代码。如:i386,alpha
  
  /drivers子目录包含了内核中任何的设备驱动程式,如块设备和SCSI设备。
  
  /fs子目录包含了任何的文档系统的代码。如:ext2,vfat等。
  
  /net子目录包含了内核的连网代码。
  
  /mm子目录包含了任何内存管理代码。
  
  /ipc子目录包含了进程间通信代码。
  
  /kernel子目录包含了主内核代码。
  
  从何处开始阅读源代码?
  
  在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中。
  
  进程间通信:
  
  任何的System V IPC对象权限都包含在ipc_perm数据结构中,这能够在include/linux/ipc.h中找到。System V消息是在ipc/msg.c中实现。共享内存在ipc/shm.c中实现。信号量在ipc/sem.c中,管道在/ipc/pipe.c中实现。
  
  中断处理:内核的中断处理代码几乎任何的微处理器特有的。中断处理代码在arch/i386/kernel/irq.c中,其定义在include/asm-i386/irq.h中。
  
  jjgirl摘自《linux内核分析》一书 作者陈莉君
  


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!