Story of OS
Part 1
序
这篇markdown的目的在于,我自己认为操作系统其实是非常好理解的,并且体系非常分明的计算机相关学科,书上讲的也挺明白的,但是从我自身角度出发,还是想用一些自己的语言,通俗地说明整个操作系统的体系结构以及在硬件中相对应的东西,文中许多概念来源于汤小丹等老师所编著的**计算机操作系统(第4版)**,这里致以崇高的敬意。
什么是操作系统
拿我们手上用到的最多的手机为例,手机在漫长的发展史中演化出了当前几大操作系统:
- Apple公司的IOS系统
- Google公司的Android系统
- Huawei公司的Harmony(鸿蒙)系统
如果在生活中有留意这些不同品牌的手机的话,我们能很明显的注意到这些手机的UI(User Interface)界面,也就是提供给用户的功能界面有着很大的差别
然而用户UI界面的不同只是很小的一部分,这与各大厂商的设计师有关**(我的想法,不是标准答案),但是在UI界面的背后,各种运行机制的不同,才是这些操作系统真正的区别**所在,为此,我们需要清楚建立操作系统的目标
操作系统的目标
以计算机为例,当前计算机操作系统**(Operating System),市面上见到的最多的就是Windows,MacOS**,一个是微软推出的,另一个是Apple公司推出的,其实还有一个开源的操作系统,叫Linux,不过好像程序员用的更多一点。
在计算机系统上配置操作系统,其主要目标是方便性,有效性,可扩充性以及开放性
方便性
如果一台电脑没有配置OS操作系统,那是很难使用的,在裸机上运行自己编写的程序,就必须用机器语言编写程序,问题是机器语言没几个人会,所以操作系统就诞生了,操作系统可以使用编译命令将用户采用高级语言书写的程序翻译成机器代码,这样一来中间就少了很多不必要的步骤,我们上手的难度也大大降低,计算机也变得更易学易用。
有效性
早期计算机系统没有配置OS操作系统时,计算机的相关硬件比如处理机,IO设备等都经常处于空闲状态,资源就产生了不必要的浪费,所以OS发展的另一层动力则是提高系统资源利用率,且有效性的另一层含义是提高吞吐量,加速程序的运行,缩短程序的运行周期,从而提高吞吐量
PS.吞吐量:指在单位时间内中央处理器(CPU)从存储设备读取->处理->存储信息的量。
PS.中央处理器:作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
可扩充性
操作系统一直在发展,但是比如电脑的相关硬件如键盘、鼠标、音频设备以及摄像头等各种引荐和计算机应用也一直在发展,为此操作系统必须具有很好的可扩充性,功能可以随需求增加,并可以同时保证系统的安全性和可靠性,我想的话,就是比如有的U盘插到电脑上,有的可以读取,有的会提醒U盘内有病毒等各种情况
开放性
我们都知道计算机可以粗略的看为软件(SoftWare)**以及**硬件(HardWare)**两大部分,两者在当今都在飞快地发展,两者相伴相生,比如有的游戏,画面精美,但是需要更加牛逼性能更加强大的显卡,举个例子,比如我拿一张**750ti去玩赛博朋克2077,我觉得就算能进去,画质打死都不能调到极高。所以随着用计算机应用的日益普及,硬件和软件的兼容性问题变得不可忽视,所以世界各国制定了一系列的软硬件标准,使得不同厂家按照标准生产的软、硬件都能在本国范围内很好地相互兼容。并且随着**Internet(互联网)**的出现,计算机应用的环境由单机线下转为互联线上,应用环境变得更加开放,所以**开放性**是OS不可忽视的特性
有了目标,当然就得去实现,而操作系统实现的这些作用,也是学习中的重点
操作系统的作用
操作系统所起到的作用,可以从用户、资源管理和资源抽象等多个不同的角度讨论
OS作为用户与计算机硬件系统之间的接口
很好理解,如果对cmd命令行有了解,其实操作系统就是那个小黑框,但是我们有UI界面与操作系统进行沟通,充当着我们和硬件之间交流的桥梁,我们在OS帮助下能够方便、快捷、可靠地操纵计算机硬件,运行自己的程序
CMD命令行
用户可以通过三种方式使用计算机,即通过命令方式、系统调用方式、图标-窗口方式来实现与操作系统的通信并获得他的服务