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

    xiaoxiao2021-03-26  25

    内核源码

    获取源码

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

    源码树

    目录描述arch特定体系结构源码block块设备I/O层crypto加密APIDocumentation源码文档drivers设备驱动程序firmware某些驱动需要的设备固件fsVFS和各种文件系统include头文件init内核引导和初始化ipc进程间通信kernel核心子系统lib通用内核函数mm内存管理子系统和VMnet网络子系统samples实例代码scripts编译依赖的脚本security安全模块sound语音子系统usr早期用户空间代码tools工具virt虚拟化基础结构

    实践

    查看COPYING,CREDITS,MAINTAINERS,Makefile查看tools下的工具有哪些usr有什么内容arch 包含什么drivers里面包含哪些kernel 包含哪些,进程调度

    总结

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

    编译

    编译配置

    make config 逐一遍历所有配置
    make menuconfig或make gconfig 图形工具
    make defconfig 使用默认配置
    make oldconfig

    实践

    查看.config内容,理解.configzcat /proc/config.gz > ./configmake > /dev/null

    安装新内核

    make modules_install

    内核开发特点

    不能访问C库和标准C头文件必须使用GNU C没有内存保护机制难以执行浮点运算每个进程只有很小的定长堆栈时刻注意同步和并发
    转载请注明原文地址: https://ju.6miu.com/read-659919.html

    最新回复(0)