米拓cms可以做企业网站吗,重庆网络建站,网站如何做搜狗搜索引擎,各地网站备案计算机组成原理 简单易学、开源免费、可移植、可拓展、可嵌入、面向对象#xff0c;比java、c#等更彻底 谷歌、CIA、nasa、YouTube、Dropbox、Instagram、Facebook、redhat、豆瓣、知乎、春雨医生、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等都在使…计算机组成原理 简单易学、开源免费、可移植、可拓展、可嵌入、面向对象比java、c#等更彻底 谷歌、CIA、nasa、YouTube、Dropbox、Instagram、Facebook、redhat、豆瓣、知乎、春雨医生、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等都在使用Python 1. 初识计算机 1.1 什么是计算机 计算机俗称电脑是现代化一种用于电子高速计算的电子计算机器可以进行数值计算又可以作逻辑计算条件还有逻辑记忆功能能够按照程序运行自动、高速处理海量数据嗯现代化智能电子设备。 程序自动化可以将预先编译好的程序组纳入计算机内存在程序的控制之下计算机可以连续、自动地工作不需要人为的干预高速当今计算机的运算速度已经达到每秒万亿次普通电脑也能达到每秒亿次以上使大量复杂的科学计算问题能够得以解决1.2 计算机的发展历程 数手指算盘莱布尼茨发明 二进制设计思路想法来自中国的八卦阴阳 0/1提花纺织机差分机 —— 巴贝奇、阿达齿轮、蒸汽马克 1 号世界上第一台大型计算机1944年2月在哈佛大学正式运行在巴贝奇基础上设计出来的—— 艾肯马克 1 号第三位程序员格蕾丝.霍波调试程序时发现有只飞蛾卡在触点中间阻止了机器的运行于是她诙谐地把程序故障统称为 臭虫bug1946年2月14日又美国军方定制的第一台 电子计算机 “电子数字积分计算机” 在宾夕法尼亚大学问世表明电子计算机时代的到来冯诺依曼要点计算机采用二进制计算机程序要按顺序进行之所以用二进制是为了底层方便高低电平设置1.3 计算机的构成 由硬件和软件系统两大部分组成 硬件主机、外部设备 运算器、控制器、存储器、输入设备、输出设备运算器是负责算术运算与逻辑运算与控制器共同组成了中央处理器 CPU控制器负责发送和接收指令存储器用来存储最够的进行程序、将要进行程序的数据及刚处理完的数据输入设备用来进行输入的设备。如键盘、扫描仪等输出设备用来输出的设备。如显示器。音箱等内存基于电存储停电丢失速度快 —— 临时存储硬盘基于磁存储 —— 永久存储没有内存存储速度快主机包含中央处理器CPU、内存中央处理器cpu 运算器控制器寄存器缓存内存 只读存储器ROM随机存储器RAM软件系统软件 —— 操作系统、程序设计语言、应用软件 分为系统软件基于硬件、应用软件基于系统软件 硬件 —— 系统软件 —— 应用软件 —— 用户 软件的本身是一堆数据运行软件时加载到内存CPU到内存读取数据通过运算再显示出来 2. 数据 计算机采用二进制的主要原因 技术实现简单计算机由逻辑电路组成只有两个状态开关的接通和断开正好对应 1 和 0简化运算规则适合逻辑运算易于进行转换二进制与十进制之间易于转换抗干扰能力强可靠性高等2.1 进制转换 十进制转二进制 除2取余法倒着取将十进制转换为任意 n 进制除 n 取余法二进制转十进制 11012 1 * 2^3 1 * 2^2 0 * 2^1 1*2^0 13 八进制 由于二进制数据的基 R 较小书写和阅读不方便因此在小型机上引入了八进制。八进制的基 R 8 2 ^3有数码 0 、1 、2 、3 、4 、 5、 6 、7并且每个数码正好对应三位二进制数所以能够很好地反应二进制。用下标 8 或后面跟 0 表示。 二进制数据11 101 010 . 010 110 1002 对应 八进制数据3 5 2 . 2 6 4 或 352.2640 八进制转十进制 (13)8 1*8^1 3*8^0 11 十六进制 由于二进制在使用中位数太长不容易记忆所以就提出了十六进制数如 4AC816它有两个特点 由十六个字符 0 ~ 9 以及 A B C D E F 组成分别表示 10 ~ 15逢十六进一即基 R 16 2 ^4通常在尾部标志 H 或下标 16 来区别十六进制转十进制 (4AC8)16 4*16^3 10*16^2 12*16^1 8*16^0 十六进制转二进制 只要将每一位十六进制数用对应的 4 位 二进制数替代即可 —— 简称 四位一分 4 A F 8 B 0100 1010 1111 1000 1011 10010101111100010112 二进制转十六进制 分别向左向右每四位一组依次写出每组 4 位二进制所对应的十六进制数 —— 简称 四位合一位 (0001 1101 0110)2 (1 D 6)16 只需将每四位转换成十进制即可最后一位不足时用 0 补齐 二进制转八进制 将二进制数分为三个一组每组转为十进制 —— 三位二进制 (0 101 011)2 (0 5 3)8 2.2 二进制四则运算 逢二进一 2.3 机器数与真值 2.3.1 机器数 一个数在计算机中的二进制表示形式叫做这个数的机器数。机器数带符号用一个数的最高存放符号正数为 0负数为 1 如十进制数 3 计算机字长为 8 位转换为二进制是0000 0011如果是 -3 那么就是1000 0011 2.3.2 真值 机器数不等于真正的数值去掉最高位的符号位余下的七位即为机器数的真值 2.4 原码、反码、补码 都是有符号的二进制表示数的方法均有符号位和数值位构成 2.4.1 原码 符号位加上真值的绝对值即用第一位表示符号其余位表示值如八位二进制 [1] 的原码为 0 000 0001
[-1] 的原码为 1 000 0001 取值范围为 1111 11110111 1111即 [-127, 127] 2.4.2 反码 正数的反码是其本身负数的反码是其原码的基础上符号位不变其余各个位取反[1] [0000 0001]原 [0000 0001] 反
[-1] [1000 0001]原 [1111 1110] 反 2.4.3 补码 正数的补码是其本身负数的补码是在其原码的基础上符号位不变其余各位取反最后 1即在反码的基础上 1[1] [0000 0001]原 [0000 0001] 反 [0000 0001] 补
[-1] [1000 0001]原 [1111 1110] 反 [1111 1111] 补 说到底是补码之间的运算如 1 -1逢二进一到机器只认识八位第九位不认识即为 0 [0000 0001] [1111 1111] 0 总结 在计算机系统中数值一律用补码来表示存储主要使用补码可以将符号位和其他位统一处理可以将其他数值运算简化为 加法运算。 3. 物理层和数据链路层 3.1 网络基础之网络协议篇 每台计算机需要互相通讯需要用到网络协议互联网本质是一系列网络协议 3.1.1 osi 七层协议网络标准 互联网协议按照功能不同分为 osi 七层或 tcp/ip 五层 或 tcp/ip 四层 每层运行常见设备 3.1.2 物理层 计算机之间需要用光缆、电缆、双绞线、无线电波等连接完成组网才能通讯 物理层功能主要是基于电器特性发送高低电压电信号高电压对应 1低电压对应 0 3.1.3 数据链路层 单纯的电信号 0 和 1 没有任何意义必须规定电信号多少位一组每组什么意思 数据链路层功能定义 电信号的分组方式 以太网协议 早期时各个公司都有自己的分组方式后来形成了统一的标准即以太网协议ethernet 规定 一组点消耗构成一个数据包叫做 帧每一数据帧分成报头 head 和数据 data 两部分head包含固定 18 个字节 发送者/源地址6个字节接受者/目标地址6个字节数据类型6个字节data包含最短46个字节最长1500字节 数据包的具体内容head 长度 data 长度 最短 64字节最长1518字节超过最大限制就分片发送 mac地址 head 中包含的源和目标地址由来ethernet 规定介入 Internet 的设备都必须具备网卡发送端和接收端的地址便是 mac地址以便能找到发送和接收者。 mac 地址每块网卡出厂时都有一个唯一的 mac地址长度为 48 位 2进制通常由 12 位 16 进制数表示前六位是厂商编号后六位是流水线号 查看mac地址本地连接 —— 详细信息 —— 物理地址 广播 有了 mac 地址同一网络内同一局域网的两台主机就可以互相通讯了一台主机通过 arp 协议获取另一台主机的mac地址ethernet 采用最原始的方式广播的方式进行通讯即计算机基本靠吼 3.1.4 网络层 有了 以太网协议、mac 地址、广播的发送方式理论上世界上的计算机都可以互相通讯了。但是世界上的互联网是由一个个的局域网构成的如果所有的通讯都是以以太网的广播方式传播那么一台机器发送全世界的机器都会收到这将是一种灾难。 于是就有了网络层定义了一种协议 —— ip 协议 ip 协议 规定网络地址的协议叫 ip 协议定义的地址为 ip 地址 广泛地采用 v4版本即 ipv4它规定网络地址由 32 位 2进制表示范围 0.0.0.0 -- 255.255.255.255一个 ip 地址通常写成四段十进制数例如172.16.10.1 总结各个局域网间要想要想通讯需要用到 ip 协议即跨网络传输首先将包发送给默认网关再由网关转发给 ip 地址所在局域网 mac 地址相当于一个人教师所在位置独一无二ip 地址相当于教室默认网关为这个教室的负责人 arp 协议 通信是基于 mac 的广播方式实现计算机在发包时获取自身的mac 是容易的如何获取目标主机的 mac 地址就需要通过 arp 协议 arp 协议功能广播的方式发送数据包获取目标主机的 mac 地址 协议工作方式每台主机 ip 都是已知的 例如主机 172.16.10.10/24 访问 172.16.10.11/24 01. 首先通过 ip 地址和子网掩码区分出自己所处的子网 场景数据包地址同一子网目标主机mac目标主机 ip不同子网网关 mac目标主机 ip02. 分析172.16.10.10/24 与 172.16.10.11/24 处于同一网络如果不是那么下表中目标 ip 为 172.16.10.1 通过 arp 协议获取网关的mac由网关去获取目标的 mac 源 mac目标 mac源 ip目标 ip数据部分发送端主机发送端 macFF:FF:FF:FF:FF:FF172.16.10.10/24172.16.10.11/24数据03. 这个包含以广播的方式在发送端所处的自网内传输所有主机接收后拆开包发现目标 ip 为自己的就响应返回自己 mac 同一局域网内pc 1 与 pc 2 怎么通讯 计算是否在同一局域网内连接同一交换机在同一局域网内即 ip 网段前面一样就在同一局域网内利用 arp 协议获取 pc 2 的 mac 地址pc1 mac FF:FF:FF:FF:FF:FF 192.168.11.10/24 192.168.11.11/24 首先以上述格式发包通过交换机广播所有 pc 拆包然后根据 ip 来区分是否是自己的包当符合时回包 pc2 mac pc1 mac 192.168.11.11/24 192.168.11.10/24 这样pc 1 就获得了 pc 2的 mac 地址 发包pc 1 -- pc 2pc1 mac pc2 mac 192.168.11.10/24 192.168.11.11/24 数据 不在同一局域网内pc1 与 pc4 通讯 计算是否在同一局域网内利用 arp 协议获取 网关 1 的mac再由网关去联络网关2最后获得 pc4 的mac# 获取 网关 1 mac
pc1 mac FF:FF:FF:FF:FF:FF 192.168.11.10/24 192.168.11.1/24(网关) 再将数据发给网关 1由网关1 转发给网关 2 # 将数据发给网关1这里的目标 ip 是 pc4而不是网关1
pc1 mac 网关1 mac 192.168.11.10/24 172.16.45.10/24 数据 pc4 -- pc1回包也是先判断是否在同一局域网再按照上述的方式回 注意网关之间是通过路由传输 3.1.5 传输层 网络层的 ip 区分子网以太网的 mac 找到目标 主机但是实际使用的是 应用程序那么要实现应用程序之间的通讯是通过 端口来标识应用程序的即应用程序与网卡光联的编号。 传输层的功能简历端口到端口的通信 补充端口范围0 - 65535 0 -1023 为系统占用端口 tcp协议 可靠传输TCP数据包没有长度限制理论上可以无限长但是为了保证网络的效率通常TCP数据包的长度不会超过IP数据包的长度以确保单个TCP数据包不必再分割。 以太网头ip 头tcp头数据udp协议 不可靠传输”报头”部分一共只有8个字节总长度不超过65,535字节正好放进一个IP数据包。 以太网头ip头udp头数据3.1.6 应用层 用户使用的应用程序工作于应用层 应用层功能规定应用程序的数据格式 例TCP协议可以为各种各样的程序传递数据比如Email、WWW、FTP等等。那么必须有不同协议规定电子邮件、网页、FTP数据的格式这些应用程序协议就构成了”应用层”。 3.1.7 socket 两个进程需要进行通讯最基本的一个前提是能够唯一的标识一个进程在本地进程中我们可以使用 PID 来唯一标识一个进程但 PID 只在本地唯一网络中的两个进程 PID 冲突的几率很大。这时候我们需要另辟它径了我们知道IP层的ip地址可以唯一标示主机而TCP层协议和端口号可以唯一标示主机的一个进程这样我们可以利用ip地址协议端口号唯一标示网络中的一个进程 。 能够唯一标示网络中的进程后它们就可以利用socket进行通信了什么是socket呢我们经常把socket翻译为套接字socket是在应用层和传输层之间的一个抽象层它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。 socket起源于UNIX在Unix一切皆文件哲学的思想下socket是一种打开—读/写—关闭模式的实现服务器和客户端各自维护一个文件在建立连接打开后可以向自己文件写入内容供对方读取或者读取对方内容通讯结束时关闭文件。 3.2 总结 物理层形成一堆电信号数据链路层将电信号分组以太网协议 ethernet 规定每台计算机都必须有一个网卡上面有 mac 地址唯一标识同一局域网以广播形式传播不同局域网通过 网关网络层ip 协议、arp 协议 ip 协议可以区分是否在同一局域网arp 协议可以获取目标计算机 mac 地址传输层TCP、UDP协议应用软件之间通过端口传输不同计算机的同一端口不冲突应用层规定应用程序的数据格式在不同层上有不同的格式socket 抽象层在 tcp、udp 协议之上用户编写出一个应用软件时需要定义其端口号而单纯的使用 tcp、udp 协议去设定端口号费时费力socket 大大节省了时间只需简单的设置即可4. 系统软件和应用软件运行流程 计算机启动首先启动的是 BIOSBIOS能告诉你操作系统在哪个存储介质上硬盘、U盘、光盘等BIOS是物理层面的即其代码已经写在主板上。 系统软件的运行流程安装在硬盘加载到内存CPU从内存读取再运算硬盘、内存、CPU有速度差最快为 CPU 应用软件运行流程安装在硬盘鼠标是系统提供的双击发出指令给操作系统高速它将这个软件加载到内存中然后CPU读取 打开一个编辑软件它是在内存中运行只有保存后才会永久保存到硬盘中否则断电丢失如word编辑 5. 字符编码 字符与二进制一一对应的关系即 —— 字符编码 计算机最终识别的是二进制要想能够使人们更直观地看到结果而不是一堆二进制数字就需要制定一个 字符与二进制一一对应关系的字典出来最早的字符编码由美国人制定 —— ASCII 码表。 但是 ASCII 码表只有英文字母显然是不符合其他语言的因此其他编码应运而生如中国的 gb2312 编码日本的 shift_JIT 编码等 # 0000 00012 1 bit 表示八位二进制中的一位 1Byte表示八位
bit 二进制位
1Byte字节 8bit
1KB 1024B
1MB 1024KB
1GB 1024MB # ASCII8位二进制 中一个字符占用一个字节即八个二进制位总共有2^8 -1 255)种情况完全能够包括所有英文字符
h -- 0000 0001# 而汉字却有几千个一个汉字字符占用一个字节显然是不行的gb2312编码 规定了一个汉字占用两个字符生僻字用4个字节总共有2^17 -1 131071)种情况你 -- 00000001 00000001 然而各国都有一个编码别的国家在解析文字时会出现乱码所以需要一个国际通用的编码于是 Unicode 应运而生。 ASCII 用1个字节8位二进制代表一个字符 Unicode 常用2个字节16位2进制代表一个字符生僻字用4个字节 所以 Unicode兼容 ASCII 兼容万国为世界标准 但是在编写英文时使用 Unicode编码就会比使用 ASCII 耗费多一倍的时间在存储和传输时很低效 于是 可变长编码 UFT-8Unicode Transformation Format应运而生它可以把一个 Unicode 字符根据不同的数字大小编码成 1 -6 个字节常用的英文字母被编码成 1 个字节汉字是 3个生僻字编成 4 -6 个字节可以有效利用空间。 字符ASCIIUnicodeUTF-8A0100000100000000 0100000101000001中x01001110 0010110111100100 10111000 10101101内存中的编码固定使用 Unicode 在存入磁盘时需要将 Unicode 转换为 utf-8将数据量控制最精简在读入内存时需要将 utf-8 转换为 Unicode内存使用 Unicode 是为了兼容万国软件6. 网络分类 网络可以大致分为四类 局域网LAN一般限定在较小的区域内小于 10km 范围通常采用 有线方式连接城域网MAN规模局限在一座城市的范围10 ~ 100km的取余广域网WAN网络跨越国界、洲界甚至全球范围局域网和广域网是网络的热点局域网是组成其他两种类型网络的基础城域网一般都加入了广域网 广域网的典型代表是 Internet 网 个人网个人局域网就是在个人工作的地方把属于个人使用的电子设备如便携电脑等用无线技术连接起来的网络因此也常被称为个人局域网 WPAN 范围大约为 10m左右。 传输介质 有线网双绞线光纤网也是有线网的一种靠光传输一头亮一头不亮无线网7. 网络基础和 DOS 命令 7.1 公有 IP地址分类 Inter NIC 机构分配给注册组织机构的 IP 地址 7.2 私有 IP 地址分类 私有地址Private address属于非注册地址专门为组织机构内部使用 A 类10.0.0.0 -- 10.255.255.255B 类172.16.0.0 -- 172.31.255.255C 类192.168.0.0 -- 192.168.255.2557.3 DOS 命令 cmd 运行以下命令 ipconfig # 查看 ip 配置
ipconfig /? # 查看帮助ping 192.168.1.224
ping /? # 查看帮助 其他doc命令 # cd -- change directory
cd C:\ # 切换到根目录
cd a # 切换到某个文件夹
D # 切换到其他盘符
dir # 查看当前目录下文件和文件夹
. # 当前目录cd .)
.. # 上一级目录(cd ..)
del a.txt # 删除文件
rd a # 删除空目录
md a # 创建文件夹 参考博客 网络基础之网络协议篇http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label8 Python基础之字符编码http://www.cnblogs.com/linhaifeng/articles/5950339.html 转载于:https://www.cnblogs.com/midworld/p/11049471.html