第32章 知识就是力量
“我怎么觉得后背有些凉。”办公室内,李进朝陈星说道。
李进看陈星不见人影,一猜就知道他又到办公室来蹭网。邵静瑜前脚刚走他就到了。
“你能不能安静一会儿。”陈星实在受不了这家伙在旁边聒噪八卦,“去操场找人打篮球好不好。”
“没你给我传球打着没劲。不差这半天,打球去呗。”
“我除了微机课,也就这半天才有空上网查查资料。”
“你这么急着赶我走,是不是一会儿邵静瑜还回来。”
“回你爷爷,你一天到晚八卦,累不累。”
“陪我去打球,我就不八卦。”
陈星无奈,他打算拖着。希望拖一会儿,李进就会熬不住自己滚蛋。
李进在旁骚扰,陈星看书学习是别想了,干脆就把林悦的那个文曲星拿了出来。
他本来就打算好了,给林悦安装个播放器,然后把哈利波特电影全系列都放进去。
上回说是要把文曲星变成一台游戏机,可那只是陈星下意识的想法,因为他自己喜欢游戏。可是陈星知道林悦其实对游戏不感兴趣,所以还是给她放几部电影进去吧。学习累了,还能躲在被窝里解闷看看。
陈星把文曲星连接上笔记本,他发现这东西的界面其实是用一个叫QT的界面平台做的。
QT其实就是个跨平台的UI框架。以Windows系统为例,其实Windows系统的核心并非是大家看到的那些“我的电脑”“回收站”之类的图形。
那些图形其实是一个叫做“explorer”的进程提供的。也就是说,Windows系统的核心不需要图形界面也能运行,而explorer进程则是把那些晦涩的功能,以图形交互的方式呈现给用户。
而眼下的QT也是类似的功能。
陈星很快就在网上找到了兼容QT平台的播放器,安装完成后,他把笔记本里Windows系统自带的测试播放器用的,MP4格式的小视频,拷贝进了文曲星。
然后让文曲星正常开机,随后应用列表里果然多了个视频播放器。打开播放器果然找到了那个测试小视频。
陈星用触摸笔点击播放,那段小视频就很流畅地呈现在了文曲星屏幕上。
这下把李进给看傻了。
“我尼玛,文曲星还能这么玩。老陈,我现在算是明白了,什么叫知识就是力量。快给我看看。”
“拿张纸巾擦干净手汗,尽量不要碰到电路板。”
此时为了打开文曲星的调试模式,陈星拆开了它的后盖,这样才能连接那个内部隐藏的micro usb口。坏处就是电路板暴露在外。
李进迫不及待把玩起来,“文曲星能放电影,我还是头一次见。”
“看机型的。便宜的那种功能型的就不行,像林悦这种贵的其实就是部不能打电话的N95。只不过人家阉割了娱乐功能。其实也不算是阉割,就是把功能隐藏了起来,你想打游戏都可以。”
“打游戏?”李进仿佛被什么唤醒了。
“真的能打游戏?CS可以吗。”
“那估计不行,这毕竟是Linux系统。但是掌机上那些游戏,装个模拟器就可以了。不是什么难事。”
陈星说的没错,他随便逛了几个论坛,发现早就有各路魔改文曲星的大神。
“那我买一个,你帮我装几个游戏。”
陈星愣了下,只怪自己多嘴。
“我记错了,这个不能玩游戏。”
“还是不是兄弟了。”
“是兄弟才不想害你。”陈星太了解这家伙,不玩游戏都这样了,要是玩起游戏那不彻底废了。
“扫兴。”李进终于出了办公室。
这下世界总算安静了。陈星一边下载电影,一边继续翻看那本《RTOS移植注意事项》。
软件不能独立于硬件存在,离开硬件的软件就是一堆死的字符。但是没有软件的硬件就是一堆废铁。
而保障软件正常运行的前提就是操作系统。
操作系统有很多种。
Windows和Linux属于大型操作系统,适用于比较复杂的场景。而那些业务逻辑单一的场景,并非就不需要操作系统。
于是小型化的嵌入式操作系统应运而生。
以智能小车为例。
即便看起来小车的逻辑很单一,但其实也有不少任务需要同时运行。
比如:
差速控制任务。用于控制小车的方向和速度。
自动巡径任务。用于控制小车的行进轨迹。
自动避障任务。用于控制小车躲开障碍物。
其余诸如还有:运行日志记录任务、运行状态监测任务。
要让小车正常运行,就必须让这些任务互相配合。那么问题就来了,任务之间该如何配合。
由于单片机是单核的,一个核心类似就是一个工人。那很显然,一个人同时只能干一件事情,也就是同时只有一个任务能被执行。在这个任务被执行的时候,其余任务只能等待。
即便是眼下多核心的电脑CPU也会面临这个问题,因为即便是多核心,但是电脑面临的任务数量更多。一个游戏或是播放一部电影,就会有好多个任务。这个任务的概念并非是人脑理解的一件事情,而是计算机层面的理解。
比如:一个最普通的网络游戏。
电脑看似只是在执行网游这一个任务。但是网游其实是由:界面渲染任务、声音播放任务、鼠标和键盘响应任务、一堆的网络数据交互任务组成的。
最好的证明就是打开电脑的任务管理器。
即便对电脑什么都不做,那里头也有一堆的进程。
所以单片机也一样。小车看似只是执行行驶这一个任务,但事实上背后却有一堆任务。
只要同时执行的任务数量大于CPU的核心数量,那就会存在任务抢占的问题。
说白了就是活多人少,那这个人就得一会儿干任务A,一会儿又去干任务B。这种现象几乎每时每刻都在计算机世界发生着。
代表CPU的这个人,是不能干完任务A后再去干任务B的。
再以智能小车为例。
差速控制需要的是持续不停地控制,否则小车的速度就会混乱。
自动巡径和自动避障任务也是一样,要是一段时间得不到执行,小车要么偏离轨迹,要么就是撞墙。
所以,操作系统的工作其实就是解决一个人能同时干多件活的问题。
陈星翻阅着资料,喃喃着,“RTOS。”
OS对应的operating system概念,他已经弄明白了。可还有RT呢,如果仅仅是让任务得到执行,那就叫OS就行,何必还要加上RT,real time的前缀。
陈星继续向后翻阅资料。