Kernel 心路历程 万事开头难
来源:互联网 发布:电脑管家的数据恢复 编辑:程序博客网 时间:2024/06/05 10:22
曾经梦想着想在神秘的内核无忧无虑的游荡, 但苦于内核的庞大, 经历了多少次的迷茫不知所措, 终于决心静下心来慢慢品尝. 让我们一起走向前方……
本Kernel心路历程文章全部基于Kernel版本4.5, 由于现在已经kernel 4.5.2的稳定版本已经发布,所以可能部分代码可能会出入.请以文章中实际的Kernel Version 的版本为准.
当我从kernel git 或者 kernel org down 下来kernel source code的时候, 真是不知所措. 我们到底应该从哪里开始…… 还好内核的开发者们给了我们一个README 告诉了我该如何编译这个庞然大物.
看起来分成2个步骤
1. 配置内核, make menuconfig,里面太多选项 我们要怎么配置,看不懂. okay 内核推荐了一些默认的配置文件给我们. 直接使用make x86_64_defconfig 就好了. 相信没有人的个人电脑不是x86的架构吧……
2. 编译内核 使用 make 即可. 建议根据CPU的能力开启多线程编译 make -jN, 切记N不要太多, 进程间通信也是有开销的 会导致编译更慢.
对于开发环境的的选择你有3个,
1. 直接使用自己的机器, 你可能会面临的你自己的内核或者模块错误导致的机器不停的重启。
2. 使用手头上的开发板, 现在以ARM架构的开发板为多. 那么内核的编译和内核的烧录请参考开发板的使用说明.
3. 使用qemu模拟器, githhub 上已经有前人的成果了, 如果不出意外应该是可以直接跑起来的 https://github.com/adam8157/kernel-studio.git
鉴于本人就一个屌丝, 在这里使用的是第三种方式 qemu
github 的上已经有使用说明 这里就不详细解释了. 建议看一下里面的脚本 可以稍微理解一下最简单的rootfs 已经 linux 标准启动流程.
- Kernel 心路历程 万事开头难
- Kernel 心路历程 模块编写
- Kernel 心路历程 kobject/kset 1
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- 万事开头难
- DRL前沿之:Benchmarking Deep Reinforcement Learning for Continuous Control
- QT5添加资源文件以及设置背景
- USES_CONVERSION的使用和注意
- js对cookie的操作
- Trying to start MapKit location updates without prompting for location authorization. Must call -[CL
- Kernel 心路历程 万事开头难
- 【多媒体封装格式详解】---MKV【1】
- 概率论与数理统计(第一章 概率论的基本概念)
- oc/c/c++混编老文,写的很好,mark
- iOS label根据显示内容自适应大小
- HTTP网络连接相关知识整理(三):网络错误异常
- Android适配器Adapter学习
- CC2541之OAD
- sublimetext3使用