2011.2.6晚
首先阐述一下我为什么想学习一下Linux kernel。最早是因为对嵌入式的一时脑热,我买了开发板,买了不少资料,前前后后投进去了1000多了。不过好歹还是有点回报的,虽然还没有怎么着调,但又似乎拓宽了不小的知识面。
慢慢的我发现,对于从学软件入手的我来说,硬件知识的薄弱是个不容忽视的缺陷,毕竟软硬件间的代沟还是不小的,就像现在的老爹和fashion闺女一样,鸿沟还是忽视不得的。这有点让我望而却步,不过多大的困难都无法阻挡我的前进啊。我对策略稍作调整,因为我发现,嵌入式无论是现在,还是未来一段时间都还是Linux的天下;另外是真正的做Linux的大牛们似乎也都有涉足embedded
system 的经历。这就使得仅仅会管理Linux系统和服务,简单的用几个Shell
commands ,编译安装几个Linux应用,读懂几个Makefile……根本满足不了需求;另外也为了不让学习的OS知识只是空洞的理论。这都要求着自己必须有编写自己Shell程序的能力;要求着可以在Linux做程序开发的能力;要求着可以自己往kernel中附加自定义的系统调用、重组内核、添加自写驱动……的能力。这就要求着必须深入了解,正如任何一门技术一样,接触久了你就有种相地层实现挖掘的冲动。
调整后的策略就是先把Linux这个OS的机制弄明白,才可以迁移定制满足需求的系统,才可以写出高效率的Linux应用。整体路线就是农村包围城市,不断补充必要知识,循序渐进,最终呈现星星之火可以燎原之势。。。额,扯得够远。废话不多说,转来学习笔记再说。
Kernel入门,要选本好的入门书籍,我从网上download一本《Linux内核设计与实现》。是Linux内核之旅www.kerneltravel.net网站整理和翻译的,简单易读,有OS基础和Linux应用基础的人一读即懂,我现已阅过3章,感觉很不错,另外配合《Linux操作系统内核实习》效果更佳。以后将同步更新我的学习笔记,以尽可能更加通俗的形式向你阐述kernel的机理,让我们一起如喝凉水般拿下kernel。同是连小菜都算不是的低手,希望我们共同学习共同进步。
首先介绍一下内核源码的根目录描述:
arch(architecture)特定体系结构的源码
cryptocrypto API
Documention内核源码文档
drivers设备驱动程序
fsVFS和各种文件系统
include内核头文件
init内核引导和初始化
ipc进程间通讯代码
kernel像调度程序这样的核心子系统
lib通用内核函数
mm内存管理子系统和VM
net网络子系统
scripts编译内核所用到的脚本
securityLinux安全模块
sound语音子系统
usr早期用户空间代码(所谓的initramfs)
这里只是简单阐述个目录及系统模块分布。随着课程的学习我相信一定可以把它们搞明白是怎么一回事的。
另外,你需要明白一些Linux必备的一些常识性名词解释知识,这里罗列一些名词,不明白的不再一一阐述,自己百度,Google,天涯,搜搜,搜狗,bing,Yahoo……去:管态、目态、内核空间、用户空间、POSIX、system
V、GNU、GPL、GNOME、KDE、QT、GTK+、openGL、shell、awk、Makefile、CC、GCC、G++、GDB、Perl……
OK,写不下去了,有空再续……
分享到:
相关推荐
Linux基金会在4月3日公布了Linux开发年报,向我们展示了linux kernel作为世上大开源合作项目之一的魅力。自2005年以来,共有800家公司7800名开发人员参与Linux kernel开发,近一年也有200家公司共1000名开发人员...
实时Linux操作系统初探.pdf
20160921-华泰证券-多因子系列之一:华泰多因子模型体系初探(1).pdf
20160921-华泰证券-多因子系列之一:华泰多因子模型体系初探.pdf
Linux核心初探.pdf
Linux优势初探.pdf
实时linux操作系统初探
嵌入式实时Linux操作系统初探.pdf
这本有关linux入门的文档是从‘李正果’的个人网站上下载而来的,希望对刚入门者有些指导作用。
地产行业杂谈系列之十六:社区增值服务模式初探
Linux操作系统初探.pdf
Linux操作系统初探 (1).pdf
与Linux同行——Linux平台上网工具初探.pdf
Linux驱动初探
第1章 Linux快速入门. 1.1 嵌入式Linux基础 1.2 Linux安装 1.3 Linux文件及文件系统 1.4 实验内容——安装Linux操作系统 本章小结 思考与练习 第2章 Linux基础命令 2.1 Linux常用操作命令 2.2 Linux...
Linux和Windows服务器的统一管理初探.pdf
1.2 数据标准化 1.3 识别有效因子 2.2 因子共线性分析 2.3 残差异方差分析 2.6 计算股票预期收益 3.2 残差风险估计 4.2 确定组合的风险
一种基于Linux平台的搜索引擎初探.pdf
宏定义第二句定义一个函数指针__initcall_customize_machine3 宏定义第三句将定义的这个函数指针放到.initcall3.init 中 宏定义第三行定义函数指针__initcall_customize_machine3 指向customize_machine