您的位置 首页 职业资格

学习计算机的“奇”“思”“妙”“想”

嗯……就是瞎想、瞎写,没别的。脑洞惊奇、不愧是我。
Question:我们看得见摸得着的这些实体是硬件。软件呢?

学习计算机的时候,我们常听到这样一句话:计算机分为硬件和软件,比如操作系统、c语言、python是软件,我们看得见摸得着的这些实体是硬件。

这其实有些像人类,思想(软件)给人的感觉是看不见摸不着的,而身体(硬件)是看得见摸得着的东西。两者都很重要,这也就催生出了唯物和唯心两种世界观。我应该是个不折不扣的唯物主义者,也就是认为“思想”也需要“寄托”在身体的具体组成部分,进一步讲,千变万化的思想本质上就是身体某些部分的不同状态的组合,而近代医学已经将其锁定在脑这一部位,虽然其机制还需进一步研究。

但我想说的是,计算机很像人类,我们也常说,硬件就是看得见摸得着的部分,而软件好像看不见,然而这是完全错误的。比如一部手机开机运行的过程中,教材常讲到:软件(系统)被CPU从硬盘加载到内存,再被一步步的执行。那这个软件它属于物质吗?能看得见摸得着吗?

当然能!其实硬件和软件就像是很多被人类分类的概念一样,它们本没有这个所谓的区分。一部手机的开机过程,就是我们的手指驱动了开机按钮,从而导致电路闭合,触发了一系列人为事先设定好的连锁反应。所谓软件加载这个看似看不见的事情,其实在微观上是完全可以被观测的,而所谓操作系统这个软件,就是人类按照其特有的方式改变了硬盘这个硬件的许多微观状态。而这就是能正好触发上述连锁反应最终让我们看到手机开机的原因。

当然我们可以精确的定义软件———这种设计模式而不是具体实施的物理过程称为软件。比如我规定某个字的发音,称为软件,但并不是指我或者任何一个人喉咙声带振动的物理现象。不过也不难发现,没有后者的物理过程和现象,人类是无法“想出”这些设计模式的,当然也无法实施这些设计模式。

所谓软件、思想这种概念,只是人类便于自己交流,用特殊的物理现象(写字、说话等都是物理过程)“描述”(其实是一系列的连锁反应)另一些物理现象(比如手机开机)。反过来则不成立(比如我思故我在,那我取下来某个人的脑子,他就无法做出这些思考,思考是特殊的物理现象,物理现象并不是特殊的思考),所以世界是唯物的。

若计算机芯片内这些微观的物理状态出现了人类目前无法预测和干预的相互作用,计算机的“软件”和人类的“思想”的相似度可能就进一步缩小了,直到它们可以和人类“平起平坐”。

当然这只是个想象,虽然“想象”也只是我脑部神经电信号又引起的一系列物理化学反应罢了。

Question:I/O为何不放入文件系统中作为物理结构模块呢?
首先,这章节的确是讲很多关于机械硬盘的底层原理,但是这只是因为其几乎是最复杂的I/O设备之一,将其作为案例讲解I/O设备的管理策略最适合不过。其次,为何不放在文件系统一章讲解机械硬盘问题?这背后有一个很重要的fact:操作系统并不是最直接接触硬件的“软件”。操作系统更像是用户和设备厂商的媒介,但现实中操作系统开发商(Apple、Microsoft、Google)它们的研发能力和影响力巨大,往往是它们同设备厂商协调研发计算机系统的最佳解决方案(这点我在《为何干掉操作系统这么难?》一文的开篇提到过)。所谓的设备厂商,其实是一切的计算机硬件设备。所以在理论上,应该每个硬件都有一个所谓“设备驱动程序/固件”,它才是直接与硬件沟通的软件,而操作系统也是使用了它提供的“函数”(它提供的函数是极其简单的比如只有读写数据等操作)进行进一步优化和添加功能。
前面几章(进程、内存、文件管理)所讲的内容,其实还是屏蔽了大量底层细节(操作系统和设备驱动软件的“沟通问题”)的内容。而I/O这一章节则是在补全这方面的内容。细心的读者会意识到:所谓的设备驱动程序,好像之前讲的CPU并没有这部分啊!的确,由于CPU是计算机的最最最核心硬件,一切计算机系统都是围绕CPU(当然,可能以后也可以实现只有GPU的计算机,但GPU和CPU本质并无区别,最主要就是不同功能计算单元占比问题)展开的。所以所谓操作系统最核心的算法(进程管理、内存管理等)本身就可以看作是一个功能齐全的CPU驱动程序。
所以与CPU区别开来,I/O就显得像是“干儿子”了。为何会出现这样的现象?由于I/O并不像是CPU等计算机核心硬件,是几乎统一的标准和少数几个公司垄断性的产物(因为极高的技术壁垒)。除了CPU的核心地位,它们在技术上的区别真的不大,虽然我一再强调分层、黑盒在计算机中的运用淋漓尽致,但是我们也要学会用直接的、“面向机器” 的思维方式去思考———计算机是多米诺骨牌(也就是我在《为何干掉操作系统这么难?》一文的开篇提到的另一点),它并不只知道任何层次、编码、组织数据的方式,只是一步步的机械的执行下去,直到停电。在计算机网络体系中同样如此,在任何一个科目、行业更是如此。人类为了便于理解与分工,将许多事情划分为许多联系不大的类别或层次,这个思想非常伟大,但正因如此,容易让我们忽略掉其中的微妙的联系,会让我们难以深刻理解其本质。我在物理学习系列的科普文章中也强调过这一点。

为您推荐

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部