操作系统发展趋势分析,以及对开发者的影响。


· 近几年来,随着硬件上的各种技术发展迅速,许多开发者虽然没有参与,但是这些影响的发生时必然的,本文首先将各种技术的发展罗列出来,然后讲一下操作系统的相应发展趋势,最后分析一下这种趋势对我们开发者的影响作详细分析。

1.重要技术发展罗列

1)SSD硬盘逐步取代HDD硬盘

· SSD硬盘也就是我们常说的固态硬盘,技术原理是使用nand flash组成的存储单元阵列。由于技术提升使得价格越来越亲民,本人也是很早就将自己的老硬盘换成了SSD硬盘,速度提升明显。
· 这里影响性能最大的就是速度的提升,
HDD硬盘读写速度一般在 50~190MB/s范围内;
SSD硬盘读写速度一般在500MB/s~1GB/s,部分高端型号可以达到2GB/s以上。
· 这说明SSD硬盘相比HDD硬盘,速度提升了5~10倍,和内存的速度在一个量级。

2)IPV4地址完全耗尽

根据负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心通过邮件确认,目前43亿个IPv4地址已分配完毕,这意味着没有更多的IPv4地址可以分配给网络服务提供商和其他大型网络基础设施提供商。
这意味着各种IPV6相关配套技术会加速发展,虽然IPV6技术上早已发展成熟,但是并未广泛使用。

3)AI芯片的出现

· AI芯片也被称为AI加速器或计算卡,专门用于处理人工智能应用(场景)中的大量计算任务的模块(其他非计算任务仍由CPU负责)。手机AI芯片对于各种AI算子能够以30倍到50倍左右的速度处理。
· 目前的AI芯片主要应用在人脸识别和图像处理等领域,后续随着性能的提升和价格的降低,可能会在各个领域上普及。

4)5G商用和物联网的普及

· 5G相对于4G速度上提升了10~100倍,这使得在这个速度基础上,很多新的应用会出现,这使得可能会出现新的商业模式。
· 而物联网nb-iot的不断普及,让更多的设备可以连上网,对网络的普及有巨大帮助。

5)华为推出 方舟编译器和鸿蒙操作系统,挑战Android。

· 最近华为推出了针对物联网使用的操作系统-鸿蒙,挑战了安卓系统在移动端的霸权,这是中国科技实力不断提升的体现。而对于新操作系统最重要的是生态建设,这需要建立开源社区,并吸引广大开发者的不断投入。

2.操作系统发展趋势

· 对于以上出现的重要信息,我们接着分析各种因素对操作系统带来的变化。这些因素分为2类:

1)硬件性能提升

· 这些因素包括CPU核数不断提升存取性能提升
核数的不断提升核间通信开销增大,对系统架构影响不大。但是存取性能提升(SSD硬盘速度的提升使其和内存的速度在一个量级),对于传统的以 “CPU-内存-硬盘” 为基础的计算机体系架构是一个挑战。需要提供更为精简的架构来提升性能,可能发生如下变化:

(1)内存管理系统优化

计算机系统结构可能的变化
· 上图所描述的,主要是通过CPU可以直接读取磁盘数据来提升存取效率,不再以内存作为中间环节。这就需要磁盘的数据可以直接存入CPU的缓存当中。

(2)文件系统优化

· 目前对于SSD这种硬盘,并没有许多新的文件系统出现,而老的文件系统是以HDD硬盘为基础而发展出来的,主要特点是以扇区为单位进行存取,而在SSD这种硬盘可以实现以字节为单位存取,这促进了新文件系统的研发成为一个方向。

(3)IO架构优化

· 从事过Linux驱动开发的人员有过这样的体会,Linux中的驱动层次越来越多,设备信息从底层传到应用可能经过4个层次,这对于代码量的确有所减少,但是这会降低IO控制速率。这使得简化系统的层次结构成为了提升性能的一个方向。
· 由于CPU核数不断增多,多核如何解决IO使用的冲突,这里Linux实现了多队列的机制成为主流。
· 目前这些尝试都在服务器上,当架构成熟之后,肯定会降维到各种终端上来使用。

2)应用场景改变

(1)通信速率提升,让虚拟化落地

· 首先是5G的商用使得网络通讯速率的不断提升,这使得对操作系统的响应速度有了更高的要求,华为的鸿蒙系统就是这种要求上的产物。因此,操作系统也在不断向虚拟化的方向发展。应用上类似docker,特别是云手机这种场景很可能出现。就是在云端给你分配了一个用户,手机终端只用携带好通信模块和显示模块,一上电通过网络就连上云端,当网络速度足够快的时候,和自己的手机上做操作感觉是相似的。
· 虚拟化场景的逐步落地,对网络安全,分布式架构等方面产生了新的需求。目前阿里、腾讯等大厂在不断跟进。

(2)AI产业发展迅速

· AI是未来产业升级的方向,AI其实是在CPU内部集成了一个用于深度学习的计算单元,可以提高神经网络计算的能力。当AI芯片的性能不断提升且架构不断降低时,带有AI芯片的CPU会加速普及。

3.对开发人员的建议

· 首先要讲到,我们需要拥抱这些变化,尽量能参与这种变革当中来。如果能参与的产业的变革当中,我们也会得到更多的发展机会。就像鸿蒙操作系统,我们能参与到系统的生态完善当中是最好的。
· 然后就是学习Linux,Linux在不断更新,也是在不断跟随这些挑战,我们也要不断学习新的Linux内核代码。
· 对于应用开发人员,如果是是从事移动终端开发的,要开始尝试鸿蒙系统和方舟编译器这种新的平台;做Linux开发的,就要多尝试新的Linux系统,更深层次的了解操作系统;
· 对于内核和驱动开发人员,可以了解一下RUST语言,这是一门面向未来的语言,在保证多核的充分使用时,还能保证内存占用极低。尽力参与Linux社区和鸿蒙这种新系统的开源社区。
· 对于网络开发的人员,要了解IPV6的特性,深入了解网络安全,了解一些新的面向物联网的协议协议,例如MQTT。

发布了15 篇原创文章 · 获赞 19 · 访问量 4686
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章