光子课堂 | 漫画础光Linux工作流程

操作系统(operating system,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的基石,也是计算机系统资源的总管理者。

而随着软件定义汽车时代的来临,在中央集中式架构趋势下,车端的底层操作系统将扮演更重要的角色。而Linux作为一款开源的、功能强大的操作系统,凭借免费开源、支持多用户、多任务、模块化程度高、广泛的硬件支持以及良好的可移植性等特点,已成为智能汽车主流操作系统之一。

国科础石于今年2月开源了础光Linux产品,截至目前,国科础石推出的础光Linux版本的操作系统已经形成一定的社区规模,上线两周即成为Gitee首页推荐项目,吸引了广泛的汽车操作系统开发者参与础光Linux系统的测试与开发。

但身边也有一些小伙伴对于Linux的工作原理具体不是十分了解,为此我们创作了一幅漫画,简单抽象的描绘了Linux的基本流程,也以此作为光子课堂的开篇内容。

废话不说,上图!

整体画面分为三层,底层为汽车的硬件层,而中间层和顶层可以理解为础光Linux的内核。

关于操作系统整体流程我们可以简单归纳为:

1.输入—2.中断/异常处理——3.调度——4.服务——5.输出

接下来我们按照漫画的分层分开说明一下这些流程

关于顶层,主要还是体现流程中的:输入,中断/异常处理以及调度,这三个部分

先说输入,我们可以看到,最左边有一块大型显示屏,首先它可以率先存储硬件以及系统内部的相关数据,可以理解为内存 

除了作为内存存储之外,大屏也可以显示硬件端发来的“请求”,我们可以看到显示屏上还有一些灯在闪烁,其实是提示下方的小企鹅注意,有些“请求”已经发布过来了,需要安排资源进行处理,

当然,现实中的内存并不会承担这些功能,这里只是为了更好的让大家理解而进行的创作:)

在大屏幕旁边有很多小企鹅在仔细的查看并作着记录,代表着操作系统也正在回应这些“请求”,同时开始安排相关的“请求”操作。这个过程就可以理解为“中断处理”。

什么是中断呢?

中断是指CPU接受到I/O设备发送的中断信号的一种响应。CPU会暂停正在执行的程序,保留CPU环境后自动转去执行该I/O设备的中断处理程序。执行完毕后回到断点。继续执行原来的程序。中断是由外部程序引起的所以称为外中断。

小企鹅们会根据各类中断请求来进行CPU的工作安排。

除了大屏幕外,还有其他的通信方式,比如墙上显示的互动屏幕标着tty。

tty是Unix/Linux系统中很重要的基础设施之一,它是指Teletype的缩写,即电传打字机。

在计算机系统中,tty是指计算机与终端或串口之间的通信接口。是一种通用的数据传输接口,它提供了一种非常基本的输入输出方式。可以通过TTY控制着一个终端在线上的内容,可以实现字符的输入和输出。

我们也可以看到有一个小企鹅也正在操作屏幕,应该是在通过tty进行通信中。

当收到中断请求后,操作系统会按照不同维度的标准,综合起来安排CPU的工作任务,形象点表示就是顶层的两条平桌上有些任务卡片,紧接着有一些立方体方块会拿着桌子上的任务卡然后走开,那他们是做什么的呢?

其实他们就相当于各类信息传达的进程(或线程),他们会按照任务卡上的规定和顺序去交给服务单元进行处理,

但交任务卡的过程就有讲究了,首先关注一下在顶层偏右的部分有一只小企鹅,拿着旗子在指挥,

按照它的指挥,有的小方块会按顺序走正常楼梯,而有的小方块则会走下方的“快速通道”,显然这个小企鹅相当于Linux中进程的调度,它的头脑十分强大,需要按照极小的时间间隔计算各个应用程序的优先级顺序,必要时可以进行“抢占式调度”,

抢占调度指的是一个高优先级进程是否可以强行夺取低优先级进程的处理器资源。如果可以强行夺取,就是可抢占的调度。这也是础光Linux实时性改造的一大亮点。

那么抢占后会发生什么呢?我们来到中间层。

中间层则体现的是流程中的:调度,服务以及输出,这三个部分,先看整体的右侧,

经过楼梯的小方块都十分有秩序的按照顺序的来到中层的服务模块(Services)的“柜台”办理相关业务,但顶层的调度算法显然调高了某个应用程序的优先级,那么当优先级高的小方块乘坐滑梯超车,可以快速抵达“柜台”,同时结束当前办理者的进度。

这里画的是四个柜台,表示四种服务类型,比如文件管理,音视频处理,网络服务等;小方块依照自己任务卡上的要求进行排队处理,那这里对应的就是流程中的服务环节

同样,聪明的企鹅们会处理好服务,最终输出。漫画里则表现为通过大屏幕传回汽车。全套流程走完。

与此同时,我们还看到了不时的有可爱的小狗跑来跑去,其实这就是监控进程的watchdog,客官能分辨出来这是什么品种的watchdog吗?

另外,在实际的过程中,其实还有很多驱动程序参与和硬件相关的流程中,在漫画里就不一一体现了,当然,我们说Linux操作系统还是比较庞大且复杂的,本文主要是以漫画的方式浅显的科普一下Linux的基本原理,后续我们还会推出更多细分场景下的漫画内容,敬请期待哦!

想了解更多关于础光Linux的信息,欢迎访问础光社区:https://gitee.com/kernelsoft

也可翻看此前发布的:一文读懂础光Linux

【关于光子课堂】础光Photon作为国科础石的技术品牌,寓意“聚光成芒,点亮未来”,为此我们开设光子课堂,用来介绍国科础石础光系列产品和相关技术特点,包含础光操作系统,础光中间件以及础光软件工程工具等产品,欢迎大家持续关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值