博客专栏

EEPW首页 > 博客 > Linux内核全面介绍

Linux内核全面介绍

发布人:嵌入式Linux 时间:2023-01-10 来源:工程师 发布文章
Linux内核(kernel)和linux操作系统区别

Linux内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。通常我们所说的linux操作系统是一个集linux内核、工具集、各种库、桌面管理器、应用程序等一体的发布包(发行版)。因此RedHat、Ubuntu、Slackware等是Linux的发行版本,更确切地说,应该叫做“以Linux为核心的操作系统”。

Linux 内核的特性
  • 开源,遵循GPL开源许可协议

  • 可以移植,支持广泛的硬件平台:x86、arm、mips等

  • 高可扩展性(模块化管理)

  • 模块化设计:高内聚、低耦合

  • 可剪裁、可扩展,可以运行在大型主机,也可以运行在个人计算机上

  • 高可靠性、稳定性,稳定性是linux鲜明特点,安装了linux系统的主机,连续运行一年不宕机是很平常的事情

Linux内核版本

一般来说,linux系统采用 A.B.C.D 的版本号管理方式,A表示主版本号,B表示次版本号,C表示修订版本,D表示更新版本号。其中次版本号为偶数是稳定版本,为奇数表示有一些新的东西加入,是个不一定很稳定的测试版本,但是2.6版本以后,不再使用奇偶来来作为稳定和不稳定版本的判别。

曾经使用最广泛的Linux内核版本:2.6、3.14、4.4、4.9;从Linux内核3.0版本之后,引进了设备树的概念,所有的硬件信息都用设备树来描述。目前最新的Linux内核版本是5.1.12。

Linux内核的五大基本功能
  • 进程管理

  • 内存管理

  • 文件系统

  • 网络协议

  • 设备管理

Linux内核目录结构
  • arch:与体系结构相关的代码,每种平台占一个目录,如arm、mips、x86等。

  • drivers:设备驱动程序所在目录,比如media、input、leds、i2c等驱动目录。

  • sound:ALSA,OSS音频设备的驱动核心代码和常用音频驱动。

  • fs:file system,文件系统,里面列出了linux支持的各种文件系统。

  • include:头文件所在目录,我们写驱动用到的系统相关的头文件都放在include/linux下。

  • Documentation:英文文档,对每一个目录的作用的具体说明,还有设备树介绍,Makefile语法等等。

  • ipc:进程间通信相关的代码

  • ...

Linux内核的配置和编译

linux内核里面有成千上万的配置项,因此,不会完全从0开始配置内核,在arch/arm64/configs/目录下,内核提供了各种平台的默认配置文件,例如exynos8895_defconfg等。通常默认配置并不能完全满足实际需求,但有了一个与所用开发板相近的默认配置,在此基础上调整起来将会更加容易。那么对Linux内核进行所谓的配置其实就是修改xxx_defconfig(当然也可以使用make menuconfig,但是是一次性的),在里面添加类似于下面的格式:

只修改xxx_defconfig是配置的第一步,修改完需要执行make xxx_defconfig,使修改的配置选项生效,这时会生成一个.config隐藏文件,可以通过查看这个文件看你的配置是否生效:

当确认配置生效之后,就可以在顶层目录下直接执行make命令进行编译了。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词: Linux内核

相关推荐

技术专区

关闭