什么是linux内核

什么是linux内核,第1张

Linux 内核设计的理念主要有这几个点:

MutiTask,多任务

SMP,对称多处理

ELF,可执行文件链接格式

Monolithic Kernel,宏内核

MutiTask

MutiTask 的意思是多任务,代表着 Linux 是一个多任务的 *** 作系统。多任务意味着可以有多个任务同时执行,这里的「同时」可以是并发或并行:

对于单核 CPU 时,可以让每个任务执行一小段时间,时间到就切换另外一个任务,从宏观角度看,一段时间内执行了多个任务,这被称为并发。

对于多核 CPU 时,多个任务可以同时被不同核心的 CPU 同时执行,这被称为并行。

SMP

SMP 的意思是对称多处理,代表着每个 CPU 的地位是相等的,对资源的使用权限也是相同的,多个 CPU 共享同一个内存,每个 CPU 都可以访问完整的内存和硬件资源。

这个特点决定了 Linux *** 作系统不会有某个 CPU 单独服务应用程序或内核程序,而是每个程序都可以被分配到任意一个 CPU 上被执行。

ELF

ELF 的意思是可执行文件链接格式,它是 Linux *** 作系统中可执行文件的存储格式

ELF 文件格式

ELF 把文件分成了一个个分段,每一个段都有自己的作用,具体每个段的作用这里就不详细说明了,感兴趣的同学可以去看《程序员的自我修养——链接、装载和库》这本书。

另外,ELF 文件有两种索引,Program header table 中记录了「运行时」所需的段,而 Section header table 记录了二进制文件中各个「段的首地址」。

那 ELF 文件怎么生成的呢?

我们编写的代码,首先通过「编译器」编译成汇编代码,接着通过「汇编器」变成目标代码,也就是目标文件,最后通过「链接器」把多个目标文件以及调用的各种函数库链接起来,形成一个可执行文件,也就是 ELF 文件。

那 ELF 文件是怎么被执行的呢?

执行 ELF 文件的时候,会通过「装载器」把 ELF 文件装载到内存里,CPU 读取内存中宏内核的特征是系统内核的所有模块,比如进程调度、内存管理、文件系统、设备驱动等,都运行在内核态。

不过,Linux 也实现了动态加载内核模块的功能,例如大部分设备驱动是以可加载模块的形式存在的,与内核其他模块解藕,让驱动开发和驱动加载更为方便、灵活。

一、什么是Linux

Linux和Windows一样,是一个计算机 *** 作系统,和Windows不一样的是,Linux是完全开源的 *** 作系统,任何人都可以容易得到Linux的内核代码,并对其进行研究修改,使其适用于不同的设备和应用场景,这也使得Linux和Windows这样的相比,应用范围要广得多。

首先,Linux是开源的,自从1991年李纳斯(linux的创始人)发布第一个内核版本以来,无数的开发者参与到了Linux的开发中,随着版本不断迭代,linux内核变得越来越健壮,安全性也越来越高,也被应用到越来越多的领域之中,从这个角度来说,Linux是人类智慧的共同结晶,而Windows是属于微软私有产物,人们只有使用权而没有修改权。

二、Linux可以做什么

   1.网络服务器

因为Linux内核的开源,使得Linux拥有无与伦比的安全性,因此在很多安全性要求极高的关键领域都有Linux的身影,linux服务器应用范围非常广泛,在电信、金融、政府、教育、银行、石油等领域都能见到Linux的身影,软件公司也有很多将Linux作为代码测试和托管服务器。

2.网络安全

Linux天生具有网络基因,因此也是众多网络安全专家和黑客必备的 *** 作系统,无论是白帽子还是黑帽子,Linux是必须要精通的。

3. 嵌入式Linux

还是因为任何人都能拿到并对Linux内核进行修改,因此在一些对计算资源要求严苛的领域,比如路由器、交换机、自动售货机、手机、PDA、以及各种家用电器上广泛存在Linux的身影,基于Linux开发的Android如今已经成为智能手机第一大 *** 作系统,智能电视绝大多数使用的也都是Android的定制版。

4. 超级计算机

开源使得Linux具有极高的安全性、稳定性、可定制性和扩展性,因此超级计算机大多数也会采用Linux作为 *** 作系统,例如我国著名的超级计算机天河2采用的就是一款定制的Linux *** 作系统。

5. 通用桌面 *** 作系统

虽然目前微软的Windows在桌面 *** 作系统领域占据统治地位,但是各种Linux桌面版(发行版)同样具有极强的生命力,经过这么多年的发展,基于linux的各类软件也越来越丰富,已经能够在某种程度上取代Windows,成为日常使用的桌面 *** 作系统。

1、系统调用接口

提供系统的API函数,供用户使用,例如 *** 作文件的函数、 *** 作进程和线程的函数、 *** 作内存的函数、 *** 作硬件(如串口、磁盘)的函数、 *** 作网络的函数等等。

2、实现进程管理功能

能够同时(看上去)执行多个进程(任务),比如可以同时运行文件下载、看电影、挂游戏,那么进程管理的内部实现就是进程的调度,也就是实现调度CPU的使用时间提供给不同的用户任务(进程)使用。

3、实现虚拟文件系统

所谓虚拟文件系统,即是相对于实际文件系统的系统,其实是针对实际文件系统再次的实现和接口的抽象,意思是规定了最终提供给用户使用的文件系统的接口。

以及实现实际文件系统调用硬件层的接口,那么实际文件系统就是位于虚拟文件系统和硬件抽象接口中间,就像是夹心饼干中间的奶油一样,可以更换各种颜色的奶油,但是吃起来都是奶油的味道,可便于系统的更新和前后的兼容性、扩展性。

扩展资料:

技术特性

1、抢占式调度系统

Linux内核提供在特定条件下的抢先式调度。直到内核版本2.4,只有用户进程是抢先式的,就是说除了时间片用尽,在用户模式下执行的当前进程,如果有更高态优先级的进程进入TASK_RUNNING状态,它就会被中断。

自从2.6系列Linux内核,增加了中断执行内核代码的任务的能力,但不是对于内核代码的所有段落。

2、可移植性

从移动电话到超级电脑,甚至于有人成功的将Linux内核在索尼出品的游戏机PS2及PS3和微软出品的游戏机Xbox上使用。Linux也是IBM超级计算机BlueGene的 *** 作系统。

一些为手机开发的 *** 作系统,使用Linux内核的修改后的版本,其中包括谷歌Android、FirefoxOS、HPWebOS和诺基亚Maemo。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7657933.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存