计算机是如何让用户得到好的体验
计算机系统是由计算机硬件和软件组成的。用户使用计算机,比如在文本文件填写内容,通过邮箱发送邮件,打开游戏应用进行游戏,程序员通过编译器编译源文件。填写文本文件需要用到磁盘,发送邮件要通过网卡,程序员自己写的代码要成为可执行的二进制文件存储到磁盘。等等这些硬件外设。这些外设属于计算机系统的硬件,硬件只认识二进制的数据的计算机语言,对应大部分的用户或程序员来说,是很难通过这种低级(0 1串)的计算机语言来对计算机操作。所以,这时候就有汇编语言,通过指令来对计算机硬件进行访问,但是汇编虽然提高了很大的可读性,但是对于大多数用户来说还是很困难的,所以就有了C语言等其他的高级语言来供给程序员来编写软件代码。然而,计算机的底层硬件并不认识这些高级语言。工程师为了能让用户和计算机之间有交互,做出了一个叫操作系统的软件来让计算机硬件和用户有着间接的联系。通过操作系统把硬件的数据转化为用户可以看得懂的内容,也可以把用户输入的数据转化计算机可以认识的01串。比如一个程序员写的一个C语言的源文件,操作系统会把每一条语句转化为一系列的低级计算机语言指令,然后这些指令按照一种可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放到磁盘,这一系列就是用户通过操作系统和计算机的磁盘硬件进行交互。程序员调用C语言接口scanf()或printf()接口,把用户输入的数据或要打印在显示器的接口,通过这种上层计算机语言接口调用到系统调用,系统调用接口通过操作系统(OS)访问底层硬件。
得出结论:是操作系统让用户的到更好的体验。用户不需要关心计算机底层硬件的实现。
什么是操作系统(OS)
以Linux操作系统为例,Linux操作系统是一款软件,是通过大量的C语言和一些汇编的语言来进行编写的。通过上面的结论,知道了操作系统是管理计算机硬件和软件的一款软件,操作系统是在计算机硬件和软件之间的。 操作系统中有大量的内核数据结构和数据对象,这些数据结构和对象是用户的数据,这些大量的数据结构和对象要由操作系统进行管理。
操作系统主要的功能 :
①进程管理②存储管理③设备管理④文件管理
操作系统如何管理
用户打开在磁盘的文件,对文件进行读写,或者游戏时候的操作动作,再或者是程序员写代码时调用的库函数或系统调用,这些都是用户层面的操作。都是要通过操作系统来进行决策和管理的。比如再Linux中通过bash的命令行解释器来打开磁盘的文件,或者操作游戏时的键盘输入,都要通过操作系统调用到硬件。用户打开文件写入数据,就会调用到write()这个系统调用接口,然后操作系统再通过程序驱动访问到磁盘。
计算机会有许许多多的这些操作,所以操作系统需要管理这些操作。这些操作都是大量的数据结构和数据对象,操作系统会把这些对象的各种属性抽象成一个整体的对象。就好比一个程序员在公司,程序员的姓名,年龄,性别,工龄,工号,联系方式,家庭住址的属性来放在一个集合来,虽然这些属性的类型不一样,这样就可以用的集合来描述一个程序员,公司要找到这个员工,了解最近的情况,只需要找到这个集合的姓名和工号即可。公司要知道所有的员工,所以每个员工都有这样的一个集合,公司对这些员工的管理,就可以变为对这些集合的管理。在语言层面上,这些集合就是结构体。然后公司对结构体采用某些数据结构的方式来组织管理,就可以对员工们有很好的管理,对员工的管理变为对数据结构的管理,可以进行增删查改。
得出结论:操作系统对这些程序或者数据先进行描述,再进行组织管理。