导图社区 ①PC相关速成
计算机相关速成,涉及硬件结构、软件开发、高新技术介绍
编辑于2020-04-12 19:50:11PC相关速成
压缩
以图为例,①减少重复信息(如7黄代替连续7个黄)②DFTBA(字典编码,利用哈夫曼编码),以上均无损压缩。还可用有损压缩,如超声波部分舍弃,压缩太严重会出错,如视频的莫名画面
命令行界面
早期以电传打字机上的纸作为显示,现屏幕视为无限长的纸,这些虚拟电传打字机叫终端(处理输入/出)
屏幕&2D图形显示
阴极射线管:把电子(磁场控制)发射到有磷光体涂层的屏幕,可发光一会儿。可矢量扫描(可绘制任意)/光栅扫描(有字符生成器) 液晶(LCD):也可用光栅扫描,像素信息放在内存的帧缓冲区,程序可操纵它实现交互式
冷战和消费主义
个人计算机革命
IBM研制PC,用了intel芯片,微软DOS(win前身)。而apple封闭架构,自己设计一切
图形用户界面
GUI程序:用窗口、图标、菜单、指针来做(还有按钮…)。事件驱动编程,非从上向下执行,代码与事件相连,每次点按钮会触发代码
3D图形
似三维软件中用网格表示3D图形 GPU:图形处理单元,在显卡(显示器适配器,在CPU控制下,将主机送来的显示数据转为视频和同步信号送给显示器)上
计算机网络
近距离构成的小型网络叫局域网,简称LAN。最出名为以太网,最简单是用以太网线连PC,若一台传信号给另一台,以电信号传入电缆,通过每台PC唯一的媒体访问控制地址(MAC地址)(为数据前缀)辨认谁来接收(MAC用于以太网和无线网络wifi,以太网载体为铜线,wifi为传播无线电波的空气)
多PC同时侦听载体,叫侦听和多路访问(传输数据的速度称带宽)。但用共享载体有弊端,当网络流量大,多台想传会冲突 解决:当PC检测到冲突,重发前等会儿,每台等不同时间。若再冲突,等2/4/8s...直至成功
为减少冲突+提高效率,要减少同一载体中设备的数量,载体和其中设备总称“冲突域”,利用交换机(位于更小的网络间,必要时在两网络间传数据)(互联网也是多个连在一起的小网络,大型网络从一处去另一处有多线路,引出路由)
连接两台远的PC:①分配专用线路②报文交换:经多站点,可由不同路由(用来共享网络,让多电脑用一账户接入网络)。若信息太大,可能拥堵,故把大数据分成小块(数据包),都有目标地址,故路由器知道发去哪,may经过不同路由,到达顺序不同,TCP/IP解决乱序问题(message格式由(互联网协议)IP协议决定)
互联网
PC与巨大的分布式网络连一起,即互联网(由无数互联设备组成)
计算机为获取此视频,先连上LAN(连上wifi的所有设备组成局域网),LAN连上WAN(广域网),一般属于互联网服务供应商(如电信…)(WAN先连到一区域性路由器,再连更大范围的,直至互联网主干)(例:数据包由PC去服务器may跳10次,4次至主干,2次跳过主干,主干出来may4次到服务器。如PC在LAN中IP地址起至wifi路由器,穿过一个个地区路由器至主干…)
数据包想在互联网传输要符合IP协议(互联网协议)(底层协议)(数据包:IP Header,Data Payload,但到达对应PC后不知给哪个程序,故得有更高级协议,如UDP/TCP) UPD(用户数据报协议):UDP Header(含端口号,每一想访问网络的程序都得向OS申请一端口号(相当于进房的窗,有些已对应确定服务),还含校验和,但不提供数据修复/重发,也无法得知数据是否到达)+data TCP(传输控制协议):确保所有数据到达,IP Header+TCP Header(有端口号、校验和,还有序号来排序,并要求接收方接收无误后返回ACK确认码,故可解决乱序和数据包丢失问题,但由于数据量变大,不适合对时间要求高的程序)+data
PC访问一网站需要IP地址+端口号(互联网有项服务把域名和IP地址一一对应,为域名系统DNS,在浏览器输入xxx.com,会问DNS服务器(互联网供应商提供)IP地址,然后浏览器会给这个IP地址发TCP请求。DNS存成树状结构,顶级域名在顶部,如.com、.edu,二级域名如google.com,子域名如images.google.com。这些分散在很多DNS服务器上,不同服务器负责不同部分)
万维网
在互联网之上运行(互联网用于传输,传输最多数据的程序是万维网,可用浏览器访问),最基本单位是单个页面,有内容、超链接(形成巨大呼叫网络),为了网页能相互连接,需要每一网页要唯一地址,叫“统一资源定位器”(URL)(如thecrashcourse.com/courses)
当访问一网站,PC先DNS查找,输入域名,找到IP地址,浏览器再TCP连上IP地址(对应一个服务器),向其请求某页面(用http超文本传输协议)(如给服务器发送对应指令,返回地址对应网页,浏览器渲染到屏幕,不存在404)
超文本标记语言html用于做网页,写入记事本,取名为test.html,拖入浏览器打开。域名要绑在服务器空间,若没有服务器,可去万维网买空间和域名,上传去空间,备案即可
万维网有开放标准,大家可开发新服务器和新浏览器。互联网实现传输,但连接对象未必都有网页
网络中立性:应平等对待所有数据包,速度/优先级应同
计算机安全
看成保护系统和数据的保密性、完整性、可用性 主要安全问题:你是谁、你能访问什么
黑客&攻击
①欺骗他人使之泄密/让配置电脑为更易攻击 ②nand mirror(缓冲区溢出,可修改内存) ③代码注入:常攻击用数据库的网站(登陆时服务器进行SQL查询) 若有足够多电脑被黑(蠕虫),可组僵尸网络,大量发垃圾邮件等,攻击/堵塞服务器
加密
可用加密算法把明文转为密文,分为:对称加密和非对称加密 对称加密(双方用一样的密钥加解密):替代加密、移位加密、Diffie-Hellman密钥交换建共享密钥 非对称加密:一公开,一私有,人们用公钥加密,只有私钥能解密
机器学习&人工智能
机器学习(ML)(让PC可用从数据中学习,然后自行做出预测和决定)属于人工智能(AI)一部分 ML负责找出最好的线、最准的决策边界,其中含神经网络算法(仿大脑神经元),分输入层、隐藏层(可多层)、输出层,深度神经网络可较为准备地识别人脸
计算机视觉
让PC理解图像和视频,最简单的是跟踪一颜色物体,如今最热门的是卷积神经网络
自然语言处理(NLP)
怎么让PC理解语言(结合计算机科学和语言学):把语言拆分,方便计算机处理(早期利用规则,对话固定,现多用机器学习,用真人聊天数据训练,发音用语音合成,把音素拼一起输出,语音识别即音素识别,现多用深度神经网络)
机器人
由PC控制,可以自动执行一系列动作的机器 PID控制:比例值(实际值和理想值差值,越大就越用力,即比例控制,但may滞后),积分值(一段时间内误差总和,帮助弥补误差,很大说明比例控制不够),导数值(期望值和实际值之间的变化率,叫预测控制)。三者有不同权重,来控制系统
计算机心理学
理解人类认知系统能帮助创建更好的界面
教育科技
奇点、天网、计算机的未来
奇点:智能科技失控性发展
生物体可能变为数字体,肉体die,思维alive
文件与文件系统
文本文件(txt):同其他所有文件,仅一长串二进制数(如可由ASCII码解读)
音频文件(wav):声压越大,数字越大,文件中存数字(播放时扬声器会产生相同波形),文件开头元数据(如道码率、单声道/立体声…)
图形文件(bmp):每个像素是红绿蓝混合,开头亦元数据(颜色深度(如三种颜色各8位)、图片宽高…)
目录文件:含其下文件信息,也有文件元数据(如创建时间)。增/减文件(记录删了,东西还在)/改名,必须更新目录文件
目录文件及对其的管理是文件系统的简单例子,称平面文件系统(记录文件在哪些块,只要分配块,文件可轻松增大变小),改进为分层文件系统 文件系统使得不必关心文件具体位置,整理和访问文件更轻松
内存&储存介质
从快到慢:processor register-processor cache-random access memory-flash/usb memory-hard drives-tape backups 现慢慢转为固态(SSD)(不像机械硬盘,里面没有移动部件,访问时间短),如硬盘/U盘,里面是IC CD(光盘)/DVD:似硬/软盘,存数据,但不用磁性,CD表面的坑造成光的不同反射,被传感器捕捉后解码
操作系统
有操作硬件的特殊权限,可运行和管理其他程序,一般为开机第一个程序,其他由它启动。充当软硬件介质,即OS提供API抽象硬件(驱动)
能力:多任务处理、虚拟内存(一程序可能分配去内存的数十个地方,为隐藏复杂度,假定内存从0开始,但不同程序的0不同)、内存保护
计算机不仅可多任务,还可多用户同时访问(用终端(屏幕+键盘)访问)
unix=kernel+有用工具(如库)
集成电路&摩尔定律
最初晶体管间电线连接,之后电路所有组件集成在一起(IC),IC仍需连上创造更大电路,故出现PCB板,用蚀刻金属线方式把零件连在一起,二者结合可大幅减少独立组件和电线 为实现更复杂的设计,出现光刻制作工艺,用光把复杂图案印在材料上(如半导体),从晶圆(一片Si)开始,可以做很多IC,之后切割包入微型芯片
摩尔定律:每两年,相同空间可放入两倍的晶体管。CPU可集成于一芯片,如iphone7的CPU有33亿晶体管
软件工程
强调软件开发的工程性,预防错误
汽车中与定速巡航有关函数可包装为定速巡航对象,相关函数下还有函数和变量。把函数打包成对象的思想叫面向对象编程(核心是隐藏复杂度,选择性公布功能)(对象中的函数可设置权限,public/private)
用专门工具(IDE)集成开发环境写代码,集成整理、编译、测试等功能。很重要的是写文档 源代码管理(可追踪所有变化):大公司把代码放一中心服务器,称代码仓库,想改就借,没问题就提交
阿兰.图灵(计算机之父)
turing machine(理论计算设备) PC能够欺骗人类它是人,才算智能 图灵奖:CS最高奖
数据结构
选定后算法亦确定。为存储、组织数据的方式,又分为逻辑结构(用于设计算法)(集合结构、线性结构、树形结构、图形结构)、存储结构(用于算法编码实现)(顺序、链接、索引、散列)、数据运算
多数编程语言自带预先训好的数据结构,如C++标准模板库、java的java类库
算法入门
解决问题的具体步骤,最多的为排序 算法的输入规模和运行时长间关系为算法复杂度 Dijkstra算法用于图搜索最佳路径,用广度优先搜索,记下固定点到每个点的最小路径长度
编程原理--语句和函数
函数即模块化变成,官方的为库
编程语言发展史
机器码-汇编(程序员仍需要思考用什么寄存器和内存地址,但不用固定跳转地址,给跳转标签即可)-高级语言(变量对应地址)
早期的编码方式
(1975前)用穿孔纸卡将程序导入内存,也可导出(冯诺依曼把二者放一起,哈佛把指令放ROM,数据放RAM)
高级CPU设计
晶体管组成了逻辑门、ALU及其他组件。现ALUmay加入除法功能,指令变多
CPU加速:①减少RAM与CPU交互时间(用cache)②指令流水线(并行处理)(①一次性处理多条指令:优化一个指令吞吐量/运行多个指令流(可用多核处理器(1CPU中多处理核心))②加多几个相同电路:CPU中有多个ALU,可执行出行频次高的指令)
指令和程序
指令和数存在同一内存,无差别,用HALT指令区别它们
改进:更多位表示指令、可变指令长度
中央处理器(CPU)
组成:运算器(ALU、累加器…)、控制器(译码、发出控制信号)、寄存器
可给CPU支持的所有指令分配一ID,前4位存操作码,后4位表数据来自哪
启动PC时所有register为0。CPU:①取指令阶段②解码阶段(这两步由控制单元来)③执行阶段
CPU与内存间交流通过register
FPGA(现场可编程门阵列)为空芯片,可定制为特定专用芯片,CPU有计算/控制功能
寄存器&内存
最初用门电路实现存0/1(锁存器set为1,output为1,reset为0,output为0。都0则为最后放入的东西) 一组锁存器叫寄存器,可存一位数,位数称位宽 内存原理略
算术逻辑单元(ALU):负责运算的组件
1个算术单元(负责所有数学操作)+1个逻辑单元 算术单元:用门电路实现半加器,再全加器,最后8-bit adder 逻辑单元:and、or...
二进制
首位1为负数,否则正数 浮点数表示:有效位数(小于1)×指数(正负1bit,指数8bit,有效位数23bit) ASCII码(8位):美国信息交换标准代码(128-255给各国使用)。unicode(16位)解决不同国家不同标准
布尔逻辑和逻辑门
可由晶体管实现布尔逻辑。有:not、and、or、xor(异或)
电子计算机:继电器-真空管-晶体管
继电器(用电控制的机械开关,通电有吸力,连通)、真空管(电子开关,加热发射电子,形成电流)(三级真空管:多个控制电极,加正电后允许电子流动)、晶体管(电极间用半导体隔开,通电后可导通)
半导体芯片:在其上浸蚀、布线,制成的实现某种功能的半导体器件
IBM:全球最大计算机公司(PC业务给联想) 微软:提供电脑软件服务业务(第二:oracle甲骨文) intel:半导体芯片 HP:打印机、云产品、服务器、平板、电脑… NVDIA(英伟达):显式芯片、主板芯片 AMD:CPU、GPU、APU、主板芯片 (GPU而言NVDIA好,CPU而言intel好) (显卡:GPU、显存、供电、散热…)
计算机早期历史