Windows还是Linux?这是一个问题。前者是多数人接触第一款操作系统,甚至于对于这部分人来讲,Windows就是电脑的代名词,我们熟悉该系统的操作逻辑,他有完整的软件生态,即使是再小众的软件移植到PC首先考虑的必然是Win的兼容性,Windows仿佛是开发平台的必然选择,是这样吗?
Win与Linux学习曲线
如上图所示,Windows的生态对于娱乐、办公、学习等有广泛的适应性,但是有他有多项缺点是不能容忍的。第一,对于本项目而言,Windows环境软件少之又少,相关参考资料由于系统闭源的特性又语焉不详;第二,系统函数封装过度,用户调用极其困难;第三,一个工作需要切换多个软件界面,需要点击多次鼠标,笔者认为如果键盘能解决问题没必要转到鼠标。
Linux上手是一件困难的事情,如果是选择不带图形化界面的更是如此,但失之东隅收之桑榆,当跨过拦路虎后,你会发现Linux世界如此广阔,同样的选择Linux作为开发环境也有几个理由。第一,适合本项目的软件众多,而且Linux提供的包管理工具可以很方便的下载和使用,Linux的man手册也给软件学习提供官方的学习途径,同时Linux世界有齐全的技术文档且易于检索;第二,Linux高度健壮的社区为解决问题提供了思路;第三,大多数操作可以使用键盘操作,一条命令可以解决多数问题
微内核与宏内核
操作系统内核实现有两种实现途径:微内核与宏内核。用户进程需要操作系统协作完成一些工作,若所有工作通过系统调用交给内核态完成的做法称为宏内核;相反地,将工作剥离交给系统调用而非内核完成,内核只需要进行诸如进程调度的简单工作的思想便称为微内核。简而言之内核承担大部分任务称为宏内核,承担部分工作即为微内核。
Liunx是宏内核操作系统的代表,在宏内核操作系统中完成具体任务,用户进程通过各种调用门、系统调用例程指挥内核完成工作。
以Minix为代表的微内核操作系统进行系统调用过程较为复杂,在微内核中内核类似于一个指挥者。例如进程A需要读取一个文件,需要通过内核告知进程B,进程B通过内核告知硬盘驱动程序C读取,通过栈对数据传递。显然在此过程中进程通信很重要。
本项目的操作系统将基于微内核而实现,宏内核的直截了当使他具备一定优势,但从长期来看内核逐渐变大时,微内核的结构会更加清晰,实现逻辑虽然复杂但又显得严谨,结构上十分优雅且精致,程序模块化也更加容易,可移植性高。最重要的一点,该操作系统以后是需要在嵌入式系统中使用的,或者是需要在嵌入式系统中重构的,微内核的胜利不言而喻。
-
PC
+关注
关注
9文章
2082浏览量
154202 -
Linux
+关注
关注
87文章
11304浏览量
209493 -
WINDOWS
+关注
关注
3文章
3545浏览量
88690
发布评论请先 登录
相关推荐
评论