这几天看的东西,前辈有书指导,不用我费口舌, 简单介绍一下
搞清楚了 linux的启动过程,对于整个系统分析来说.连一个开头都不算.所做的只是知道了系统启动是一些函数的条用顺序.恰如某位朋友来信建议的那样, 如果这样照顺序硬读,实是自残.好在sunmoon 有一定的自知之明.如此这样下去,等不懂得东西多了.那我就不能坚持了,所以我的原则是?:准备不充分决不轻易动手.
身边有意高手建议,应从应用程序入手,先写一些和系统相关的有水平的程序, 在对程序尽心跟踪.了解整个系统的体系结构和调用体系.再去分析源吗.
同时,sunmoon 也知道,一个操作系统是所有有关软件理论的集大成.sunmoon 不是计算机系毕业的, 对与很多基础课生疏的很.因此不得不找了<<汇编语言>><<操作系统原理>><<计算机体系结构>><<编译原理?>><<操作系统的设计与实现>>等经典的书籍放在案头备用.当然, 刚出的一本<<linux 操作系统内核分析>>更是非常好.
在昨晚这些后, 我开始着手分析linux 的体系结构:
linux 的内核采用的并不是现在流行(理论上应该更先进的)为内核结构.而采用的是由很多过程组成的一个整合体. 每一个过程可以相互调用. 看起来停乱.这与它的开发历程有关.但我个人感觉, linux 整体如同一个结构化的程序.(决非opp).是由不同的模块完成不同的功能, 然后经过整体的调度,整合而变成一整体.
在<<linux 操作系统内核分析>>中分出了5个子系统: 进程调度, 内存管理,虚拟文件系统,进程通信,与网络接口.
具体的每个子系统的功能, 接口, 子系统结构, 数据结构的描述, 可以从这本书上详细的看一看.力争对总体有一个把握.
分清楚在linux 的近50 兆源吗中. 那一部分,实现什么功能, 以便以后阅读是不至于混乱.
如果我又两年时间, 我会用伪码实现linux 功能的模拟.然后以写的角度去分析,这才是学人之长为我所用的绝好办法. 可惜由于一些难言之隐,我近两年的时间都有安排, 所以我只能这样读了
再下一步, 应该分析Makefile