你应该知道的Linux内核基础及内核编译

一、 基础概念

内核的功能:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能

1. 内核程序的设计流派

  • 单内核设计:把所有功能集成于同一个程序,而后每一个功能在就在程序内部使用线程来实现,这就是内核线程,这种设计好处在于大家结合的更紧密,效率高,但是问题在于任何一个地方产生故障可能会影响全局,Linux是这种设计
  • 微内核设计:每一个功能都使用一个独立的子系统实现,而后在找一个中央调配协调系统,当我们用到什么功能时,就让这些子系统彼此间通信来完成任务。每一个子系统都独立运作,我们可以用一个松散框架将它们联合在一起,问题就是可能效率低,但每一个子系统出现问题不至于影响全局。不过,话虽如此,目前来看虽然微内核设计在理论上是先进的,但是由于其内部的协调机制过于复杂,使得它的任何优越性基本上没能体现,Windows,Solaris就是这种设计

2. Linux内核特点

  • 支持模块化:Linux也充分借鉴了微内核设计的思想,内部的各种功能都被做成独立的功能模块而不是子系统,子系统里面可能包括很多模块并且拥有自制机制,而内核模块就像用户空间库的概念,不过库是被应用程序调用的,而内核模块只能被内核调用,文件名称都以.ko结尾(kernel object)。通过模块化也使得Linux内核不会变得过于庞大,用到哪个模块功能就装载哪个
  • 支持模块的动态装、卸载:在线装载、卸载模块

3. Linux内核的组成部分

  • /boot/vmlinux-VERSION-release:核心文件,最核心、最基本的文件
  • /lib/modules/VERSION-release:模块文件,目录名称和内核版本号严格匹配,其中存内核模块各类型文件。不过,模块之间也有依赖关系,所以查看目录时也可以看到大量的依赖关系元数据等信息,而真正的内核文件就在子目录./kernel中存放
  • /lib/modules/VERSION-release/kernel/arch:平台相关的内容
  • /lib/modules/VERSION-release/kernel/crypto:内核中加密解密等安全相关的内容
  • /lib/modules/VERSION-release/kernel/drivers:驱动
  • /lib/modules/VERSION-release/kernel/fs:文件系统相关内容
  • /lib/modules/VERSION-release/kernel/kernel:自己的一些基本核心功能
  • /lib/modules/VERSION-release/kernel/lib:各种内核模块用到的库
  • /lib/modules/VERSION-release/kernel/mm:内存管理相关内容
  • /lib/modules/VERSION-release/kernel/net:网络相关内容
  • /lib/modules/VERSION-release/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值