第五课:集成电路与摩尔定律(硬件的发展)、操作系统、内存和储存介质(存储技术的发展)、文件系统、压缩、命令行界面及屏幕与 2D 图形显示

第五课:集成电路与摩尔定律(硬件的发展)、操作系统、内存和储存介质(存储技术的发展)、文件系统、压缩、命令行界面及屏幕与 2D 图形显示

各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

第十七章:集成电路与摩尔定律(硬件的发展)

1、分立元件与数字暴政

一开始,计算机都有独立组件构成,叫"分立元件 ",然后不同组件再用线连在一起,这会导致计算机的构成很复杂,这个问题叫做数字暴政

2、集成电路与仙童半导体

封装复杂性:与其把多个独立部件用电线连起来,拼装出计算机,不如把多个组件包在一起,变成一个新的独立组件。

这种新的独立组件就叫集成电路(IC),仙童半导体(用硅做成)让集成电路变成了现实。为了不用焊接或用一大堆线,发明了印刷电路板(PCB),他通过蚀刻金属线的方式把零件连接到一起。

3、光刻0421

即用光把复杂图案印到材料上。我们把一片薄片状的硅叫做晶圆,通过一系列生产步骤,将晶圆表面薄膜的特定部分除去的工艺叫做光刻

光刻组件示意图如下:

光刻成品示意图如下:

4、摩尔定律

每两年左右,得益于材料和制造技术的发展,同样大小的空间,能塞进两倍数量的晶体管。

5、进一步小型化会碰到的问题

  1. 由于光的波长限制,精度已到极限。
  2. 量子隧穿效应:当晶体管非常小,电极之间可能只距离几个原子,电子会跳过间隙,会产生漏电问题。

第18章:操作系统

1、操作系统(OS)

操作系统也是一种程序,不过它有操作硬件的特殊权限,可以运行和管理其他程序。

2、批处理

一个程序运行后会自动运行下一个程序。

3、外部设备

和计算机连着的其他设备,如打印机。

4、设备驱动程序

为了使所写程序和不同类型的电脑兼容,我们需要操作系统充当软件和硬件之间的媒介,更具体地说,操作系统提供程序编程接口(API)来抽象硬件,叫"设备驱动程序"。程序员可以用标准化机制,和输入输出硬件(I/O)交互。

5、多任务处理

操作系统能使多个程序在单个CPU上同时进行的能力,叫做"多任务处理"。

6、虚拟内存

多程序处理带来了一个程序所占用内存可能不连续的问题,导致程序员难以追踪一个程序,为了解决这个问题操作系统会把内存地址虚拟化,这叫"虚拟内存"。

7、动态内存分配

虚拟内存的机制使程序的内存大小可以灵活增减,叫做"动态内存分配",对程序来说,内存看上去是连续的。

8、内存保护

给每个程序分配单独的内存,那当这个程序出现混乱时,它不会影响到其他程序的内存,同时也能有效地防止恶意程序篡改其他程序,这叫做内存保护。

9、多用户分时操作系统(Multics)

用来处理多用户同时使用一台计算机的情况,即每个用户只能用一小部分处理器,内存等。

10、Unix

把操作系统分成两个部分,一个是操作系统的核心部分,如内存管理,多任务和输入/输出处理,这叫做"内核",第二部分是一堆有用的工具,比如程序和运行库。

第十九章:内存和储存介质(存储技术的发展)

1、纸卡 纸带

问题:读取慢、难修改、难存临时值

2、延迟线存储器

利用线的延迟在线里存储数据,又叫顺序存储器或者循环存储器。

存在问题:

1.不能随意调出数据

2.难以增加内存密度

3、磁芯

原理:电磁感应

问题:成本高

4、磁带

问题:访问速度慢

5、磁鼓

与磁带相似

6、硬盘

与磁带相似

7、内存层次结构

在计算机中,高速昂贵和低速便宜的内存混合使用以取得一个平衡。

8、软盘

除了磁盘是软的,其他都和硬盘一样,好处是便携。

9、光盘

原理:光盘表面有很多小坑,造成光的不同反射,光学传感器会捕获到,并解码为1和0。

10、固定硬盘(SSD)

里面是集成电路

第二十章:文件系统

为什么要采用文件格式

可以随便存文件数据,但按格式存会更方便。

1、TXT 文本文件

用ASCII解码。

2、WAV 音频文件

记录的是振幅。

3、BMP 图片文件

记录每个像素的红绿蓝 RGB 值

4、目录文件

用来解决多文件问题,存其他文件的信息,比如开头,结尾,创建时间等。

5、平面文件系统 - Flat File System

文件都在同一个层次,早期空间小,只有十几个文件,平面系统够用。

6、解决文件紧密的排序造成的问题

  1. 把空间划分成一块块
  2. 文件拆分存在多个块里

7、碎片整理

文件的增删改查会不可避免的造成文件散落在各个块里,如果是磁带这样的存储介质就会造成问题,所以需要碎片整理------计算机把文件内容调换位置。

8、分层文件系统 - Hierarchical File System

有不同文件夹,文件夹可以层层嵌套。

第二十一章:压缩

压缩的好处

能存更多文件,传输也更快

1、游程编码 Run-Length Encoding

适合经常出现相同值的文件,以吃豆人游戏为例:


2、无损压缩 Lossless compression

没有损失任何数据的压缩。

3、霍夫曼树 Huffman Tree和字典编码 Dictionary coders

一种高效的编码模式,以压缩图片为例。



4、感知编码 Perceptual coding和有损压缩 jpeg 格式

删掉人类无法感知的数据的有损压缩方法,叫做"感知编码",如音频文件,人类听不到超声波,所以可以舍去,MP3就是音频的一种压缩形式。

有损压缩的一个例子就是jpeg模式,如图:


5、时间冗余 Temporal redundancy

一个视频由很多图片构成,其中很多图片的背景一样,这就构成了时间冗余,很多视频编码格式,只存变化的部分。进阶的视频压缩模式会找到帧与帧的相似性,然后打补丁,MPEG-4 是视频压缩的常见标准。

第二十二章:命令行界面

1、人机交互(Human-Computer Interaction)发展史

计算机早期同时输入程序和数据(用纸卡/纸带)运行开始直到结束,中间没有人类进行操作,原因是计算机很贵,不能等人类慢慢输入,执行完结果打印到纸上。

到1950年代,计算机足够便宜+快,人类和计算机交互式操作变得可行为了让人类输入到计算机,改造之前就有的打字机,变成电传打字机。

到1970年代末,屏幕成本足够低,屏幕代替电传打字机,屏幕成为标配。

2、人机交互工具的变化

  1. 早期输出数据是打印到纸上,而输入是用纸卡/纸带一次性把程序和数据都给进去。
  2. QWERTY 打字机的发展
  3. 电传打字机 Teletype machine
    作用:用于发电报,使两人可以远距离沟通。

3、命令行界面 Command line interface

输入命令,计算机会给予回应。

第二十三章:屏幕与 2D 图形显示

1、PDP-1 计算机、键盘和显示器分开,屏幕显示临时值

2、阴极射线管 Cathode Ray Tube (CRT)

CRT 有两种绘图方式:

矢量扫描 Vector Scanning

光栅扫描 Raster Scanning

3、液晶显示器 Liquid Crystal Displays (LCD),像素 (Pixel)

随着显示技术的发展,出现了LCD,LCD 也用光栅扫描。在屏幕上显示的清晰的点,叫"像素"。

4、字符生成器 Character generator

相比于像素,为了减少内存,人们更喜欢使用字符,计算机需要额外硬件,来从内存读取字符,转换成光栅图形\N 这样才能显示到屏幕上个硬件叫"字符生成器",基本算是第一代显卡。它内部有一小块只读存储器,简称 ROM,存着每个字符的图形,叫"点阵图案"。

5、屏幕缓冲区 Screen buffer

为了显示,"字符生成器"会访问内存中一块特殊区域,这块区域专为图形保留,叫屏幕缓冲区,程序想显示文字时,修改这块区域里的值就行。

6、矢量命令画图

概念非常简单:所有东西都由线组成,矢量指令可以画出线,把许多矢量指令存在硬盘上,就能画出很多由线组成的复杂图形。

7、Sketchpad,光笔(Light pen),位图显示和画矩形

Sketchpad ,一个交互式图形界面,用途是计算机辅助设计 (CAD)。

光笔,就是一个有线连着电脑的触控笔,有了它们,用户可以画出很完美的线条并进行缩放等操作。

位图显示,内存中的位对应着屏幕上显示的像素。

想画更复杂的图形,如画矩形,我们需要四个值,起点的x y坐标,高度和宽度。

相关推荐
EasyCVR39 分钟前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
wowocpp2 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
萨格拉斯救世主2 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试2 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
pk_xz1234564 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强4 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock6 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
一坨阿亮9 小时前
Linux 使用中的问题
linux·运维
wclass-zhengge11 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱11 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范