对计算机系统os的浅入理解
作者:互联网
每天我们打开电脑,最先映入眼帘的就是那大大的windows标志,似乎,没有系统,那么电脑就无法运行。
那么,操作系统究竟是什么,它为何如此重要?
一.计算机的硬件
想要了解计算机系统,那么得先了解硬件
类比人体,你需要通过收集眼睛,鼻子,皮肤和耳朵来收集信息,信息通过大脑的处理,你还需要用四肢,嘴巴来输出信息,最后,还需要大脑把这些信息储存起来,成为自己宝贵的经验。
那么,电脑同样需要输入信息,处理信息,储存信息,输出信息的硬件
1.I/O设备(输入输出设备):你能想到的,键盘,鼠标等输入设备,显示器,打印机等输出设备。
2.储存设备:硬盘用于长期储存信息,内存用于存放临时的进程和数据。
3.处理器:对输入的数据进行算术逻辑运算。
4.总线:类似于神经,连接各种设备以进行数据传输,目前有传递4个字节的(32位)和8个字节的(64位)。
还有很多的外部设备,这里就不多说了。
二.计算机系统
操作系统(os)是软件的一种,是连接硬件和应用程序的桥梁
硬件需要机器语言(只有01的代码)才能对它进行直接的操作,你试想一下,你想处理一个硬盘里的数据,你需要用机器语言把数据找到,再自行分配一片内存区块来让数据填入,然后再用机器语言去传给中央处理器。这样的电脑谁用的懂?于是,为了解决这些重复且枯燥的工作,操作系统就出现了,它把人类难以理解的硬件操作抽象成人类可以理解的方式,你只需要在它提供的调用接口下进行操作。当你运行一个c语言规范写的程序时,os会自动调用它的编译器,将它从c语言转换成汇编语言,再转换成机器语言,程序开发的难度大大降低了。就好比一个黑箱子,你只需要了解黑箱子外留下的按钮,而不需要了解黑箱子里发生了什么。
1.操作系统的内核
操作系统的内核重点就是管理系统中的硬件,在启动电脑时,内核程序读取硬盘中的数据并加载在内存中,驱动各种硬件处在运行状态,以至于进入桌面后,一切资源都处于待命(Ready)状态,等待着用户的操作。内核程序是受到保护的,用户不能随意的篡改它,否则可能会导致系统的崩溃。
一个内核必须具有的几个功能
- 系统调用接口:一个给用户使用的API,工程师通过这个API就可以很容易的开发软件,比如说只需要学习c语言的函数就可以实现各种功能,而不需要考虑内核是怎么调用硬件的,同时,一个统一的规范带来的是程序良好的可移植性,可以在不同的电脑上运行,使软件更好的传播
- 进程管理:为了让cpu的资源能有效分配,加快整体系统性能
- 内存管理:控制每个程序所占有的内存空间,用户不再需要手动为数据分配
- 文件管理系统:对硬盘中的文件管理,以及I/O设备管理工作
- 设备驱动:对不同的硬件进行加载,使硬件进入Ready状态
当你换了个新的网卡,原先的网卡驱动就不能用了,这时候系统就不能正常的上网,即使你的网卡是完好的,因为之前的驱动不能很好的调度这个新网卡,这时候你就需要向网卡的安装厂商索要对应的驱动程序。内核的驱动程序是个可以拆卸的模块,方便人们在更换不同的硬件时不用换整个操作系统,你的新网卡驱动安装完成后,它就成为了你内核的一部分,随着系统的加载而自动运行。
2.应用程序
应用程序是开发者在系统提供的API下开发出的软件,当然不同系统的软件是不能移植的,比如windows系统的软件无法在linux上运行,因为API是不同的。
你的网卡在系统驱动加载完成后就一直处在待命状态,当你打开网络浏览器后,浏览器会自动调用网络方面的接口来实现上网,而不用你写机器语言去调用网卡,实现操作的简单化。
三.抽象
在操作系统的开发过程中,最核心的思想就是抽象,把人难以理解的机器语言抽象成人能理解的语言,把硬件的操作抽象成人能理解的方式。比如硬盘中一个个扇区的数据,对应成不同的硬盘中不同的文件夹下的数据。文件是I/O设备的抽象,虚拟内存是对整个储存设备的抽象,进程是对正在运行的程序的抽象,虚拟机则是对整个计算机的抽象。
以上是我对操作系统的浅入了解,在以后的学习中我将结合linux系统的学习,慢慢的去细化其中的每一个知识点。
标签:计算机系统,操作系统,浅入,硬件,网卡,内核,机器语言,抽象,os 来源: https://www.cnblogs.com/ssr1377/p/14640757.html