Linux基础操作二
编程语言的作用及与操作系统和硬件的关系
编程语言的作用:用来定义计算机程序的形式,程序员用它来编写程序,进而控制其向计算机发出指令,使计算机完成人类布置的任务。
编程语言的作用及与操作系统和硬件的关系:程序用编程语言开发,而程序必须在操作系统上运行,即操作系统是程序的运行环境。程序不能直接控制计算机硬件,必须由程序向操作系统发出请求,通过操作系统来控制硬件。
应用程序-》操作系统-》硬件
应用程序:指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。应用程序通常又被分为两部分:图形用户接口(GUI)和引擎(Engien)。
操作系统:一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。
硬件:计算机硬件的简称,是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。简言之,硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
操作系统位于硬件与程序之间,是两者沟通的桥梁。程序可以通过操作系统发出命令,操作系统则对命令进行解释,驱动硬件设备,实现对其控制。
cpu-》内存-》磁盘
CPU:中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(ALU,Arithmetic and Logic Unit)和控制器(CU,Control Unit)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。
内存:是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的。内存也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。 内存是由内存芯片、电路板、金手指等部分组成的。它包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。其中的数据只能暂时保存,断电数据即丢失。
硬盘:电脑主要的存储永久数据的载体之一,包含固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。
硬盘和CPU间不能直接进行数据传输,它们的传输媒介即内存。CPU读取数据最快,内存次之,硬盘最慢。
cpu与寄存器,内核态与用户态及如何切换
CPU与寄存器:寄存器是CPU硬件组成的一部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。因访问内存以得到指令或数据的时间比CPU执行指令花费的时间要长得多,所以,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器,这样通常在CPU的指令集中专门提供一些指令,用来将一个字(可以理解为数据)从内存调入寄存器,以及将一个字从寄存器存入内存。CPU其他的指令集可以把来自寄存器、内存的操作数据组合,或者用两者产生一个结果,比如将两个字相加并把结果存在寄存器或内存中。
寄存器的分类:除了用来保存变量和临时结果的通用寄存器外;多数计算机还有一些对程序员课件的专门寄存器,其中之一便是程序计数器,它保存了将要取出的下一条指令的内存地址,在指令取出后,程序计算器就被更新以便执行后期的指令;另外一个寄存器便是堆栈指针,它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量;最后,一个非常重要的寄存器就是程序状态字寄存器(Program Status Word,PSW),这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。
内核态与用户态及如何切换:所有用户程序都是运行在用户态的, 可有时候程序需要做一些内核态的事情(如从硬盘读取数据, 或者从键盘获取输入等)。 唯一可以做这些事情的就是操作系统, 所以此时程序就需要先操作系统请求以程序的名义来执行这些操作。这时需要一个这样的机制: 用户态程序切换到内核态, 但是不能控制在内核态中执行的指令,这种机制叫系统调用, 在CPU中的实现称之为陷阱指令(Trap Instruction)。他们的工作流程如下:
1.用户态程序将一些数据值放在寄存器中, 或者使用参数创建一个堆栈(stack frame), 以此表明需要操作系统提供的服务;
2.用户态程序执行陷阱指令;
3.CPU切换到内核态, 并跳到位于内存指定位置的指令, 这些指令是操作系统的一部分, 他们具有内存保护, 不可被用户态程序访问;
4.这些指令称之为陷阱(trap)或者系统调用处理器(system call handler). 他们会读取程序放入内存的数据参数, 并执行程序请求的服务;
5.系统调用完成后, 操作系统会重置CPU为用户态并返回系统调用的结果。
另外也以下两种情况也能导致内核态与用户态的切换
1.异常:当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
2.外围设备的中断:当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
L1缓存:即一级缓存,CPU第一层高速缓存。它的容量不可能做得太大。一般L1缓存的容量通常在32—256KB。缓存数据只能暂时保存。
L2缓存:二级缓存,是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半。L2缓存容量也会影响CPU的性能,原则是越大越好,普通台式机CPU的L2缓存一般为128KB到2MB或者更高,笔记本、服务器和工作站上用CPU的L2高速缓存最高可达1MB-3MB。和L1缓存一样数据只能暂时保存。
内存:内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。内存是由内存芯片、电路板、金手指等部分组成的。它包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。其中的数据只能暂时保存,断电数据即丢失。容量512MB到8GB以上不等。
EEPROM和闪存:EEPROM(带电可擦写可编程只读存储器)是用户可更改的只读存储器,其可通过高于普通电压的作用来擦除和重编程(重写)。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程。EEPROM是一种特殊形式的闪存,其应用通常是个人电脑中的电压来擦写和重编程。闪存是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,EEPROM能在字节水平上进行删除和重写而不是整个芯片擦写,而闪存的大部分芯片需要块擦除。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本程序)、PDA(个人数字助理)、数码相机中保存资料等。
读取速度:L1缓存>>L2缓存>>内存(RAM)>>EEPROM和闪存。
CMOS:互补金属氧化物半导体,常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
BIOS电池:主板电池用于记录计算机系统的时间,也就是维持系统时钟的准确性,电量不够时,时间会回到出厂日期,还有记录启动时要用的硬件信息,也就是维持CMOS的BIOS信息。
磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU
平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置。
平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
磁带
磁带:即计算机带,作为数字信息的存贮具有容量大、价格低、读取速度慢的优点。主要大量用于计算机的外存贮器。如今仅在专业设备上使用(比如计算机磁带存储器、车床控制机)因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份(常见于大型数据库系统中)。
设备驱动与控制器
设备驱动:用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系。设备驱动即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机操作系统就可以与设备进行通信,对其进行操作。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。
控制器:指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制机器的启动、调速、制动和反向的主令装置。由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
总线与南桥和北桥
总线:计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
南桥:芯片的发展方向主要是集成更多的功能,例如网卡、RAID、IEEE1394、甚至WI-FI无线网络等等。是主板芯片组的重要组成部分,一般位于主板上离CPU插槽较远的下方,PCI的前面,即靠主机箱前的一面,这种布局是考虑到它所连接的I/O总线较多,离处理器远一点有利于布线,而且更加容易实现信号线等长的布线原则。相对于北桥芯片来说,南桥芯片数据处理量并不算大。南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等。
北桥:北桥芯片就是主板上离CPU最近的芯片,这主要是考虑到北桥芯片与处理器之间的通信最密切,为了提高通信性能而缩短传输距离。北桥芯片是主板芯片组中起主导作用的最重要的组成部分,也称为主桥。一般来说,芯片组的名称就是以北桥芯片的名称来命名的,北桥芯片负责与CPU的联系并控制内存、AGP、PCI数据在北桥内部传输,提供对CPU的类型和主频、系统的前端总线频率、内存的类型(SDRAM、DDR、RDRAM以及DDRII等)和最大容量、ISA/PCI/AGP/PCIE插槽、ECC纠错等支持,整合型芯片组的北桥芯片还集成了显示核心。
操作系统的启动流程
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
应用程序的启动流程
点击应用程序路径,通过操作系统硬盘找到应用程序存储位置,硬盘将程序数据由内存传输至中央处理器,中央处理器对数据进行解译执行。