0%

操作系统(1)

操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

上面的话是我百度的,哈哈哈哈。主要是不知道咋概括,我在用自己的话随便讲一下。操作系统顾名思义,操作,就是我们用户想要对计算机进行一些操作,比如让计算机屏幕打印“hello,world”,在没有装操作系统的时候,想要完成这个操作就需要很多繁琐的步骤:需要用户直接使用机器语言对计算机硬件进行操作,调动cpu,内存,存储器,显卡,显示器共同协作完成屏幕打印操作。看到了没有,操作系统其实就是用户和硬件设备沟通的桥梁,操作系统把操作界面可视化(例如:文件夹,控制面板等软件图标),用户可以通过鼠标和键盘告诉操作系统“我要干嘛”,操作系统就会把用户的操作转化成机器能够听懂的指令,使得计算机完成用户操作。

学习一个东西先要有宏观的概念,再去学习微观上的细枝末节。这样你的脑子里面就有一个大框架,然后再往框架里面添砖加瓦,这样才更加牢固。很简单的例子,建房子不先把地基打好,你跟我谈墙壁刷啥颜色的,床买多大的,洗衣机放哪里,格局都没有确定下来这些讨论就是毫无意义的。而我感觉老师讲课上来就是讲操作系统是干什么的,操作系统的分类,就让人有点摸不着头脑。其实,学习一个新知识最快的方法就是实践,我算是发现我之前学了就忘是因为根本就是在记死知识。因此,我花了点时间总结了一下操作系统整个宏观上的工作流程(当然,有好多地方是自己个人的想法不太成熟,发现问题之后我会积极改正)。先宏观,再微观

操作系统工作流程

讲后面的流程之前,先来介绍几个名词

BIOS

BIOS(Basic Input Output System)基本输入输出系统,保存在主板上的ROM(只读,断电数据不丢失)芯片中,保存着计算机的基本输入输出程序、系统设置信息、开机后自检程序和系统自启动程序,是一组设置硬件的电脑程序。它为计算机提供最底层的、最直接的硬件控制,计算机的原始操作都是依照固化在BIOS里的内容来完成的。准确地说,BIOS是硬件与软件程序之间的一个接口或者说是转换器,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行。关键信息:保存在ROM上,设置各种开机和系统信息,是一个程序。

CMOS

CMOS(Complementary Metal Oxide Semiconductor)互补金属氧化物半导体,是一块可读写的RAM(可读写,断电数据丢失)芯片,集成在主板上,用来保存当前系统的硬件配置和用户对参数的设定,而保存是需要电力来维持的,所以每一块主板上都会有一颗纽扣电池,叫CMOS电池。 CMOS里存放着参数,要设置它,我们必须通过程序把设置好的参数写入CMOS,所以,就利用BIOS程序来读写。关键信息:RAM可读写芯片,开机参数,BIOS写入。

编译器

将高级程序语言翻译成机器直接可读的机器语言(就是由操作码和操作数组成的指令集合)。

链接器

链接器(Linker)是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。目标文件是包括机器码和链接器可用信息的程序模块。简单的讲,链接器的工作就是解析未定义的符号引用,将目标文件中的占位符替换为符号的地址。链接器还要完成程序中各目标文件的地址空间的组织,这可能涉及重定位工作。

可执行文件

可执行文件(executable file) 指的是可以由操作系统进行加载执行的文件。

可执行文件的产生流程如下:

源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

将源程序编译为obj文件,再用链接器将obj文件链接成exe文件。在链接时(静态链接)将其链接为可执行文件。然后,通常由操作系统调用此可执行文件,操作系统将程序加载到存储器(加载时间),可能执行动态链接,然后通过将控制移动到程序的入口点来开始执行。所有这些步骤都取决于操作系统的应用程序二进制接口。此时执行开始,程序进入运行时。程序然后运行直到它结束,正常终止或崩溃。

开机过程

好了有了前面这些概念铺垫,就可以进入开机过程啦。对计算机进行通电之后,就会启动BIOS,BIOS就会由主板上的闪存运行,并将芯片组和存储器子系统初始化。BIOS会把自己从闪存中,解压缩到系统的主存,并且从那边开始运行。PC的BIOS代码也包含诊断功能,以保证某些重要硬件组件,像是键盘、磁盘、输出输入端口等等,可以正常运作且正确地初始化。硬件自检没问题之后就BIOS就将各参数写入CMOS中,方便以后读取这些信息。在BIOS程序界面可以选择电脑第一启动项,可以是光盘,硬盘,U盘等(像重装系统一般都需要U盘启动)。BIOS点亮显示器,启动硬盘,把操作系统从硬盘中调出来执行。操作系统的界面就显示出来了。

运行程序

前面讲到,exe可执行文件是可被操作系统加载执行的文件。不相信你看看谷歌浏览器的文件夹,你就会发现有谷歌图标的文件后缀是exe,那就是我们运行谷歌浏览器时运行的程序,而文件夹里其他的可能是程序运行中需要的资源文件吧(猜的)。然后我们双击文件图标,就是告诉操作系统我要打开这个程序,然后操作系统就会为这个可执行程序分配资源,从硬盘调入内存,等待进入CPU,CPU处理完之后再把数据传输给内存,然后内存把显示信息传输给总线,总线给到显卡,显卡又通过总线传输给显示器,最后在显示器上就能显示谷歌页面。

操作系统工作流程图