在计算机中,分为以下结构,运算器,控制器,存储器,输入、输出设备,运算器和控制起的整个就形成了中央处理器(称作为CPU),而cpu的功能就是提供运算,运算的数据都是经由控制器而来,控制器其实是往主存储器中取得数据,内存中的数据是由用户来输入的,其运算的结果通过控制器存储在内存当中,之后可以根据用户的指令输出在一个设备当中(例如显示器),我们都知道,程序都是由指令+数据来构成,用户在程序中输入指令,通过系统调用参数传给内核调用硬件进行加工处理,所得的结果通过显示屏显示出来,之后,用户可以将结果保存到我们的IO设备当中(称为硬盘)。
那么用户如何将一个程序起来的呢?
我们的操作系统提供了一个接口,叫做图形化接口(就是图形SHELL),用户用鼠标双击打开某个程序(其实就是发送指令),产生一个进程,程序是可以打开多个的,但是进程可不是同一个,因为程序一启动之后,就会变成进程,每个进程都是一个ID号来用来标示它的唯一性,所以说进程是多个程序的副本
其实有运算器、控制器、存储器这三样硬件就已经可以提供运算能力并且能执行任务了,只不过这些硬件都是动态的,一断电数据就消失了,我们需要一个永久性存储的一个工具,那就是IO设备,IO设备的容量越大存储量就越多,但共分为两类,一类是HDD:机械式硬盘,另一类是SSD:我们所说的固态硬盘。
HDD现在依然是主流,主要原因价格还是比较便宜的,它的存储容量取决于对于盘片的工艺程度,里面结构就是盘片、马达、盘轴、机械手等,但是由于它的设计结构,它并不是一个电气设备,而是机械式设备,现在的硬盘虽然容量很大,但是速度跟不上去的,这取决于它的设计工艺问题,如果存储的文件数据比较零散的话,机械臂的读写也是有些慢的,时间长的话就可以感觉得出来。而且如果不能正常关机的话,机械臂就不能回归原位,这对硬盘来说也算是一种损害。
SSD的速度很快,因为它并不是机械式硬盘,它没有盘片,也没有机械臂等等,说白了,就是SD卡的扩大版而已,速度很快,接口和机械式硬盘一样,还是采用的是SATA3接口,但价格很贵,虽然说价格也没前几年那么贵了,但是并没有完全降下来到一个普通消费者接受的程度,而且容量越大就越贵。
我们的操作系统的构造是由内核+应用程序来组成的,其中内核是面向硬件的,它对硬件资源进行管控,每个硬件都是独立的,人单纯拿着硬件也不能做什么,所以有个东西要把它们连接起来,并然它们各自发挥作用,以及能够相互协调,所以内核的作用就是这个,把硬件的接口封装起来形成统一的接口作为系统调用,供给上层应用程序来调用,但是通过这样的系统调用还是太困难了,于是乎将系统调用封装成一个更加复杂,加入了许多新的功能的可执行程序,又称重复的轮子,称之为库。
原创文章,作者:刘 祥宇,如若转载,请注明出处:http://www.178linux.com/55292