计算机可以直接操作硬件设备吗?
可以。通过对编程语言的翻译控制设备。
那么,要计算机系统这个听起来很重要的东西是干什么的?有用么?
任何好的回答需要好的问题。我觉得这算是个好的问题。
假设:
需要运行的程序=1,那么cpu和程序之间的关系是一对一。
cpu可以毫无保留地支持这个程序的所有指令,并按指令之间的逻辑顺序依次执行。
假设:
需要运行的程序>1,cpu和程序之间的关系是一对多。
为了响应用户的指令,cpu不得不选择间断性执行各个程序。假设有3个程序,那么cpu的资源可能会这样拆分1,2,3;1,2,3;1,2,3......直至程序执行完毕。
(计算机这里本质上追求的不是效率,而是用户的响应度。在讲cpu效率的文章里我们最后抛出了一个问题:用户除了效率还追求什么。这里进行解答。)
那么问题来了,cpu是如何分配资源给这三个程序的?要知道,cpu效率是高,但是很笨。按理来说做不了这种管理分配的事。
怎么办呢?
没有什么事情是加一个中间人解决不了的。
那么这个中间人究竟是谁呀~
还能是谁?计算机上只能是指令,计算机上所有软件资源都是指令。
不过,特殊的是,这一部分指令出现的目的是为了给软件分配硬件资源。(听起来和管理层那个一模一样欸。果然计算机里几乎所有概念在现实里都能找到参照)
那一这部分指令总得有个名字吧,不然这也叫指令,那也叫指令,以后大家还怎么交流呢?
就叫系统吧!
原来指令和编程可以做这么多事呢,连管理这种听起来很高级的事情都会。那么是不是说编程可以做几乎所有事呀!
那我每次启动计算机,都要手动进行一系列复杂的操作,检查硬件设备,检查软件,扫描加载配置文件等的。是不是也可以开发一个软件帮我做事呢?
这个基本的思想叫做复用。
(从计算机:芯片的设计线路;操作系统;软件;函数;循环结构;到日常生活:门口的共享单车;快递站;到我们思考时用的结构和框架:循环结构;递推结构等只要能够反复使用都叫复用。复用是提高效率最有效的办法之一。所以思考的时候体系化思考省很多事。)
这部分关于开机启动的指令适用性足够广,复用程度足够高。和给软件分配硬件资源一样基础。
就一起叫做系统吧。
小结:如果要用几个词形容操作系统:
中间人;指令;基础;复用。