`
shinfocom
  • 浏览: 1189696 次
文章分类
社区版块
存档分类
最新评论

初探Linux kernel系列一

 
阅读更多

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。同是连小菜都算不是的低手,希望我们共同学习共同进步。

首先介绍一下内核源码的根目录描述:

archarchitecture特定体系结构的源码

cryptocrypto API

Documention内核源码文档

drivers设备驱动程序

fsVFS和各种文件系统

include内核头文件

init内核引导和初始化

ipc进程间通讯代码

kernel像调度程序这样的核心子系统

lib通用内核函数

mm内存管理子系统和VM

net网络子系统

scripts编译内核所用到的脚本

securityLinux安全模块

sound语音子系统

usr早期用户空间代码(所谓的initramfs

这里只是简单阐述个目录及系统模块分布。随着课程的学习我相信一定可以把它们搞明白是怎么一回事的。

另外,你需要明白一些Linux必备的一些常识性名词解释知识,这里罗列一些名词,不明白的不再一一阐述,自己百度,Google,天涯,搜搜,搜狗,bingYahoo……:管态、目态、内核空间、用户空间、POSIXsystem VGNUGPLGNOMEKDEQTGTK+openGLshellawkMakefileCCGCCG++GDBPerl……

OK,写不下去了,有空再续……

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics