什么是OS内核?它与操作系统有何不同?[关闭]


Answers:


74

操作系统的技术定义是“一个平台,该平台由一组特定的库和基础结构组成,用于在其上构建应用程序并相互交互。” 从这个意义上讲,内核是一个操作系统。

最终用户定义通常围绕“提供桌面,应用程序快捷方式,Web浏览器和媒体播放器的软件包”周围的内容。内核与该定义不匹配。

因此,对于最终用户而言,Linux发行版(例如Ubuntu)是一个操作系统,而对于程序员而言,Linux内核本身就是一个完全有效的操作系统,具体取决于您要实现的目标。例如,嵌入式系统大多只是内核,在它们之上运行的专用进程数量很少。在这种情况下,内核本身将成为操作系统本身。

我认为您可以根据该OS上运行的大多数应用程序的需求划清界限。如果大多数仅需要内核,则内核为OS;如果大多数需要运行X Window System,则您的操作系统将成为X +内核。


6
最终用户定义通常围绕“提供桌面,应用程序快捷方式,Web浏览器和媒体播放器的软件包”周围的内容。内核与该定义不匹配。仅仅因为有人不知道操作系统是什么,并不意味着他们的定义是有效的。
DIMMSum

1
@dimmsum不仅是口语定义。操作系统已按原样出售和销售给用户。
Sedat Kapanoglu,

您能指出我这种行销方式吗?我可以看到一个操作系统供应商说他们提供了一个平台,所有这些类型的程序都可以在其上运行,但是操作系统不包括那些程序。如果将两者混为一谈,那么您实际上是在谈论整个系统,因此定义就失去了意义。
DIMMSum

1
@dimmsum我理解您的观点,这就是为什么我提供了两个不同的定义。也许我应该称它为“理解”?我认为最终用户,特别是在操作系统以盒装出售的时代,对操作系统是什么以及与操作系统如何商品化直接相关的不同理解。Windows XP框承诺的交易与技术定义完全不同,这就是我想指出的。
Sedat Kapanoglu

1
@dimmsum,所以计算机科学中有一个操作系统,而技术商店的货架上还有另一个操作系统。两者都是来自不同观点的操作系统。我想强调这种区别。
Sedat Kapanoglu

73

一个内核是操作系统的一部分介导访问系统资源。它负责通过控制对CPU,内存,磁盘I / O和网络的访问,使多个应用程序有效共享硬件。

一个操作系统是内核加,使用户能够得到的东西做的应用程序(如编译器,文本编辑器,窗口管理器等)。


18
编译器和文本编辑器确实是操作系统的一部分吗?Word是出色的文本编辑器-操作系统的一部分吗?
jon-hanson 2010年

6
我没有得到的是“一个操作系统就是内核加上应用程序”,但是如果我安装一个应用程序(例如Word Perfect),那不应该算作操作系统的一部分,不是吗?
Celeritas

7
@Celeritas晚了一点,但是没有将已安装的应用程序不算作操作系统的一部分。“应用程序”实际上是操作系统随附的系统实用程序。您安装的所有其他软件/应用程序都位于该层上方。
hashcode55

直到您在第二段中写了括号后,您的情况一直不错。操作系统处理这些应用程序发出的控制硬件的请求。因此,该操作系统包括内核,设备驱动程序以及其他专门控制最低级别硬件的软件/固件。
鲍勃

42

看来,最初使我们获得“内核”一词的原始比喻已被忘记。隐喻是操作系统是种子。种子的“内核”是操作系统的核心,为应用程序提供操作系统服务,而应用程序则被用户从外部看到的种子的“外壳”所包围。

有些人想把“内核”(甚至是“壳”)束缚得比它更具体。但实际上,跨操作系统存在很多差异。最重要的是,这些变体构成了一个“外壳”(范围从Solaris sh到Netware的控制台命令解释器,再到OS / 2的Workplace Shell和Windows NT的Explorer),但是从一个操作系统到另一个操作系统,还有很多差异。什么是“内核”的一部分,是否不是(例如,可能包括或不包括磁盘I / O)。

最好记住这些术语是隐喻

进一步阅读


真好 但是,您的回答是从“进一步阅读”中逐字逐句地得出的。现在,我知道如何通过复制和粘贴获得很多支持。大声笑。仍然有帮助。
lacostenycoder

18

好吧,内核和操作系统之间是有区别的。如上所述,内核是OS的核心,它管理OS的核心功能,而如果在内核上添加了一些有用的应用程序和实用程序,则完整的软件包将成为OS。因此,可以很容易地说操作系统由内核空间和用户空间组成。

因此,我们可以说Linux是一个内核,因为它不包括文件系统实用程序,窗口系统和图形桌面,系统管理员命令,文本编辑器,编译器等应用程序。因此,各种公司都在Linux内核上添加了这类应用程序并提供其操作系统,如ubuntu,suse,centOS,redHat等。


9

操作系统是一个通用的给所有弥补系统作为一个整体的元素(用户界面,库资源)的名称。

内核是操作系统的“大脑”,它控制着从访问硬盘到内存管理的所有内容。每当您想做任何事情时,它都会通过内核。


8

内核是操作系统的一部分,而不是操作系统本身。除了介绍内核的所有功能之外,我将参考Wikipedia页面:http : //en.wikipedia.org/wiki/Kernel_%28computing%29。很棒的全面概述。


3
嗯,请改用en.wikipedia.org/wiki/Operating_system的第一句话。操作系统的正式任务是调解对有限资源(大约计算机上的所有内容)的访问,而单片内核正是这样做的(微内核将其中的一些工作转储到进程中,但仍与内核一起分发)。从程序员的角度来看,内核 OS。用户可以指望shell或其他接口,但这就是users。请记住,操作系统可以在从超级计算机到需要做件事的任何嵌入式小部件的所有事物上运行。
dmckee ---前主持人小猫,2010年

因此,您的观点是,某些操作系统本身就是内核,或者用户与之交互的OS的一部分不属于OS?
danben 2010年

另外,“ en.wikipedia.org/wiki/Operating_system的第一句话”说:“操作系统(OS)是硬件和用户之间的接口...”,所以我不明白您为什么要区分两者之间的区别。用户与之交互,其余部分与之交互。
danben 2010年

7

内核是操作系统的一部分,它是引导加载程序加载到cpu上的第一件事(对于大多数操作系统),它是与硬件接口的部分,并且还管理程序可以使用该文件执行的操作。硬件,它实际上是操作系统的中心部分,它由驱动程序组成,驱动程序是与特定硬件接口的程序,例如:如果我为计算机制作了数码相机,则需要一个驱动程序,驱动程序是唯一可以控制计算机的输入和输出的程序



2

在计算中,“内核”是大多数计算机操作系统的核心组件。它是应用程序和在硬件级别完成的实际数据处理之间的桥梁。内核的职责包括管理系统资源(硬件和软件组件之间的通信)。通常,内核作为操作系统的基本组件,可以为应用软件必须控制以执行其功能的资源(尤其是处理器和I / O设备)提供最低级别的抽象层。它通常通过进程间通信机制和系统调用使这些功能可用于应用程序进程。


2

内核可能是操作系统,也可能是操作系统的一部分。在Linux中,首先加载并执行内核。然后,它启动OS的其他位(例如init)以使系统有用。

在微内核环境中尤其如此。内核具有最少的功能。其他所有内容(例如文件系统和TCP / IP)都作为用户进程运行。


像Ruby这样的脚本语言中的内核呢?例如,如果您安装了Ruby,则可以从* nix终端运行它ruby -e "puts Kernel.methods",您将看到定义了许多方法。
lacostenycoder

2

内核驻留在OS中。实际上,它是专门为处理os功能而提供的内存空间。甚至有人说OS处理系统资源,而Kernel是os的核心并维护,管理,跟踪os。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.