学习内容整理:

  一、编程语言

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  二、计算机组成

  三、CPU

  四、存储器

  五、计算机系统分层

  六、操作系统

  七、后期补充内容

 

一:编程语言

1.什么是语言?什么是编程语言?

语言是一个人与另一个人沟通的介质。
编程语言是程序员与计算机沟通的介质。

2.什么是编程?

程序员通过使用编程语言将想要计算机做的事情表达出来。

3.为什么要编程?

通过编程让计算机代替人类进行工作,解放人力。

补充:在编程的世界里,计算机是奴隶,编程的目的是奴役计算机。

二、计算机组成

计算机由控制器、运算器、存储器、输入设备和输出设备组成。

1.控制器

相当于指挥系统,控制计算机硬件工作。

2.运算器

负责数学运算和逻辑运算。

控制器+运算器 = CPU => 人的大脑

3.存储器

内存:	相当于大脑的记忆功能
	优点:存取速度快
	缺点:断电丢失数据,只能临时存取数据

外存:硬盘,相当于笔记本
	优点:断电不丢失数据,可以永久保存
	缺点:存取速度慢

4.输入设备

键盘、鼠标等

5.输出设备

显示器、打印机等

总结:

1.与运行程序相关的三大核心硬件:CPU、内存、硬盘 2.程序都是放在硬盘中 3.站在硬件的角度,程序启动时,硬件的工作流程如下: 1. 硬盘内数据加载到内存 2. 内存数据被读取到CPU中执行

三、CPU

1.CPU具有向下兼容性

64位的CPU可以运行32位与64位的软件

四、存储器

1.存储系统分层结构

计算机组成与操作系统基础 Python 第1张

2.名词解释

ROM:(read only memory)只读存储器,一般启动计算机的引导加载模块就放在ROM中。 EEPROM:(electrically erasable PROM),电可擦除可编程ROM和闪存(flash memory)均是非易失性,flash多用于固态硬盘。 CMOS:易失性,用作存储计算机的时间,通过主板上的电池供电;没电之后,计算机的相关配置和时间都会丢失。 MBR:即主引导记录,是驱动器最前端的一段引导扇区。

3.常用单位换算

8 bit = 1 Byte 1024 Byte = 1 KB 1024 KB = 1 MB 1024 MB = 1 GB 1024 GB = 1 TB 1024 TB = 1 PB

4.磁盘寻道时间

一次IO时间 = 平均寻道时间(找磁道) + 平均延迟时间(转半圈的时间)
	9ms = 5ms  + 4ms (7200转/min) 

5.虚拟内存

在磁盘中划出一些空间,虚拟成内存空间,正常时候不会使用,当内存使用完的时候,操作系统将内存中一些不常用的数据存放到该虚拟内存空间,使得程序能够继续使用,不至于崩溃。

6.总线

北桥:PCI,连接高速设备
南桥:ISA,连接慢速设备

五、一套完整的计算机系统分三层

计算机组成与操作系统基础 Python 第2张

六:操作系统

 

操作系统是一个协调、管理、控制计算机硬件资源与应用的软件。
应用程序是通过操作系统间接控制硬件的。


 

 

七:后期补充内容

1.计算机发展史

 计算机组成与操作系统基础 Python 第3张

 计算机组成与操作系统基础 Python 第4张

计算机组成与操作系统基础 Python 第5张

计算机组成与操作系统基础 Python 第6张

计算机组成与操作系统基础 Python 第7张

计算机组成与操作系统基础 Python 第8张

计算机组成与操作系统基础 Python 第9张

计算机组成与操作系统基础 Python 第10张

计算机组成与操作系统基础 Python 第11张

计算机组成与操作系统基础 Python 第12张

计算机组成与操作系统基础 Python 第13张

计算机组成与操作系统基础 Python 第14张

计算机组成与操作系统基础 Python 第15张

 2.编程语言

计算机组成与操作系统基础 Python 第16张
编程语言(英语:programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

最早的编程语言是在计算机发明之前产生的,当时是用来控制提花织布机及自动演奏钢琴的动作。在计算机领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于宣告式编程,说明需要的结果,而不说明如何计算。

编程语言的描述一般可以分为语法及语义。语法是说明编程语言中,哪些符号或文字的组合方式是正确的,语义则是对于编程的解释。有些语言是用规格文件定义,例如C语言的规格文件也是ISO标准中一部分,2011年后的版本为ISO/IEC 9899:2017,而其他55语言(像Perl)有一份主要的编程语言实现文件,视为是参考实现。
(来源:维基百科)
编程语言

3.操作系统

计算机组成与操作系统基础 Python 第18张
综观计算机之历史,操作系统与计算机硬件的发展息息相关。操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。从最早的批量模式开始,分时机制也随之出现,在多处理器时代来临时,操作系统也随之添加多处理器协调功能,甚至是分布式系统的协调功能。其他方面的演变也类似于此。另一方面,在个人计算机上,个人计算机之操作系统因袭大型机的成长之路,在硬件越来越复杂、强大时,也逐步实践以往衹有大型机才有的功能。

总而言之,操作系统的历史就是一部解决计算机系统需求与问题的历史。

1980年代前

IBM System/360,大型主机的经典之作
第一部计算机并没有操作系统。这是由于早期计算机的创建方式(如同建造机械算盘)与性能不足以运行如此程序。但在1947年发明了晶体管,以及莫里斯·威尔克斯发明的微程序方法,使得计算机不再是机械设备,而是电子产品。系统管理工具以及简化硬件操作流程的程序很快就出现了,且成为操作系统的起源。到了1960年代早期,商用计算机制造商制造了批处理系统,此系统可将工作的建置、调度以及运行序列化。此时,厂商为每一台不同型号的计算机创造不同的操作系统,因此为某计算机而写的程序无法移植到其他计算机上运行,即使是同型号的计算机也不行。

到了1964年,IBM System/360推出了一系列用途与价位都不同的大型机,而它们都共享代号为OS/360的操作系统(而非每种产品都用量身订做的操作系统)。让单一操作系统适用于整个系列的产品是System/360成功的关键,且实际上IBM当前的大型系统便是此系统的后裔,为System/360所写的应用程序依然可以在现代的IBM机器上运行。

OS/360也包含另一个优点:永久贮存设备—硬盘的面世(IBM称为DASD)。另一个关键是分时概念的建立:将大型机珍贵的时间资源适当分配到所有用户身上。分时也让用户有独占整部机器的感觉;而Multics的分时系统是此时众多新操作系统中实践此观念最成功的。

1963年,奇异公司与贝尔实验室合作以PL/I语言创建的Multics[1],是激发1970年代众多操作系统创建的灵感来源,尤其是由AT&T贝尔实验室的丹尼斯·里奇与肯·汤普逊所创建的Unix系统,为了实践平台移植能力,此操作系统在1973年由C语言重写;另一个广为市场采用的小型计算机操作系统是VMS。

1980年代
第一代微型计算机并不像大型机或小型计算机,没有装设操作系统的需求或能力;它们只需要最基本的操作系统,通常这种操作系统都是从ROM读取的,此种程序被称为监视程序(Monitor)。1980年代,家用计算机开始普及。通常此时的计算机拥有8-bit处理器加上64KB存储器、显示器、键盘以及低音质喇叭。而80年代早期最著名的套装计算机为使用微处理器6510(6502芯片特别版)的Commodore C64。此计算机没有操作系统,而是以一8KB只读存储器BIOS初始化彩色显示器、键盘以及软盘驱动器和打印机。它可用8KB只读存储器BASIC语言来直接操作BIOS,并依此撰写程序,大部分是游戏。此BASIC语言的解释器勉强可算是此计算机的操作系统,当然就没有内核或软硬件保护机制了。此计算机上的游戏大多跳过BIOS层次,直接控制硬件。


早期最著名的磁盘引导型操作系统是CP/M,它支持许多早期的微计算机。最早期的IBM PC其架构类似C64。当然它们也使用了BIOS以初始化与抽象化硬件的操作,甚至也附了一个BASIC解释器!但是它的BASIC优于其他公司产品的原因在于他有可携性,并且兼容于任何匹配IBM PC架构的机器上。这样的PC可利用Intel-8088处理器(16-bit寄存器)定址,并最多可有1MB的存储器,然而最初只有640KB。软式磁盘驱动器取代了过去的磁带机,成为新一代的存储设备,并可在他512KB的空间上读写。为了支持更进一步的文件读写概念,磁盘操作系统(Disk Operating System,DOS)因而诞生。此操作系统可以合并任意数量的扇区,因此可以在一张磁盘片上放置任意数量与大小的文件。文件之间以文件名区别。IBM并没有很在意其上的DOS,因此以向外部公司购买的方式获取操作系统。1980年微软公司获取了与IBM的合约,并且收购了一家公司出产的操作系统,在将之修改后以MS-DOS的名义出品,此操作系统可以直接让程序操作BIOS与文件系统。到了Intel-80286处理器的时代,才开始实现基本的存储设备保护措施。其后,MS-DOS成为了IBM PC上面最常用的操作系统(IBM自己也有推出DOS,称为IBM-DOS或PC-DOS)。MS-DOS的成功使得微软成为地球上最赚钱的公司之一。

而1980年代另一个崛起的操作系统异数是Mac OS,此操作系统紧紧与麦金塔计算机捆绑在一起。此时一位施乐帕罗奥多研究中心的员工Dominik Hagen拜访(Visits)了苹果计算机的史蒂夫·乔布斯,并且向他展示了此时施乐发展的图形用户界面。苹果计算机惊为天人,并打算向施乐购买此技术,但因帕罗奥多研究中心并非商业单位而是研究单位,因此施乐回绝了这项买卖。在此之后苹果一致认为个人计算机的未来必定属于图形用户界面,因此也开始发展自己的图形化操作系统。

1990年代

Apple I计算机,苹果计算机的第一代产品。
延续1980年代的竞争,1990年代出现了许多影响未来个人计算机市场深厚的操作系统。由于图形用户界面日趋繁复,操作系统的能力也越来越复杂与巨大,因此强韧且具有弹性的操作系统就成了迫切的需求。此年代是许多套装类的个人计算机操作系统互相竞争的时代。

上一年代于市场崛起的苹果计算机,由于旧系统的设计不良,使得其后继发展不力,苹果计算机决定重新设计操作系统。经过许多失败的项目后,苹果于1997年发布新操作系统——Mac OS X的测试版,而后推出的正式版获取了巨大的成功。让原先失意离开苹果的史蒂夫·乔布斯风光再现。

除了商业主流的操作系统外,从1980年代起在开放源代码的世界中,BSD系统也发展了非常久的一段时间,但在1990年代由于与AT&T的法律争端,使得远在芬兰赫尔辛基大学的另一股开源操作系统——Linux兴起。Linux内核是一个标准POSIX内核,其血缘可算是Unix家族的一支。Linux与BSD家族都搭配GNU项目所发展的应用程序,但是由于使用的许可证以及历史因素的作弄下,Linux获取了相当可观的开源操作系统市占率,而BSD则小得多。相较于MS-DOS的架构,Linux除了拥有傲人的可移植性(相较于Linux,MS-DOS衹能运行在Intel CPU上),它也是一个分时多进程内核,以及良好的存储器空间管理(普通的进程不能访问内核区域的存储器)。想要访问任何非自己的存储器空间的进程衹能透过系统调用来达成。一般进程是处于用户态(User mode)底下,而运行系统调用时会被切换成内核态(Kernel mode),所有的特殊指令衹能在内核态运行,此措施让内核可以完美管理系统内部与外部设备,并且拒绝无权限的进程提出的请求。因此理论上任何应用程序运行时的错误,都不可能让系统崩潰。

另一方面,微软对于更强力的操作系统呼声的回应便是Windows NT于1993年的面世。

1983年开始微软就想要为MS-DOS建构一个图形化的操作系统应用程序,称为Windows(有人说这是比尔·盖茨被苹果的Lisa计算机上市所刺激)。一开始Windows并不是一个操作系统,只是一个应用程序,其背景还是纯MS-DOS系统,这是因为当时的BIOS设计以及MS-DOS的架构不甚良好之故。在1990年代初,微软与IBM的合作破裂,微软从OS/2(早期为命令行模式,后来成为一个很技术优秀但是曲高和寡的图形化操作系统)项目中抽身,并且在1993年7月27日推出Windows 3.1,一个以OS/2为基础的图形化操作系统。并在1995年8月15日推出Windows 95。这时的Windows系统依然是创建在MS-DOS的基础上,不过微软在这同时也在开发不依赖于DOS的NT系列Windows系统,并在后来完全放弃了DOS而转向NT作为Windows的基础。

底下的表格为Windows NT系统的架构:在硬件层次结构之上,有一个由微内核直接接触的硬件抽象层(HAL),而不同的驱动程序以模块的形式挂载在内核上运行。因此微内核可以使用诸如输入输出、文件系统、网络、信息安全机制与虚拟内存等功能。而系统服务层提供所有统一规格的函数调用库,可以统一所有子系统的实现方法。例如尽管POSIX与OS/2对于同一件服务的名称与调用方法差异甚大,它们一样可以无碍地实现于系统服务层上。在系统服务层之上的子系统,全都是用户态,因此可以避免用户程序运行非法行动。

子系统架构第一个实现的子系统群当然是以前的微软系统。DOS子系统将每个DOS程序当成一进程运行,并以个别独立的MS-DOS虚拟机承载其运行环境。另外一个是Windows 3.1模拟系统,实际上是在Win32子系统下运行Win16程序。因此达到了安全掌控为MS-DOS与早期Windows系统所撰写之旧版程序的能力。然而此架构只在Intel 80386处理器及后继机型上实现。且某些会直接读取硬件的程序,例如大部分的Win16游戏,就无法套用这套系统,因此很多早期游戏便无法在Windows NT上运行。Windows NT有3.1、3.5、3.51与4.0版。Windows 2000是Windows NT的改进系列(事实上是Windows NT 5.0)、Windows XP(Windows NT 5.1)以及Windows Server 2003(Windows NT 5.2)与Windows Vista(Windows NT 6.0)也都是立基于Windows NT的架构上。

而本年代渐渐增长并越趋复杂的嵌入式设备市场也促使嵌入式操作系统的成长。
View Code

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄