0%

操作系统(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处理完之后再把数据传输给内存,然后内存把显示信息传输给总线,总线给到显卡,显卡又通过总线传输给显示器,最后在显示器上就能显示谷歌页面。

操作系统工作流程图

区块链是由互联网交易的不可靠性催生的。在互联网时代,电子交易迎来了蓬勃发展,互联网货币得以问世。而互联网货币要得以发展就需要解决信息欺诈的问题,互联网交易不像是现金交易可以面对面对对方的身份进行确认,并且还可以双发签字留下交易票据。

中心化——第三方担保

现在应用的比较广泛地解决方案就是第三方担保,支付宝和微信支付就是这种模式。支付宝和微信会对他们的用户进行身份核实,他们做为可靠的第三方,对另外两方的交易做担保,产生记录信息,以便查账。这种通过第三方担保的方式实现的交易具有中心化的特点。

去中心化——区块链技术

中本聪在2008年提出了叫比特币的电子现金系统。引领了一场挖矿热潮,带来了全新的区块链技术。该技术的研发使得互联网产生了共识机制。一直以来互联网都是作为信息的传播载体,而难以作为价值交易的直接平台。这是因为网络节点庞大,身份信息不可靠,交易双方之间没办法建立可靠的交易环境,无法解决欺诈问题。

而中本聪的方法就好比“三人成虎”,要是现在在大街上一个人对你喊老虎来啦,你肯定不信,那要是一群人,整个大街的人都边跑边说老虎来了呢?你是不是就信了。这就是群体的力量!中本聪就是利用这种方式,把交易透明化,公开化。李铁柱要还100块给王小花,在她们俩交易的时候,叫上了全村老少来看,你们看哈,我李铁柱还了100块了哈,王小花就不能赖账了。除非她说服全村51%的人替她撒谎,这实现起来比较困难。区块链咱们就类比这种情况,李铁柱要还100块给王小花这就是一个交易(但是要记住这里还不算交易完成),当这个交易产生的之后李铁柱和王小花节点就扯着嗓子喊就跟村口广播喇叭一样一样的,其他节点都收到了交易信息,这些节点会不断地存储交易信息,那谁来记账呢,要是谁都可以随时记账,那不乱套了,会产生很多冲突。因此,他们还会做一个超难的题,大胖先解出来了大胖就有机会记录他收集到的交易信息的权力,他就可以把信息做成一个区块,广播通知其他人,其他人也会验证大胖的信息的可靠性,然后可信的话他们就会把这个区块信息添加进主链,这样就上链成功,此时,李铁柱和王小花的交易才算完成。看到了吗,大家的手里都有一套完整的账本,收集交易信息,抢着做题,然后拿到记账权(此时,你们就疑惑了为啥抢着记账呀,这不吃力不讨好吗,因为钱呀!你记账系统会给你比特币奖励,这就是挖矿的意思),做成一个区块(这个区块就是收集的交易信息),大家确认区块信息无误,区块这才算上了主链。那现在如果王小花想要赖账,铁柱没给我钱!她就要篡改含有她交易的区块信息。但是主链信息可是没那么容易修改的,每个区块串起来还对前一个区块信息做了哈希加密,然后存在本区块里面。那王小花要是改了她交易的区块,后面的区块信息就和前面对不上,链就断了。

公有链

就是大家谁都可以加入进来的区块链。

私有链

就是你个人,单个企业的区块链,不是谁都可以加入进来,只对某些客户开放权限。

联盟链

就是各大机构每个人一个链,但是又可以信息互通。也不是谁都可以进,联盟里面才行。

唉,今天时间太赶了,就先扯这么点吧,还有好多地方没细讲,开组会没时间写。