半分钟了解下本文
本文将简单介绍计算机的软硬件结构,并用计算机的结构理解我们的生活,是我基于计算机的个人管理系统的基础概念准备篇。
为什么要基于计算机构建个人管理系统?
因为计算机是一个完美的设计,无论是软件系统、硬件系统,还是它们的结合,都是那么优雅完美。无数复杂的数据在里面安放,无数复杂的程序在里面运行。很多人都听过“底层操作系统”、“算法”云云,可是不是搞IT的人未必真的很了解这些词语,也没法真的去试图搭建一个自己的个人管理系统。很幸运,作为一个曾经的嵌入式程序员,我裁剪过内核,烧写过文件系统,对操作系统本身有一定的了解。
硬件-冯诺依曼结构
电脑的硬件结构我们只要简单的了解框架就可以了。基本的结构就是输入设备(鼠标键盘)、输出设备(屏幕、音箱)、处理器、存储器(硬盘)。
对应我们人其实也差不多,只是分的不那么分明。眼睛、鼻子、舌头这些就是输入设备,神经系统是处理器,大脑里还有存储器,手脚、任何可以表达的地方都是输出设备。
软件
在介绍软件系统结构之前,我得先讲讲什么是软件和软件的分类。
定义:
存储器上存储的所有没有物理实体的信息都是软件,各种程序、声音、图片、文档等都是软件。
分类
按照软件可不可以被执行,可以分为三类:
-
静态文档
歌曲、电影、WORD这种纯数据类文件。 - 接口
所谓接口,就是得到罗胖老爱提的“算法”,它的特点是你向它输入一点东西,它给你返回一些东西,但是它本身不直接被执行,而是间接的被调用。这种东西我们的电脑里大把大把的,你可以随便打开一个软件的安装目录,那些.lib、.dll就是这种接口文件。 -
可执行程序
程序是可以被执行的,可以成为一个运行中的进程。
最后还有一个概念---“库”。
事实上我之前提高的.dll文件是一个接口库,即里面是有很多接口的。
三者的关系:
程序运行的时候会调用各种接口、静态文档。比如一个一个视屏播放器程序,它运行的时候就会调用它安装目录里的各种dll接口以及操作系统的接口,然后当然要使用到视频文件。
和我们人的对应:
计算机的软件 | 个人的软件 |
---|---|
静态文档 | 照片、知识、经验、记录等 |
接口 | 各种解决方案、攻略、方法 |
程序 | 行动、任务、项目 |
我们人也有很多静态文档,什么日记啊、生日备忘啊、照片什么的。这些都是东西都是纯粹保存信息用的。
然后就是接口了,老罗称接口为“算法”,但我更习惯使用“solution”这个词,即解决方案,这样有一个面向问题思维的意思,而且更强调完整性和可操作性。每个接口都可以解决一些问题,比如科学上网解决方案解决科学上网的问题,情绪控制方案提供一个完整的方案帮助我控制情绪。
程序,对应于生活里的行动,即action。当前正在写作就是在一个写作的行动中。程序可以运行完毕或者被终止,一个行动也可以执行完毕或者被终止。
计算机的软件系统结构
有了上面基础就可以理解计算机的软件系统结构了。其实很简单,可以分为三层:
- 操作系统内核
调用硬件驱动,提供最底层的功能。 - 操作系统提供的基础接口
不管是什么操作系统,都会提供最基本的接口,文件读写、网络传输、内存管理等等。实际上这些操作都很复杂,但是这个复杂的工作操作系统做好了,提供我们相对简单的接口可以调用。 - 基础运行库
实际上,系统接口对于大部分程序来说还是底层了,不好用,用起来复杂和不好移植。比如文件读写,windows的接口和linux的接口不一样,要程序员为不同系统都写一套代码是件很糟糕的事情。于是就有了c/c++、java都程序库,这些开发语言对系统接口进行了封装,提供了更好用的接口。 - 应用程序
最上层就是我们的应用程序了,就是我们每天打交道的微信、浏览器、播放器、QQ等。
操作系统内核
操作系统作为一个非常特殊的软件,单独拉出来讲一下,毕竟经常会听到别人讲“底层操作系统”。
一个操作系统的内核主要有进程管理、内存管理、文件系统、设备管理、网络管理几个模块。也差不多可以和我们的生活有个对应。
计算机操作系统 | 个人管理系统 |
---|---|
进程管理 | 行动管理 |
内存管理 | 想法的管理 |
文件系统 | 知识信息的存储 |
设备管理 | 身体、高级工具(出头、骑车)的管理 |
网络 | 社交、人际关系 |
我只是这么对应,实际我们的人生不只是这些,还有情绪管理、精力管理什么的。
用软件的模型来思考我们的生活
电脑有硬件,和我们人有身体一样。有些负责输入,有写负责处理,有些负责存储,有些负责输出。
电脑的软件是可以分为文档、接口和程序,可以对应我们生活里的知识、解决方案、行动任务。
软件从下到上依次是硬件驱动、操作系统、操作系统提供的接口、高级一点的基础接口、各种应用程序。我们人也有最基本的作息管理、情绪控制,然后高级一点的写作方法、阅读方法,最后是各种任务和项目。
操作系统提供最底层的功能。进程管理可以对应我们人的行动任务管理,网络管理对于我们的社交关系,设备管理对应我们的身体管理。
当我们用软件的思维思考我们个人管理后,很多事情变得更清晰。举例但远不限于:
- 一个电脑要稳定,首先操作系统要稳定。所以我们要做好自己最基本的行动管理、健康管理、情绪管理、人际关系等。
- 任何程序都是依赖大量的接口,可以说接口才是软件的核心。就像我们要做事情,本质上就是调用我们以往积累的各种接口。就比如我们现在正使用自己的markdown写作方法来写这篇文章。所以我们需要不断的积累接口。
- 软件都可以迭代的,我们也需要不断迭代我们的个人“软件”。
网友评论