什么是操作系统内核?它与操作系统有何不同? [关闭]
Posted
技术标签:
【中文标题】什么是操作系统内核?它与操作系统有何不同? [关闭]【英文标题】:What is an OS kernel ? How does it differ from an operating system? [closed] 【发布时间】:2011-01-02 02:31:27 【问题描述】:我无法理解内核和操作系统之间的区别。我看不出它们之间有什么区别。内核是操作系统吗?
【问题讨论】:
【参考方案1】:操作系统的技术定义是“由一组特定的库和基础架构组成的平台,应用程序可以在此基础上构建并相互交互”。从这个意义上说,内核就是一个操作系统。
最终用户的定义通常是围绕“提供桌面、应用程序快捷方式、网络浏览器和媒体播放器的软件包”。内核与该定义不匹配。
因此,对于最终用户而言,Linux 发行版(例如 Ubuntu)是一个操作系统,而对于程序员而言,Linux 内核本身是一个完全有效的操作系统,具体取决于您要实现的目标。例如,嵌入式系统大多只是内核,在它们之上运行着非常少量的专用进程。在这种情况下,内核本身就变成了操作系统本身。
我认为您可以划清在该操作系统之上运行的大多数应用程序确实需要什么。如果它们中的大多数只需要内核,那么内核就是操作系统,如果它们中的大多数都需要运行 X Window System,那么您的操作系统就变成了 X + 内核。
【讨论】:
最终用户的定义通常是围绕“提供桌面、应用程序快捷方式、Web 浏览器和媒体播放器的软件包”。内核与该定义不匹配。 仅仅因为某人不知道操作系统是什么并不意味着他们的定义是有效的。 @dimmsum 这不仅仅是一个口语定义。操作系统已经向用户出售和营销。 能否请您指出任何此类营销?我可以看到操作系统供应商说他们提供了一个所有此类程序都可以在其上运行的平台,但操作系统不包含这些程序。如果您将两者混为一谈,那么您实际上是在谈论整个系统,因此该定义失去了意义。 @dimmsum 我理解你的意思,这就是为什么我提供了两个不同的定义。也许我应该称之为“理解”?我认为最终用户,尤其是在操作系统以盒子形式销售的时代,对操作系统是什么有不同的理解,这与操作系统的商品化方式直接相关。 windows xp 盒子承诺的交易与技术定义完全不同,这就是我想指出的。 @dimmsum 所以计算机科学中有操作系统,科技商店的货架上还有另一个操作系统。两者都是不同角度的操作系统。我想强调这种区别。【参考方案2】:内核是操作系统的一部分,它调节对系统资源的访问。它负责通过控制对 CPU、内存、磁盘 I/O 和网络的访问,使多个应用程序能够有效地共享硬件。
操作系统是内核加上使用户能够完成某事的应用程序(即编译器、文本编辑器、窗口管理器等)。
【讨论】:
编译器和文本编辑器真的是操作系统的一部分吗? Word 是一个美化的文本编辑器——它是操作系统的一部分吗? 我没有得到的是“操作系统是内核加上应用程序”,但是如果我安装了一个应用程序,比如 Word Perfect,那么它不应该算作操作系统的一部分,不? @Celeritas 晚了一点,但安装的应用程序不会算作操作系统的一部分。 “应用程序”实际上是操作系统附带的系统实用程序。您安装的所有其他软件/应用程序都位于此层之上。 在你写下第二段的括号之前,你做得很好。操作系统处理这些应用程序发出的请求以控制硬件。因此,操作系统包括内核、设备驱动程序以及任何其他专门控制最低级别硬件的软件/固件。【参考方案3】:似乎最初给我们带来“内核”这个词的原始隐喻已经被遗忘了。比喻是操作系统是种子。种子的“内核”是操作系统的核心,为应用程序提供操作系统服务,被用户从外部看到的种子的“外壳”所包围。
有些人希望将“内核”(实际上是“外壳”)绑定到更具体的位置。但实际上,操作系统之间存在很多差异。并非最不重要的是,这些变体构成了“shell”(其范围可以从 Solaris 的sh
到 Netware 的控制台命令解释器,再到 OS/2 的 Workplace Shell 和 Windows NT 的资源管理器),但一个操作系统也有很多差异在“内核”的一部分(例如,可能包括也可能不包括磁盘 I/O)中,与另一个无关。
最好记住这些术语是隐喻。
进一步阅读
https://superuser.com/a/329479/38062【讨论】:
不错。但是,您的答案是从“进一步阅读”中逐字记录的。现在我知道如何通过复制和粘贴获得很多赞成票。哈哈。尽管如此,仍然很有帮助。【参考方案4】:嗯,内核和操作系统之间是有区别的。如上所述,内核是操作系统的核心,它管理操作系统的核心功能,而如果在内核上添加一些有用的应用程序和实用程序,那么完整的软件包就会成为操作系统。所以,可以很容易的说,一个操作系统由内核空间和用户空间两部分组成。
因此,我们可以说 Linux 是一个内核,因为它不包括文件系统实用程序、窗口系统和图形桌面、系统管理员命令、文本编辑器、编译器等应用程序。因此,许多公司都添加了这类应用程序通过linux内核并提供他们的操作系统,如ubuntu、suse、centOS、redHat等。
【讨论】:
【参考方案5】:内核是操作系统的一部分,而不是操作系统本身。我不会深入了解内核所做的所有事情,而是参考***页面:http://en.wikipedia.org/wiki/Kernel_%28computing%29。伟大而全面的概述。
【讨论】:
嗯,试试en.wikipedia.org/wiki/Operating_system的第一句话吧。操作系统的正式任务是调解对有限资源的访问(大约是计算机上的一切),而单片内核正是这样做的(微内核将其中的一些工作转储到进程中,但这些仍然与内核)。从程序员的角度来看,内核是操作系统。用户可能会依赖 shell 或其他接口,但那是 users。请记住,操作系统可以运行在从超级计算机到任何需要做两件事情的嵌入式小部件的所有设备上。 那么您的意思是,某些操作系统本身就是内核,或者用户与之交互的操作系统部分不是操作系统的一部分? 另外,“en.wikipedia.org/wiki/Operating_system 的第一句话”说“操作系统(OS)是硬件和用户之间的接口......”所以我不明白为什么要区分用户与之交互的内容和其他内容。【参考方案6】:操作系统是一个通用名称,用于构成整个系统的所有元素(用户界面、库、资源)。
内核是操作系统的“大脑”,它控制着从访问硬盘到内存管理的一切。每当你想做任何事情时,它都会通过内核。
【讨论】:
【参考方案7】:内核是操作系统的一部分,它是引导加载程序加载到 cpu 上的第一件事(对于大多数操作系统),它是与硬件接口的部分,它还管理程序可以做什么硬件是什么,它实际上是操作系统的核心部分,它由驱动程序组成,驱动程序是与特定硬件接口的程序,例如:如果我为计算机制作数码相机,我会需要为它做一个驱动,驱动是唯一可以控制电脑输入输出的程序
【讨论】:
【参考方案8】:简单回答
内核是操作系统的核心部分。它本身不一定是一个操作系统。
其他一切都是围绕它构建的。
详细定义
Kernel (computing) - Wikipedia
【讨论】:
没有驱动的内核操作系统也是这样吗? 不...大多数内核将操作系统的各个部分联系在一起(不仅仅是驱动程序)。【参考方案9】:在计算中,“内核”是大多数计算机操作系统的核心组件;它是应用程序和在硬件级别完成的实际数据处理之间的桥梁。内核的职责包括管理系统资源(硬件和软件组件之间的通信)。通常作为操作系统的基本组件,内核可以为应用软件必须控制以执行其功能的资源(尤其是处理器和 I/O 设备)提供最低级别的抽象层。它通常通过进程间通信机制和系统调用使这些设施可用于应用程序进程。
【讨论】:
【参考方案10】:内核可能是操作系统,也可能是操作系统的一部分。在 Linux 中,内核首先被加载并执行。然后它会启动操作系统的其他部分(如 init)以使系统变得有用。
在微内核环境中尤其如此。内核具有最少的功能。其他一切,如文件系统和 TCP/IP,都作为用户进程运行。
【讨论】:
像 Ruby 这样的脚本语言中的内核呢?例如,如果你安装了 Ruby,你可以从 *nix 终端ruby -e "puts Kernel.methods"
运行它,你会看到许多定义的方法。【参考方案11】:
内核驻留在操作系统中。实际上它是专门为处理操作系统功能而提供的内存空间。甚至有人说操作系统处理系统的资源,而内核是操作系统的心脏和维护,管理iekeep track of os。
【讨论】:
以上是关于什么是操作系统内核?它与操作系统有何不同? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
什么是 HSQLDB(Hyper SQL)以及它与其他数据库有何不同?