《重新了解计算机基础》- Crash Course Computer Science(计算机科学速成课)笔记22-28
-
命令行界面(计算机之间的交互了解之后,如何让实现人机交互)
-
人机交互:通过输入输出设备实现
-
输入输出设备发展
-
早期的机械计算设备:齿轮、按钮、开关
-
早期的点击计算设备:机械面板、线
-
1950出现打孔纸卡,磁带,但此时并未实现真正的人机交互
-
1950晚期出现:键盘
-
最早的键盘用于打字机传输电报
-
后将电传打字机接入计算机,实现键盘输入数据
-
键盘成为真正的输入设备
-
1970年 屏幕代替打字机
-
电传打字机协议
-
终端:虚拟电传打字机,玻璃电传打字机
-
终端成为真正的输出显示设备
-
出现了命令行界面:通过命令对计算机进行操控
当人机实现了互动后,人们希望屏幕能够呈现更加有趣的内容。基于此需求的基础上,游戏应运而生。
-
早期著名的交互式文字游戏——Zork:通过输入命令得到线索或进行剧情
-
后来出现多人游戏简称:MUD
-
屏幕与2D图形(屏幕不止用来打字,还可以显示图像等)
-
屏幕显示图形发展(图形显示的两个需求:省内存,绘制任意图形)
-
早期的图形显示发展
-
早期的屏幕无法显示高清的文字,更多的作用是跟踪程序运行情况
-
一个最早最有影响力的发明:阴极射线管 CRT
原理:通过将电子射向带有磷光涂层的屏幕,在碰到屏幕表面后会短暂发光;同时存在磁场使得电子能够被精准定位
-
在绘制图形的应用
-
两种绘制图形方式:
-
矢量扫描:引导电子描绘出形状
光栅扫描采用的是按照一定的行进路线逐行进行的方式,在自上而下的过程中横向来回移动,在各个指定的位置发射光线束,并通过这些光线束从而完成图像绘制。
-
由于内存容量有限,在应用像素技术方面存在局限性。尽管如此,人们仍通过字符生成器实现了图形显示(第一代显卡)。
-
从内存中读取字符,转换为光栅图形
-
只有一小块只读存储器ROM
-
存储每个字符的图像:点阵图像
屏幕缓存区(也称为帧缓存区):字符生成器会占用内存中的一个特殊区域(用于存储图像像素数据)。这个特殊区域主要用于存储图像像素数据。
-
早期的矢量显示系统:Vectrex
-
CRT上的矢量模式:所有东西都由线构成
-
原理:通过在调用内存中的矢量指令,将矢量图形显示在屏幕上
-
最早的电子游戏之一:Spacewarl 就是1962年在PDP-1上用矢量图形制作的
-
PDP-1早期的图形计算机
-
第一个完整的图形程序Sketchpad
-
1962年Sketchpad诞生
-
交互式图形界面:计算机辅助设计(CAD)
-
该程序可自由画线和图形,并对图形进行旋转垂直,修正等操作
-
用到了发明不就得输入设备:光笔
-
人机交互关键的转折点
-
随着内存容量的发展,1969年代末,出现了真正像素的计算机和显示器
-
位图显示:内存的位对应像素的点
开机后会将像素数据存储于帧缓存区。随后将放入到高速视频内存中(VRAM),该内存单元安置在显卡上。
-
为了更方便:预先在内存中写好了来画各种图像的函数
-
推动计算机发展的两大主力:冷战和消费主义(政府和消费者)
-
计算机的发展
-
前面关于计算机软硬件发展总共发展也只用了30年时间:1940-1970
-
1950年Univac 1(计算机型号)诞生,第一台取得商用成功的电脑
-
1950年晶体管设备商业化,收音机取得成功
-
1950年苏联完成了第一个可编程电子计算机
-
1953年,全世界大概只有100台电脑
-
1955年引进晶体管后,索尼公司的第一款产品面世:TR-55晶体管收音机
-
计算机在战争取得的成就使得其发展被政府大力推队
集成电路:冷战时期因政府支持而迅速发展军事上的(洲际导弹和核弹)、太空及超级计算机
随着冷战与太空竞赛的结束,高利润的政府合同数量有所缩减,从而导致计算机的发展受到一定的制约。
-
1974年 Intel裁员1/3
-
1979年著名的仙童半导体公司被濒临破产,被收购
-
手持计算机:因为其特性被广泛使用
-
促进了微处理器的发展
-
第一台家用电脑出现:1975年的Altair8800
-
第一批家用游戏机出现:1977年的Altair2600
-
个人计算机革命(超级计算机发展受限,用户更倾斜于普通消费者)
微机:上世纪七十年代初期,在各部件价格显著降低的基础上发展起来的微机,在性能不断升级的过程中自然发展成个人电脑。
-
微型计算机组成根本因素
-
单芯片CPU的出现
-
集成电路的进步,提供了低成本固态存储器 RAM ROM
-
便宜的存储介质的出现:磁盘磁带
-
低成本显示器:电视机改装而成
-
个人计算机的商业发展
第一台实现了商用价值的计算机是Altair8800,并为此计算机配备了BASIC解释器
-
解释器:运行时转换,编译器:提前转换
-
1976年需要自己组装的Apple-I,开始发售,售价666.66美元
-
1977年出现三位一体:开箱即用的计算机,自带了BASIC解释器
-
Apple-II:可以实现简单的彩色图像和声音输出
-
TRS-80 1型 Tandy公司生产,价格只有苹果的一半
-
commodove PET 2001:一体化设计,集成计算机、显示器、键盘、和磁带驱动器
-
1979年,第一个电子表格VisiCalc出现
-
因为苹果等个人计算机的出现IBM公司份额从1970年600%降到了1980年的30%
-
因此IBM让肮脏十二人组,自己发挥设计个人计算机
-
用到了Intel的CPU
-
微软的DOS系统
-
以及可以自由选择其它部件
-
IBM发布了IBM PC 取得成功
-
根本原因:
-
使用了开放架构IBM Compatible (IBM兼容)
-
良好的文档以及扩展槽使得PC可以很好的兼容对手厂商的部件
-
因为IBM的发展,大部分无法兼容的企业获得了失败,唯有苹果没有
苹果运用独特的封闭架构策略:所有组件内部自行制造,并且通过这种方式能够确保用户体验的一致性和稳定性;同时还能提升系统的稳定性和安全性。
-
拥有自己独有的图形界面系统:Macintosh
-
图形用户界面GUI(事件驱动编程:用户触发事件,人机交互更为深入)
-
图形用户界面发展
-
1964年恩格尔巴特与其同事共同创造了世界上第一个鼠标
-
恩格尔巴特开发了名为SYSTEM(NLS)的在线系统:作为一项具有里程碑意义的技术,在未来的发展中预计难以成功
1968年,在首次公开展示 his NLS 作为现代图像界面的基础架构时,该系统实现了多项核心技术。
-
位图图像
-
文字处理
-
实时协作编辑文件
-
鼠标
-
多窗口(窗口无法重叠)
1973年Xerox PARC制造了一款具有真正图形用户界面的第一台电脑施乐奥图,并且未曾投入市场。
-
该计算机以桌面隐喻的方式:
-
2D屏幕为桌面,
-
用窗口来放程序
-
有相应的桌面配件
-
施乐奥托团队用窗口、图标、彩蛋、指针设计界面焦作WIMP
-
提供了一套基本组件、可复用基本元素:按钮、勾选框、滑动条、标签页等
-
施乐之星系统于 1981 年推出(然而作为划时代的产物,在其同一年 IBM 个人计算机的推出中也未能成功推出)
-
扩展了桌面隐喻
-
加了对文件系统的桌面隐喻
-
1983年苹果推出了采用图形用户提供界面并配备鼠标的电脑Apple Lisa(尽管其售价较高而未能取得预期效果)
-
在施乐系统发布之前,1979年12月,乔布斯参观了施乐并于施乐达成了合作
-
1984年苹果又发布了Macintosh(售价低了一半,获得了成功)
-
在同年微软发布了Windows1.0
-
Windows3.1之后又发布了Windows95:
-
并且添加了多任务和受保护内存
-
还发布过一款高度桌面隐喻的系统Micosoft Bob(但失败了)
-
而Windows、Mac、Linux等的图形用户界面GUI都是施乐奥托WIMP的变化版
-
3D图形
-
3D图形
-
3D图形就是在2D的基础上加Y轴
-
3D图形如何存入计算机
-
线框渲染:通过将3D点转换为2D点,再通过2D点连线,显示出3D投影
-
3D投影的两种方式
-
正交投影:立方体的各个边在投影中相互平行
-
透视投影:立方体的平乡县在远处交汇于一点
-
在3D图形学中,三角形又叫做多边形
-
形成3D图形的基础
-
网格:一堆多边形的组合,
-
网格越密、表面越光滑、细节越多、计算量也越大
-
3D图形的填充
-
3D图形填充算法:
-
扫面线渲染:
选择一个3D图形中的多边形,并从该图形的顶部顶点开始。自上而下地沿着两条交点之间的线条依次填充像素块。逐行扫描至最低端完成填充。
-
填充速度fillrate:填充速率
-
当然一行行填充在与点所在的像素块,缩小看整体就会出现锯齿
-
消除锯齿的方法:
-
抗锯齿:
-
在三角形的内部涂满颜色,如果划过锯齿,颜色变浅
-
多用于字体、图标
-
3D图形的遮挡(多个图形叠加)
-
排序算法
-
画家算法
-
将图形依次按与像素的距离从远及近依次排序,然后从远及近依次渲染
-
深度缓冲(z-buffering)算法(不用排序,速度更快)
-
原理:
-
z-buffering会将每个像素初始值设为无限大
-
对比图形与像素的深度,小于图形,则在缓冲区填充值
-
当之后的图形深度小于之前的图形时,则更新缓冲区信息
-
z-fighting闪烁效果
若两图形深度完全一致,则由于浮点运算的不可预知性,在判定哪一图形位于前时会出现两图交替闪烁的现象
-
背面剔除:3D游戏优化,去除掉不必要不会出现的背面
-
灯光:明暗处理
-
最基本的照明算法:平面着色(边界明显不光滑)
表面线法:多边形面朝的方向各异,在其表面呈现亮度不同的层次感,并通过渲染这些层次感来展现物体的明暗变化
-
高洛德着色
-
冯氏着色
-
纹理:纹理映射:取多边形纹理的平均色填充
-
加速渲染:当对3D图形进行越复杂的填充时,渲染时间长以及程度越复杂
-
解决方法:
-
硬件加速:使用单独的GPU图像处理单元(放在显卡上,有专门的RAM)
-
将场景分解之后,并行渲染
-
计算机网络(计算机与计算机之间交换数据)
-
背景
-
1970年之前,大多数计算机都是独立运行
-
第一台计算机网路出现于1950-1960年代
-
为了方便公司及研究所内部的数据交换
-
共享网络资源,如打印机或者存储器等
-
计算机网络的发展
-
局域网(LAN):近距离构成的小型网络
-
最著名成功的局域网:以太网
-
1970年代,在Xerox PARC发明
-
最简单的以太网形式:
-
一条以太网电线连接数台计算机
-
计算机之间传输数据通过电缆中传输电信号实现
-
弊端:传输数据所有人可见,且并不知道接收者是谁
-
解决办法:MAC地址
-
MAC地址:媒体访问控制地址
-
将接收者的MAC地址放在数据的开头
-
以太网协议CSMA:载波侦听多路访问
-
多台电脑共享一个传输介质,
-
载体:运输数据的共享介质,带宽:载体传输数据的速度
-
以太网的传输介质:铜线,WIFI的传输介质:传输无线电波的空气
-
共享载体的弊端:
-
当网络流量较大时,两台机器同时写入数据的概率增大,从而出现冲突
-
发生冲突的解决方式:
-
停止传输:等待空闲,再试一次,这种方式解决问题的结果并不理想
-
以太网的一种解决方法:检测到冲突后,重传数据前等段一小段时间
-
指数退避:检测到冲突网络拥堵,以指数倍增长等待时间
-
以太网、WIFI、以及其他传输协议都用到了指数退避
-
计算机网络传输的两大要点:减少冲突,提高效率
-
方式:
-
减少冲突域(载体加连接数据)中同意载体连接的设备数量
-
将分开的设备通过交换机相连来传输数据
-
数据交换的三种方式
在众多计算机之间实现了数据交流,在这一过程中产生了路由机制,并划分了传输数据的方式。
-
电路交换:在线路之间设置专有线路,线路空闲即可传输
-
报文交换:用不同的路由线路跳转至重点
-
跳数:消息路由跳转的次数
-
步长限制:当路径的步长超出设定上限时,在处理完当前所有路由信息后不再继续处理后续路由信息,并触发新的路由刷新流程。
-
当报文较大的时就会阻塞网络
-
解决方法:
-
将大报文分成小块数据包,分块传输
-
阻塞控制:路由器平衡与其他线路的负载,以确保传输快速可靠
-
IP:创建于1970年代初报文的具体格式,由互联网协议定制
互联网协议族中的网络层以上的通信协议能够有效解决数据分片传输可能导致的数据顺序混乱问题
-
还有其他路由协议:
-
ICMP:因特网控制消息协议
-
BGP:边界网关协议
-
分组交换(去中心化)
-
将数据打包成多个小数据包,通过灵活的路由传输
-
世界上第一组交换网络,现代互联网的祖先:ARPANET
-
最大的网络:互联网:网络与网络以通用协议连接
