16_Linux内核源码

1 linux内核源码代码简介

1.1 前面的章节,已经对计算机系统和操作系统有了一个初步的了解,总结起来就是计算机有“3大法宝”

  • 存储程序计算机
  • 函数调用堆栈
  • 中断

1.2 操作系统有“两把宝剑”

  • 中断上下文
  • 进程上下文

2 内核目录介绍

2.1 arch目录

  • arch目录是与体系结构相关的子目录列表,里面存放了许多CPU体系结构的相关代码,比如arm,x86等。arch目录中的代码在linux内核代码中占比相当庞大,主要原因是arch目录中的代码可以使linux内核支持不同的CPU和体系结构。a’lpha,arm,arm64等不同目录分别支持不同的CPU。

2.2 block目录

  • block:存放linux存储体系中关于块设备管理的代码。

2.3 crypto目录

  • crypto:存放常见的加密算法的C语言代码,譬如crc32,md5,sha1等。

2.4 Documentation目录

  • Documentation:存放一些文档。

2.5 drivers目录

  • drivers:驱动目录,里面分门别类地存放了linux内核支持的所有硬件设备的驱动源码。

2.6 firmware目录

  • firmware:固件

2.7 fs目录

  • fs:文件系统(file system),里面列出啦linux支持的各种文件系统的实现。

2.8 include目录

  • include:头文件目录,存放公共的(各种CPU体系结构共用的)头文件。比如ARM架构特有的一些头文件在arch/arm/include目录及其子目录下。

2.9 init目录

  • init:init是初始化的意思,存放linux内核启动时的初始化代码。

2.10 ipc目录

  • ipc:ipc就是进程间通信(inter-process communication),ipc目录里面是linux支持的ipc的代码实现。

2.11 kernel目录

  • kernel:kernel的意思是内核,就是linux内核,这个文件夹存放内核本身需要的一些核心代码文件。其中有很多关键代码,包括pid——进程号等。

2.12 lib目录

  • lib:公用的库文件,里面是一些公用的库函数。注意这里的库函数和C语言的库函数是不一样的,在内核编程中不能用C语言标准库函数,这里的lib目录下的库函数就是用来替代na’xie 标准库函数的。譬如把字符串转成数字要用atoi函数,但是内核编程中只能用lib目录下的atoi函数,不能用标准C语言库中的a’toi函数:譬如在内核中要打印信息时不能用printf,而要用printk,这个printk就是lib目录下的。

2.13 mm目录

  • mm:是memory management,即内存管理,存放linux的内存管理代码。

2.14 net目录

  • net:该目录下是网络相关代码,譬如TCP/IP协议栈等。

2.15 此外还有一些与声音,安全,脚本,工具相关的目录。

3 编译安装内核大概步骤

  1. 安装开发包组
  2. 下载源码
  3. .config:准备配置文件
  4. make menuconfig:配置内核选项
  5. make [-j #]
  6. make modules_install:安装模块
  7. make install:安装内核相关文件
  8. 安装bzImage为/boot/vmlinuz-VERSION-RELEASE(去boot目录下查看)
  9. 生成initramfs文件
  10. 编辑grub的配置文件

4 编译配置选项介绍

4.1 支持“更新”模式进行配置:make help

  • make config:基于命令行以遍历的方式去配置内核中配置的每个选项。
  • make menuconfig:基于curses的文本窗口界面。
  • make gconfig:基于GTK(GNOME)环境窗口界面。
  • make xconfig:基于QT(KDE)环境的窗口界面。

4.2 支持“全新配置”模式

  • make defconfig:基于内核为目标平台提供的“默认”配置进行配置。
  • make allyesconfig:所有选项均回答为“yes”
  • make allnoconfig:所有选线均回答为“no”

5 学习视频:Linux内核源码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值