Windows和Linux的简单对比
OS类型
操作系统OS分为
- 实时操作系统RTOS:FreeRTOS、uc/os ii、uc/os iii
- 通用操作系统GPOS:windows、Linux
两者最大的区别在于针对任务而言,是不是实时(real-time)的。RTOS对于重要的任务可以做到实时响应,主要是通过优先级和中断方式,对优先级高的任务实时响应;而GPOS则是所有的任务都能被均等地对待。
所有操作系统最核心的,就是完成对任务的调度,调度机制是什么。
进程的管理
任务的调度,在OS里面又叫做进程的管理。
进程状态的切换,可以看作是每一个任务的生命周期。
为什么我们在windows中,运行多个软件,看起来像同时执行一样,其实这涉及到时间片轮调度法。
时间片轮转法(Round-Robin,RR)主要用于分时系统中的进程调度。为了实现轮转调度,系统把所有就绪进程按先入先出的原则排成一个队列。新来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。时间片是一个小的时间单位,通常为10~100ms数量级。当进程用完分给它的时间片后,系统的计时器发出时钟中断,调度程序便停止该进程的运行,把它放入就绪队列的末尾;然后,把CPU分给就绪队列的队首进程,同样也让它运行一个时间片,如此往复。
只是人反应不过来,我们误以为是同时进行。
GPOS工作过程概述
windows工作过程
- BIOS启动。作用主要有两个:1)一些自检,必须的硬件驱动初始化(硬盘初始化等);2)调度windos操作系统,windos操作系统是存储在硬盘(一般为C盘做系统盘)上面,每次开机把OS拷贝到内存里面后,OS正常运行
- windows运行后,对所有的硬件驱动程序与文件系统做映射,映射完后就能完全运行我们的应用程序。
文件系统
我们的各种应用程序都是存在硬盘上的,那么必然要对这些程序规划和管理。怎么存,存在哪里,什么时候修改或者丢弃等,这就是文件系统的工作。
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
文件系统是一种软件机构。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
类似地,在Linux里面,叫做 根文件系统。
Linux工作过程
和windows类似,嵌入式Linux系统主要包括:
-
bootloader启动(常见的是u-boot)。和bios作用类似也分为两部分:1)对必须的硬件初始化;2)去Flash、SD卡等设备上调度Linux内核,并启动她。
-
Linux内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等
-
根文件系统上:系统运行必须的文件和程序;APP。
windows和Linux对比
1.访问权限
Linux代码开源,我们可以修改源代码,但是windows一般情况下不行。
2.多样性
类比arm公司,把内核IP卖给各个开发商,比如ST,NXP等去开发MCU;Linux内核也是一样,每个公司拿过去做了各种各样的演变,产生很多发行版。现在常用的发行版有Ubuntu、Fedora、Debian等,而windows几乎不这么做。
3.授权许可
Linux基于GPL-licensed (通用公共许可)操作系统,用户可以免费更改软件,重复使用操作系统,甚至出售演变版本。
windows只能在微软授权下访问源代码,基于number of licenses 许可证编号,我们只能在这些编号的电脑上安装。