栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

计算机硬件与操作系统与内核

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

计算机硬件与操作系统与内核

参考:https://blog.csdn.net/lemonpi/article/details/79620039

一、三者关系

1.操作系统建立在处理器(计算机硬件)之上,利用处理器的指令集来进行硬件管理和资源抽象。

应用程序利用操作系统提供的服务来完成特定的任务。

根据目标处理器的不同,操作系统也相应地分为32-bit和64-bit的系统。现在的大部分处理器都是64-bit的,支持64-bit操作系统;同时,这些处理器也完全兼容32-bit操作系统。但是,32-bit的处理器则不能安装64-bit的操作系统,因为它只支持32-bit的指令集。

64-bit操作系统通常能同时支持32-bit和64-bit的应用程序,但是32-bit的操作系统则不支持64-bit的应用程序(除非通过某些虚拟化来实现)。

如何查看自己的处理器和操作系统是32-bit还是64-bits,linux系统执行:lscpu命令

2.kernel是os最基本的部分,是一个操作系统的核心,也就是说,两者是包含关系。

内核用于管理系统资源,例如提供对软件层面的抽象(例如对进程、文件系统、同步、内存、网络协议等对象的操作和权限控制),和对硬件访问的抽象(例如磁盘,显示,网络接口卡(NIC));操作系统,在内核的基础上有延伸,包括了提供基础服务的系统组件。

一个内核不是一套完整的操作系统,现在默认linux为linux内核,这是由于历史源因造成的,实际上一般来讲,一个Linux发行版本出来包括Linux内核之外,还包含大量的软件(套件),比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice、org)等等。

3.三者的整体概况

电脑系统主要由硬件构成,然后内核程序主要是在管理硬件,提供合理的电脑系统资源分配(包括CPU资源、内存资源等),因此只有硬件不同(如X86架构与RISC架构的CPU),内核就得要修改才行。而由于内核只会进行电脑系统的资源分配,所以在上面还需要由应用程序的提供,用户才能够使用系统。

为了保护内核,并且能让程序员比较容易开发软件,操作系统除了内核程序之外,通常还会提供一套API,那就是系统调用层,程序员只要按照公认的系统调用参数来开发软件,该软件就能够在该内核 上运行。所以你可以发现,软件与内核有很大的关系,与硬件则不大,硬件与内核有比较大的关系,至于与用户有关的就是应用程序。

如果我们将整个电脑系统的相关软/硬件绘制成图的话,他的关系有点像这样:

二、计算机架构图

先附上一张计算机硬件组成图片:

计算机体系结构——冯 · 诺依曼结构

数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

 三、操作系统

在早期想要让电脑执行程序就得要参考一堆硬件功能函数,并且学习机器语言才能够撰写程序。 同时每次写程序时都必须要重新改写,因为硬件与软件功能不见得都一致之故。那如果我能够将所有的硬件都驱动, 并且提供一个发展软件的参考接口来给工程师开发软件的话,那发展软件不就变的非常的简单了?那就是操作系统啦!

  • 操作系统核心(Kernel)

操作系统(Operating System, OS)其实也是一组程序, 这组程序的重点在于管理电脑的所有活动以及驱动系统中的所有硬件。 我们刚刚谈到电脑没有软件只是一堆废铁,那么操作系统的功能就是让CPU可以开始判断逻辑与运算数值、 让内存可以开始载入/读出数据与程序码、让硬盘可以开始被存取、让网卡可以开始传输数据、 让所有周边可以开始运行等等。总之,硬件的所有动作都必须要通过这个操作系统来达成就是了。

上述的功能就是操作系统的核心(Kernel)了!你的电脑能不能做到某些事情,都与核心有关! 只有核心有提供的功能,你的电脑系统才能帮你完成!举例来说,你的核心并不支持TCP/IP的网络协定, 那么无论你购买了什么样的网卡,这个核心都无法提供网络能力的!

但是单有核心我们使用者也不知道能作啥事的~因为核心主要在管控硬件与提供相关的能力(例如存取硬盘、网络功能、CPU资源取得等), 这些管理的动作是非常的重要的,如果使用者能够直接使用到核心的话,万一使用者不小心将核心程序停止或破坏, 将会导致整个系统的崩溃!因此核心程序所放置到内存当中的区块是受保护的! 并且开机后就一直常驻在内存当中。

Tips 所以整部系统只有核心的话,我们就只能看着已经准备好运行(Ready)的电脑系统,但无法操作他! 这个时候就需要软件的帮忙了!

  • 系统调用(System Call)

硬件都是由核心管理,那么如果想要开发软件的话,自然就得要去参考这个核心的相关功能! 操作系统通常会提供一整组的开发接口给工程师来开发软件! 工程师只要遵守该开发接口那就很容易开发软件了!举例来说,我们学习C程序语言只要参考C程序语言的函数即可, 不需要再去考虑其他核心的相关功能,因为核心的系统调用接口会主动的将C程序语言的相关语法转成核心可以了解的任务函数, 那核心自然就能够顺利运行该程序了!

Tips 在定义上,只要能够让计算机硬件正确无误的运行,那就算是操作系统了。所以说, 操作系统其实就是核心与其提供的接口工具,,一般我们提到的“操作系统”都会包含核心与相关的使用者应用软件。

操作系统的核心功能

既然核心主要是在负责整个电脑系统相关的资源分配与管理,那我们知道其实整部电脑系统最重要的就是CPU与内存, 因此,核心至少也要有这些功能的:

  • 系统调用接口(System call interface) 刚刚谈过了,这是为了方便程序开发者可以轻易的通过与核心的沟通,将硬件的资源进一步的利用, 于是需要有这个简易的接口来方便程序开发者。

  • 程序管理(Process control) 总有听过所谓的“多任务环境”吧?一部电脑可能同时间有很多的工作跑到CPU等待运算处理, 核心这个时候必须要能够控制这些工作,让CPU的资源作有效的分配才行!另外, 良好的CPU调度机制(就是CPU先运行那个工作的排列顺序)将会有效的加快整体系统性能呢!

  • 内存管理(Memory management) 控制整个系统的内存管理,这个内存控制是非常重要的,因为系统所有的程序码与数据都必须要先存放在内存当中。 通常核心会提供虚拟内存的功能,当内存不足时可以提供内存交换(swap)的功能哩。

  • 文件系统管理(Filesystem management) 文件系统的管理,例如数据的输入输出(I/O)等等的工作啦!还有不同文件格式的支持啦等等, 如果你的核心不认识某个文件系统,那么您将无法使用该文件格式的文件啰!例如:Windows 98就不认识NTFS文件格式的硬盘;

  • 设备的驱动(Device drivers) 就如同上面提到的,硬件的管理是核心的主要工作之一,当然啰,设备的驱动程序就是核心需要做的事情啦! 好在目前都有所谓的“可载入模块”功能,可以将驱动程序编辑成模块,就不需要重新的编译核心啦! 这个也会在后续的第十九章当中提到的!

Tips 事实上,驱动程序的提供应该是硬件厂商的事情!硬件厂商要推出硬件时,应该要自行参考操作系统的驱动程序开发接口, 开发完毕后将该驱动程序连同硬件一同贩卖给使用者才对!举例来说,当你购买显卡时, 显卡包装盒都会附上一片光盘,让你可以在进入Windows之后进行驱动程序的安装。

  • 操作系统与驱动程序

驱动程序可以说是操作系统里面相当重要的一环了!不过,硬件可是持续在进步当中的! 包括主板、显卡、硬盘等等。那么比较晚推出的较新的硬件,例如显卡,我们的操作系统当然就不认识,那操作系统该如何驱动这块新的显卡?为了克服这个问题,操作系统通常会提供一个开发接口给硬件开发商, 让他们可以根据这个接口设计可以驱动他们硬件的“驱动程序”,如此一来,只要使用者安装驱动程序后, 自然就可以在他们的操作系统上面驱动这块显卡了。

                                图:驱动程序与操作系统的关系

由上图我们可以得到几个小重点:

  • 操作系统必须要能够驱动硬件,如此应用程序才能够使用该硬件功能;
  • 一般来说,操作系统会提供开发接口,让开发商制作他们的驱动程序;
  • 要使用新硬件功能,必须要安装厂商提供的驱动程序才行;
  • 驱动程序是由厂商提供的,与操作系统开发者无关。

所以,如果你想要在某个操作系统上面安装一张新的显卡,那么请要求该硬件厂商提供适当的驱动程序吧。 因为驱动程序仍然是依据操作系统而开发的, 所以,给Windows用的驱动程序当然不能使用于Linux的环境下了。

0.4.3 应用程序

应用程序是参考操作系统提供的开发接口所开发出来软件,这些软件可以让使用者操作,以达到某些电脑的功能利用。 举例来说,办公室软件(Office)主要是用来让使用者办公用的;影像处理软件主要是让使用者用来处理影音数据的; 浏览器软件主要是让使用者用来上网浏览用的等等。

需要注意的是,应用程序是与操作系统有关系的。因此,如果你想要购买新软件, 请务必参考软件上面的说明,看看该软件是否能够支持你的操作系统啊!举例来说,如果你想要购买线上游戏光盘, 务必参考一下该光盘是否支持你的操作系统,例如是否支持Windows XP/Windows Vista/MAC/Linux等等。 

我们拿常见的微软公司的产品来说明。你知道Windows 8.1, Office 2013之间的关系了吗?

  • Windows 8.1 是一套操作系统,他必须先安装到个人电脑上面,否则电脑无法开机运行;
  • Windows 7 与Windows 8.1 是两套不同的操作系统,所以能在Win 7上安装的软件不见得可在Win 8.1上安装;
  • Windows 8.1安装好后,就只能拥有很少的功能,并没有办公室软件;
  • Office 2013是一套应用程序,要安装前必须要了解他能在哪些操作系统上面运行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277562.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号