将主线Linux转换为实时操作系统(RTOS)的指南
1. cgroups简介与实时操作系统需求
容器技术如今十分热门,像Docker、LXC、Kubernetes等常见容器技术,本质上是Linux内核中命名空间和cgroups这两种内置技术的结合。通过实验,Jobs j1和j2的输出证明了cgroups v2 CPU控制器的有效性。
而主线Linux(从https://kernel.org下载的内核)属于通用操作系统(GPOS),并非实时操作系统(RTOS)。在RTOS中,软件不仅要得出正确结果,还必须保证每次都能在规定期限内完成任务。主线Linux可算作软实时操作系统,即大部分情况下能满足期限要求,但在军事、运输、机器人、电信等真正需要硬实时特性的领域,就必须使用RTOS。
2. 实时操作系统的关键特性——确定性
实时系统的一个关键特性是确定性。这意味着系统响应时间不一定要求极快,可能在几十毫秒的范围内,但系统必须可靠,始终以一致的方式运行,并保证能按时完成任务。例如,系统对调度请求的响应时间应保持一致,这种与所需时间的偏差被称为抖动,RTOS的目标是将抖动控制到极小甚至可以忽略不计。而在GPOS中,抖动往往变化很大。为了实现确定性响应,算法应尽可能设计为O(1)时间复杂度。
3. 将Linux内核转换为RTOS的补丁项目
从2.6.18内核开始,就有将Linux内核转换为RTOS的离线补丁。该项目最初名为PREEMPT_RT,2015年10月起,Linux基金会接管并将其更名为实时Linux(RTL)协作项目。很多人会问为什么这些补丁没有直接合并到主线内核中,原因主要有两点:一是RTL的很多工作已经合并到主线内核中,包括调
超级会员免费看
订阅专栏 解锁全文
65

被折叠的 条评论
为什么被折叠?



