Windows 、Mac、Linux、U nix、鸿蒙 、Android
Windows
微软旗下的收费操作系统,也是当前市场占有率最高的操作系统。兼容性很好,日常用到的软件都可以运行,生态庞大、软件多,但是存在良莠不齐的情况。游戏支持好,玩游戏的首选操作系统,稳定性比较弱,崩溃的情况较多一些,专注度较差,弹窗会很多,需要格外小心,很容易让你电脑丢失性能。
优点:软件丰富,高易用性,只要经过简单学习就能流畅使用。
缺点:在使用中感染病毒的风险较大。
得益于Windows的易用性,任何人只要经过简单的学习就能使用。
Windows系统成为目前全球使用人数最多的系统,被广泛应用于日常工作与生活的各个领域,因为用户基础巨大,所以可以使用的软件也是最多的,这是其最大的优点。
但是巨大的用户基础也给Windows系统带来隐患,绝大多数的木马、病毒、恶意软件,都是瞄准视窗系统用户下手,所以用户在使用中感染病毒的风险比较大。
Mac
苹果设备独享的操作系统,属于强制性收费的操作系统,买苹果电脑的时候有一部分钱就是拿来买系统的。优点是稳定,基于 Unix 内核,基本上几个月不关机都没有什么问题;生态较好,体系没有 Windows 系统大,封闭的操作系统,所有的软件上架都需要苹果认证,软件会少一些,但是正因为如此,软件质量要高很多,保证日常工作需求没有问题。安全性很好、用户体验较好,界面美观,几乎没有病毒,不用担心各种弹窗和干扰。缺点就是游戏少,对微软旗下软件支持差点,价格比较贵。
优点:界面美观,操作简便,也不需要额外购买。
缺点:通常只能运行于苹果电脑,因为苹果电脑高昂售价,Mac的用户相对较少。
Mac系统是苹果公司基于UNIX操作系统进行深度再开发的操作系统,完全闭源,只能运行在苹果公司的电脑上。
Linux
可能很多人不是很了解这个系统,甚至没有听过。它是一个完全开源的操作系统,基于这个系统有很多发行版本,比如说:redhat,mint,ubuntu,cetnos等。这个系统最大的优势就是性能高,体积较小,稳定性非常不错,对硬件需求是最小的。得益于这些优势,大部分的Linux系统用来做服务器系统,稳定运行很久都不会出现问题。最大的缺点就是图形化界面较差,软件很少。
优点:开源,系统的漏洞更容易被发现,也更容易被修补。
缺点:如果不熟知Linux命令,几乎完全无法使用这个系统。
Linux是开源的免费操作系统,因开源的特性,系统的漏洞更容易被发现,也更容易被修补。
此外,因为Linux原本的人机交互界面是命令行,用户如果不熟知Linux命令,几乎完全无法使用这个系统,因为过于专业,Linux常被用作各种服务器操作系统。
可以说,Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。
UNIX
UNIX是最早出现的操作系统之一,最初的Linux就是是仿制的UNIX编写的,UNIX发展到现在已趋于成熟,需要大量专业知识才能操作,此外,UNIX系统具有强大的可移植性,适合多种硬件平台。
此外,UNIX具有良好的用户界面;程序接口提供了C语言和相关库函数及系统调用,命令接口是SHELL,系统的可操作性很强。
你甚至可以不用显示器,取而代知的是非常简易的输出设备,在安全性稳定性和性能高于Linux 但是需要专业的硬件平台,门槛较高。
优点:有强大的可移植性,适合多种硬件平台,在安全性稳定性和性能高于Linux 但是需要专业的硬件平台。
缺点:门槛较高。
鸿蒙
鸿蒙OS是基于微内核的全场景分布式OS,这是分布式架构首次用于终端OS,可以实现跨终端无缝协同体验,打通PC、智能手机、电视、汽车、智能穿戴等设备,听起来非常强大。
就目前来看,并没有鸿蒙实质性的数据,所以目前对于该系统的体验我们不太好评价,但是在笔者看来,鸿蒙系统的运行速度和体验是非常值得期待的。
Android
安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
应用程序层
Android 装配了一个核心应用程序集合,包括 E-mail 客户端、SMS 短消息程序、日历、地图、浏览器、联系人管理程序和其他程序,所有应用程序都是用 Java 编程语言编写的。
用户开发的 Android 应用程序和 Android 的核心应用程序是同一层次的,它们都是基于 Android 的系统 API 构建的。
应用程序框架层
应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布它的功能且任何其他应用程序都可以使用这些功能(需要服从框架执行的安全限制),这一机制允许用户替换组件。
开发者完全可以访问核心应用程序所使用的 API 框架。通过提供开放的开发平台,Android 使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等。
n Activity Manager(活动管理器):管理各个应用程序生命周期以及通常的导航回退功能
n Window Manager(窗口管理器):管理所有的窗口程序
n Content Provider(内容提供器):使得不同应用程序之间存取或者分享数据
n View System(视图系统):构建应用程序的基本组件
n NotificationManager(通告管理器):使得应用程序可以在状态栏中显示自定义的提示信息
n Package Manager(包管理器):Android系统内的程序管理
n TelephonyManager(电话管理器):管理所有的移动设备功能
n Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
n LocationManager(位置管理器):提供位置服务
n XMPP Service(XMPP服务):提供GoogleTalk服务
系统库系统运行库层
系统库
Android 本地框架是由 C/C++ 实现的,包含 C/C++ 库,以供 Android 系统的各个组件使用。这些功能通过 Android 的应用程序框架为开发者提供服务。
n Surface Manager:执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。
n Media Framework:多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。
n SQLite:小型的关系型数据库引擎
n OpenGL|ES:根据OpenGLES 1.0API标准实现的3D绘图函数库
n FreeType:提供点阵字与向量字的描绘与显示
n WebKit:一套网页浏览器的软件引擎
n SGL:底层的2D图形渲染引擎
n SSL:在Andorid上通信过程中实现握手
n Libc:从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制
Android运行时
Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。
核心库
核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。
Dalvik虚拟机
Android程序不同于J2ME程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一个Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,不同于J2ME,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。
Linux内核
Android 基于 Linux 提供核心系统服务,例如安全、内存管理、进程管理、网络堆栈、驱动模型。除了标准的 Linux 内核外,Android 还增加了内核的驱动程序,如Binder (IPC) 驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。
Linux 内核也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
分层的好处就是使用下层提供的服务为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化时,不会影响到上层,可以说是高内聚、低耦合。