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

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

Linux Kernel

Linux最早是由法国LinusTorvalds为尝试在英特尔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代表改动较小的末版本号。在版本号中,序号的第二位为质数的版本表明这是一个可以使用的稳定版本linux内核的功能,如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代表的不是开发版,而是稳定版!

内核功能包括编译源代码_内核功能包括_linux内核的功能

主要子系统系统调用插口

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

进程管理

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

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

特点可移植性

虽然LinusTorvalds的本意不是使Linux成为一个可移植的操作系统,明天的Linux却是全球被最广泛移植的操作系统内核。从掌上笔记本iPad到巨型笔记本IBMS/390,甚至于谷歌出品的游戏机XBOX都可以见到Linux内核的踪迹。Linux也是IBM超级计算机BlueGene的操作系统。

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

Acorn:Archimedes,A5000和RiscPC系列

康柏:Alpha

惠普:PA-RISC

IA64:英特尔Itanium个人笔记本

IBM的S/390和AS/400

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

Mips

诺基亚68020及以上:新的Amigas,一些苹果笔记本

PowerPC:所有较新的苹果笔记本

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

HitachiSuperH:SEGADreamcast

索尼公司:PlayStation2

谷歌公司:Xbox

ARM系列

组成

进程管理(processmanagement)、1

内核功能包括_linux内核的功能_内核功能包括编译源代码

定时器(timer)、2

中断管理(interruptmanagement)、3

显存管理(memorymanagement)、4

模块管理(modulemanagement)、5

虚拟文件系统插口(VFSlayer)、6

文件系统(filesystem)、7

设备驱动程序(devicedriver)、8

进程间通讯(inter-processcommunication)、9

内核功能包括_内核功能包括编译源代码_linux内核的功能

网路管理(networkmanagement)、10

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

发行版

Linux内核的发展过程中,我们还不得不提一下各类Linux发行版的作用,由于正是它们促进

了Linux的应用,因而也让更多的人开始关注Linux。一些组织或厂家,将Linux系统的内核与外围实用程序(Utilities)软件和文档包装上去,并提供一些系统安装界面和系统配置、设定与管理工具红帽linux,就构成了一种发行版本(distribution),Linux的发行版本虽然就是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发行版。

原本LinusTorvalds将Linux放在一个严禁任何商业行为的细则之下,但以后改用GNU通用公共许可证第二版。该合同容许任何人对软件进行更改或发行,包括商业行为,只要其遵循该合同,所有基于Linux的软件也必须以该合同的方式发表,并提供源代码。

LinusTorvalds当初公开宣称将Linux放在GNU通用公共许可证之下是他一生中所做的“最好的决定”。

常量定义初始定义

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

phys=virt–PAGE_OFFSETPHYS_OFFSET

本文原创地址:https://www.linuxprobe.com/lnhjgczxtnhd.html编辑:刘遄,审核员:暂无