linux内核参数详解 linux的内核是什么


linux内核参数详解 linux的内核是什么

文章插图
目录
一、什么是内核?
1.1 内核的能力
二、操作系统分层
三、内核是如何工作的?
四、Linux 的设计
4.1 Multitask and SMP(Symmetric multiprocessing)
4.2 ELF(Executable and Linkable Format)
4.3 Monolithic Kernel
4.4 在内核层和在用户层有什么区别?
五、Window 设计
六、总结
一、什么是内核?说到操作系统 , 就必须说内核 。内核是操作系统中应用连接硬件设备的桥梁 。
1.1 内核的能力对于一个现代的操作系统来说 , 它的内核至少应该提供以下 4 种基本能力:
管理进程、线程(决定哪个进程、线程使用 CPU);管理内存(决定内存用来做什么);连接硬件设备(为进程、和设备间提供通信能力);提供系统调用(接收进程发送来的系统调用) 。二、操作系统分层从上面 4 种能力来看操作系统和内核之间的关系 , 通常可以把操作系统分成 3 层 , 最底层的硬件设备抽象、中间的内核和最上层的应用 。
?
三、内核是如何工作的?内核权限非常高 , 它可以管理进程、可以直接访问所有的内存 , 因此确实需要和进程之间有一定的隔离 。这个隔离用类似请求/响应的模型 , 非常符合常理 。
?
但不同的是在浏览器、服务端模型中 , 浏览器和服务端是用不同的机器在执行 , 因此不需要共享一个 CPU 。但是在进程调用内核的过程中 , 这里是存在资源共享的 。
比如 , 一个机器有 4 个 CPU , 不可能让内核用一个 CPU , 其他进程用剩下的 CPU 。这样太浪费资源了 。
再比如 , 进程向内核请求 100M 的内存 , 内核把 100M 的数据传回去 。这个模型不可行 , 因为传输太慢了 。
所以 , 这里多数操作系统的设计都遵循一个原则:进程向内核发起一个请求 , 然后将 CPU 执行权限让出给内核 。内核接手 CPU 执行权限 , 然后完成请求 , 再转让出 CPU 执行权限给调用进程 。
四、Linux 的设计Linux 操作系统第一版是1991 年林纳斯托·瓦兹(一个芬兰的小伙子 , 当时 22 岁)用 C 语音写的 。写完之后他在网络上发布了 Linux 内核的源代码 。又经过了 3 年的努力 , 在 1994 年发布了完整的核心 Version 1.0 。
4.1 Multitask and SMP(Symmetric multiprocessing)MultiTask 指多任务 , Linux 是一个多任务的操作系统 。多任务就是多个任务可以同时执行 , 这里的“同时”并不是要求并发 , 而是在一段时间内可以执行多个任务 。当然 Linux 支持并发 。
SMP 指对称多处理 。其实是说 Linux 下每个处理器的地位是相等的 , 内存对多个处理器来说是共享的 , 每个处理器都可以访问完整的内存和硬件资源 。这个特点决定了在 Linux 上不会存在一个特定的处理器处理用户程序或者内核程序 , 它们可以被分配到任何一个处理器上执行 。
4.2 ELF(Executable and Linkable Format)?
这个名词翻译过来叫作可执行文件链接格式 。这是一种从 Unix 继承而来的可执行文件的存储格式 。我们可以看到 ELF 中把文件分成了一个个分段(Segment) , 每个段都有自己的作用 。
4.3 Monolithic Kernel这个名词翻译过来就是宏内核 , 宏内核反义词就是 Microkernel  , 微内核的意思 。Linux 是宏内核架构 , 这说明 Linux 的内核是一个完整的可执行程序 , 且内核用最高权限来运行 。宏内核的特点就是有很多程序会打包在内核中 , 比如 , 文件系统、驱动、内存管理等 。当然这并不是说 , 每次安装驱动都需要重新编译内核 , 现在 Linux 也可以动态加载内核模块 。所以哪些模块在内核层 , 哪些模块在用户层 , 这是一种系统层的拆分 , 并不是很强的物理隔离 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: