这一段的思考是硬件和软件的关系。
为何我们输入指令,输入字符能够控制计算机。
最基本的指令都对应一个硬件处理。指令是给人读的,有意义的源码,指令都是为了人类的理解和方便。最根本的都是电信号,写入,读出都是电信号处理。
其实 计算机内部是读不懂字符读不懂指令。计算机内部处理的只是电信号。
计算机的输入,输出,处理这三个部分是密切不可分的。
当输入一个字符时,字符被转化成电信号,然后会有程序处理电信号,然后会有程序会取电信号,处理信号,然后将信号输出到输出设备。这里面有一系列的转码。
硬件和软件的接口是bios或者说监督程式(监控程序)。他们固化在rom中,然后经过取指令(因为不是杂乱无章的电信号)信号都只有具有一定的意义(规范,规则)才能经过处理才能达到特定的效果。
如果只给我键盘和显示器和cpu等硬件是没有办法使用的。键盘输入的cpu根本处理不了。
而在基本的抽象之上就可以构建各种各样的抽象了。有基本的bios之后就可以在此之上构建更复杂的程序,所谓的更复杂本质上还是更复杂的输入产生更复杂的输出,但是这些输入输出都是设计好的,绝不能随心所欲。
软件是一层一层的抽象。
更多的资料可以参看apple II电路资料,apple II 的监控程式等资料。还有inside the IBM pc 。
我觉得问题可以分两部分来说,键盘输入的东西,电脑怎么理解的呢?
或者说电脑是如何达到理解的呢?这个理解当然要打引号。
我认为要好好思考下,输入指令这个具体过程。
软件的本质是指令是机器语言是电信号的处理,不过经过封装之后,越来越抽象,越来越利于人类的理解,越来越有架构,但是都离不开底层的工具。最底层的工具一定是具有写入读出硬件的接口或者功能的。