L4微内核系列

✍ dations ◷ 2025-08-13 22:30:41 #L4微内核系列

L4是一种微内核构架的操作系统内核,最初由约亨·李德克(Jochen Liedtke)设计,前身为L3微内核。在最开始,L4只是一个由约亨·李德克设计并实现的单一的产品,用于Intel i386上的一个高度优化内核。L4微内核系统由于其出色的性能和很小的体积而开始被计算机工业所认知。随后,L4的系统在多个方面上有了高速的发展,值得提及的是一个更加独立于硬件平台的版本,被称为Pistachio,之后又被移植到了许多不同的硬件构架上。现在已经形成一个微内核家族,包括Pistachio,L4/MIPS,与Fiasco。

由于意识到Mach微内核在设计和性能上的缺陷,许多开发人员在90年代中期开始重新审视整个微内核的概念。Mach为了支持一些除了Unix环境以外并不是特别有用的概念,而在进程间通讯(IPC)中增加了大量的额外开销。IPC系统本身就是一个分布式开销的经典案例。在单用户系统中,比如说手机,许可和权限的检查就显得不是那么重要。虽然Mach宣称自己是一个微内核,但是看起来实际上它包含了远超过它所必需的东西。

约亨·李德克想要证明更薄的IPC层、对性能更关注并与硬件特性相关(和与平台无关相对)的设计,会更贴近现实世界中的性能改进。相对于Mach的复杂的IPC系统,他的L3仅简单的传递消息,而没有任何额外的开销。安全和权限被视为同其它用户空间所必需的服务器一样。L3也使用了各种硬件的特性来传递消息,让每个调用都最大化的利用硬件特性,像寄存器。相对而言,Mach则使用的是one-size-fits-all的通用机制,以牺牲性能为代价而获取可移植性。这些改变大量减少IPC中额外的开销。在同样的系统中,Mach需要114毫秒来发送即使是最短的消息,而L3可以用少于10毫秒的时间来发送同样的消息。一次系统调用的时间比Unix所花费的一半还少,而Mach执行同样的系统调用需要5倍于Unix的时间。通过在TÜV SÜD中使用多年,L3被证明是一个安全的操作系统内核。
在L3之后,约亨·李德克开始意识到其它的一些Mach的概念也存在同样的问题。这导致了更简单地L4的诞生,由于太简单了,随后L4被证明是具有高可移植性的。

回顾历史,大多数Mach的性能问题似乎只能以重新设计来解决。例如,在Mach微内核与宏内核的比较中的另一个主要的瓶颈是在一个真实的"服务器"集系统中内核无法知道怎样有效地进行分页内存。开发者们使用宏内核可以,并且已经投入了可观的时间以试图了解内核的内存使用的精确性质,然后调整他们的系统来利用这些优点。在微内核上开发者无法知道是什么组成系统,而且除了一些特例之外无法更近地监视内存使用。

Liedtke决定这个问题的解决方案是简单地从内核中移除全部分页工作,并允许每个应用程序应用以前只能应用于宏内核的调整形式。在L4系统下,操作系统(相对于内核)被期望提供分页服务,潜在地可以以很多种形式,允许开发者选取最适合于他们的工作的方式。内核的角色减少到知道这样的系统存在并提供一个支持它们的机制。在L4下,这总共需要三个函数:Grant,Map和Unmap。

结果设计哲学变成了最小化的。就像L4/MIPS的作者们所表述的:“一项特性当且仅当安全需要它在特权模式被实现时才应该在微内核里”。Mach关注于跨平台的可移植性,多处理器支持和其它“下一件大事”的主机。

一个基于L4的操作系统必须提供那些上一代宏内核内部所内置的服务。例如,为了实现一个类Unix的安全系统,服务器必须提供像Mach内核所内置的权限管理。进一步说,消息在多数情况下必须检查其有效性。但仍不清楚的是,在L4之上运行的真实的操作系统的端对端性能是否会显著快于一个基于Mach创建的系统。在一个移植到L4之上运行的Linux,和另一个移植到Mach之上运行的MkLinux,与基本的Linux系统本身之间的测试清楚地表明了L4的性能的优势。即使在最好的情况下MkLinux运行得比宏内核慢15%,而同时L4只慢大约5-10%。更进一步移植Linux系统的开发,而不是为测试而实现,有可能提高(性能)到一定程度。

Liedtke的L4原始版本是为速度而创建的。为了榨干每一滴性能,许多关键段落是以汇编语言写成的。他的工作在操作系统设计圈引起了一场小小的革命。很快它被一些大学所研究,然后很快是IBM,就是Liedtke所迁往的地方。在IBM一个L4的新版本被创造出来,Lemon Pip,紧接着是使用C++创造一个跨平台版本的努力,Lime Pip。

Karlsruhe大学也选择L4进行开发,在那里他们开发了L4Ka::Hazelnut,一个计划运行于所有32位机器上C++的版本。他们试图判断像C++这种高级语言的额外开销是否会抹杀掉其所提供的编程便利性。这份努力很成功,性能仍然是极好的,在它发布时IBM的Lime Pip项目终止了。Hazelnut最终为了可移植性、64位支持和更好的性能被全部重写,由此而产生了L4Ka::Pistachio。

新南威尔士大学也同样进行着开发,在那里开发者在多种64位平台上实现了L4。他们开发了L4/MIPS和L4/Alpha,而Liedtke的原始版本被追认为L4/x86。像Liedtke的最初的内核那样,UNSW内核是不可移植的并且是分别从头重写的。在高度可移植的Pistachio发行时,UNSW研究组放弃了他们自己的内核转而支持产生高度优化的Pistachio移植。

最近UNSW研究组在他们的新家National ICT Australia (NICTA),创造了一个新的L4版本称为L4-embedded。就像名称所暗示的那样,这是着眼于在商业嵌入式环境中的使用,因此这个实现在较小的内存印记与减少复杂度的目标之间的进行了权衡。还有正在进行中的如下工作,L4 API的正式化,正规的证明一个实现的正确性,以及为了在L4之上开发良好结构化的系统的框架。

Fiasco是对最初的L4的进一步的开发,包含了硬实时支持,并且被作为DROPS操作系统的基础。对于实时系统使用"快"是不够的,所以Fiasco内核是完全重入的,允许在任何时间被中断。就像其它由最初的L4的发展出来的版本一样,为了可读性和可移植性的原因,Fiasco也是使用C++写成的。

今天几乎所有的开发者出现在Pistachio内核上。新南威尔士大学现在使用Pistachio继续他们的可移植性实验,并且Pistachio内核现在在广泛的硬件上都有提供。其它的研究组在探索实时支持,对像Fiasco那样的概念继续深入研究。基本内核的开发也在Karlsruhe大学继续,朝向新的"Version 4" API而工作(Pistachio 当前只实现了beta版).

GNU Hurd项目在考虑采用L4微内核以取代Mach (GNU Hurd/L4). 当前存在一个目标为致力于在L4框架下最小的实现Mach的设计,开发者们正在它的实现上工作。

2009年,Data61/CSIRO实现了对于其L4内核的形式化证明,并创造出世界上第一个此类的实用操作系统seL4。他们在2013年进一步证明了内核的信息流安全性,使得该系统成为最安全的操作系统之一。

相关

  • 羊桥寨信仰佤族(佤文:Ba Rāog / si viex / Brāog / Vax Ba Rāog / Vāx qux (口语) / Vā (文学语),旧佤文:Praok / Va;中国标准罗马字母:Va)是亚洲的一个跨国民族,主要分布在澜沧江与萨尔温江
  • 英国大选政治主题英国大选(General elections of the United Kingdom)是指英国选举最高立法机构英国国会议员的选举,英国的国会议员(Members of Parliament,MP)通常指下议院议员。国会议员
  • 化学学院北京大学化学学院是北京大学的一个学院,在北京大学官方编制中被称为北京大学化学与分子工程学院(英语:College of Chemistry and Molecular Engineering, Peking University),因
  • 豹狮兽豹狮,或豹狮兽(学名:Panthera pardus × leo )是雄豹与雌狮杂交后的产物,其头部像狮子,而身体则长有豹斑,体型比豹子大,喜欢攀爬和戏水。多是人类影响或主使之下的产物,而不是自然交
  • 三氧化硫三氧化硫(IUPAC名:sulphur trioxide,分子式:SO3)是一种硫的氧化物,有类似二氧化硫的气味,溶于水中反应成硫酸。它的气体形式是一种严重的污染物,是形成酸雨的主要来源之一。在673K、
  • 静水骨骼静水骨骼(Hydrostatic skeleton)或水骨骼(Hydroskeleton),是一种由液压支撑的骨骼。静水骨骼在简单的脊椎生物中是常见的。更高级的生物体也有静水结构,不过它们是静水器官而不是
  • 弗朵秃河卫弗朵秃河卫,又作弗朵河卫。明代羁縻卫所名。永乐六年(1408年)明朝册封当地酋长为名义上的官员(参见:土司),治所今址不详,辖区约今俄罗斯境内的黑龙江下游弗答哈河流域。后废。
  • 杰罗恩卡尔萨杰罗恩卡尔萨(Jeron Khalsa),是印度中央邦Tikamgarh县的一个城镇。总人口8297(2001年)。该地2001年总人口8297人,其中男性4383人,女性3914人;0—6岁人口1496人,其中男766人,女730人;识
  • 非洲树蛙科非洲树蛙科(学名:)也称苇蛙科,是两栖纲无尾目的一科,主要分布于撒哈拉以南的非洲大陆以及马达加斯加岛、塞舌尔群岛等地。非洲树蛙是一类小型或中型的蛙类,多树栖,不少种类喜欢生活
  • 完颜亮完颜亮(1122年2月24日-1161年12月15日),字元功,女真名迪古乃,金朝第四任皇帝(1150年1月9日-1161年12月15日在位)。金太祖完颜阿骨打之孙,太祖庶长子完颜宗干次子,母亲为大氏。金熙宗朝,完颜亮官至右丞相兼都元帅、太保领三省事,位极人臣。皇统九年末(1150年),完颜亮刺杀堂兄熙宗,即位改元。登基后,大肆屠杀宗室,使太宗一脉断绝。在位期间,废除行台尚书省,直接管理华北;迁国都、祖陵至燕京(今北京),改称中都;设立国子监,改革科举;印制交钞、铜钱;颁行正隆官制,废除徒有虚名的三省制,