计算机基础
一. 计算机了解
计算机俗称电脑,可以进行数值运算和逻辑运算,还有存储数据的功能,还可以按照程序运行,自动,高速的完成处理海量数据的电子设备。计算机从始至终都是想要发展成取代人脑的能力。
二. 计算机发展
早期计算机的发展:
数指头,结绳记事,算盘,帕斯卡发明的手表算法,发明微积分的莱布尼茨(牛顿齐名)(从八卦图里边悟出的二进制),但这都是手动的,计算机要发展成与人交互的功能,接下来是中国的提花编织机(需要人工根据图案编制经线和纬线,这已经有了程序的思想,但还需要人工的干预,这也是为什么程序员被叫做码农,程序设计叫做编程序的来源) ,之后慢慢的实现程序自动化。
然后是巴贝奇(蒸汽时代),他第一次的目的是做出一台差分机,(把复杂的运算转化成加减法运算,但计算机只认识加法)。
之后是艾肯,有IBM做后盾,发明了马克1号,而为它编程序的女数学家是格雷斯 .霍波,1944年在哈佛大学计算机研究工作,是世界上第一台大型计算机mark i的第三名程序员,她还为后来第一台储存程序的商业电子计算机UNIVAC写过程序,又率先研制成功第一个编译程序A-O和计算机商用语言COBOL,被公认为计算机语言领域的带头人(有一次在调制程序的时候出了故障,拆开继电器发现有只飞蛾被夹扁在触电中间,‘卡’住了程序的运行,于是霍波幽默把程序故障成为‘臭虫’(bug),而这一称呼成为计算机领域的专业行语,如DOS里的调试程序,程序名称就叫做DEBUG),马克1号这台计算机运作了15年,其实是差分机的升级版,它是用电的,其中编出的数学表现在还再用。它是早期计算机的最后代表,一投入运行的那个时刻,就已经过时,因为此时的人类社会已经进入了电子时代。
可以看出,马克1号和提花编织机的原理是类似的有一个仓库,用来存数据,(用一个介质来表示状态的变化),还要有运算,运算就要有控制器(相当于打孔的卡片,为了控制程序的运行),计算机在后期发展的时候,也是这个原理,只不过物理介质变了。
成熟计算机的发展:
背景:第二次世界大战的时候,美国在日本投了两颗原子弹,一个在广岛,一颗在长崎,第二颗原定目标是东京,然后由于计算偏差投偏了,投在了海里,基于此,美国研制出了第一台计算机。
1946.2.14 西方情人节,美国军方研制的世界上第一台电子计算机“电子数学积分计算机”在美国宾西法尼亚大学问世(ENIAV 中文名埃尼阿克),此时,人类社会经历了蒸汽时代,电时代,电子时代。
冯诺依曼体系:
三. 计算机的构成
一台完整的计算机由硬件系统和软件系统构成
1.硬件系统:看得见摸得着的物体,所有硬件共同组合在一起,成为硬件系统
(1)硬件系统由5大部分组成:运算器,控制器,存储器,输入折别,输出设备
(2)运算器:负责算术运算和逻辑运算,与控制器共同组成了中央处理器CPU
(3)控制器:负责发送和接受指令
(4)存储器:用来存储正在进行程序,将要进行程序的数据以及刚处理玩完的数据(更早的时候是内存,用来存数据,它的特点是基于电流的方式工作,这样的话有点就会产生数据,停电就凉凉,数据就会全部没有,所以后来就有了硬盘,他存数据也是二进制的,但基于磁的方式工作)
(5)输入设备:进行输入的设备,鼠标,键盘,扫描仪
(6)输出设备:进行输出的设备,显示器,音箱(听到的声音都是输出设备)
2.软件
根据之前讲的,手指运算需要规则,算盘需要规则,打孔图案需要图案,差分机(也是一种硬件)需要规则,计算机也需要一种规则(这就是软件)。
软件都是让计算机做特定的事情,一个不贴切的比喻,硬件和软件好比身体和精神(精神控制身体,软件控制硬件),也就是说硬件不能单独使用,必须依靠软件。
软件又分为系统软件和应用软件。他们的关系是计算机硬件—操作系统(本质上也是系统软件)—应用软件,也就是说刚买了电脑,在安装一个winx的系统,通过操作系统,下载应用软件,电脑就可以使用了。其中,用户可以和应用软件交互,也可以和操作系统交互,学习编程就是要对操作系统交互。
三. 计算机的工作过程
硬盘把数据加载到内存,cpu把内存的数据读出来
练习:
1.为什么要认识计算机
2.什么是计算机
3.计算机是由哪两个部分组成的
4.什么是硬件,什么是软件
5.硬件是由哪些部分组成的,软件可以分为哪些软件
四. 原码补码反码
1.原码
原码是符号位加上真值的绝对值,即第一位表示符号,其余位表示值,比如如果是8位二进制
[+1]原 = 0000 0001
[-1]原 = 1000 0001
所以8位二进制的取值范围是[1111 1111, 0111 1111] , 即[-127,127] (一共255个数)
2.反码
正数的反码是本身
负数的反码是在原码的基础上,符号位不变,其余各个数取反
[+1] = [0000 0001]原 =[0000 0001]反
[-1] = [1000 0001]原 = [1111 1110]反
3.补码
正数的反码是本身
负数的反码是在原码的基础上,符号位不变,其余各个数取反,最后加1,(也就是在反码的基础上加1)
[+1] = [0000 0001]原 =[0000 0001]反 = [0000 0001]补
[-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补
注:反码和补码通常需要转换成原码计算其数值,在计算机系统中,都是用补码来存储数据,这是因为计算机只认识加法,这样可以把减法转换成加法运算
网络通信原理
互联网的本质是一系列的***网络协议***
osi七层协议
两台计算机或者多台计算机之间的通信,连接的internet本质就是网络协议,互联网协议按照功能的不同分为osi七层,还可以分为tcp/ip五层,或者tcp/ip四层
osi七层简称应表会传网数物,每一层都有不同的协议
tcp/ip五层协议
1.物理层:作用就是发电信号01010
左边发送电信号010101给右边,右边接受到,这个过程需要分组,不然这个电信号就没有意义
2.数据链路层
功能:定义了电信号的分组方式,它工作的协议就是以太网协议
以太网协议
早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,就是以太网协议(ethernet)
ethernet规定:
1.一组电信号构成一个数据包,或者数据帧
2.每一数据帧分为:报头head,数据data
head包含:(固定18个字节)
•发送者/源地址:6个字节
•接收者/目标地址:6个字节
•数据类型:6个字节
data包含:(最少46字节,最多1500字节)
•数据包的具体内容
其中头是用mac地址限定的。
mac地址:
以太网协议规定,接入到互联网的电脑必须要有一块网卡,电脑在出场的时候就会被写死到上面,是唯一的一个mac地址,一般是12位16进制表示的,前6位是厂商编号,后6位是流水线号。
有了mac地址,同一网络的两个主机就可以通信了,(一台主机通过arp协议获取另外一台主机的mac地址)
我的包发出去是靠吼,要知道mac地址,得基于arp协议
目标mac的一堆F代表以arp协议想要获取对方的mac地址,代表着一种功能
3.网络层:
有了enternet,mac地址,广播的发送方式,世界上的计算机就可以相互通信了,问题是,世界上的计算机都是有一个个小的局域网组成的,如果一台机器已以太网的方式发送一个包,全世界都会收到,这会是一个灾难,这就涉及到了IP协议。
举个例子:两个教室是两个局域网,教室里边是数据链路层,可以吼着发包,跨教室就需要每个教室有一个负责人,一个教室发到另一个教室就让负责人发送这个包,这个负责人就是网关(基于路由)
IP协议
网络层的包封装起来发给数据链路层的data,然后数据链路层的data发给物理层以二进制的方式发出去。
这就会有两个包,根据上面讲的,也就是,先获取自己和对方的ip地址(自动的会做一个运算,判断两个ip地址在不在一个局域网,如果在,就是一个包,一步步解包,如果不是,对方的ip地址就要写成它的网关地址,包发过去的时候网关就会一直解包,找到对方的ip地址(网关之间的联系是靠路由)),再根据arp协议获取对方的mac地址。
总结:一台电脑有两个地址,一个IP地址,一个物理地址,(也就是一个mac地址,一个IP地址)
4.传输层
端口:每运行一个程序,这个程序就会绑定一个端口,这个端口是和网卡绑定到一起的,这会形成一个效果
IP后面加上上面的编号,可以理解为程序的唯一一个编号,房间里(IP地址)具体位置(mac)的唯一编号(如果不加:xx就只能找到那台机器,而不能找到机器上的程序,所以最终我的包一定会加一个端口号)
补充:我开发的软件必须要绑定一个端口,要绑定端口必须要按tcp协议或者udp协议写,但是举个例子,我要开发软件之前就要学习这两协议,太费事儿,这就要用到socket,也就是不用tcp或dup协议,只要简单的遵循socket就可以
5. 应用层
总结:对方拆包是按自上而下拆的,封包是按自下而上封的
总结:
1.计算机发展史→计算机的组成(分为两套系统:硬件系统,软件系统)
硬件系统:计算机核心:CPU,内存(基于电的方式),硬盘(基于磁的方式)
软件系统:
系统软件:控制硬件,调取硬件资源
应用软件:先装系统软件,再装应用软件
系统软件: 系统软件是怎么从无到有的
电脑一开始是废铁,要怎么工作?就是安装操作系统到硬盘上,然后通电。然后软件开始运行,流程是
首先软件不会存放到内存当中,不然关机就没了,所以操作系统os必须下载到硬盘里,要运行的话,从硬盘加载到内存(因为内存速度快),然后CPU从内存里调(因为慢)。
所以,一开机,就要等一段时间,等的就是操作系统运行起来 ,那么操作系统怎么跑到了内存里,然后cpu调用操作系统的代码然后执行,为什么硬盘知道把操作系统加载到内存,如果我的计算机有好几个盘,移动硬盘,光盘等等,那么计算机怎么知道操作系统装在哪个盘上?
主板电池(BIOS):告诉计算机操作系统在哪个盘上,在主板上是写死的代码,
只要一开机,先启动BIOS的程序,然后BIOS告诉你,系统在哪个硬盘上,然后电脑从硬盘上读出来到内存
应用软件:
也要下到硬盘里,我们桌面上是快捷方式,其实看他的属性,是一堆文件,要想运行,点那个exe文件双击(触发)(鼠标和鼠标点击文件运行的过程都是操作系统提供的结果),就可以打开文件。
arp协议
2.计算机之间的通信靠的是mac地址(可以理解为身份证),基于arp协议,自己的mac地址很容易知道,对方的mac地址要怎么知道?
对于同一区域的用户,首先发包的步骤分为3步:
1.根据IP地址计算两台机器是否在一个广播域,
2.通过arp协议
原mac 目标mac(FFFFFFFFFFFF) 192.168.11.10/24
3.原mac + 目标mac + 数据→ 发包
对于不同区域的用户,不能直接获取对方的目标mac,需要网关,网关与网关之间涉及到了路由,我们可以把路由理解为网关与网关之间搭了桥梁
1.IP地址计算出两个机器不在一个广播域
2.通过arp协议
这里的目标地址就是要对方局域网的网关地址,其中一般是 1
网络协议
1.网络分类:
局域网
城域网
广域网
2.传输介质
有线网
光纤网
无线网
DOS命令
查看IP地址信息
ping 跨网络通信 发一个数据包给对方,对方返回一个包,就ping成功了,用来测试能不能访问到对方
win目录结构
电脑里的C D F盘其实就是大的文件夹,一个目录,这些文件夹是操作系统提供的,并且是树形结构
win‘的顶级目录,比如我的电脑就有C D E3个顶级目录
切换根目录不用加cd
现在创建一个新的文件,并且一层一层的删除
F:asaz.txt
关于dos命令的md,cd,rd分别是什么英文缩写:
MD→MKDIR→Make Directory(M是Make的缩写,不是Made的缩写)
CD→CHDIR→Change Directory
RD→RMDIR→Remove Directory