打字猴:1.700435927e+09
1700435927
1700435928
1700435929
1700435930
1700435931 当然你也可以使用man命令本身来查看man命令的手册页:
1700435932
1700435933 $ man man
1700435934
1700435935
1700435936
1700435937
1700435938
1700435939
1700435940
1700435941
1700435942 UNIX传奇:历史与回忆 [:1700434686]
1700435943 UNIX传奇:历史与回忆 3.4 存储略谈
1700435944
1700435945
1700435946
1700435947
1700435948
1700435949
1700435950
1700435951 年轻读者可能会怀疑前文提及的内存大小不准确。例如,IBM 7090或7094拥有32K(32 768)个36位字长的内存;肯用过的原版PDP-7拥有8K(8 192)个18位字长内存,也就是7090内存的大约八分之一;第一台PDP-11拥有24 KB主存储器和半兆硬盘。我的2015年版MacBook Air有8 GB内存(超过33万倍)和500 GB的硬盘(50万倍),价格不过1 000美元。
1700435952
1700435953 简而言之,以当下标准看,那时的计算机内存很小。现在主存储器动辄以GB计,硬盘以TB为单位,而且既便宜又小巧,被广为使用。但在20世纪60年代和70年代早期,存储技术和现在可不太一样。那时的计算机的主存储器由一系列甜甜圈形状的铁氧体细小磁芯构件组成。制造工人手工将导线穿过磁芯,将它们连接起来。每个磁芯都可以用两种方式进行磁化(如顺时针或逆时针),因此能够代表1个信息位,8个磁芯就是1字节。
1700435954
1700435955 磁芯内存非常昂贵,因为制造它需要高度熟练的手工劳动。它也很笨重。图3-12显示了一个16K bit(2KB)的磁芯内存,在1971年,它大概要卖1.6万美元,即每位接近1美元。
1700435956
1700435957
1700435958
1700435959
1700435960 图3-12 磁芯内存;16K bit, 2KB ( ~5.25英寸,13厘米)
1700435961
1700435962 内存往往是计算机中最昂贵的部件。每个字节都很珍贵。程序员受内存资源约束,得随时清楚使用了多少内存,有时不得不采取讨巧和冒险的编程技术来将程序放入可用内存中。
1700435963
1700435964 Unix擅长高效利用计算机的有限内存。这首先得归功于像肯和丹尼斯这样天赋异禀的程序员,他们知道如何节省内存。
1700435965
1700435966 其次,这些天才找到了实现通用性和统一性的方法,于是就能用较少的代码完成更多任务。有时这得靠巧妙的编程手段,有时是拜更好的算法所赐。
1700435967
1700435968 汇编语言也厥功至伟,相比高级语言,它能让指令执行得更快,使用更少内存。只有到了20世纪70年代,基于半导体和集成电路的新内存技术变得普遍,程序员才负担得起使用C之类高级语言所需的额外开销(这些开销虽然不特别高,但也得仔细盘算)。
1700435969
1700435970 存储分配器,如最初的alloc和道格·麦基尔罗伊后来写的malloc库,用来在程序运行时动态分配和重新分配内存,这是充分利用稀缺资源的另一种方式。当然,得谨慎操作内存,因为最微小的错误都可能导致程序出错(即使在今天,起码从我在课堂上看到的学生操作而言,这种情况也未绝迹)。内存管理不当仍然是C语言程序出错的主要原因之一。
1700435971
1700435972 当程序出现严重错误时,操作系统会注意到,并试图通过创建一个保存主存储器状况(即磁芯中的内容)的文件来帮程序员定位错误,这就是“磁芯转储”(core dump)一词的由来。虽然磁芯早已退出舞台,这个词仍在使用。保存主存储器状态的文件仍然被称为磁芯(core)。
1700435973
1700435974
1700435975
1700435976
[ 上一页 ]  [ :1.700435927e+09 ]  [ 下一页 ]