大家好,今天小编关注到一个比较有意思的话题,就是关于学习linux内核的意义的问题,于是小编就整理了2个相关介绍学习Linux内核的意义的解答,让我们一起看看吧。
为什么要学习Linux内核?
1 学习一些操作系统的理论知识,一些概念。比如:进程,内存管理,文件系统等等。
关于这一方面的书籍太多了,自己找一本就行了2 学习x86汇编,虽然linux用的是AT&T汇编,但二者只是格式不同而已。
而且学习x86汇编有助于了解x86系统结构。书籍推荐王爽的《汇编语言》 ,我学的时候用的不是这个,后面看到这本书,才觉得自己做了“苦功了”。
学完大部分汇编指令时,找些汇编程序读读,熟悉这些指令的用法。
不需要有写汇编程序的能力,能读就行了,当然会写更好3 赵炯的《Linux内核0.11完全注释》。
这个linux内核版本低,作者也讲得很详细。不过关于x86体系的那一部分,作者讲得很繁琐,这一部分一定要大体看懂,那后面章节的内容就没有多大的问题了。
我先把书通看了一遍,用了1个月的时间。
后来,再返回来一个一个研究,用了2个月。
之所以看这本书,是让自己对内核有个实质的感受,不仅仅只是理论上的东西。
4 毛德操的《linux内核情景分析》。linux内核版本2.4.0,这本书很厚,上下两册。
Linux的内核及其作用?
管理进程:内核负责创建和销毁进程, 并处理它们与外部世界的联系(输入和输出),不同进程间通讯(通过信号,管道,或者进程间通讯原语)对整个系统功能来说是基本的,也由内核处理。 另外, 调度器, 控制进程如何共享CPU,是进程管理的一部分。 更通常地,内核的进程管理活动实现了多个进程在一个单个或者几个CPU 之上的抽象。
管理内存:计算机的内存是主要的***, 处理它所用的策略对系统性能是至关重要的。 内核为所有进程的每一个都在有限的可用***上建立了一个虚拟地址空间。 内核的不同部分与内存管理子系统通过一套函数调用交互,从简单的malloc/free对到更多更复杂的功能。
文件系统:Unix 在很大程度上基于文件系统的概念;几乎Unix中的任何东西都可看作一个文件。 内核在非结构化的硬件之上建立了一个结构化的文件系统,结果是文件的抽象非常多地在整个系统中应用。 另外,Linux 支持多个文件系统类型,就是说,物理介质上不同的数据组织方式。 例如,磁盘可被格式化成标准Linux的ext3文件系统,普遍使用的FAT文件系统,或者其他几个文件系统。
设备控制:几乎每个系统操作终都映射到一个物理设备上,除了处理器,内存和非常少的别的之外,全部中的任何设备控制操作都由特定于要寻址的设备相关的代码来进行。 这些代码称为设备驱动。 内核中必须嵌入系统中出现的每个外设的驱动,从硬盘驱动到键盘和磁带驱动器。 内核功能的这个方面是本书中的我们主要感兴趣的地方。
网络管理:网络必须由操作系统来管理,因为大部分网络操作不是特定于某一个进程: 进入系统的报文是异步事件。 报文在某一个进程接手之前必须被收集,识别,分发,系统负责在程序和网络接口之间递送数据报文,它必须根据程序的网络活动来控制程序的执行。 另外,所有的路由和地址解析问题都在内核中实现。
到此,以上就是小编对于学习linux内核的意义的问题就介绍到这了,希望介绍关于学习linux内核的意义的2点解答对大家有用。