各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!
一开始,计算机都有独立组件构成,叫“分立元件”,然后不同组件再用线连在一起,这会导致计算机的构成很复杂,这个问题叫做数字暴政。
封装复杂性:与其把多个独立部件用电线连起来,拼装出计算机,不如把多个组件包在一起,变成一个新的独立组件。
这种新的独立组件就叫集成电路(IC),仙童半导体(用硅做成)让集成电路变成了现实。为了不用焊接或用一大堆线,发明了印刷电路板(PCB),他通过蚀刻金属线的方式把零件连接到一起。
即用光把复杂图案印到材料上。我们把一片薄片状的硅叫做晶圆,通过一系列生产步骤,将晶圆表面薄膜的特定部分除去的工艺叫做光刻。
光刻组件示意图如下:
光刻成品示意图如下:
每两年左右,得益于材料和制造技术的发展,同样大小的空间,能塞进两倍数量的晶体管。
操作系统也是一种程序,不过它有操作硬件的特殊权限,可以运行和管理其他程序。
一个程序运行后会自动运行下一个程序。
和计算机连着的其他设备,如打印机。
为了使所写程序和不同类型的电脑兼容,我们需要操作系统充当软件和硬件之间的媒介,更具体地说,操作系统提供程序编程接口(API)来抽象硬件,叫“设备驱动程序”。程序员可以用标准化机制,和输入输出硬件(I/O)交互。
操作系统能使多个程序在单个CPU上同时进行的能力,叫做“多任务处理”。
多程序处理带来了一个程序所占用内存可能不连续的问题,导致程序员难以追踪一个程序,为了解决这个问题操作系统会把内存地址虚拟化,这叫“虚拟内存”。
虚拟内存的机制使程序的内存大小可以灵活增减,叫做“动态内存分配”,对程序来说,内存看上去是连续的。
给每个程序分配单独的内存,那当这个程序出现混乱时,它不会影响到其他程序的内存,同时也能有效地防止恶意程序篡改其他程序,这叫做内存保护。
用来处理多用户同时使用一台计算机的情况,即每个用户只能用一小部分处理器,内存等。
把操作系统分成两个部分,一个是操作系统的核心部分,如内存管理,多任务和输入/输出处理,这叫做“内核”,第二部分是一堆有用的工具,比如程序和运行库。
问题:读取慢、难修改、难存临时值
利用线的延迟在线里存储数据,又叫顺序存储器或者循环存储器。
存在问题:
1.不能随意调出数据
2.难以增加内存密度
原理:电磁感应
问题:成本高
问题:访问速度慢
与磁带相似
与磁带相似
在计算机中,高速昂贵和低速便宜的内存混合使用以取得一个平衡。
除了磁盘是软的,其他都和硬盘一样,好处是便携。
原理:光盘表面有很多小坑,造成光的不同反射,光学传感器会捕获到,并解码为1和0。
里面是集成电路
可以随便存文件数据,但按格式存会更方便。
用ASCII解码。
记录的是振幅。
记录每个像素的红绿蓝 RGB 值
用来解决多文件问题,存其他文件的信息,比如开头,结尾,创建时间等。
文件都在同一个层次,早期空间小,只有十几个文件,平面系统够用。
文件的增删改查会不可避免的造成文件散落在各个块里,如果是磁带这样的存储介质就会造成问题,所以需要碎片整理——计算机把文件内容调换位置。
有不同文件夹,文件夹可以层层嵌套。
能存更多文件,传输也更快
适合经常出现相同值的文件,以吃豆人游戏为例:
没有损失任何数据的压缩。
一种高效的编码模式,以压缩图片为例。
删掉人类无法感知的数据的有损压缩方法,叫做“感知编码”,如音频文件,人类听不到超声波,所以可以舍去,MP3就是音频的一种压缩形式。
有损压缩的一个例子就是jpeg模式,如图:
一个视频由很多图片构成,其中很多图片的背景一样,这就构成了时间冗余,很多视频编码格式,只存变化的部分。进阶的视频压缩模式会找到帧与帧的相似性,然后打补丁,MPEG-4 是视频压缩的常见标准。
计算机早期同时输入程序和数据(用纸卡/纸带)运行开始直到结束,中间没有人类进行操作,原因是计算机很贵,不能等人类慢慢输入,执行完结果打印到纸上。
到1950年代,计算机足够便宜+快,人类和计算机交互式操作变得可行为了让人类输入到计算机,改造之前就有的打字机,变成电传打字机。
到1970年代末,屏幕成本足够低,屏幕代替电传打字机,屏幕成为标配。
输入命令,计算机会给予回应。
CRT 有两种绘图方式:
矢量扫描 Vector Scanning
光栅扫描 Raster Scanning
随着显示技术的发展,出现了LCD,LCD 也用光栅扫描。在屏幕上显示的清晰的点,叫“像素”。
相比于像素,为了减少内存,人们更喜欢使用字符,计算机需要额外硬件,来从内存读取字符,转换成光栅图形\N 这样才能显示到屏幕上个硬件叫“字符生成器”,基本算是第一代显卡。它内部有一小块只读存储器,简称 ROM,存着每个字符的图形,叫“点阵图案”。
为了显示,“字符生成器”会访问内存中一块特殊区域,这块区域专为图形保留,叫屏幕缓冲区,程序想显示文字时,修改这块区域里的值就行。
概念非常简单:所有东西都由线组成,矢量指令可以画出线,把许多矢量指令存在硬盘上,就能画出很多由线组成的复杂图形。
Sketchpad ,一个交互式图形界面,用途是计算机辅助设计 (CAD)。
光笔,就是一个有线连着电脑的触控笔,有了它们,用户可以画出很完美的线条并进行缩放等操作。
位图显示,内存中的位对应着屏幕上显示的像素。
想画更复杂的图形,如画矩形,我们需要四个值,起点的x y坐标,高度和宽度。