Linux内核是什么

果冻 问答 2020-08-31 15:58:12 阅读(...)

Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。

Linux 是一种开源电脑操作系统内核。它是一个用 C 语言写成,符合 POSIX 标准的类 Unix 操作系统。

Linux Kernel

Linux 最早是由芬兰 Linus Torvalds 为尝试在英特尔 x86 架构上提供自由的类 Unix 操作系统而开发的。该计划开始于 1991 年,在计划的早期有一些 Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

内核结构

操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在 Linux 的术语中被称为“内核”,也可以称为“核心”。Linux 内核的主要模块(或组件)分以下几个部分:存储管理、CPU 和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

版本号

Linux 内核使用三种不同的版本编号方式。  第一种方式用于 1.0 版本之前(包括 1.0)。第一个版本是 0.01,紧接着是 0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99 和之后的 1.0。

第二种方式用于 1.0 之后到 2.6,数字由三部分“A.B.C”,A 代表主版本号,B 代表次主版本号,C 代表较小的末版本号。只有在内核发生很大变化时(历史上只发生过两次,1994 年的 1.0,1996 年的 2.0),A 才变化。可以通过数字 B 来判断 Linux 是否稳定,偶数的 B 代表稳定版,奇数的 B 代表开发版。C 代表一些 bug 修复,安全更新,新特性和驱动的次数。以版本 2.4.0 为例,2 代表主版本号,4 代表次版本号,0 代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如 2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如 2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。

第三种方式从 2004 年 2.6.0 版本开始,使用一种“time-based”的方式。3.0 版本之前,是一种“A.B.C.D”的格式。七年里,前两个数字 A.B 即“2.6”保持不变,C 随着新版本的发布而增加,D 代表一些 bug 修复,安全更新,添加新特性和驱动的次数。3.0 版本之后是“A.B.C”格式,B 随着新版本的发布而增加,C 代表一些 bug 修复,安全更新,新特性和驱动的次数。第三种方式中不再使用偶数代表稳定版,奇数代表开发版这样的命名方式。举个例子:3.7.0 代表的不是开发版,而是稳定版!

主要子系统

系统调用接口

SCI 层提供了某些机制执行从用户空间到内核的函数调用。正如前面讨论的一样,这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。

进程管理

进程管理的重点是进程的执行。在内核中,这些进程称为线程,代表了单独的处理器虚拟化(线程代码、数据、堆栈和 CPU 寄存器)。在用户空间,通常使用进程 这个术语,不过 Linux 实现并没有区分这两个概念(进程和线程)。内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。

进程管理还包括处理活动进程之间共享 CPU 的需求。内核实现了一种新型的调度算法,不管有多少个线程在竞争 CPU,这种算法都可以在固定时间内进行操作。这种算法就称为 O⑴ 调度程序,这个名字就表示它调度多个线程所使用的时间和调度一个线程所使用的时间是相同的。O⑴ 调度程序也可以支持多处理器(称为对称多处理器或 SMP)。您可以在 ./linux/kernel 中找到进程管理的源代码,在 ./linux/arch 中可以找到依赖于体系结构的源代码。

特性

可移植性

尽管 Linus Torvalds 的初衷不是使 Linux 成为一个可移植的操作系统,今天的 Linux 却是全球被最广泛移植的操作系统内核。从掌上电脑 iPad 到巨型电脑 IBM S/390,甚至于微软出品的游戏机 XBOX 都可以看到 Linux 内核的踪迹。Linux 也是 IBM 超级计算机 Blue Gene 的操作系统。

Linux 可以在以下结构上运行:

Acorn:Archimedes,A5000 和 RiscPC 系列

康柏:Alpha

惠普:PA-RISC

IA64:英特尔 Itanium 个人电脑

IBM 的 S/390 和 AS/400

英特尔 80386 及之后的兼容产品:80386,80486 和整个奔腾系列;AMD Athlon,Duron,Thunderbird; Cyrix 系列。对英特尔 8086,8088,80186,80188 和 80280 芯片的支持正在开发中。

Mips

摩托罗拉 68020 及以上: 新的 Amigas,一些苹果电脑

PowerPC:所有较新的苹果电脑

SPARC 和 UltraSPARC:太阳微系统的工作站

Hitachi SuperH: SEGA Dreamcast

索尼公司:PlayStation 2

微软公司: Xbox

ARM 系列

组成

进程管理(process management)、 1

定时器(timer)、 2

中断管理(interrupt management)、 3

内存管理(memory management)、 4

模块管理(module management)、 5

虚拟文件系统接口(VFS layer)、 6

文件系统(file system)、 7

设备驱动程序(device driver)、 8

进程间通信(inter-process communication)、9

网络管理(network management)、 10

系统启动(system init)等操作系统功能的实现。11

发行版

Linux 内核的发展过程中,我们还不得不提一下各种 Linux 发行版的作用,因为正是它们推动

了 Linux 的应用,从而也让更多的人开始关注 Linux。一些组织或厂家,将 Linux 系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution),Linux 的发行版本其实就是 Linux 核心再加上外围的实用程序组成的一个大软件包而已。相对于 Linux 操作系统内核版本,发行版本的版本号随发布者的不同而不同,与 Linux 系统内核的版本号是相对独立的。因此把 SUSE、RedHat、Ubuntu、Slackware 等直接说成是 Linux 是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫做“以 Linux 为核心的操作系统软件包”。根据 GPL 准则,这些发行版本虽然都源自一个内核,并且都有自己各自的贡献,但都没有自己的版权。Linux 的各个发行版本(distribution),都是使用 Linus 主导开发并发布的同一个 Linux 内核,因此在内核层不存在什么兼容性问题。每个版本都不一样的感觉,只是在发行版本的最外层才有所体现,而绝不是 Linux 本身特别是内核不统一或是不兼容。

90 年代初期 Linux 开始出现的时候,仅仅是以源代码形式出现,用户需要在其他操作系统下进行编译才能使用。后来出现了一些正式版本。最流行的几个正式版本有:SUSE、RedHat、Fedora、Debian、Ubuntu、CentOS、Gentoo,等等。用户可根据自己的经验和喜好选用合适的 Linux 发行版。

原先 Linus Torvalds 将 Linux 置于一个禁止任何商业行为的条例之下,但之后改用 GNU 通用公共许可证第二版。该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于 Linux 的软件也必须以该协议的形式发表,并提供源代码。

Linus Torvalds 曾经公开声称将 Linux 置于 GNU 通用公共许可证之下是他一生中所做的“最好的决定”。

常量定义

初始定义

宏 phys 定义了你的机器上的地址转换 __virt_to_phys()。这个宏用于把虚拟地址转换为一个物理地址。通常情况下:

phys = virt – PAGE_OFFSET PHYS_OFFSET

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 可道云 KodExplorer

    KodExplorer是什么

    可道云(KodExplorer)是基于Web技术的私有云和在线文件管理系统。致力于为用户提供安全可控、可靠易用、高扩展性的私有云解决方案。用户只需通过简单环境搭建,即可使用KodExplorer快速完成私有云/私有网盘/在线文档管理系统的部署和搭建。
  • File Allocation Table 文件分配表

    文件分配表是什么

    文件分配表(FAT),是一种由微软发明并拥有部分专利 的文件系统,供MS-DOS使用,也是所有非NT核心的Windows系统使用的文件系统。FAT文件系统考虑当时电脑性能有限,所以未被复杂化,因此几乎所有个人电脑的操作系统都支持。
  • PC 个人电脑 Personal Computer

    个人电脑是什么

    个人电脑(PC,普遍称为电脑)是在大小、性能以及价位等多个方面适合于个人使用,并由最终用户直接操控的计算机的统称。它与批处理计算机或分时系统等一般同时由多人操控的大型计算机相对。
  • Hongmeng system 鸿蒙系统

    鸿蒙系统与安卓系统有什么区别

    华为鸿蒙系统是为未来万物互联准备的,对设备兼容性更强,支持多种智能终端设备,更稳定,更安全、更流畅,鸿蒙系统真正的国人的系统;而安卓主要是为手机智能电视还有穿戴设备所构建的,安卓系统经过多年发展,软件生态非常完善,鸿蒙系统谈不上生态。
  • computer system 电脑系统

    装双系统有什么影响

    双系统会使电脑性能整体大幅下降,严重时候甚至可能出现死机,续航能力会有一定下降,开机速度变慢,占用硬盘容量,偶尔会碰到双系统菜单会出现问题。
  • Malicious code 恶意代码

    怎么防范恶意代码

    还原软件、影子系统,这类软件可以隔离你对保护区域的文件的改动;安装杀毒软件,这是最普适的方式;永远断网、拒绝未知 U 盘接入,这是国家安全机构在某些环节会用到的方式,不适合普通家庭用户。