我看操作系统的发展

截止到今天,也就是本文下笔的2017年2月12日,我接触过很多操作系统,于是就产生了一个想法,那就是把这些零碎的东西用一根线穿起来,作为我个人的知识库的一部分……

本文主要介绍一些重量级的操作系统的前世今生。

桌面级:Windows,Linux,Unix

移动级:Android,iOS,Windows phone

嵌入式:VxWorks等一干RTOS

  1. Windows

    Windows来源于Microsoft公司,是世界上最负盛名的桌面操作系统,它的前身是DOS(Disk Operating System),且它的第一个版本就是在DOS环境下运行的,时至今日,Windows系统依然内置DOS环境,作为紧急修复系统的利器。当然,win的优势不在于界面美观,而是它的兼容性,每一代Windows都包含前面几代的API,这种技术叫做WOW(Windows on Windows),如果想运行什么比较老的软件,直接修改兼容性就是了。在最新的Windows 10 1607版本中,Windows内置了Linux子系统(技术源自于Ubuntu),并且Windows Cloud的发布,在在下看来,已经是Windows系统模块化成熟的时候了,依在下愚见,Windows系统应该有如下主要模块:

      • NT内核(桌面是内核态的,这点不同于Linux)
      • WDDM驱动模型
      • UWP API 子系统
      • win32 API 子系统(WOW)
      • linux 子系统(WSL,Windows Subsystem for Linux)
      • posix子系统(在Windows中的支持一直不完整)
      • OS/2子系统(貌似和IBM分家了?)
      • etc...

    接下来是windows(仅个人版本)大事年表以及各种总结(附个人吐槽)

      • 1981年,MS-DOS 1.0发布
      • 1985年,Windows 1.0发布
      • 1993年,Windows NT 3.1发布,成为首个使用NT(New Technology)内核的Windows操作系统,不得不说NT这个名字很骚啊
      • 2000年,Windows 2000发布,是最后一个基于DOS的Windows版本
      • 2003年,Windows XP发布,NT 5.0内核,最长寿的Windows,不过很快就要被win10反超了
      • 2005年,Windows Vista发布,NT 6.0,因为超前的设计和对配置的高要求成为了Windows史上第一个短命的操作系统,但是加入了UAC等一系列安全措施,使得系统更加安全
      • 2009年,Windows 7发布,NT 6.1,此后每一代Windows都以数字命名,Windows 7和Vista真是一个娘生的,长得几乎一模一样
      • 2012年,Windows 8发布,NT 6.2,此版本删去了开始按钮并将开始菜单改为开始屏幕以更好的和平板设备结合,事实证明微软被打脸,Windows 8不久前停止支持,成为第二短命的系统
      • 2013年,Windows 8.1发布,NT 6.3,此版本恢复了开始按钮但仍然使用开始屏幕,并直接导致了没有Windows 9的存在
      • 2015年,Windows 10发布,NT 10.0,此版本改进了开始菜单使之看起来是win7/win8.1的结合体,并大幅度更新内核版本号,开启内测更新,开始了“Windows即服务”的理念,相对来说,Windows 10的设计更像是对用户的一种妥协
      • 2016年,Windows 10 周年更新发布,NT 10.1,代号红石(Redstone),集成了WSL,满足了跨平台开发者的需求

  2. Linux  

    事实上应该把Unix排在Linux之前的,但是由于本人的工作环境为Windows/Linux,就委屈一下Unix吧

    Linux是大神Linus在1992年发布的类Unix开源操作系统(类Unix系统的名字一般都以x结尾),当时他独自完成了该系统的最初的版本并把源代码发布到网上,如今Linux最正统的应该是Linux Kernel(内核),Linux采用宏内核的设计,而Windows是混合内核设计,Linux的设计有一个好处就是任何一个部分都可以被视作可以移除而不影响系统基本运行的,当然,kernel除外,由于Linux一直是社区维护,所以并没有商业动力组织它衍生出一套完整的桌面生态,甚至连某些硬件都无法驱动,好在Linux主要是运行在服务器上,不需要这么多的硬件支持,当然这样就影响了个人的使用。这里有个特例,就是NVIDIA,NVIDIA拒绝开源驱动,于是使得Linux kernel对NVIDIA GTX 9xx系显卡支持很差,发热严重而且无法发挥相应性能……这尼玛就很尴尬了。应该说,Linus的最大贡献是催生了一系列开源协议,比如Linux kernel自己在用的GPLv2,Android使用的Apache协议等等。但遗憾的是,我国法律不承认开源协议。另外,Linux的桌面是用户态的,这使得桌面的效率不那么高……

    此处插句题外话,Linus还开发了版本管理系统Git,就是GitHub的那个Git,然而我不会告诉你Git的原意是饭桶的……逃。

    不过讲真Linux没那么多好说的,就挑几个有代表性的说一说吧

      • Linux Arch,对新手最不友好的Linux发行版,安装时纯命令行操作,pacman包管理系统,采用滚动更新的模式,每次更新有可能是系统挂掉,非常不推荐服务器使用,类似的还有 Linux Gentoo等等
      • Linux RHEL,红帽子系列,史上最稳定的Linux发行版,大公司运维的首选(非软广),该公司以出售yum包管理系统的使用许可和售后的方式盈利,衍生版本 Fedora和CentOS,CentOS免费稳定且能使用yum,成为许多非营利组织例如学校服务器的首选系统
      • Linux Ubuntu,桌面操作系统,以开箱即用为卖点,其母公司以Ubuntu Server的售后和出售Ubuntu设备盈利,然而虽然Ubuntu Server有一套完整的迁移方案,但是迁移挂掉的几率依然很高,这就很尴尬了
      • Linux Debian,Ubuntu的基础,使用apt包管理系统,最保守的Linux发行版,估计没有之一,非常稳定,若无特殊需求可以用作服务器操作系统

  3. Unix

    很可惜我对Unix的了解并不多,只知道这个系统是C语言的发祥地,并且一直有严格的版权管理,macOS X和iOS的内核有一部分来自于类Unix系统的BSD,而且BSD是Unix最有名的衍生系统了,其中又以SolarisBSD和FreeBSD最有名。Unix和Linux的模式很像,即开发者提供内核,客户负责在内核的基础上开发环境,Unix的版权控制非常严格,诸位可以去看看FreeBSD的故事就明白了。

    macOS X和iOS的内核据说是相同的(除了驱动外),且该内核是开源的,但是我手头没有苹果的设备,也就没有过多的关注这一块。

  4. Android

    Android是现今世界上最负盛名的移动操作系统,市场份额多达80%,其实……严格来说,Android应该是Linux的一个发行版,但是由于Google拒绝采用GPL开源协议而被Linux基金会剔除出发行版的行列。这里我们主要讨论AOSP(Android open source project)以及它的衍生版本,Google 自己的手机采用的Android系统添加了太多私货,并不是很能接受。

    首先,AOSP是开源的,采用的协议是Apache,这就决定了开发者使用或者修改源码后不需要把自己的使用结果公开源码,这对硬件厂商是一个非常好的保护,也间接导致了Android设备的碎片化,因为硬件不同的手机刷机包不通用,而基于AOSP的著名ROM(Android刷机包而不是闪存)lineageOS(原CM)、mokee(魔趣)则很好的保留了Android原生的使用体验并增强之,在国内外各大Geek聚集的论坛引起很大反响。其次,国产手机系统做的最好的要数小米了, MIUI是基于CM开发的……

    其次,因为AOSP的开源,导致很多漏洞被hacker发现,进而威胁到设备所有者的安全,Google最近一直想收紧Android的控制权,从每个月我的小米5s会更新一个新的安全补丁来看,Google这一步做的还是很好的……当然只有大厂的设备能享受到。同样,因为Android是基于Linux的,不可避免的Android也可以获取root权限,当然这个权限默认是锁死的,且设备出厂时刷写的ROM里一般不含su文件,导致root权限缺失,我觉得这是对不懂手机的用户的一种保护,当然若是有这方面的知识,刷写root也是很有可玩性的,iPhone的越狱和Android的root完全不能相提并论。

    再次,Android多方面的可玩性,也都是来自于AOSP的开源,当然若想制作属于自己的ROM,还需要搞到自己手机的驱动文件,这可以提取自官方的ROM,当然,这个我没学会……

    每一代的Android都有一种甜点和相应的字母对应,这也是很有趣的

    以下是Android版本和代号(附个人解说)

    example:Android L->Lollipop->5.0/5.1->棒棒糖

      • Android beta
      • Android 1.0(这两版是内部测试版,无相应的甜点代号)
      • Android C->Cupcake->1.5->纸杯蛋糕
      • Android D->Donut->1.6->甜甜圈
      • Android E->Eclair->2.0/2.1-> 法式奶油夹心甜点
      • Android F->Froyo->2.2->冻酸奶
      • Android G->Gingerbread->2.3.x->姜饼
      • Android H->Honeycomb->3.x->蜂巢                          专为平板优化的设计,失败
      • Android I->Ice cream sandwich->4.0->冰淇淋三明治    采用Holo设计(Android design),使得界面外观更加整洁,但是美观欠缺
      • Android L->Lollipop->5.0/5.1->棒棒糖                       采用激进的Material Design(质感设计),使得Android的美观度上升了不止一个层次
      • Android M->Marshmallow->6.0.x->棉花糖                  首次加入用户权限控制,使得APP行为得到一定控制,原生支持指纹解锁
      • Android N->Nougat->7.0/7.1.1->牛轧糖                     原生支持分屏,启用Google assistant,使得Google在人工智能方面更进一步,支持instant app,类似于微信小程序的设计,外观上强制采用圆形图标,失去了MD的放荡不羁

  5. iOS

    iOS是iPhone专用的操作系统,由于设备型号稀少,故可以得到最佳的优化,此外iOS的安全性理论上比Android更胜一筹,因为这是一个完全封闭的系统,唯一的应用入口就只有App Store,当然App Store染毒的话那真是画美不看。

    我对iOS的了解也不算多,但是iOS的任务优先级和内存管理的确是很优秀的设计,在Android上,我点击打开一个程序,系统首先去启动程序,然后再去绘制屏幕内容,如果启动时间过长,屏幕没有变化则会给人一种卡顿的感觉,而iOS上则是先绘制屏幕然后启动应用程序,如果卡顿则是另外一种风景——白屏,但是屏幕的变化使得人们先入为主认为手机没有卡顿,这就是Android和iOS一直争执的流畅问题的根源。另外iOS的伪后台设计也是很好的——除了需要进行后台任务的时候,这个设计最大限度的保证了内存的可用性,当然后台下载会受限制,不过新的iOS已经解决了这个问题。如果考虑省心和易用性,iOS是首选。

  6. 移动平台上的Windows

    好嘛……你问我为什么没有一个简洁的名字?因为这货名字太多了……从Windows CE开始,到Windows mobile 到Windowsphone再到Windows 10mobile,微软改名部,实至名归……如果只是改名字还好了,每一代的开发模式都是推倒重来,微软你知不知道这样会玩死开发者的?!于是导致了一个尴尬的局面,就是Windows 10 mobile没有什么优质APP,连基本的社交都不能保证。虽然微软一直喊着要统一平台,但是您至少能让ARM平台跑得了win32 APP再说啊……要不然Windows的生产力还能用什么去保证……然后据说高通下一代旗舰CPU可以硬件级模拟win32 API,那就拭目以待吧……我是不怎么看好这个的。吐槽完毕

    这个系列我只用过Windows 10 mobile,说下体验,就是极其类似苹果,伪后台,封闭系统,但是和传统的Windows差别很大,类似于Windows 8发布时同时发布的 Windows RT,只能运行uwp(universal Windows platform)即商店应用,文件系统只能看到自己的个人文件夹等等,不过这个系统有大量的游戏是几个意思……于是我的Lumia 950很愉快的被我当游戏机玩,当然很明显并没有发挥出高通骁龙808的真正性能……这个系统还很不成熟,另外,近期发布的Windows Cloud应该是移除了win32 API的Windows桌面版,这就等于把这个版本搬到了桌面设备上,我仿佛又看到了Windows RT悲剧的重演……

  7. RTOS

    RTOS,全称Real Time Operating System,实时操作系统,多用于嵌入式设备,从理论上讲,实时操作系统是保证在一定时间限制内完成特定功能的操作系统,且分为软实时和硬实时,然而这样做的优点是显而易见的,迅速,正是由于它的迅速,RTOS被广泛应用于军工和航空航天领域,当然,RTOS是一类操作系统的统称,其中VxWorks是个中翘楚,也是我现在正在学习的方向,以后学习VxWorks时有什么感悟或者技巧,会继续发布在我的博客里的,我爱学习,学习爱我!

   8. 说明

    完成时间:2017-02-13  01:37:47

    这是我在我校安卓社团技术培训第一课的内容,然而在那次培训中因为时间关系我只讲了Android和Linux的相爱相杀,所以把想讲的内容整理在这里,但是那次培训我看到了一个明媚的女孩子,我看到她在台下一直笑得很开心,我希望她在我身边能一直这么开心的笑下去,她现在是我的女朋友,虽然不懂技术但依然很有耐心的听我瞎BB,我很爱她,也想我们在一起的时候能够开开心心,不需要去考虑什么繁琐的事情……现在是情人节前夕,她应该睡熟了吧,如果她知道我因为想她失眠而爬起来写技术博客,不知她会作何感想呢?反正不会再容忍她熬夜了,哈哈

时间: 2024-10-24 17:10:38

我看操作系统的发展的相关文章

操作系统的发展与分类

手工操作阶段(此阶段无操作系统) 用户在计算机上算题的所有工作都要人工干预,如程序的装入.运行.结果的输出等.随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法. 手工操作阶段有两个突出的缺点: 用户独占全机.不会出现因资源已被其他用户占用而等待的现象,但资源利用率低. CPU等待手工操作,CPU的利用不充分. 唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制. 批处理阶段(操作系统开始出现) 为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛

并发编程------->操作系统的发展

手工操作 -- 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念. 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行:计算完毕,打印机输出计算结果:用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机. 手工操作方式两个特点: (1)用户独占全机.不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低. (2)CPU 等待手工操

python之路之——操作系统的发展历史

阅读目录 手工操作 —— 穿孔卡片 批处理 —— 磁带存储和批处理系统 多道程序系统 分时系统 实时系统 通用操作系统 操作系统的进一步发展 操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念.     程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行:计算完毕,打印机输出计算结果:用户取走结果并卸下纸带(

从价值论看职业发展中的跳槽~

从价值论(俗人,说的就是钱)来说,职业发展可以看成两个方面,内部和外部. 1.内部,也就是晋升.说到底是从技术或者管理两条路中,突围上去.如果突围失败,而目前所从事的岗位的工资在市场上还是具有竞争力的,跳槽什么的暂时就别考虑了 2.外部,也就是所谓的跳槽.从周围前辈的建议总结来说,一般来说只有两种情况下考虑跳槽 (1)涨薪.同岗位或者不同岗位,保证跳槽的岗位是现在岗位的最好是1.5倍的薪资涨幅(就是所谓的工作内容让你想辞职,为了钱也要干着啊) (2)岗位级别,为了爬升而跳槽.如果在目前公司看不到

Windows操作系统的发展简介

一.简介    Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统. 以前的计算机 二.回顾 Windows 1.0是微软第一次对个人电脑操作平台进行用户图形界面的尝试.Windows 1.0基于MS-DOS操作系统.Microsoft Windows 1.0是Windows系列的第一个产品,于1985年开始发行.当时很多人

操作系统的发展过程

无操作系统的计算机系统: 1.人工操作方式. 有两方面的缺点: (1)用户独占全机.此时,计算机及全部资源只能由上机用户独占. (2)CPU等待人工操作. 2.脱机输入/输出方式. 为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾. 主要优点: (1)减少了CPU的空闲时间. (2)提高了I/O速度. 单道批处理系统: 1.单道批处理系统的处理过程. 2.单道批处理系统的特征. (1)自动性. 在顺利的情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预. (2)顺序性. 磁

操作系统的发展历史

1.1 Unix 1965 年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘.显示器),连接一台电脑 ? 为了解决数量不够用的问题 1965 年左后由 贝尔实验室 加入了 麻省理工学院 以及 通用电气 合作的计划 —— 该计划要建立一套 多使用者(multi-user).多任务(multi-processor).多层次(multi-level) 的 MULTICS 操作系统,想让大型主机支持 300 台

胡立军:从Gartner“Hype Cycle”看 RPA发展走向

胡立军 | 艺赛旗联合创始人&高级副总裁南京大学MBA,微软MCT认证讲师,曾任职大学计算机讲师,国内较早网络及云安全从业者,艺赛旗创始高管之一,现任上海艺赛旗软件股份有限公司高级副总裁,主要负责艺赛旗人工智能软件产品技术团队及市场管理工作.胡总曾申请多项发明专利,并以学术带头人身份多次申请并成功获得政府科研项目-- 包括上海市创新项目,上海市专精特新项目,长宁区科技小巨人项目,南京市创业新港项目.张江专项发展资金支持项目等.为分享和交流更多RPA观点,本文根据Gartner相关资料进行整理融入

操作系统的发展与进程初识

一.操作系统 1.os组成 os组成包括硬件和软件 硬件:主机(CPU + 存储器),I/O设备 软件:系统软件,应用软件 2.os发展史 脱机批处理系统:单道批处理系统与多道批处理系统. 单道批处理系统: 优点:缩短了手工操作的时间,提高了CPU的利用率 缺点: 半自动化,不提供人机交互能力,需要人参与,给用户使用带来了不便 计算过程是串行,限制了即使系统的使用效率 必须等所有文件处理完,才返回结果,降低了程序的开发效率 多道批处理系统:运用了多道技术的批处理系统 特点:遇到IO操作就切换程序