这文章记录一些关于计算机的知识,我觉得程序员应该可以看看,大部分都是抽象,我们在写代码或者在做程序的时候,不用在乎底层知识,我们只需要写,编译器会帮我们处理成想要的样子,我觉得硬件底层是很复杂的一个东西,它不仅仅是编程的逻辑判断,还有物理知识,电的知识,这篇文章是一个个抽象来理解计算机,所以我们不用关心底层什么 ALU,或者 计算等等。

视频

这篇文章不只是记录,也写包括我的理解,可能不是很对,有错误请给提 issues。

感谢CrashCourse 字幕组 以及 Crash Course 你们很棒.

命令行界面

有很多种 “输入输出设备” 让我们和计算机交互,它们在人类和机器间提供了界面,如今有整个学科专门研究这个,叫 ‘人机交互“。

界面对用户体验非常重要

小型计算机变得足够便宜,让人类来回和计算机交互,变得可以接受,交互式就是人和计算机之间来回沟通,而另一方面,大型计算机变得更快,能同时支持多个程序和多个用户。

这叫 “多任务 和 分时系统”

但交互式操作式,计算机需要某种方法来获得用户输入。

所以借用了当时已经存在的数据录入机制:键盘

2023-05-11-14-08-54-95c5bc7e-02f5-4b73-af10-b8aa5bb1daf7

现代打字机

肖尔斯 的打字机用了不寻常的布局, QWERTV

为什么这么设计 有很多猜测

是为了把常见字母放得远一些,避免按键卡在住。

肖尔斯和他的团队设计了很多版,才进化到这个布局。

也有新的键盘布局被发明,宣称各种好处,但人们已经熟悉了 QWERTV 布局,根本不想学新布局。

这是经济学家所说的 转换成本

有趣的是,肖尔斯 根本没想到打字会比手写快,手写速度大约是每分钟 20 个 ,打字机主要为了易读性和标志化,而不是速度,然而随着打字机成为办公室标配,对快速打字的渴望越来越大,有两个重大进步,解放了打字的潜力。

十指打字法


虽然人类擅长用打字机,但我们没法把打字机塞到计算机面前,让它打字,计算机又没有手指,所以早期计算机用了一种特殊打字机,是专门用来发电报的,叫 电报打字机

这些打字机是强化过的,可以用电报线发送和接收文本。

按一个字母,信号会通过电报线,发到另一端,另一端的电传打字机会打出来。使得两人可以长距离沟通,


unix 用 cat 命令显示文件内容, cat 是连接(concatenate)的缩写,然后指定文件名,指定的方法是写在 cat 命令后面传给命令的值叫 参数


命令行界面虽然简单,但十分强大,编程大部分依然是打字活,所以用命令行比较自然

因此,即使是现在大多数程序员工作中依然用命令行界面。

而且用命令行访问远程计算机,是最常见的方式,比如服务器在另一个国家。

如果您用 Windows,macOS,Linux,您的计算机有命令式界面,但您可能从来没用过,您可以在 Windows 搜索栏中输入 cmd,或在 Mac 上搜 Terminal ,然后你可以装 Zork 玩!