0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

相比其他系统的内核设计Linux是否已经过时?

马哥Linux运维 2017-11-29 17:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux 多年来取得的成绩毋庸多言。但最近,reddit 上有人发起了一个话题,想知道 Linux 的内核设计是否已经过时,并得到了一些有趣的答案。

这位Ronis_BR的用户提问大致如下:

Linux 是在 1992 年启动的,一些特性到现在都没有改变。我猜想最新的操作系统内核设计技术(如果存在…)应该较之前有很大的进步。那 Linux 内核是否已经过时?

与 Windows、macOS、FreeBSD 内核的设计相比,Linux 内核的设计有没有在哪些方面比较先进?(注意,重点是设计的先进,而不是哪一个更好)。

该话题引起了近 400 条回复,大家纷纷发表了自己对内核设计的看法,节选几条不同的观点:

ExoticMandibles:

“过时”?不存在的。Linux kernel 对现代内核的设计其实是非常了解的,只是它选择了保持传统的形式。

内核设计的核心在于“安全/稳定”和“性能”之间的关系。Microkernels(微内核)以性能为代价保证安全。如果你有极小的微内核,那么它将具有相对较小的 API surface,使其难以被攻击。而且当你有一个错误的文件时,驱动程序崩溃而不占用内核,可以无损重启。优越的稳定性!优越的安全性!一切很美好。

但这种方案的缺点是所有 IPC 永远且不可避免的开销。如果你的程序想从文件加载数据,则必须访问文件系统驱动,这意味着 IPC 要处理进程上下文切换和两次 ring transitions 。然后,文件系统驱动要求内核与硬件通信,这也意味着两次 ring transitions。然后文件系统驱动发送其回复,这意味着又一轮的两次,以及另一次上下文切换。总开销:两次上下文切换,两次 IPC 调用和六次 ring transitions。非常贵!

宏内核将所有设备驱动合拢到内核中。所以当出现一个错误的图形驱动,就可以占用内核,或者如果它有一个安全漏洞,那么可能被用来危及系统。但是,如果你的程序需要从磁盘加载某些东西,则会调用内核,进行 ring transitions,与硬件通话,计算结果,并返回结果,进行另一个 ring transitions。总开销:两次 ring transitions。便宜得多,也快得多!

简而言之,微内核是:“放弃性能来提高安全性和稳定性”;宏内核是:“保持性能,只要修复安全和稳定性问题就可以了”。而目前,大家更愿意接受后者。

Scandalousmambo:

开发一个和Linux kernel 相同的系统,从本质上决定了它一旦设计出来就会“过时”。

KugelKurt:

尽管这里讨论的大部分内容都是关于微内核与宏内核的关系,但是最近的研究还涉及到编程语言。如果你今天启动一个全新的内核,那么就可能不会用 C 去写。微软的 Singularity 和 Midori 项目探讨了用 C#托管代码内核的可行性。

Daemonpenguin:

有一些概念,在理论上可以提供更好的内核设计。比如,理论上微内核也有一些非常好的设计选择,使得它们具有便携性、可靠性和潜在的自我修正能力。

然而,无论理论多么好,人们总是会根据实际情况进行设计。Linux 内核拥有如此多的硬件支持,那么多公司支持开发,其他内核(不管设计得多炫酷)都不太可能赶得上。

例如,MINIX 具有良好的设计和一些很棒的功能,但硬件支持很少,几乎没有人为此平台开发。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11860

    浏览量

    219834

原文标题:Linux kernel 的设计是否已经过时?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    openKylin受邀参加Linux内核领域顶级技术峰会

    近日,Linux内核领域顶级技术峰会——LSF/MM/BPF 2026在克罗地亚萨格勒布举行。大会聚焦Linux内核存储、文件系统、内存管理
    的头像 发表于 05-14 11:08 540次阅读

    如何理解Linux内核中的PCIe驱动

    我们习惯了用 Verilog 去死磕 PCIe 的底层协议状态机。但一旦越过硬件边界来到操作系统层面,Linux 内核是如何接管并驱动这些 PCI/PCIe 设备的呢?由于不同的 CPU 架构实现了
    的头像 发表于 04-11 17:22 1405次阅读

    Linux内核伙伴系统内存申请函数详解:从原理到实战

    Linux 内核中,内存管理是整个系统稳定运行的基石,而伙伴系统(Buddy System) 作为内核物理内存分配的核心机制,更是驱动开
    的头像 发表于 02-10 16:58 3771次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>伙伴<b class='flag-5'>系统</b>内存申请函数详解:从原理到实战

    Linux内核bug狩猎指南:从栈跟踪到修复,官方文档教你搞定系统核心故障

    内核Linux 系统的 “心脏”—— 一旦它出 bug,小则功能异常,大则系统崩溃、死机。但内核 bug 往往藏在百万行代码中,想快速定
    的头像 发表于 02-06 16:59 3405次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>bug狩猎指南:从栈跟踪到修复,官方文档教你搞定<b class='flag-5'>系统</b>核心故障

    Linux内核的“心跳”:jiffies如何为系统计时?

    Linux 内核的世界里,有一个默默工作的 "计时器"——jiffies。它不像我们手机上的时钟那样显示年月日,却掌控着内核中绝大多数时间相关的操作:从进程调度到设备驱动的定时检查,都离不开它的身影。
    的头像 发表于 02-04 16:27 986次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的“心跳”:jiffies如何为<b class='flag-5'>系统</b>计时?

    Linux系统内核参数调优实战指南

    Linux 内核参数调优是系统性能优化的核心环节。随着云原生架构的普及和硬件性能的飞速提升,默认的内核参数配置往往无法充分发挥系统潜力。在高
    的头像 发表于 01-28 14:27 851次阅读

    【「Linux 设备驱动开发(第 2 版)」阅读体验】Linux内核开发基础

    感谢电子发烧友论坛提供的《Linux设备驱动开发(第2版)》阅读机会,测评将从Linux内核开发基础、Linux内核平台抽象和设备驱动程序、
    发表于 01-12 22:45

    【「Linux 设备驱动开发(第 2 版)」阅读体验】+读内核处理的核心辅助函数

    ;⑤、内核中断处理。与FreeRTOS这种实时嵌入式操作系统相比Linux分时操作系统是如何应对多个竞争者同时访问一个资源呢?访问后的资源
    发表于 01-10 22:08

    深入Linux内核:进程调度的核心逻辑与实现细节

    Linux系统中,进程调度就像一位精明的“CPU管理员”——它决定着哪个进程能优先使用CPU,多久切换一次进程,如何平衡系统响应速度与资源利用率。小到桌面应用的流畅点击,大到服务器的多任务并发
    的头像 发表于 12-24 07:05 4710次阅读
    深入<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>:进程调度的核心逻辑与实现细节

    Linux内核模块的加载机制

    内核模块是什么? 内核模块是动态加载到内核中的代码,可以在不重启系统的情况下扩展功能,比如设备驱动或者文件系统支持。这样用户不需要把所有功能
    发表于 11-25 06:59

    Linux内核printk日志级别全解析:从参数解读到实操配置

    一、开篇:一个命令引出的核心问题 在 Linux 终端执行 cat /proc/sys/kernel/printk,你可能会看到这样的输出: 这串数字不是随机的,而是内核日志系统的“核心配置开关
    的头像 发表于 11-20 15:54 2086次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>printk日志级别全解析:从参数解读到实操配置

    RK3506开发板Xenomai内核RT-Linux实时性系统适配教程与性能实测,实测仅7μs稳定延时

    本文基于触觉智能RK3506核心板/开发板,介绍Xenomai内核RT-Linux实时性系统适配,并附性能实测。简介与实测数据Xenomai简介XEnomai是一个实时子系统,可与
    的头像 发表于 09-18 14:21 1776次阅读
    RK3506开发板Xenomai<b class='flag-5'>内核</b>RT-<b class='flag-5'>Linux</b>实时性<b class='flag-5'>系统</b>适配教程与性能实测,实测仅7μs稳定延时

    开源系统适配:聚徽分享国产工控平板在 Linux / 鸿蒙系统下的技术优化

    工控平板进行技术优化,实现与 Linux、鸿蒙系统的高效适配,成为行业关注的焦点。 一、Linux 系统下国产工控平板的技术优化 (一)内核
    的头像 发表于 06-13 16:29 1358次阅读

    CYW55513是否支持linux4.4?

    开始支持55513的驱动版本是Infineon Linux Wi-Fi驱动程序(FMAC)(v2024_1115) 但在发行说明中有一句话 从内核版本 4.14 到内核版本 6.1.97 的反向移植支持 说明backport是不
    发表于 06-05 07:26

    如何配置和验证Linux内核参数

    Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要。合理的参数调整可以显著提升网络性能、系统稳定性及资源利用率。然而,仅仅修改参数是不够的,如何验证这些参数
    的头像 发表于 05-29 17:40 1488次阅读