《重新了解计算机基础》- Crash Course Computer Science(计算机科学速成课)笔记22-28

  1. 命令行界面(计算机之间的交互了解之后,如何让实现人机交互)

  1. 人机交互:通过输入输出设备实现

  1. 输入输出设备发展

  1. 早期的机械计算设备:齿轮、按钮、开关

  1. 早期的点击计算设备:机械面板、线

  1. 1950出现打孔纸卡,磁带,但此时并未实现真正的人机交互

  1. 1950晚期出现:键盘

  1. 最早的键盘用于打字机传输电报

  1. 后将电传打字机接入计算机,实现键盘输入数据

  1. 键盘成为真正的输入设备

  1. 1970年 屏幕代替打字机

  1. 电传打字机协议

  1. 终端:虚拟电传打字机,玻璃电传打字机

  1. 终端成为真正的输出显示设备

  1. 出现了命令行界面:通过命令对计算机进行操控

  1. 当人机可以交互之后,人们想要让屏幕实现更有意思的事情,然后就发明了游戏

  1. 早期著名的交互式文字游戏——Zork:通过输入命令得到线索或进行剧情

  1. 后来出现多人游戏简称:MUD

  1. 屏幕与2D图形(屏幕不止用来打字,还可以显示图像等)

  1. 屏幕显示图形发展(图形显示的两个需求:省内存,绘制任意图形)

  1. 早期的图形显示发展

  1. 早期的屏幕无法显示高清的文字,更多的作用是跟踪程序运行情况

  1. 一个最早最有影响力的发明:阴极射线管 CRT

  1. 原理:把电子发射到有磷光体涂层的屏幕上,电子撞击图层会发光几分之一秒。电子有磁场,可以控制电子的位置

  1. 在绘制图形的应用

  1. 两种绘制图形方式:

  1. 矢量扫描:引导电子描绘出形状

  1. 光栅扫描:按固定路径一行行来,从上到下从做到与不断重复,在特定的点打出光束,以此绘制图形。

  1. 因为内存不够,无法将使用像素,但为了显示人们发明了字符生成器(第一代显卡)

  1. 从内存中读取字符,转换为光栅图形

  1. 只有一小块只读存储器ROM

  1. 存储每个字符的图像:点阵图像

  1. 屏幕缓存区(帧缓存区):字符生成器会访问内存中的一个特殊区域(为了图像为保留的),该区域用来存图像像素数据

  1. 早期的矢量显示系统:Vectrex

  1. CRT上的矢量模式:所有东西都由线构成

  1. 原理:通过在调用内存中的矢量指令,将矢量图形显示在屏幕上

  1. 最早的电子游戏之一:Spacewarl 就是1962年在PDP-1上用矢量图形制作的

  1. PDP-1早期的图形计算机

  1. 第一个完整的图形程序Sketchpad

  1. 1962年Sketchpad诞生

  1. 交互式图形界面:计算机辅助设计(CAD)

  1. 该程序可自由画线和图形,并对图形进行旋转垂直,修正等操作

  1. 用到了发明不就得输入设备:光笔

  1. 人机交互关键的转折点

  1. 随着内存容量的发展,1969年代末,出现了真正像素的计算机和显示器

  1. 位图显示:内存的位对应像素的点

  1. 早起将像素数据存在帧缓存区,后来就存入了高速视频内存中(VRAM),该内存放在了显卡上

  1. 为了更方便:预先在内存中写好了来画各种图像的函数

  1. 推动计算机发展的两大主力:冷战和消费主义(政府和消费者)

  1. 计算机的发展

  1. 前面关于计算机软硬件发展总共发展也只用了30年时间:1940-1970

  1. 1950年Univac 1(计算机型号)诞生,第一台取得商用成功的电脑

  1. 1950年晶体管设备商业化,收音机取得成功

  1. 1950年苏联完成了第一个可编程电子计算机

  1. 1953年,全世界大概只有100台电脑

  1. 1955年引进晶体管后,索尼公司的第一款产品面世:TR-55晶体管收音机

  1. 计算机在战争取得的成就使得其发展被政府大力推队

  1. 集成电路:在美国与苏联的战争期间,军事(洲际导弹和核弹)、太空、超级计算机因为政府的支持得到了飞速的发展

  1. 在冷战和太空竞赛结束后,高利润的政府合同减少,使得计算机发展收到影响:

  1. 1974年 Intel裁员1/3

  1. 1979年著名的仙童半导体公司被濒临破产,被收购

  1. 手持计算机:因为其特性被广泛使用

  1. 促进了微处理器的发展

  1. 第一台家用电脑出现:1975年的Altair8800

  1. 第一批家用游戏机出现:1977年的Altair2600

  1. 个人计算机革命(超级计算机发展受限,用户更倾斜于普通消费者)

  1. 微型计算机:70年代初,各个组件成本下降,性能逐步强大,逐渐演化出个人计算机

  1. 微型计算机组成根本因素

  1. 单芯片CPU的出现

  1. 集成电路的进步,提供了低成本固态存储器 RAM ROM

  1. 便宜的存储介质的出现:磁盘磁带

  1. 低成本显示器:电视机改装而成

  1. 个人计算机的商业发展

  1. 第一台取得商用成功的计算机Altair8800,并为此计算机搭载了BASIC解释器

  1. 解释器:运行时转换,编译器:提前转换

  1. 1976年需要自己组装的Apple-I,开始发售,售价666.66美元

  1. 1977年出现三位一体:开箱即用的计算机,自带了BASIC解释器

  1. Apple-II:可以实现简单的彩色图像和声音输出

  1. TRS-80 1型 Tandy公司生产,价格只有苹果的一半

  1. commodove PET 2001:一体化设计,集成计算机、显示器、键盘、和磁带驱动器

  1. 1979年,第一个电子表格VisiCalc出现

  1. 因为苹果等个人计算机的出现IBM公司份额从1970年600%降到了1980年的30%

  1. 因此IBM让肮脏十二人组,自己发挥设计个人计算机

  1. 用到了Intel的CPU

  1. 微软的DOS系统

  1. 以及可以自由选择其它部件

  1. IBM发布了IBM PC 取得成功

  1. 根本原因:

  1. 使用了开放架构IBM Compatible (IBM兼容)

  1. 良好的文档以及扩展槽使得PC可以很好的兼容对手厂商的部件

  1. 因为IBM的发展,大部分无法兼容的企业获得了失败,唯有苹果没有

  1. 苹果采用自己独有的封闭架构:一切部件自己生产,可以控制用户体验,提高可靠性

  1. 拥有自己独有的图形界面系统:Macintosh

  1. 图形用户界面GUI(事件驱动编程:用户触发事件,人机交互更为深入)

  1. 图形用户界面发展

  1. 1964年恩格尔巴特与其同事共同创造了世界上第一个鼠标

  1. 1964年恩格尔巴特发明了系统onLine SYSTEM(NLS):作为跨时代产品,注定会失败

  1. 1968年在“秋季计算机联合会议”上展示了他的NLS,作为现代图像界面的原型。展现了以下功能

  1. 位图图像

  1. 文字处理

  1. 实时协作编辑文件

  1. 鼠标

  1. 多窗口(窗口无法重叠)

  1. 1973年Xerox PARC(帕罗阿尔托研究所)开发了第一台带真正GUI的计算机XEROX ALTO施乐奥托(未商业出售)

  1. 该计算机以桌面隐喻的方式:

  1. 2D屏幕为桌面,

  1. 用窗口来放程序

  1. 有相应的桌面配件

  1. 施乐奥托团队用窗口、图标、彩蛋、指针设计界面焦作WIMP

  1. 提供了一套基本组件、可复用基本元素:按钮、勾选框、滑动条、标签页等

  1. 1981年发布施乐之星系统(然而作为跨时代产品,且在同年IBM PC的发布,最终还是失败了)

  1. 扩展了桌面隐喻

  1. 加了对文件系统的桌面隐喻

  1. 1983年苹果第一台有图形用户界面和鼠标的产品Apple Lisa诞生(因为售价高,依旧未成功)

  1. 在施乐系统发布之前,1979年12月,乔布斯参观了施乐并于施乐达成了合作

  1. 1984年苹果又发布了Macintosh(售价低了一半,获得了成功)

  1. 在同年微软发布了Windows1.0

  1. Windows3.1之后又发布了Windows95:

  1. 并且添加了多任务和受保护内存

  1. 还发布过一款高度桌面隐喻的系统Micosoft Bob(但失败了)

  1. 而Windows、Mac、Linux等的图形用户界面GUI都是施乐奥托WIMP的变化版

  1. 3D图形

  1. 3D图形

  1. 3D图形就是在2D的基础上加Y轴

  1. 3D图形如何存入计算机

  1. 线框渲染:通过将3D点转换为2D点,再通过2D点连线,显示出3D投影

  1. 3D投影的两种方式

  1. 正交投影:立方体的各个边在投影中相互平行

  1. 透视投影:立方体的平乡县在远处交汇于一点

  1. 在3D图形学中,三角形又叫做多边形

  1. 形成3D图形的基础

  1. 网格:一堆多边形的组合,

  1. 网格越密、表面越光滑、细节越多、计算量也越大

  1. 3D图形的填充

  1. 3D图形填充算法:

  1. 扫面线渲染:

  1. 选中3D图形的一个多边形,从图形的最高点开始,从上往下,依次填充两点相交之间的像素,通过一行行扫描填充到最低点

  1. 填充速度fillrate:填充速率

  1. 当然一行行填充在与点所在的像素块,缩小看整体就会出现锯齿

  1. 消除锯齿的方法:

  1. 抗锯齿:

  1. 在三角形的内部涂满颜色,如果划过锯齿,颜色变浅

  1. 多用于字体、图标

  1. 3D图形的遮挡(多个图形叠加)

  1. 排序算法

  1. 画家算法

  1. 将图形依次按与像素的距离从远及近依次排序,然后从远及近依次渲染

  1. 深度缓冲(z-buffering)算法(不用排序,速度更快)

  1. 原理:

  1. z-buffering会将每个像素初始值设为无限大

  1. 对比图形与像素的深度,小于图形,则在缓冲区填充值

  1. 当之后的图形深度小于之前的图形时,则更新缓冲区信息

  1. z-fighting闪烁效果

  1. 当两个图形深度完全相同时,因为浮点数无法预测,无法判断哪个图形会出现在前,就会出现两个图形交替闪烁的效果

  1. 背面剔除:3D游戏优化,去除掉不必要不会出现的背面

  1. 灯光:明暗处理

  1. 最基本的照明算法:平面着色(边界明显不光滑)

  1. 表面线法:多边形面对的方向不同,颜色深浅度不同,通过给多边形渲染不同颜色深度的来展示明暗变化

  1. 高洛德着色

  1. 冯氏着色

  1. 纹理:纹理映射:取多边形纹理的平均色填充

  1. 加速渲染:当对3D图形进行越复杂的填充时,渲染时间长以及程度越复杂

  1. 解决方法:

  1. 硬件加速:使用单独的GPU图像处理单元(放在显卡上,有专门的RAM)

  1. 将场景分解之后,并行渲染

  1. 计算机网络(计算机与计算机之间交换数据)

  1. 背景

  1. 1970年之前,大多数计算机都是独立运行

  1. 第一台计算机网路出现于1950-1960年代

  1. 为了方便公司及研究所内部的数据交换

  1. 共享网络资源,如打印机或者存储器等

  1. 计算机网络的发展

  1. 局域网(LAN):近距离构成的小型网络

  1. 最著名成功的局域网:以太网

  1. 1970年代,在Xerox PARC发明

  1. 最简单的以太网形式:

  1. 一条以太网电线连接数台计算机

  1. 计算机之间传输数据通过电缆中传输电信号实现

  1. 弊端:传输数据所有人可见,且并不知道接收者是谁

  1. 解决办法:MAC地址

  1. MAC地址:媒体访问控制地址

  1. 将接收者的MAC地址放在数据的开头

  1. 以太网协议CSMA:载波侦听多路访问

  1. 多台电脑共享一个传输介质,

  1. 载体:运输数据的共享介质,带宽:载体传输数据的速度

  1. 以太网的传输介质:铜线,WIFI的传输介质:传输无线电波的空气

  1. 共享载体的弊端:

  1. 当网络流量较大时,两台机器同时写入数据的概率增大,从而出现冲突

  1. 发生冲突的解决方式:

  1. 停止传输:等待空闲,再试一次,这种方式解决问题的结果并不理想

  1. 以太网的一种解决方法:检测到冲突后,重传数据前等段一小段时间

  1. 指数退避:检测到冲突网络拥堵,以指数倍增长等待时间

  1. 以太网、WIFI、以及其他传输协议都用到了指数退避

  1. 计算机网络传输的两大要点:减少冲突,提高效率

  1. 方式:

  1. 减少冲突域(载体加连接数据)中同意载体连接的设备数量

  1. 将分开的设备通过交换机相连来传输数据

  1. 数据交换的三种方式

  1. 为了实现更多的计算机之间的数据交换:出现了路由,传输的数据的方式分为

  1. 电路交换:在线路之间设置专有线路,线路空闲即可传输

  1. 报文交换:用不同的路由线路跳转至重点

  1. 跳数:消息路由跳转的次数

  1. 跳数限制:当路由的跳数过高,即路由之间反复横跳,不继续往下进行,就会受到限制,刷新路由

  1. 当报文较大的时就会阻塞网络

  1. 解决方法:

  1. 将大报文分成小块数据包,分块传输

  1. 阻塞控制:路由器平衡与其他线路的负载,以确保传输快速可靠

  1. IP:创建于1970年代初报文的具体格式,由互联网协议定制

  1. TCP/IP协议:IP之上的协议:可以解决数据小块传输后的最终数据出现乱序的问题

  1. 还有其他路由协议:

  1. ICMP:因特网控制消息协议

  1. BGP:边界网关协议

  1. 分组交换(去中心化)

  1. 将数据打包成多个小数据包,通过灵活的路由传输

  1. 世界上第一组交换网络,现代互联网的祖先:ARPANET

  1. 最大的网络:互联网:网络与网络以通用协议连接

你可能感兴趣的:(学习)