第八十三章 系统内核和调度算法(周末加…
南广义不知道陈哲的心里,会有这么多的戏。
他只是很惊奇于对方,竟然早就在做内核了,“怎么没直接带过来让大家看看?”
陈哲就笑了笑,“这个不急,反正我对这个内核,还是颇有点儿信心的,等咱们讨论完了,再过去看也不迟。”
南广义也没有坚持,却追问了一句,“你这个内核是怎么构建的?”
所谓构建,也就是体系结构了。
陈哲也交代的很痛快,“应该算是类unix吧,和linux也有点儿像,兼具稳定与安全可靠的特性。
“它的底层是图形化的,我认为除了编程设计、商务办公之外,视频、游戏或其它多媒体应用程序等,会在未来有更大的市场需求。”
说实话,在陈哲的眼里,windows后来越来越庞大臃肿的体积,是无法规避越来越多的系统漏洞的。
而这会儿苹果的macos,还在死守着自己完全封闭,不带别人一起玩的固执。
就算是后来的osx,虽然快速又稳定,占用的系统资源也很少,外部驱动的退出也很稳妥。
但是,不能对系统进行深层次的改造,也使得它自定义程度并不高。
这一点相当可惜。
而陈哲之所以选择这样的一款内核,就是综合了这两者的优缺点,而搭建出来的。
简单、快捷、方便,再加上从底层就开始的图形化设计,让硬件与软件的集成,使它在增添外设、运行应用程序、故障排除以及维护方面,都相对的更加突出。
南广义眼神很亮。
心里也跟猫抓似的,“这样的话,会不会在处理底层任务,如内存管理、进程调度、文件管理上有所影响?毕竟,内核是直接与硬件交互的。”
陈哲很自信地一笑,“放心,多用户、多任务的属性,还是保持的很好的,不但有强大的网络功能,还兼具良好的移植性。”
说白了,就是可以支持多种硬件平台的操作系统。
无论是台式机、服务器、超算,还是手机、平板、路由器以及视频游戏控制台,它都可以适用。
只要你能遵循相应协议下,做好系统软件和工具,并提供相应的系统设定和管理工具,就能形成一款真正的操作系统。
说白了就是shell、命令和工具、文件和目录。
而这些,就需要南老和他的团队,围绕着陈哲做出来的那款内核架构,去进行开发了。
所以,听到陈哲能有这样的自信,南广义更加心动了。
别说他了,在场的有一个算一个,其实都有些心有期待的。
毕竟,如果真像陈哲说的那样,那无疑对于整个项目的研发,等于是一下子推进了一大截。
这和从无到有,是完全的两码事儿。
就像是你要建一栋大楼,从无到有的话,那就要经过选址、设计、打地基、建造、装修等一系列的流程。
但是,如果现在有一栋烂尾楼,无论是地段、整体构造、施工质量什么的都符合你的心理预期。
那么,这样可以节省了多少时间,就是显而易见的事情了。
现在陈哲给出的内核架构,就等于这栋烂尾楼。
而南老他们需要做的,就是完成整个工程项目的施工。
当然了,这只是一个比喻。
毕竟,陈哲正在做的那个内核,也不是就可以直接拿过来用的。
因为南老他们要做的,同样是一个繁琐的工程。
所以,底层源码肯定是不能完全一样的,但是却又必须保证两者之间,在结构体系上的一致,
这里面,就需要考教陈哲的能力了。
而在这方面,却恰恰就是陈哲最适合开挂的领域。
毕竟,他熟悉未来各种操作系统的发展趋势,也熟知在这种发展中,所出现的各种需求。
所以,他就能最大限度的,做出一款极其精简,优化到了极致,甚至能让你改无可改的程度。
这种超前的设计理念和通用调度算法,再加上那种洞悉未来的领先思维,是完全可以保证他去实现这一点的。
举个最简单的例子。
如果这款内核看作是一种碳元素,它可以自然形成钻石、炭、石墨,也可以成为无数的化合物,比如尼龙、汽油、香水、塑料、炸药等。
你可以把它应用到很多场景中,但却很难改变碳元素本身。
别较真,就是表达那么个意思。
不得不说,陈哲的想法是很好的。
但是在没有见到真实的东西之前,与会的众人,还是难免会在心里打个问号。
而这个问号,在下午见识到陈哲的那款半成品内核后,就很快烟消云散了。
事实胜于雄辩。
这些人可都是识货的人,有见识、有能力,完全可以大致判断出一个产品的好坏。
虽然陈哲拿出来的,还仅仅只是一个半成品。
但所谓窥一斑而知全豹,作为行内人,他们都有自己的眼力眼光和判断标准,是可以有相应的评判资格的。
这里面最高兴的,莫过于南广义了。
但要说最震惊的,那就要算许忠信教授了。
他一脸不可思议的指着电脑屏幕。
眼睛却死死的盯着陈哲,“这个调度系统的算法,也是你自己写的?”
要知道,一款操作系统的内核,在调度系统上的算法,是相当复杂的。
虽然90年代的时候,情况还远没有后来发展的那么变态,但也不是一般人就可以玩得转的。
内核的调度系统,是综合了各种算法和tradeoff,并涉及到了吞吐量、响应时间、公平性、调度引起的额外开销等各个方面上的权衡。
而这其中,也有先进先出算法、任务优先算法、时间片轮转算法、最大最小公平性算法等各种不同的算法。
每一种算法,都有各自的优劣。
比如先进先出算法,虽然能保证最少的任务切换开销、最大的吞吐量以及最朴实的公平性,但它的响应时间却很高,只能适用于队列中任务的耗时差不多的场景。
再比如时间片轮转算法,它虽然能保证公平性,让耗时短的任务即使落在后面,也能较快的得到调度执行。
但是,任务切换引起的调度开销,就会相应的变大,需要多次切换任务上下文,时间片也不太好设置。
只能适用于队列中耗时差不多的任务,比如多路视频流处理。
最不适合的,则是计算性任务和i/o型任务混合的队列。
而陈哲,却在其中加入了另一个新型算法,也正是这个算法,引起了许忠信的惊叹,进而忍不住开口询问。
陈哲呵呵一笑,“这应该可以叫做多级反馈队列调度算法吧,这种算法,可以兼顾响应时间、低调度开销、饥饿避免、公平性等。”
这种算法,后来也是公认为比较好的一种进程调度算法,可以满足各类进程的需要。
陈哲知道,后来的windows、macosx、linux内核调度系统中,都会加入这种算法。
尤其是后来的多cpu核场景中,这种算法是最适合的。
许忠信就很意味深长的看了他一眼,心里已经拿定了主意,这小子就像是个宝藏,绝对不能光看着却不动手去挖,那纯粹就是一种浪费。
这个目光,也让陈哲心里一哆嗦。
他不怕才怪呢,玩点儿应用还可以,真要让他去搞什么纯数,那可就要了老命了。
搞纯数的,哪一个不是变态中的妖孽。
他只是很惊奇于对方,竟然早就在做内核了,“怎么没直接带过来让大家看看?”
陈哲就笑了笑,“这个不急,反正我对这个内核,还是颇有点儿信心的,等咱们讨论完了,再过去看也不迟。”
南广义也没有坚持,却追问了一句,“你这个内核是怎么构建的?”
所谓构建,也就是体系结构了。
陈哲也交代的很痛快,“应该算是类unix吧,和linux也有点儿像,兼具稳定与安全可靠的特性。
“它的底层是图形化的,我认为除了编程设计、商务办公之外,视频、游戏或其它多媒体应用程序等,会在未来有更大的市场需求。”
说实话,在陈哲的眼里,windows后来越来越庞大臃肿的体积,是无法规避越来越多的系统漏洞的。
而这会儿苹果的macos,还在死守着自己完全封闭,不带别人一起玩的固执。
就算是后来的osx,虽然快速又稳定,占用的系统资源也很少,外部驱动的退出也很稳妥。
但是,不能对系统进行深层次的改造,也使得它自定义程度并不高。
这一点相当可惜。
而陈哲之所以选择这样的一款内核,就是综合了这两者的优缺点,而搭建出来的。
简单、快捷、方便,再加上从底层就开始的图形化设计,让硬件与软件的集成,使它在增添外设、运行应用程序、故障排除以及维护方面,都相对的更加突出。
南广义眼神很亮。
心里也跟猫抓似的,“这样的话,会不会在处理底层任务,如内存管理、进程调度、文件管理上有所影响?毕竟,内核是直接与硬件交互的。”
陈哲很自信地一笑,“放心,多用户、多任务的属性,还是保持的很好的,不但有强大的网络功能,还兼具良好的移植性。”
说白了,就是可以支持多种硬件平台的操作系统。
无论是台式机、服务器、超算,还是手机、平板、路由器以及视频游戏控制台,它都可以适用。
只要你能遵循相应协议下,做好系统软件和工具,并提供相应的系统设定和管理工具,就能形成一款真正的操作系统。
说白了就是shell、命令和工具、文件和目录。
而这些,就需要南老和他的团队,围绕着陈哲做出来的那款内核架构,去进行开发了。
所以,听到陈哲能有这样的自信,南广义更加心动了。
别说他了,在场的有一个算一个,其实都有些心有期待的。
毕竟,如果真像陈哲说的那样,那无疑对于整个项目的研发,等于是一下子推进了一大截。
这和从无到有,是完全的两码事儿。
就像是你要建一栋大楼,从无到有的话,那就要经过选址、设计、打地基、建造、装修等一系列的流程。
但是,如果现在有一栋烂尾楼,无论是地段、整体构造、施工质量什么的都符合你的心理预期。
那么,这样可以节省了多少时间,就是显而易见的事情了。
现在陈哲给出的内核架构,就等于这栋烂尾楼。
而南老他们需要做的,就是完成整个工程项目的施工。
当然了,这只是一个比喻。
毕竟,陈哲正在做的那个内核,也不是就可以直接拿过来用的。
因为南老他们要做的,同样是一个繁琐的工程。
所以,底层源码肯定是不能完全一样的,但是却又必须保证两者之间,在结构体系上的一致,
这里面,就需要考教陈哲的能力了。
而在这方面,却恰恰就是陈哲最适合开挂的领域。
毕竟,他熟悉未来各种操作系统的发展趋势,也熟知在这种发展中,所出现的各种需求。
所以,他就能最大限度的,做出一款极其精简,优化到了极致,甚至能让你改无可改的程度。
这种超前的设计理念和通用调度算法,再加上那种洞悉未来的领先思维,是完全可以保证他去实现这一点的。
举个最简单的例子。
如果这款内核看作是一种碳元素,它可以自然形成钻石、炭、石墨,也可以成为无数的化合物,比如尼龙、汽油、香水、塑料、炸药等。
你可以把它应用到很多场景中,但却很难改变碳元素本身。
别较真,就是表达那么个意思。
不得不说,陈哲的想法是很好的。
但是在没有见到真实的东西之前,与会的众人,还是难免会在心里打个问号。
而这个问号,在下午见识到陈哲的那款半成品内核后,就很快烟消云散了。
事实胜于雄辩。
这些人可都是识货的人,有见识、有能力,完全可以大致判断出一个产品的好坏。
虽然陈哲拿出来的,还仅仅只是一个半成品。
但所谓窥一斑而知全豹,作为行内人,他们都有自己的眼力眼光和判断标准,是可以有相应的评判资格的。
这里面最高兴的,莫过于南广义了。
但要说最震惊的,那就要算许忠信教授了。
他一脸不可思议的指着电脑屏幕。
眼睛却死死的盯着陈哲,“这个调度系统的算法,也是你自己写的?”
要知道,一款操作系统的内核,在调度系统上的算法,是相当复杂的。
虽然90年代的时候,情况还远没有后来发展的那么变态,但也不是一般人就可以玩得转的。
内核的调度系统,是综合了各种算法和tradeoff,并涉及到了吞吐量、响应时间、公平性、调度引起的额外开销等各个方面上的权衡。
而这其中,也有先进先出算法、任务优先算法、时间片轮转算法、最大最小公平性算法等各种不同的算法。
每一种算法,都有各自的优劣。
比如先进先出算法,虽然能保证最少的任务切换开销、最大的吞吐量以及最朴实的公平性,但它的响应时间却很高,只能适用于队列中任务的耗时差不多的场景。
再比如时间片轮转算法,它虽然能保证公平性,让耗时短的任务即使落在后面,也能较快的得到调度执行。
但是,任务切换引起的调度开销,就会相应的变大,需要多次切换任务上下文,时间片也不太好设置。
只能适用于队列中耗时差不多的任务,比如多路视频流处理。
最不适合的,则是计算性任务和i/o型任务混合的队列。
而陈哲,却在其中加入了另一个新型算法,也正是这个算法,引起了许忠信的惊叹,进而忍不住开口询问。
陈哲呵呵一笑,“这应该可以叫做多级反馈队列调度算法吧,这种算法,可以兼顾响应时间、低调度开销、饥饿避免、公平性等。”
这种算法,后来也是公认为比较好的一种进程调度算法,可以满足各类进程的需要。
陈哲知道,后来的windows、macosx、linux内核调度系统中,都会加入这种算法。
尤其是后来的多cpu核场景中,这种算法是最适合的。
许忠信就很意味深长的看了他一眼,心里已经拿定了主意,这小子就像是个宝藏,绝对不能光看着却不动手去挖,那纯粹就是一种浪费。
这个目光,也让陈哲心里一哆嗦。
他不怕才怪呢,玩点儿应用还可以,真要让他去搞什么纯数,那可就要了老命了。
搞纯数的,哪一个不是变态中的妖孽。