文档章节

1.操作系统基本概念梳理

whohow20094702
 whohow20094702
发布于 2017/04/27 01:51
字数 3384
阅读 23
收藏 0

01.简易linux环境搭建

02.几个简单概念

  • VMware: 普通操作系统本身就是一个虚拟系统,通过对计算机硬件进行虚拟化处理,实现多个进程同时运行,VMware则是在软件层面对计算机进行虚拟处理,其分配的所有计算资源都是"浮动"的,并不是真实分配的容量;
  • 自举(bootstrapping)一词来自于人都是靠自身的“自举”机构站立起来的这一思想。计算机必须具备自举能力将自己所有的元件激活,以便能完成加载操作系统这一目的,然后再由操作系统承担起那些单靠自举代码无法完成的更复杂的任务。 自举只有两个功能:加电自检和磁盘引导。
  • 加电自检(POST: Power On Self Test),计算机通电后,自行对CPU,主板,内存,磁盘等硬件设备的完备状态进行检查,存在问题时会发出相应警告提示(蜂鸣);
  • 磁盘引导(Boot):属于BIOS一部分, 指查找装有操作系统的磁盘驱动器。从磁盘加载操作系统的原因有二:一是操作系统升级简单容易,二是使用户拥有选择操作系统的自由。(ctrl+alt+insert->F2->boot 设置启动次序)
  • BIOS: "Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

03.计算机体系结构

  • 运算器: 从存储器获取数据进行最基础的(加减)运算操作;
  • 控制器: 决定运算器从存储器的何处获取数据,并执行运算操作;
  • 存储器: 编址存储单元.32位系统按4字节,即四个八位二进制编址,64位系统按八个八位二进制编址,编址方式有:平面编址(全局唯一),三维编址(按区块划分).
  • 输入设备
  • 输出设备

04.rhci-5.8-1 内核linux系统搭建步骤

05.计算机内部结构简介

1).运算器: 计算机通过逻辑学和门电路实现运算功能.

为什么选择二进制?

  • 1.二进制的对位和移位运算能够满足计算功能需求;
  • 2.除二进制外的其他任何运算的量化特性无法被电器原件精密模拟,只有二进制(1/0)最符合工业设计条件(/).

加法器: 运算器的一种.

2).控制器(存储器)

线路复用

3).存储器

4).中断控制器

5).南北桥

6).前端总线

前端总线——Front Side Bus(FSB), 处理器与主板北桥芯片或内存控制集线器之间的数据通道,其频率高低直接影响CPU访问内存的速度 。

7).后端总线

后端总线(BSB,Back Side Bus)是指带有L2L3缓存(Cache)的计算机中,负责中央处理器和外部缓存(经常为第二级缓存)之间的数据传递的数据通道 , 后端总线传输速率总是高于前端总线 .

8).缓存Cache

06.编程的可行性,可读性,移植性

07.硬件平台架构

  • ARM: 移动手持设备CPU架构. ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Acorn RISC Machine.只生产协议规范,不生产具体产品.
  • x86: Intel AMD 32位平台(最大内存寻址32位二进制).
  • x64: AMD 64,唯一真正64位架构.
  • 安腾: 惠普生产的模拟64为架构的平台,后被Intel收购;
  • alpha: 惠普
  • UltraSpac: Sum 公司生产超标量架构
  • Power: IBM生产,世界上第一个单核心,双核心,四核,八核心CPU,第一个主频超过4G赫兹CPU.
  • M68000: 摩托罗拉生产.
  • Power: 苹果,摩托,IBM联合开发的CPU.

注  : CPU主频到4GHz左右,发展就遭遇瓶颈,随后转轨,往多核方向发展.Unix系统由于支持上述几乎全部的CPU架构,因此其流行程度长盛不衰.

08.计算机演化历程

  • 纸带打孔机: 计算资源及其昂贵,采用快慢机配合使用,慢机运行效率低,代价相对比较低,专供程序员打孔编程,快机专门负责计算;
  • 批处理机: 使用磁带串行记录多个计算任务jobs,各计算任务通过分隔符分割,避免切换磁带,浪费计算资源.但在录入计算任务时,cpu仍然处于空闲状态,由于内存独占,无法进行多个任务交替执行,仍然存在一定浪费;
  • 多任务处理机: 计算机最重要的计算资源 CPU ,内存 ,要实现多任务交替处理, 关键就是拆分CPU 和 内存,分配给不同的计算任务(进程)使用.
  1.  引入时间分片(time slice)概念将CPU执行时间按固定长度进行切分,各任务分别按获取的时间片轮替执行相应的时间 .  
  2. 引入分区 和 虚拟地址空间概念将内存进行分割,分配给不同计算任务使用,用于保存各任务执行的中间数据,以便下次CPU时间片继续使用;
  3. 注: 虚拟地址空间只描述了程序最大可使用的内存寻址空间大小,并不是真实分配的空间大小.

09.操作系统

  •    运行在硬件上,负责将硬件资源进行切分,分配给不同程序,并完成资源分配使用协调工作的软件;
  •    操作系统是一种通用的软件, 其不负责具体的程序运行,但普通程序的启动,协调,终止操作 由操作系统控制;
  •    任何程序都不能绕过操作系统直接调用硬件资源,因此把操作系统看成硬件资源的代理,用户程序通过操作系统调用硬件资源的过程称为 System Call(系统调用);
  •   操作系统直接操作硬件资源 , 为使硬件资源的调用, 尽可能简便,高效,操作系统的封装尽可能底层,尽可能贴近硬件,由此造成系统间的通用性下降(牺牲通用性,提高执行效率).

常见OS:  windows , Linux , Unix (HP-UX,Solaris,AIX)

10.库

  •     由于操作系统要满足高效调用硬件资源的要求,其封装贴近底层,系统的通用性打折扣,为弥合操作系统间的差异,引入库的概念.
  •     库是一堆程序的集合,其存在是为了弥合硬件架构平台的差异,起到适配作用;
  •     任何程序执行都有一个唯一的入口,库中的程序没有提供任何入口,应此库中的程序只能被调用(call),,而不能直接启动

注: window 中的库称为.dll (dynamic link library), linux 中的库称为.so (shared object).

11.Shell

12.内核kernel 与 库调用(Library Call)

     内核基本功能: 进程管理, 内存管理 , 硬件驱动, 网络功能 , 文件系统, 安全机制 等,由此可见内核提供的是一些比较底层通用操作;

     硬件操作与应用程序间的映射关系: 敲击键盘操作由键盘通过总线传递给CPU,CPU提交操作系统解析,内核会查找到当前处于焦点的应用程序,然后执行相应的操作.

     内核与应用程序间的隔离策略:应用程序不能直接使用内核,在系统架构上同4层同心圆将内核与应用程序隔离,内核在最中间层,应用程序在最外层,中间两层空白.

     内存分区:

  •    BIOS: cpu芯片开机自检映射到内存,告诉操作系统如何使用硬件设备;
  •    Kernel Space: 操作系统内核映射到内存,告诉上层程序,如何进行系统调用;
  •   Common: 应用程序运行过程通用内存区域.

13.操作系统演化

  • 纸带机
  • 批处理系统:jos1$$$jobs2$$$....
  • MainFrame大型机: 由GE+Bell+MIT3家巨头合作研发出汇编语言,诞生了能够执行多用户多任务操作系统Multics
  • Bell 退出Multics 研发,导致Thompson Ken 的Space Travel 游戏无法继续运行在Multics上,Ken转而在破旧的PDP-7上开发能够运行Space Travel游戏的操作系统,此时使用的仍然是汇编语言,该系统是Unics ->Unix
  • Dainese Rich 和 Ken 一起在B 语言(脚本语言) 基础上,引入静态变量,指针概念,产生高级语言C语言.而后基于C语言,重写了Unix, 当时计算机硬件速度慢,高级语言改写的Unix 相比于汇编语言的Unix ,运行的效率降低,但由于坚信未来硬件性能会大幅提升,二者毅然坚持Unix系统往C语言改写.
  • Bell Joy 在伯克利大学成立BSRG (Berkeley System Research Group) 专门研究Unix 操作系统,1970年Ken 加入该组织.从此Unix新发行版BSD (Berkeley System Distribute).
  • Bell 实验室分割成立了Bellcore, 发布商业版Unix -> System V
  • 1975年MicroSoft 成立, 早期主营业务是开发Basic脚本语言程序 以及包装发型Unix(Xenix),随后收购CP/M 操作系统, 改造称为DOS(Disk Operation System), 1980年变卖 给IBM.
  • 1976年Apple 成立, 第一代苹果机采用Unix操作系统,Power CPU芯片, 从 施乐公司Park实验室购买基于Unix的鼠标,基于鼠标开发了第一代图形化操作系统Apple2.
  • 微软从Apple2 系统原码上开发出自己的图形化系统Windows
  • Bellcore  与 BSRG 协商终止争吵, 共同阻击window , BSD随后解散, 其子分支遍地开花 (FreeBSD专注于运运行在PC机,OpenBSD,专注于安全NetDSB专注于服务)
  • Bell Joy 基于早期BSRG 研究小组开发的设计精良的CPU指令集, 合伙开办Sun MicroSoft 公司, 专注于基于Sun OS (Solaris)的工作站.
  • Andrew S. Tanenbaum 开发基于微内核架构的类UNIX计算机操作系统Minix,
  • Linus Torvalds,在芬兰的赫尔辛基大学用基于Minix操作平台建立了一个新的操作系统的内核,Linux。,
  • 80年代,Richard Matthew Stallman 成立GNU (Gun is Not Unix) 组织,发起自由软件运动,发布GPL (General Public Licence)宣言,该宣言规定,反使用GPL许可的代码,其代码也必须自由公开, GUN组织 随后自行开发gcc (GUN C Compiler) 编译器, Emacs 文本编辑器,bash 命令行界面. 此时的GPL代码仍然无法摆脱Unix.
  • Linux宣布加入GUN组织, 此后由Linus 维护的内核 和 GUN组织提供的外围软件整合,诞生GUN/Linux 操作系统
  • 无论Linus维护的内核 和 GUN 提供的外围软件都只是C 语言编写的原码,要想真正运行,还需要基于不同CPU 芯片指令集进行编译,称为机器语言.
  • 各地组织基于ABI(Application Binary Interface) 应用二进制接口,通过交叉编译,发行能够运行在大多数CPU芯片的Linux 二进制发行版RedHat ,SLS ,Debain ,SUSE  所有发行版,都是基于相同Linux 源码,编译而来, 唯一区别就是在 核心代码基础上加入了对操作系统不同的理解,应此只存在配置参数差异,核心机制 和 功能相似.
  • 随着linux 系统不断膨胀完善,软件管理工作变得及其复杂,各Linux发行商发布自行软件管理工具,linux 用户按需组装应用程序: Debain -> dpt , RedHat -> rpm .
  • GPL开源协议过于严苛,诞生较为宽松开源协议: LGPL(Lesser GPL),GPLv2,GPLv3, BSD ,Apache.
  • 受GPL限制所有的Linux发行商不能项用户收取版权费,转而发行源码级别Linux发现版,对外提供编译,维护,补丁服务,并收取相应服务费用.
  • CentOS(Community ENTerprise OS)诞生,专注提供基于RedHat的发行版linux的二进制版本(源码+补丁),因此Centos 有称为社区版RedHat.
  • 基于Redhat 二次发行版Fedora(redhat企业版测试环境), Mandriva(专注图形界面个人机),CentOS(社区版)
  • 基于Debain 二次发行版Ubunto(专注于图形化界面)
  • linux 内核由linux 和 GUN组织维护,目前发行至4.11-rc8
  • RedHat 是linux的发行商,发行编译打包好的二进制linux,RHEL(RedHatEnterprise Licence)最新发行到7.3
  • rpm ,dpt 等分别是RedHat,Debain 发行的linux操作系统的应用软件管理器
  • CentOS,Ubunto,Fedoro,Mint 等是基于发行商发行的linux的二次发行版本

14.主流linux发行版(含二次发行版)

 

 

 

 

© 著作权归作者所有

上一篇: 2.Linux常识
whohow20094702
粉丝 0
博文 3
码字总数 19973
作品 0
朝阳
私信 提问
计算机的心智操作系统哲学原理

基础原理篇 1.1 操作系统导论 1.2 操作系统历史 1.3 操作系统基本概念 2. 进程原理篇 2.1 进程的基本概念 2.2 进程调度 2.3 进程通信 3. 线程原理篇 3.1 线程的基本概念 3.2 线程同步 3.3 死...

无寄语
2016/10/28
11
0
算法知识梳理(11) - 二叉树相关算法第一部分

面试算法代码知识梳理系列 算法知识梳理(1) - 排序算法 算法知识梳理(2) - 字符串算法第一部分 算法知识梳理(3) - 字符串算法第二部分 算法知识梳理(4) - 数组第一部分 算法知识梳理(5) - 数...

泽毛
2017/12/19
0
2
06-利用思维导图梳理JavaSE-异常处理

06-利用思维导图梳理JavaSE-异常处理 主要内容 1.异常处理 1.1.异常的基本概念 1.2.异常处理机制 1.3.异常处理方法 1.4.Exception与RuntimeException类 想了解飞鱼说编程的最新动态可以关注公...

飞鱼说编程
2018/09/18
0
0
设计模式知识梳理(7) - 结构型 - 代理模式

一、基本概念 1.1 定义 为其他对象提供一种代理以控制对这个对象的访问。 1.2 例子 代理模式的角色分为以下几种: 抽象主题类:声明真实主题与代理的共同接口方法。 真实主题类:定义了代理所...

泽毛
2018/11/28
0
0
2014.6.7 深圳RT-Thread嵌入式系统技术沙龙

RT-Thread是一款来自中国的开源嵌入式实时操作系统,她由一群热心有梦想的年轻人开发,包含硬实时操作系统内核和各个应用组件,包括TCP/IP协议栈,虚拟文件系统,POSIX接口,图形用户界面,U...

午夜熊
2014/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kubernetes云供应商架构的未来

首先,我想分享SIG的使命,因为我们用它来指导我们现在和将来的工作。从我们的章程中直接来看,SIG的使命是简化,开发和维护云供应商集成,作为Kubernetes集群的扩展或附加组件。这背后的动机...

Linux就该这么学
36分钟前
2
0
线程池没你想的那么简单

前言 原以为线程池还挺简单的(平时常用,也分析过原理),这次是想自己动手写一个线程池来更加深入的了解它;但在动手写的过程中落地到细节时发现并没想的那么容易。结合源码对比后确实不得...

crossoverJie
44分钟前
55
0
Scientific Linux开发停止 相关设备将迁移至CentOS上

在经历了将近14年的版本更迭之后,这个专注于科学领域的GNU/Linux发行版本不会发布下个重大版本更新--Scientific Linux 8了。 目前维护该发行版本的成员最终决定是时候休息了,今后将不再发布...

linuxCool
48分钟前
2
0
Redux

Redux概念 Redux = Reducer + Flux,数据层框架,将所有数据都存储到store中 Redux的工作流程 Antd的使用 安装npm install antd --save import 'antd/dist/antd.css'import { Input, Butto......

星闪海洋
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部