Day 1 计算机基础及硬件

来源:互联网 发布:windows10安装ubuntu 编辑:程序博客网 时间:2024/05/31 18:50


1. 编程语言的作用


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

程式语言可透过机械、电脑来达成与完成人类需求的演算、功能与目的。实体的传输连结:透过低阶程式语言或高阶程式语言,将实体间接达成传输连结或控制实体。应用程式的发展:高阶程式语言可发展多功能的应用程式软体,如:作业系统、工程计算机软体、转档软体、烧录软体、播放软体、网页设计等。


2.操作系统和硬件的关系


计算机启动到操作系统可以运行都是BIOS基本输入程序再进行引导和作用的当所有硬件都进行检测协调之后BIOS就把控制权交给了操作系统。 操作系统如果到读取一个数据就把一个指令比如回车转为数字信号交给了CPU和主板上的芯片组由它们把这些数字信号转为机器能听得懂的语言再把机器语言转变为电信号然后由CPU和芯片组把不同的电信号传输给主机所连接的各个部件协调同理再把电信号转为数字信号进入操作系统后再把它转为模拟图像就看到了最后的结果.


3.应用程序


指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。应用程序通常又被分为两部分:图形用户接口(GUI)和引擎.


4.操作系统


操作系统(operating system,缩写:OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的核心与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出装置、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统互动的操作界面。
操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从行动电话的嵌入式系统到超级电脑的大型作业系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统整合了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程式。
操作系统理论在计算机科学中,为历史悠久而又活跃的分支;而操作系统的设计与实现则是软件工业的基础与核心。


5.硬件


硬件是设备在机箱内以做出个人电脑。系统软件是存储在硬件内,而系统软件内含有固件,例如BIOS以及操作系统,这些软件使应用软件可以提供用户所需的功能。操作系统通常借由总线与设备沟通,这需要软件提供驱动程序。


6.CPU


中央处理器 (Central Processing Unit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。中央处理器、内部存储器和输入/输出设备是现代电脑的三大核心部件。1970年代以前,中央处理器由多个独立单元构成,后来发展出由集成电路制造的中央处理器,这些高度收缩的组件就是所谓的微处理器,其中分出的的中央处理器最为复杂的电路可以做成单一微小功能强大的单元。

中央处理器广义上指一系列可以执行复杂的计算机程序的逻辑机器。这个空泛的定义很容易地将在“CPU”这个名称被普遍使用之前的早期计算机也包括在内。无论如何,至少从1960年代早期开始(Weik 1961),这个名称及其缩写已开始在电子计算机产业中得到广泛应用。尽管与早期相比,“中央处理器”在物理形态、设计制造和具体任务的执行上有了极大的发展,但是其基本的操作原理一直没有改变。

早期的中央处理器通常是为大型及特定应用的计算机而定制。但是,这种昂贵的为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。IC使得更为复杂的中央处理器可以在很小的空间中设计和制造(在微米的数量级)。中央处理器的标准化和小型化都使得这一类数字设备和电子零件在现代生活中的出现频率远远超过有限应用专用的计算机。现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。

运算器:算术、逻辑(部件:算术逻辑单元、累加器、寄存器组、路径转换器、数据总线)

控制器:复位、使能(部件:计数器、指令寄存器、指令解码器、状态寄存器、时钟发生器、微操作信号发生器)


7.内存


计算机内存(Computer memory)是一种利用半导体技术制成的存储数据的电子设备。其电子电路中的数据以二进制方式存储,内存的每一个存储单元称做记忆元。计算机内存可以根据存储能力与电源的关系可以分为以下两类:

易失性内存(Volatile memory):指当电源供应中断后,内存所存储的数据便会消失的内存。主要类型有:随机访问内存。

非易失性内存(Non-volatile memory):指即使电源供应中断,内存所存储的数据并不会消失,重新供电后,就能够读取内存中的数据。 主要种类有:只读内存、闪存、磁盘。


8.磁盘


碟盘存储(Disk storage,或 Disc storage),一种存储数据的机制,它将类比数据或数字数据存放在一个或多个经过特殊处理的圆盘表面,通过旋转圆盘的方式,来取出数据。根据它的存储媒介,又可以分成电子式、磁性式、光学式或机械式等。这类设备,最著名的就是磁盘,如软盘(floppy disk,FD)、硬盘(hard disk,HD)以及黑胶唱片、光盘(optical disk)等。碟盘驱动程序(disk drive)是用来控制这类硬件装制的软件驱动。

软盘(FD)在台湾常称作磁片,是个人电脑设备中,取代磁带的可移动存储媒体。第一个软盘是由IBM于1971年开发出的,直径8吋。随着硬件技术的发展与使用的需要,又派生出5.25吋的软盘,并广泛使用在Apple II、IBM PC及其他兼容电脑上。苹果1984年在Mac机开始采用3.5吋软盘,此时容量还不到1MB,后来,由日本索尼的3.5吋软盘容量有1.44MB所取代,这种软盘80至90年代盛行,直至2000年代以前,3.5吋软盘驱动器仍是电脑普及设备之一,后已渐被淘汰。

硬盘(Hard Disk Drive,简称HDD)是电脑上使用坚硬的旋转盘片为基础的非挥发性存储设备,它在平整的磁性表面存储和检索数字数据,信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取,例如读头经过纪录数据的上方时磁场导致线圈中电气信号的改变。硬盘的读写是采用随机存取的方式,因此可以以任意顺序读取硬盘中的数据。硬盘包括一至数片高速转动的磁盘以及放在执行器悬臂上的磁头。

早期的硬盘存储介质是可替换的,不过今日典型的硬盘采用的是固定的存储介质,碟片与磁头被封装在机身里(除了一个有过滤的气孔,用来平衡工作时产生的热量导致的气压差)。

硬盘是由IBM在1956年开始使用,在1960年代初成为通用式电脑中主要的辅助存放设备,随着技术的进步,硬盘也成为服务器及个人电脑的主要组件。


9.寄存器与CPU


寄存器(Register),是中央处理器内的其中组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器。

在电脑架构里,处理器中的寄存器是少量且速度快的电脑内存,借由提供快速共同地访问数值来加速计算机程序的运行:典型地说就是在已知时间点所作的之计算中间的数值。

寄存器是内存层次结构中的最顶端,也是系统操作数据的最快速途径。寄存器通常都是以他们可以保存的比特数量来估量,举例来说,一个8位寄存器或32位寄存器。寄存器现在都以寄存器数组的方式来实现,但是他们也可能使用单独的触发器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实现出来。

这个名词通常都用来意指由一个指令之输出或输入可以直接索引到的寄存器组群。更适当的是称他们为“架构寄存器”。例如,x86指令集定义八个32位寄存器的集合,但一个实现x86指令集的CPU可以包含比八个更多的寄存器。


10.内核态与用户态及时切换


在电脑中,系统调用(system call),又称为系统呼叫,指运行在使用者空间的程序向操作系统内核请求需要更高权限运行的服务。系统调用提供用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态执行。如设备IO操作或者进程间通信。

操作系统的进程空间可分为用户空间(用户态)和内核空间(内核态),它们需要不同的执行权限。其中系统调用运行在内核空间。


典型实现(Liunx)

Linux 的系统调用通过 int 80h 实现,用系统调用号来区分入口函数。操作系统实现系统调用的基本过程是:

  1. 应用程序调用库函数(API);
  2. API 将系统调用号存入 EAX,然后通过中断调用使系统进入内核态;
  3. 内核中的中断处理函数根据系统调用号,调用对应的内核函数(系统调用);
  4. 系统调用完成相应功能,将返回值存入 EAX,返回到中断处理函数;
  5. 中断处理函数返回到 API 中;
  6. API 将 EAX 返回给应用程序。

应用程序调用系统调用的过程是:

  1. 把系统调用的编号存入 EAX;
  2. 把函数参数存入其它通用寄存器;
  3. 触发 0x80 号中断(int 0x80)


11.存储器系列,L1缓存,L2缓存


高速缓存(cache,简称缓存),其原始意义是指访问速度比一般随机存取内存(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

当CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从随机存取内存(Main memory)中读取数据——由于CPU的运行速度一般比主内存的读取速度快,主存储器周期(访问主存储器所需要的时间)为数个时钟周期。因此若要访问主内存的话,就必须等待数个CPU周期从而造成浪费。

提供“缓存”的目的是为了让数据访问的速度适应CPU的处理速度,其基于的原理是内存中“程序执行与数据访问的局域性行为”,即一定程序执行时间和空间内,被访问的代码集中于一部分。为了充分发挥缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测与数据预取技术——尽可能把将要使用的数据预先从内存中取到缓存里。

CPU的缓存曾经是用在超级计算机上的一种高级技术,不过现今电脑上使用的的AMD或Intel微处理器都在芯片内部集成了大小不等的数据缓存和指令缓存,通称为L1缓存(L1 Cache即Level 1 On-die Cache,第一级片上高速缓冲存储器);而比L1更大容量的L2缓存曾经被放在CPU外部(主板或者CPU接口卡上),但是现在已经成为CPU内部的标准组件;更昂贵的CPU会配备比L2缓存还要大的L3缓存(level 3 On-die Cache第三级高速缓冲存储器)。

概念扩充:如今缓存的概念已被扩充,不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘缓存),乃至在硬盘与网络之间也有某种意义上的Cache──称为Internet临时文件夹或网络内容缓存等。凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache。


12.内存(RAM)


随机存取存储器(Random Access Memory,缩写:RAM),是与CPU直接交换数据的内部存储器,也叫主存。它可以随时读写(刷新时除外,见下文),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

主存(Main memory)即电脑内部最主要的存储器,用来加载各式各样的程序与数据以供CPU直接运行与运用。由于DRAM的性价比很高,且扩展性也不错,是现今一般电脑主存的最主要部分。2014年生产电脑所用的主存主要是DDR3 SDRAM,而2016年开始DDR4 SDRAM逐渐普及化,笔电厂商如华硕及宏碁开始在笔电以DDR4存储器取代DDR3L。


13.EEPROM,CMOS,BIOS电池与闪存


EEPROM,全称电子抹除式可复写只读内存(Electrically-Erasable Programmable Read-Only Memory),是一种可以通过电子方式多次复写的半导体存储设备。可以用特定的电压,来抹除芯片上的信息,以便写入新的数据。EEPROM有四种工作模式:读取模式、写入模式、擦除模式、校验模式。

由于EEPROM的优秀性能,以及在在线操作的便利,它被广泛用于需要经常擦除的BIOS芯片以及闪存芯片,并逐步替代部分有断电保留需要的RAM芯片,甚至取代部分的硬盘功能。它与高速RAM成为当前(21世纪00年代)最常用且发展最快的两种存储技术。

CMOS具有易失性,它保存着BIOS程序的设置结果。而且,CMOS中的用户信息和常规设置需要在BIOS程序引导计算机启动后才能载入。CMOS和递增时间的电路由一小块电池(BIOS电池)驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的用户信息和常规设置都将丢失。


14.磁盘结构


磁盘主要由磁头,磁道,扇区,柱面构成。




15.平均寻道时间


机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置。


16.平均延迟时间


机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。


17.虚拟内存与MMU


虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。

注意:虚拟内存不只是“用磁盘空间来扩展物理内存”的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不活动状态的程序以及它们的数据全部交换到磁盘上等方式来实现。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为“连续的虚拟内存地址”,以借此“欺骗”程序,使它们以为自己正在使用一大块的“连续”地址。

内存管理单元(memory management unit,缩写:MMU),它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换(bank switching,尤其是在8位的系统上)。


18.磁带


磁带(Magnetic tape)是一种非易失性存储介质,由带有可磁化覆料的塑料带状物组成(通常封装为卷起)。由于磁带是循序存取的装置,尤为适合传统的存储和备份以及顺序读写大量资料的使用场景。磁带的类型多种多样,可储存的内容也多种多样。用于计算机的磁带在1980年代等早期计算机时代曾被广泛应用,但因为速度较慢,且体积较大等缺点,现在在日常环境中已不常用。


19.设备驱动与控制器


设备驱动程序(device driver),简称驱动程序(driver),是一个允许高级(High level)电脑软件(computer software)与硬件(hardware)交互的程序,这种程序创建了一个硬件与硬件,或硬件与软件沟通的接口,经由主板上的总线(bus)或其它沟通子系统(subsystem)与硬件形成连接的机制,这样的机制使得硬件设备(device)上的数据交换成为可能。

在控制论中,控制器(controller)是一依据传感器信号,来调整发送至致感器的输出信号,用以改变受控体(plant)状况的装置。对于计算机,CPU并不是系统中唯一的智能设备,每个物理设备都拥有自己的控制器。键盘、鼠标和串行口由一个高级I/O芯片统一管理,IDE控制器控制IDE硬盘而SCSI控制器控制SCSI硬盘等等。每个硬件控制器都有各自的控制状态寄存器(CSR)并且各不相同。例如Adaptec 2940 SCSI控制器的CSRNCR 810 SCSI控制器完全不一样。这些寄存器用来启动、停止、初始化设备以及对设备进行诊断。在 Linux 中管理硬件设备控制器的代码并没有放置在每个应用程序中而是由内核统一管理,这些处理和管理硬件控制器的软件就是设备驱动程序。Linux 内核的设备管理是由一组运行在特权级上,驻留在内存以及对底层硬件进行处理的共享库的驱动程序来完成的。

设备管理的一个基本特征是设备处理的抽象性,即所有硬件设备都被看成普通文件,可以通过用操纵普通文件相同的系统调用来打开、关闭、读取和写入设备。系统中每个设备都用一种设备特殊文件来表示,例如系统中第一个IDE硬盘被表示成/dev/hda


20.总线与南桥和北桥


随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。南北桥,我们的计算机硬件是通过主板上面的北桥和南桥联系起来的,北桥即PCI桥:连接高速设备,南桥即ISA桥:连接慢速设备,所以有了下图:



21.操作系统的启动流程


(1)首先是加电;

(2)BIOS进行检测计算机硬件是否正常,cpu、内存、硬盘等;

(3)BIOS读取CMOS中存储的参数,加载启动项;

(4)从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位);

(5)根据分区信息读入bootloader启动装载模块,启动操作系统;

(6)然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI。

22.应用程序的启动流程


(1)用户打开程序;

(2)系统吧程序代码段和数据段送入计算机内存;

(3)控制器从存储器中获取指令;

(4)控制器分析,执行指令,为获取下一条指令做准备;

(5)获取下一条指令,分析并执行,如此反复,直至执行完程序所需全部指令。


原创粉丝点击