Linux 内核学习(1)——内核目录结构

1 . Linux的内核可由https://www.kernel.org/下载。我们下载较新的稳定版本(stable)3.18.5来学习研究——linux-3.18.5.tar.xz。


2. 解压文件并放置到/usr/src目录下:    tar -xvJf  linux-3.18.5.tar.xz。这样linux的源代码就放置到/usr/src/linux-3.18.5目录下了。


3. 源代码文件夹的目录结构

  • arch: Linux支持的所有体系结构在该目录下都有相应的子目录
  • block: block I/O层(块设备)的实现。
  • crypto:内核本身所用的加解密API,实现了常用的加密(如AES,DES,BLOWFISH)和Hash算法(MD4,MD5,RIPEMD等),以及一些压缩和CRC校验算法
  • Documentation: 文档了,没什么可说的。不过可以了解内核的好多信息啊!
  • drivers: 最庞大的目录啊,各种各样的驱动程序都在这里了,显卡,网卡,PCI总线,USB总线了!
  • firmware: 固件文件
  • fs:虚拟文件系统的代码以及各种文件系统(如ext2,ext3,ext4等)的代码都在这里!所谓文件系统,简单地说就是存储设备和需要访问存储设备的进程之间的媒介。虚拟文件系统,比如proc,它以标准文件系统出现,但其中的文件只存在于内存中,并不占用内存空间。
  • include: 包含内核中大部分的头文件
    • include/linux: 与平台无关的头文件
  • init:内核的初始化代码,包括main.c等
  • ipc:进程间通信,包括内存共享、信号量等代码
  • kernel:最核心部分,包括进程调度(sched/子目录),进程创建与撤销(fork.c/exit.c)等
  • lib:库文件,标准C库子集等
  • mm: 体系无关的内存管理代码
  • net:网络相关代码
  • scripts:包含了配置内核的脚本文件。当我们运行make menuconfig或者make xconfig等配置命令时,用户就是和该目录下的脚本进行交互
  • security:各种Linux安全模型的代码,如SELinux。
  • sound:声卡驱动以及与声音有关的代码
  • usr:用于打包和压缩的cpio代码等

            

  • samples:一些内核编码的示例
  • tools:工具。
  • virt:内核虚拟机KVM。KVM虚拟机(Kernel-based Virtual Machine)是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。KVM虚拟机使用Linux自身的调度器进行管理,核心源码很少,成为学术界的主流VMM之一。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值