静网PWA视频评论

什么叫做微内核?与安卓系统有什么区别?

2023年09月19日

- txt下载

专业回答


微内核


微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。内核只提供最基础的服务,比如多进程调度、多进程通信(IPC)等。其中进程通信是作为连接应用与用户态系统服务的桥梁。

安卓系统


Android是宏内核的,也就是把所有系统服务都放到内核里,这样的内核是庞大的,Android 操作系统 1 亿行代码,内核一项就超过 2000 万行代码,非常复杂。数据的交换和服务请求都在系统服务的代码之间完成,也是比较直接,高效的办法。

与安卓系统的区别


优点
1.微内核,内核小,可以实现形式化验证,能显著提高安全
2.系统服务模块化,可移植性高
缺点
1.通过进程通信的方式交换数据或者调用系统服务,而不是使用系统调用,造成额外的操作系统开销
2.系统服务之间频繁收发数据,可能存在时延

总结


Android 操作系统未来转向 Chorm PC、平板,手表有 Android 的系统、IoT 有 IoT 系统,谷歌也在开发下一代操作系统,Fuchsia,它是微内核的,可适配各种各样硬件终端,但是 Fuchsia 还不是分布式设计,性能还不够好,但是是微内核架构,可以看到整个操作系统未来发展方向是微内核的。

其他回答1


Linux有两种内核形式,一种是安卓系统用的宏内核,另一个就是华为的鸿蒙系统使用的是微内核,微内核的设计理念是尽可能的简化,在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:
1、 实现与硬件紧密相关的处理;
2 、实现一些较基本的功能;
3、负责客户和服务器之间的通信;
4、它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。
所以简单地说,微内核就是把核心功能拆解得尽可能小,根据不同设备的需求自由组合,跟搭积木似的,同时还可以增强系统的安全性、可移植性、也能使分布式结构更加合理的运作,植入更多的插件程序,这是华为号称能跨不同平台部署的关键所在。
而安卓系统用的宏内核就比较庞大而复杂了,仅仅是代码就有几千万行,但是这种内核方式可以将手机系统所用到的所有驱动软件、底层代码、各种管理以及网络协议等都直接保存在了内核当中,运行效率非常高,响应速度也非常快,这是相比微内核的优势所在。
但是安卓的宏内核缺点也很明显,那就是安卓手机卡死、卡顿的情况,因为用这种内核方式保存的进程或者相关的内存数据只要有其中一个发生崩溃,那么面临着的就是整个系统的崩溃,所以稳定性方面,是“宏内核”的弱势。但是随着谷歌这几年的不断优化,还有手机硬件的爆发式提升,现在的安卓设备死机崩溃的现象已经少多了。
不管是微内核还是宏内核,两者都有自己的优点和缺点,但是微内核更加适合华为的战略设计思路,未来是物联网,万物互联的时代,华为想在手机、电脑、电视和其它消费设备领域全面开花,这样高效灵活的微内核自然是首选方案,加上华为自己的“方舟编译器”,可以极大程度的提高系统的响应速度和运算效率,这样一来也就能快速减少与安卓系统的差距。

其他回答2


从事嵌入式开发多年,要讲清楚这个事情真需要一定开发经验特别是关于linux上面的,首先微内核是相对于强内核而言,linux属于典型的强内核架构,从第一版本开始就是这个样子,首先linux设计者对于设计成强内核有自己的理由,更多是一些个性化的理由,当然也提出自己的一些意见,必须是祖师爷大家还是要尊重老人家的意见,概括起来大致有几个方面。
1.强内核机构看起来更加清晰明了,结构层次清晰简洁。
2.很重要的原因,因为linux代码是开源的,更加具备理想情怀,因为是开源的架构大家有的是时间把这个事情做的更加完美细致,如果这个事情放在一个商业化企业去做,可能架构就要跟着调整了,毕竟任何企业都要有时间点概念,这就是开源社区和商业化组织的最大区别。
3.linux
的强内核也就是但单个内核把里面的功能结构划分的十分清晰明确反而像极了微内核,linux结构层面简单明了,非常容易学习。
4.祖师爷认为单纯为了增加维护性而去牺牲效率是不值得,所说的效率就是指的是进程之间的通讯开销。
从以上四点就可以得出结论,Linux在设计上还是展示出很多的与众不同之处,但从安卓系统性能上讲这种单纯的强内核架构已经显示出来弊端了,如同余大嘴说到的现在安卓的代码差不多 有一亿行,但真正在运行只有8%的概率,所以在效率上有大打折扣,可以讲随着硬件以及软件发展趋势,微内核未来成为一种大的趋势,现在微内核做的比较好的属于美国黑莓公司的QNX系统,由于是收费系统在市面上推广的力度不是很大,主要用在进口车的里面的娱乐系统上面。

从技术角度解析强内核和微内核的区别


在功能简单单一的场景下强内核有着自己独特的优势。因为功能简单模块就比较少,代码量也相对少了许多,在这种情况下采用强内核容易维护,而且代码实现也比较简单。微内核主要针对运行场景非常复杂,功能模块极其复杂的场景而设计的。
要了解微内核首先要明白用户空间和内核空间的差异,在强内核中几乎涉及到设备驱动的代码都要运行在内核空间,用户在编写代码的时候就要创建一个进程,用户空间的代码通过内存映射的方式在访问内核空间的设备,在设备功能比较少的时候非常具有优势,但在多种设备融合在一起的时候这种设计弊端就出来了。微内核架构上是系统级功能非常简单就是提供进程之间的通讯基础,其余复杂的功能散落在各个服务里面,如果要调用别的功能模块通过进程之间的通讯来完成,能够支持多个服务在一个规则里面运行,所以讲在微内核架构里面融入安卓系统还是一件非常容易的事情,因为就是开设一个独立的服务在里面,所以华为公司敢拍着脑袋说鸿蒙系统兼容安卓不是多大的问题,只不过需要成熟的生态系统来支撑。
微内核架构就可以根据功能的差异划分成多种服务。如果是通讯比较频繁的可以单独放在一个服务里面,在设计上会灵活许多,华为的鸿蒙系统在理论上性能要强于安卓主要架构原理在于此,同时优化了进程之间通讯的机制,非常符合万物互联的架构,甚至讲连接不同的服务就如同连接不同的设备,完全在一个系统概念下通讯,特别是针对5G成熟后应用的连接,虽然看起来鸿蒙是被迫的产物,但现在看起来更像是未来生态的一个标准。
有些操作系统采用微内核和强内核结合方式,mach架构就是这种典型的代表,所以在苹果手机的流畅度相比安卓还是要流畅一些,这里面有架构方面的因素,随着后续手机功能的持续增加微内核已经是一种趋势了,但微内核是不是真的无懈可击了,答案是否定的。

微内核和强内核优缺点


微内核由于在服务之间通讯增加了传输的成本,如果数据交互的数据量非常大效率必然受到影响,但由于服务之间互相独立,一个模块出现问题了不会影响到别的进程。强内核在工作过程中同时加载的数据量太大,影响了整体性能,整体来讲两种体系架构各有优劣,不单纯的讲哪种方式最合适。

选择什么什么样子的架构主要和具体使用场景息息相关,合适的就是最好的,希望能帮到你。

收藏

相关推荐

清纯唯美图片大全

字典网 - 试题库 - 元问答 - 繁體 - 顶部

Copyright © cnj8 All Rights Reserved.