操作系统内核概念

操作系统概念

操作系统内核(Kernal)是一组应用软件,这个软件能够控制所有硬件及计算机活动。如硬盘访问、网卡传输和键盘开始工作等,开机后内核程序将会常驻受保护的内存中。硬件由内核管理后,操作系统将会提供一组系统调用接口,帮助完成诸如显示、读写设备等基本操作,架构是计算机硬件的组织形式,架构不同则内核也不同(Arm架构和x86架构)。操作系统在计算机结构中的位置如下:
操作系统内核概念_第1张图片
红色部分则是操作系统。在编写程序的时候,我们将会使用当前系统的系统调用来辅助完成编写,这意味着程序时与系统绑定的,如果你更换了系统,程序自然也就失效了(这就是为什么Windows可执行程序和Linux程序不互通的原因:依赖的系统API不通用)

内核功能至少包含以下几部分:

  • 系统调用接口(System call interface)
  • 程序管理(Process control)
  • 内存管理(Memory management)
  • 文件系统管理(FileSystem management)
  • 设备驱动(Device driver)

硬件驱动的提供者应该是硬件厂商的事情,用户只需要根据给定的驱动程序进行编程即可。

Linux内核版本和发行版

首先这两个概念不相同,内核版本的格式:

主版本.次版本.释出版本-修改版本

可以用指令cat /proc/version查看内核版本号,我的内核版本号为Linux version 5.8.0-48-generic,主版本号很少变换(非常大改动才会变),次版本号的奇数代表不稳定版本,偶数代表稳定版本,释出版本更改发生在驱动或者重要特性增加。

主次版本号奇数代表开发中的版本,偶数则表示稳定版。显然Ubuntu 20.04正在开发并不是一个稳定的版本。Linux是一个开源的操作系统,不仅提供了内核程序还提供了修改内核的工具,采用GNU GPL授权模式,任何人都可以取得源码并对内核进行修改。

一个完整的Linux发行版(Linux Distribution)包括:内核(Kernal)、软件(Software)和工具(Tool)。许多组织和厂商都开发了自己的发行版,如Ubuntu Debian RedHat等等,每个Distribution都是根据相同的Kernal进行开发,不会出现一个不存在的Linux Kernal,为了规范开发者还有诸如FHS LSB等规则进行约束,使得各发行版差异性不至于太大。


[1] Linux私房菜
[2] https://www.oreilly.com/library/view/understanding-the-linux/0596002130/ch01s03.html


20220331 修改了文章中不通顺、错误的地方。
20221011 删除了一些错误

你可能感兴趣的:(Linux操作系统,Linux操作系统概念)