打字猴:1.700435495e+09
1700435495 UNIX传奇:历史与回忆 [:1700434677]
1700435496 UNIX传奇:历史与回忆 2.1 一点点技术背景知识
1700435497
1700435498 本节将简要普及计算机、硬件、软件、操作系统、编程和编程语言等构成本书主题的基础技术知识。如果你对这些概念已经很熟悉,跳过即可;如果不熟悉,希望这些内容能让你跟得上后文的推进节奏。如果你想进一步了解面向非技术背景读者的细节阐释,请参阅我的《普林斯顿计算机公开课》(Understanding the Digital World),当我是自卖自夸好了。
1700435499
1700435500 计算器曾经是真实器物,后来成了手机应用。与之相比,计算机本质上没有特别多不同之处。计算机如今能以高达每秒十亿次的极快速度做算术[1],但在20世纪70年代,运算速度远远低于每秒百万次。
1700435501
1700435502 20世纪60年代和20世纪70年代典型的计算机有一个由数十种指令组成的指令集,它可以执行:算术(加、减、乘、除),从主存储器中读出信息,将信息保存到主存储器,以及与磁盘或其他连接设备通信。另外还有一件至关重要的事:其中有一些指令负责依据之前的计算结果,即已做完的事,决定后续执行什么指令——这决定了计算机下一步做什么。这样一来,计算机就掌控了自己的命运。
1700435503
1700435504 指令和数据存放在同一个主存储器中,这个主存储器通常被叫作RAM,也就是“随机存储器”(random access memory)。将一系列指令装载到RAM,计算机就会根据指令内容执行不同任务。这就是你点击Word或Chrome浏览器图标时发生的事——操作系统将那个程序的指令装入内存,开始运行。
1700435505
1700435506 使用某种编程语言,为执行某项要完成的任务创建操作序列,这就是所谓的编程。直接创建所需指令是有可能的,但这项工作实在繁难,哪怕是写很小的程序也是如此,所以编程领域的大部分进步都与创造接近人类表达计算方式的编程语言有关。称为编译器的程序(当然得先把它写出来)将高级语言(接近人类语言)翻译为针对特定类型计算机的指令序列。
1700435507
1700435508 归根结底,如同Word或浏览器等普通程序一样,操作系统也是由那些指令构建而成的,只是它更为庞大和复杂。操作系统的任务是控制所有其他要运行的程序,并管理它们与计算机其他部分的交互。
1700435509
1700435510 这样讲太抽象了,用一个具体的小例子来说明什么是编程吧。假设我们想根据矩形的长和宽计算其面积。用人类语言可以这样说:“面积是长和宽的乘积。”学校教师会在黑板上写出面积计算的公式:
1700435511
1700435512 面积 = 长×宽
1700435513
1700435514 使用较高级别的编程语言时,我们会这样写:
1700435515
1700435516 area = length * width
1700435517
1700435518 这就是今天大部分主流编程语言中的确切形式。编译器将其翻译为人类仍然可读但主要面向计算机的机器指令序列。在一台虚构的简单计算机上,该序列大概像下面这样:
1700435519
1700435520     load      length    multiply  width    store     area
1700435521
1700435522
1700435523
1700435524
1700435525
1700435526 最终,称为汇编器(assembler)的程序把该序列转换为人类不易读懂的指令。这些指令能够被载入计算机的主存储器。执行时,它们根据长和宽算出面积。当然这里没谈及很多细节(如何指定编译和加载,如何让长和宽的数值进入计算机,如何输出面积数值,等等),但本质大抵如此。
1700435527
1700435528 如果你想看看可工作的示例,以下这段完整的C语言程序输入长和宽,输出面积:
1700435529
1700435530 void main() {     float length, width, area;     scanf(“%f %f”, &length, &width);     area = length * width;     printf(“area = %f\n”, area); }
1700435531
1700435532
1700435533
1700435534
1700435535
1700435536 这段程序能在任意一台计算机上编译和执行。
1700435537
1700435538 每个人都至少知道Windows或macOS这些现代操作系统的名字,手机上运行的是Android和iOS等操作系统。
1700435539
1700435540 操作系统是控制计算机的程序,它给正在运行的程序分配资源。它管理主存储器,当运行中的程序有需要时,将主存分配给它们。在台式计算机或笔记本式计算机上,操作系统让你能够同时运行浏览器、文字处理器、音乐播放器,或许还有我们的面积计算小程序,并且按需任意切换到其中之一。
1700435541
1700435542 操作系统也控制显示,在收到程序请求时,使其在屏幕上可见。它还管理磁盘之类存储设备,当你保存Word文档时,文档就会被存下来,以备之后恢复并继续工作。
1700435543
1700435544 操作系统还负责协调与互联网之类的网络进行通信,这样你就能用浏览器搜索、与朋友联络、购物、分享宠物猫视频,一切齐头并进。
[ 上一页 ]  [ :1.700435495e+09 ]  [ 下一页 ]