linux学习笔记(一) 源码和编译

本文详细介绍了Linux内核源码的结构与组成部分,包括关键子系统的功能及其实现方式。此外还讲解了如何获取内核源码、配置与编译过程,并概述了内核开发的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内核源码

获取源码

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

源码树

目录描述
arch特定体系结构源码
block块设备I/O层
crypto加密API
Documentation源码文档
drivers设备驱动程序
firmware某些驱动需要的设备固件
fsVFS和各种文件系统
include头文件
init内核引导和初始化
ipc进程间通信
kernel核心子系统
lib通用内核函数
mm内存管理子系统和VM
net网络子系统
samples实例代码
scripts编译依赖的脚本
security安全模块
sound语音子系统
usr早期用户空间代码
tools工具
virt虚拟化基础结构
实践
  1. 查看COPYING,CREDITS,MAINTAINERS,Makefile
  2. 查看tools下的工具有哪些
  3. usr有什么内容
  4. arch 包含什么
  5. drivers里面包含哪些
  6. kernel 包含哪些,进程调度
总结

文件系统、驱动程序、进程间通信、内存管理、网络、安全模块、设备I/O、内核引导和kernel

编译

编译配置
make config 逐一遍历所有配置
make menuconfig或make gconfig 图形工具
make defconfig 使用默认配置
make oldconfig
实践
  1. 查看.config内容,理解.config
  2. zcat /proc/config.gz > ./config
  3. make > /dev/null

安装新内核

make modules_install

内核开发特点

  1. 不能访问C库和标准C头文件
  2. 必须使用GNU C
  3. 没有内存保护机制
  4. 难以执行浮点运算
  5. 每个进程只有很小的定长堆栈
  6. 时刻注意同步和并发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值