1 操作系统

操作系统Operating System,简称OS)是管理和控制计算机硬件软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统是用户计算机接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。
 
让计算机使用者更直接方便的操作计算机来实现工作
介于应用软件和计算机硬件之间,为用户提供接口程序来方便应用来操作电脑
  将各个程序之间资源的占用的竞争梳理的有序化
 
3区别

主要区别是:你不想用暴风影音了你可以选择用迅雷播放器或者干脆自己写一个,但是你无法写一个属于操作系统一部分的程序(时钟中断处理程序),操作系统由硬件保护,不能被用户修改。

操作系统与用户程序的差异并不在于二者所处的地位。特别地,操作系统是一个大型、复杂、长寿的软件,

  • 大型:linux或windows的源代码有五百万行数量级。按照每页50行共1000行的书来算,五百万行要有100卷,要用一整个书架子来摆置,这还仅仅是内核部分。用户程序,如GUI,库以及基本应用软件(如windows Explorer等),很容易就能达到这个数量的10倍或者20倍之多。
  • 长寿:操作系统很难编写,如此大的代码量,一旦完成,操作系统所有者便不会轻易扔掉,再写一个。而是在原有的基础上进行改进。(基本上可以把windows95/98/Me看出一个操作系统,而windows NT/2000/XP/Vista则是两位一个操作系统,对于用户来说它们十分相似。还有UNIX以及它的变体和克隆版本也演化了多年,如System V版,Solaris以及FreeBSD等都是Unix的原始版,不过尽管linux非常依照UNIX模式而仿制,并且与UNIX高度兼容,但是linux具有全新的代码基础

软件运行在操作系统之上,操作系统和硬件的关系密切,和应用软件开发不是一条路

4 操作系统发展史

百度百科-操作系统的发展史

http://baike.baidu.com/link?url=12wJqRKEBD0tXC07ltfKmonr1O4s64FbmhRgFjWi0IOWvPQmaawIHRxqwpEoEqjiRZ7Bmrxpzc53qBHEXwo_tyPVF3K2w3Y30V-s850S77IKl_6_BQ6Ule6MJrpy-gjViIxkwAcDYtvDZzXtcksSShyVOcxciTKB4GrcQEfH42_

峰哥博客-操作系统发展史

http://www.cnblogs.com/linhaifeng/p/6295875.html

资源占用,穿孔卡片,统筹时间,空间/时间复用,技术发展

5 多道技术

现代计算机或者网络都是多用户的,多个用户不仅共享硬件,而且共享文件,数据库等信息,共享意味着冲突和无序。

操作系统主要使用来

1.记录哪个程序使用什么资源

2.对资源请求进行分配

3.为不同的程序和用户调解互相冲突的资源请求。

我们可将上述操作系统的功能总结为:处理来自多个程序发起的多个(多个即多路)共享(共享即复用)资源的请求,简称多路复用

多路复用有两种实现方式

1.时间上的复用

当一个资源在时间上复用时,不同的程序或用户轮流使用它,第一个程序获取该资源使用结束后,在轮到第二个。。。第三个。。。

例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。

2.空间上的复用

每个客户都获取了一个大的资源中的一小部分资源,从而减少了排队等待资源的时间。

例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。

有关空间复用的其他资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间并且记录谁正在使用哪个磁盘块是操作系统资源管理的典型任务。

这两种方式合起来便是多道技术

附加:多道程序设计技术

多道程序设计技术是指在内存同时放若干道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。

[特点]:多道、宏观上并行(不同的作业分别在CPU和外设上执行)、微观上串行(在单CPU上交叉运行)。
[多道批处理系统]:将多道程序设计技术应用于批处理系统,就形成多道批处理系统。
多道程序设计技术 对 操作系统的形成起到的作用:
操作系统在引入多道程序设计技术后,使得系统具有了多道,宏观上并行,微观上串行的特点。
多道程序设计主要是使OS能更好地对计算机进行管理 。
使计算机的硬件资源得到更充分的利用 。
在OS中引入多道程序设计技术带来的好处:
1.提高CPU的利用率
2.提高内存和I/O设备利用率
3.增加系统吞吐量

二 网络基础

单台计算机的软件,操作系统,硬件,单个计算,为了实现计算机之间的通信需求,就想工作中人与人之间的交流,计算机也需要通信,这样就有个语言的需求

对于人类公认的通用语言设定是 English ,那计算机之间的通用语言就是Internet协议

附加:Internet协议知识 - 百度百科

http://baike.baidu.com/link?url=pDs1EnUJ7V5MRRJNKJaoWjFqqLpfFE0ok82sfRaFHIC4taEaEL1WQgKfNHx4DQ_VnrXSUrwyXnjwl0wAvG4Mzq

物理层:010101010电压,光纤,电缆,双绞线,电流

数据链路层:比特流,封装mac地址在头部,为计算机局域网内基本通信,以太网交换机,网卡,mac地址为唯一标示,类似于身份证号码,出生既有,独一无二

网络层:packet包,ip地址,相当于身份证上的姓名,ip协议,arp协议,ip地址子网掩码来区分是否在同一网段,ip地址详细知识略,数据包内有ip地址头部,后有数据,路由器,或者路由功能的多层交换机

传输层:建立端口和应用程序之间的通信,tcp或udp协议,tcp稳定可靠建立联系后传输数据,udp速度快但不稳定数据传输不需要双方在线,每个端口都有各自用途,系统端口占用,用户可以自定义,端口号只有整数,范围是从0 到65535(2^16-1)。

应用层:用户的各自应用程序均工作于应用层,开发应用软件,写到操作系统和传输层提供的端口,例如http,ftp等就是应用层协议,可以自定,可以用现成的协议

附加:OSI七层网络协议 - 百度百科

http://baike.baidu.com/link?url=uT2_blqKUkezi2KUg7FmaamZhvo_x8kos6HJSC1eXZAajB2Ue-DivPDMl6HzXKOKARq1ogofU4BGySVbsgkaH4HsBv_uF6rC4fdd54KlhgWH9CjOjX7nSUHvSxDtKcpmCNlPT-ZGdfbmHazbWT4sbq

tcp可靠传输,因为对面会回复一个确认信息,udp发完后就会清空缓存

socket

我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。

能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

网络通信


本机ip地址,子网掩码,网关ip地址,dns地址

根OSI模型一层一层的走,数据在应用层开始,经过层层封装,各层都把自己的标示封装在数据头部,然后在物理层转化为高低电流,然后经过现实世界的物理介质传输,到目标地址后经数据链路层转化为比特流,再将数据包层层解包,最后根据数据各个头部的指引信息,将拆出来的数据传给目的地,呈现数据

实际上整个行为很复杂,涉及协议多,涉及安全性也要考虑

附加: 数据包转发演示

https://wenku.baidu.com/view/7db7ddfd783e0912a3162a32.html

附加:DNS过程

OS与Internet的更多相关文章

  1. Python教程大纲

    缘起:最近想在部门推Python语言,写这个blog主要就是个教程大纲,之前先列出一些资源:Python历史:http://www.docin.com/p-53019548.html          ...

  2. 高可用OpenStack(Queen版)集群-1. 集群环境

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  3. User Agent字符串列表

    User Agent字符串列表 --之心 User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA.它是一个特殊字符串头,是一种向访问网站提供 ...

  4. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  5. 阿里巴巴-OS事业群-OS手机事业部-系统服务部门招聘Java开发工程师,有意者请进来

    我是阿里巴巴-OS事业群-OS手机事业部-系统服务部的开发工程师,正在招聘Java开发工程师. 以下是职位描述: 岗位名称:Java开发工程师 招聘人数:5人 生效日期:2014-03-12 结束日期 ...

  6. Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作

    Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作          博客分类: vb2005xu软件学习 OSApache防火墙PHPWindows  日志如下:[ ...

  7. MAC OS设置JDK小结

    开始折腾mac pro,在网上找了些资料,自己也尝试了一下,特在这里做个小结. mac中JDK的位置 OSX默认的JDK /System/Library/Frameworks/JavaVM.frame ...

  8. QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件

    QQ 编辑 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功 ...

  9. Selenium2学习-037-WebUI自动化实战实例-IE浏览器显示比例问题:org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Browser zoom level was set to 94%. It should be set to 100%

    好久没有写博文了,今天在给部门新人演示 Selenium WebDriver 启动其支持的各种浏览器时,启动 IE 时总是无法打开对应的百度网址,页面如下所示:

随机推荐

  1. fiddler之数据统计(statistics)

    在使用fiddler代理监听访问时,可以使用statistics分页去统计请求和响应的一些信息. 界面显示如下: 可以在这里查看一个session的统计信息 说明: 1.request count:请 ...

  2. 自动化测试-4.selenium的xpath定位

    前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...

  3. linux (centOS)安装 oracle 11g 以及卸载oracle

    目录 首先.1. 一.参数以及环境配置 1.创建用户和组 2.创建数据库软件目录和数据文件存放目录 3.配置oracle用户的环境变量 4.修改linux内核,修改/etc/sysctl.conf文件 ...

  4. APP加急审核

    提交加急审核需要理由,一般涉及到银行信息,或者崩溃打不开这种的比较容易通过.反正苹果很苛刻,一般不给处理.如果处理第二天就可以下载最新了,省去了漫漫的等待.一个成功加急审核的借口-- We found ...

  5. Linux 挂载windows目录

    1.默认情况下,Linux服务器会装有samba-client,但是没有装samba-server.但是访问Windows系统共享,安装有samba-client就可以了. [root@test ~] ...

  6. input[type='file']默认样式

    <input type="file" name="" id="" value="" /> 当input的ty ...

  7. robot framework中的timeout的关键词

    1.默认robotframework中的含有等待的关键词(如:Wait Until Element Is Enabled),未手动设置时默认该参数为5sec 2.关键词:sleep A)一般在调试的时 ...

  8. POI导出Execl文件,使JAVA虚拟机OOM

    由于在项目中使用POI导出execl,导致JAVA虚拟机OOM,采用以下方式解决问题: 原先方式: g_wb = new XSSFWorkbook(sourceFile.getInputStream( ...

  9. flask,gunicorn,supervisor,nginx配置服务器接口

    1,申请阿里云主机 2,apt-get update 3,apt-get install pip 4,pip install virtualenv 5,virtualenv venv 6,source ...

  10. windows server 2008 R2之tomcat开机自启

    方法一: 写一个批处理文件autostartup.bat用来启动tomcat,内容如下.复制时不要把复制内容也复制进去 set CATALINA_HOME=C:\apache-tomcat-8.5.3 ...