宋宝华为了不忘却的纪念,评Linux5

辽宁白癜风医院 http://m.39.net/baidianfeng/a_4753196.html

Linux5.14于14小时之前发布了,而我5.13的总结还没有写出,我早觉得有写一点东西的必要了,这虽然于搬砖的码农毫不相干,但在追求进步的工程师那里,却大抵只能如此而已。为了不忘却的纪念,我们列出5.13内核的数个激动人心的新特性:

AppleM1的初始

Misccgroup

Landlock安全模块

系统调用的堆栈随机化

printk无锁ringbuffer的进一步优化

BPF可调用内核函数

公共的IOPAGEFault支持

AppleM1的初始支持

5.13最爆炸性的新闻无非是初始的AppleM1支持,但是然并卵,实用性几乎为0。因为,已经合入的patch非常类似于SoCbringup的初级阶段:

带earlycon支持的UART(samsung-style)串口驱动

Apple中断控制器,支持中断、中断亲和(affinity)和IPI(跨CPU中断)

SMP(通过标准spin-table来支持)

基于simplefb的framebuffer驱动

MacMini的设备树

这样一个东西,是没法用的,发烧友玩玩可以,但是我们感激并欣赏HectorMartin“marcan”领导的AsahiLinux项目开了一个这样的好头。但是,在AppleM1上面跑Ubuntu啥的,近期、中期和长期的选择还是用Parallels虚拟化技术比较好。

Misccgroup

众所周知,cgroup具备一个强大的控制CPU、内存、I/O等资源在不同的任务群间进行分配的能力。比如,你通过下面的命令,限制A这个群的CFS调度类进程,最多只能耗费20%的CPU:

这个世界上的绝大多数资源都是可以进行抽象的,比如属于cpuacct、cpu、memory、blkio、net_cls什么的,但是,总有一些不同于常人的人,他们既不是男人,也不是女人,而是“妖如果有了仁慈的心”的人。Linux内核的驱动子系统多达多个,但是还是有极个别驱动不属于这多类中的任何一类,于是在drivers下面有个misc:

现在内核碰到了类似的问题,它的资源要进行配额控制,但是不属于通用的类型,而是:

SecureEncryptedVirtualization(SEV)ASIDs

SEV-EncryptedState(SEV-ES)ASIDs

这些有限的ASIDs用于在AMD平台上,进行虚拟机内存加密,不能归于现有cgroup的任何一类。那么,咱们加个misc类的cgroup吧,于是Misccontrol-groupcontroller在5.13内核诞生了。这再次证明了,不要重新造轮子,但是你可以在现有的轮子里面放一个“杂交”轮子。Misccgroup允许进行一些特殊资源的控制,透过3个接口完成。

misc.capacity描述资源的能力(只读),比如:

catmisc.capacityres_a50res_b10

透过misc.current描述当前资源的占用(只读),比如:

catmisc.currentres_a3res_b0

透过misc.max设置这个cgroup最多只能使用多少资源(可读可写),比如:

#echores_a1misc.max

同志们,有了这个misccgroup的支持,以后咱们的阿猫阿狗资源限制,也可以往里面塞了。它相当于开了一道门。

Landlock安全模块

曾经有一个真诚的patch摆在我面前,但是我没有珍惜,发了V1被人怼了后就放弃了,等到失去的时候才后悔莫及,尘世间最痛苦的事莫过于此,如果上天可以给我一个机会再来一次的话,我会对那个patch说我要继续迭代发!如果非要在这个迭代的次数上加上一个期限,我希望是一百遍。5.13内核,最励志的事情无疑是,"Landlock"LandsInLinux5.13!在迭代了超过5年之后,安全组件landlock终于合入了Linux内核,这份始于年的爱情,终于有了一个美好的结局。为此,Linux内核doc的维护者,LDD3的作者之一JonathanCorbet发文指出:Kerneldevelopmentisnotforpeoplewholackpersistence;changescantakeanumberofrevisionsandalotoftimetomakeitintoamainlinerelease。文章链接:




转载请注明:http://www.snzccn.com/lwp/16836.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了