首页 > 代码库 > Python之路- 操作系统&网络基础
Python之路- 操作系统&网络基础
一.为何要有操作系统
没有操作系统的话,计算机同样可以运行,但是程序员要了解到计算机底层各种各样的细节,而操作系统聪明地封装起来了底层这些繁杂的操作,通过向程序员开放一个个的接口,来最终使我们实现对底层硬件的操作流程。
共享使用硬件资源;为使用者指定一些规范,让不同的使用者可以共享使用硬件。
操作系统就是为了让我们更好地使用硬件资源各种硬件资源。
二.操作系统的位置
操作系统位于计算机底层硬件和应用软件之间,本质上也是一个软件,由两部分组成。
1.操作系统的内核(运行在内核态,对硬件完成操作)
2.系统调用的接口(运行在用户态,为应用程序提供调用接口)
三.操作系统的功能
1.为应用程序员提供系统调用接口。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,通过简明的调用即可完成对硬件的操作。
2.因为软件都是共享同一套硬件资源,而操作系统能够管理硬件资源,使不同的软件对硬件资源无序的竞争请求变得有序化,即多路复用的技术
四.操作系统的发展
1.第一代计算机(1945-1955):真空管和穿孔卡片
宾夕法尼亚大学的William Mauchley和他的学生J.Presper Eckert建造了ENIAC。这些机器有的是二进制的,有的使用真空管,有的是可编程的,但都非常原始,设置需要花费数秒钟时间才能完成最简单的运算。这个时期的机器需要一个小组专门设计、制造、编程、操作、维护每台机器。程序设计使用机器语言,通过插板上的硬连线来控制其基本功能。 这个时候处于计算机发展的最初阶段,没有出现程序设计语言,操作系统更是闻所未闻!
2.第二代计算机(1955-1965):晶体管和批处理系统
这个时期计算机越来越可靠,已从研究院中走出来,走进了商业应用。但这个时期的计算机主要完成各种科学计算,需要专门的操作人员维护,并且需要针对每次的计算任务进行编程。 第二代计算机主要用于科学与工程计算。使用FORTRAN与汇编语言编写程序。 出现了最初的操作系统的概念,但是还是需要人的参与,通过把一堆人的输入排到一起输入给计算机处理,在一起打印出来结果,返回给程序员。
3.第三代计算机(1965-1980):集成电路芯片和多道程序
60年代初,计算机厂商根据不同的应用分成了两个计算机系列,一个面向字的,针对科学计算;一个面向字符的,针对商业应用。随着计算机应用的深入,对统一两种应用的计算机需求出现了。这时IBM公司试图通过引入System/360来解决这个问题,这个是服务器的前身;与这个计划配套,IBM公司组织了OS/360操作系统的开发,然后复杂的需求,以及当时软件工程水平低下使得OS/360的开发工作陷入了历史以来最可怕的“软件开发泥潭”。
虽然这个开发计划失败了,但是这个愿望却成为了计算机厂商的目标。此时,MIT、Bell Lab(贝尔实验室)和通用电气公司决定开发一种“公用计算机服务系统”----MULTICS,希望其能同时支持数百名分时用户的一种机器。结果这个计划的研制难度超出了所有人的预料,最后这个系统也以失败结束。不过,MULTICS的思想却为后来的操作系统很多提示。60年代未,一位贝尔实验室曾参加过MULTICS研制工作的计算机科学家Ken Thompson,在一台无人使用的PDP-7机器上开发出了一套简化的、单用户版的MULTICS。后来导致UNIX的诞生。目前UNIX主导了小型机、工作站以及其他市场。也是至今最有影响力的操作系统之一,而Linux也是UNIX系统的一种衍生.
4.第四代计算机(1980-今):个人计算机
个人计算机发展迅猛,价格不断降低。由于UNIX系统的本身特点,使得其不太适合于在运行在个人计算机上,这时就需要一种新的操作系统。在这一历史关键时候,IBM公司由于低估了PC机的市场,并未使用最大的力量角逐这一市场,这时Intel公司趁机进入,成为了当今微处理器的老大。同时善于抓住时机的微软公司的总裁比尔·盖茨适时地进入了这一领域,用购买来的CP/M摇身一变成为MS-DOS,并凭借Windows成为个人计算机操作系统领域的霸主。
五.多道技术
多道技术:即多路复用,操作系统可以处理来自多个程序发起的多路共享资源的请求。有以下两种实现方式。
1.时间上的复用
不同的程序或者用户轮流使用同一个资源,就是该资源在时间上的复用。
我们平常所看到的多个任务并行实际上就是操作系统把不同的程序对CPU的占用分成不同的时间片,轮流占用,所以在用户看来,程序似乎是并行的。实际上这种资源分配的时长以及抢占优先级的问题都是由操作系统处理的。
2.空间上的复用
每个程序都获得较大资源中的一小部分,减少了排队等待的时间,就是空间上的复用。
多个程序进入内存,由硬件提供保护来分割各自的内存,并由操作系统加以控制,这样提高了很多的效率。
六.什么是互联网协议及为何要有互联网协议
互联网协议定义了计算机网络中进行数据交换要遵循的规则,标准和约定的集合,即计算机如何接入互联网,以及通信的标准。
要想完成两台计算机之间的通信,就必须要遵循一定的标准和规则,所以出现了拥有统一标准的互联网协议来规范这样的通信过程。
七.OSI五层模型
1.物理层
两台计算机之间要完成通信,必须要有物理层介入。基于电气特性发送高低电压信号,比如在双绞线上发送高低电平代表不同的二进制信息。
2.数据链路层
定义了电信号的分组方式,即把数据封装为数据帧。
以太网协议中,数据有帧头和数据两部分组成,帧头中包含有mac地址;mac地址独一无二,唯一标识。
3.网络层
解决多个局域网之间的通信,引入IP来区分不同的局域网。
现在常用的协议为IPV4协议,要通过IP地址和子网掩码做与运算后,结果相同,才能判断两个IP是同一个子网。IP数据包也分为报头和数据,报头中含有IP地址等信息。
4.传输层
我们在通过mac和IP找到了想要访问的计算机后,就要通过端口来识别主机上的应用程序了,传输层建立了端口到端口的通信。端口范围0-65535(0-1023为系统占用端口)
这一层的协议为TCP和UDP,TCP稳定,但传输效率低,而UDP相反。
5.应用层
用户使用的程序都是工作在应用层的,但是要遵循各种数据的组织形式,可以使通用的协议(如HTTP,FTP等) ,也可以是自己定义的通信协议。
八.用户上网流程
1.本机获取IP地址,子网掩码,网关IP和DNS的IP
2.打开浏览器,输入想要访问的网址
3.DNS解析,一步步的询问解析出最后想要访问网址的IP地址
4.HTTP协议,加上嵌入符合HTTP的报头数据
5.TCP协议,TCP数据包需要设置双方的端口号。
6.IP协议,TCP数据包嵌入IP数据包,包含双方的IP地址,
7.以太网协议,IP数据包嵌入以太网数据包,包含双方的mac地址。
8.服务器端响应,经过多个网关,想要访问网址的服务器收到以太网数据包,根据IP报头的序号,拼成完整的TCP数据包,读出HTTP请求,做出HTTP响应,再用TCP协议发送回来,本机收到HTTP响应后,就可以显示出网页,完成通信。
Python之路- 操作系统&网络基础
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。