科技资讯:说一说Linux内核是什么及Linux内核有什么用

导读新时代高科技不计其数越来越发达,小伙伴们看过不少科技新闻吧,在我们生活中应该也用到很多这些高科技东西,有哪些小伙伴值的关注的呢,今

新时代高科技不计其数越来越发达,小伙伴们看过不少科技新闻吧,在我们生活中应该也用到很多这些高科技东西,有哪些小伙伴值的关注的呢,今天就跟大家分享一篇有关科技方面知识,希望大家会喜欢。

今天来说一下关于Linux内核是什么及Linux内核有什么用这方面的一些讯息,不少朋友对于Linux内核是什么及Linux内核有什么用这方面的信息颇感兴趣的。小编今天就为此整理一些相关的讯息,希望对有需要的朋友有所帮助。

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

以上就是关于Linux内核是什么及Linux内核有什么用这方面的一些信息了 小编整理的这些讯息希望对童鞋们有所帮助

免责声明:本文由用户上传,如有侵权请联系删除!