我不能理解内核和操作系统之间的区别。我看不出他们之间有什么不同。内核是操作系统吗?
答案很简单
内核是操作系统的核心部分。它本身并不一定是一个操作系统。
其他的一切都是围绕着它建造的。
详细定义
内核(计算)-维基百科
内核是操作系统的一部分,而不是操作系统本身。与其深入研究内核的所有功能,不如参考维基百科的页面: http://en.wikipedia.org/wiki/Kernel_%28computing%29。很好,全面的概述。
在计算方面,“内核”是大多数计算机操作系统的核心组件; 它是应用程序和在硬件层面上进行的实际数据处理之间的桥梁。内核的职责包括管理系统的资源(硬件和软件组件之间的通信)。通常作为操作系统的一个基本组件,内核可以为应用软件执行其功能所必须控制的资源(尤其是处理器和 I/O 设备)提供最低级的抽象层。它通常通过行程间通讯机制和系统调用使这些设施对应用程序进程可用。
操作系统是对构成整个系统的所有元素(用户界面、库、资源)给出的 一般名称。
内核是操作系统的 “大脑”,它控制从访问硬盘到内存管理的一切。无论什么时候你想做什么,它都会经过内核。
内核可能是操作系统,也可能是操作系统的一部分。在 Linux 中,首先加载并执行内核。然后启动操作系统的其他部分(比如 init) ,使系统变得有用。
在微内核环境中尤其如此。内核的功能很少。其他所有东西,比如文件系统和 TCP/IP,都作为用户进程运行。
内核是操作系统中介对系统资源访问的部分。它负责通过控制对 CPU、内存、磁盘 I/O 和网络的访问,使多个应用程序能够有效地共享硬件。
操作系统是内核加应用程序,使用户能够完成某些工作(例如编译器、文本编辑器、窗口管理器等)。
操作系统的技术定义是“一个由特定的库和基础设施组成的平台,这些库和基础设施用于应用程序之间的构建和交互”。从这个意义上说,内核就是一个操作系统。
最终用户的定义通常是“提供桌面、应用程序快捷方式、网页浏览器和媒体播放器的软件包”。内核不符合这个定义。
因此,对于终端用户来说,Linux 发行版(比如 Ubuntu)是一个操作系统,而对于程序员来说,Linux 内核本身则是一个完全有效的操作系统,这取决于您想要实现的目标。例如,嵌入式系统大多只是内核,只有很少数量的专用进程运行在它们之上。在这种情况下,内核本身就变成了操作系统本身。
我认为,您可以对在该操作系统上运行的大多数应用程序的需求做出界定。如果它们中的大多数只需要内核,那么内核就是操作系统,如果它们中的大多数需要运行 X Window System,那么你的操作系统就是 X + 内核。
内核驻留在操作系统中。实际上,它是专门为处理操作系统函数而提供的内存空间。有人甚至说操作系统处理系统的资源,而内核是操作系统的核心,维护、管理即跟踪操作系统。
似乎最初让我们想到“内核”这个词的隐喻已经被遗忘了。这个比喻就是操作系统是一个种子。种子的“内核”是操作系统的核心,为应用程序提供操作系统服务,它被用户从外部看到的种子的“ shell”所包围。
有些人希望将“内核”(实际上是“ shell”)绑定到更具体的地方。但事实上,不同操作系统之间存在很多差异。最重要的是,这些变化是什么构成了一个“ Shell”(从 Solaris 的 sh到 Netware 的 Console Command Interpreter,再到 OS/2的 Workplace Shell 和 Windows NT 的 Explorer) ,但是从一个操作系统到另一个操作系统,在什么是,什么不是“内核”的一部分(例如,可能包括,也可能不包括磁盘 I/O) ,也存在很大的差异。
sh
最好记住 这些术语都是比喻。
内核是操作系统的一部分,它是引导加载程序加载到 CPU (对于大多数操作系统)的第一件事,它是与硬件接口的部分,它也管理程序可以做什么与硬件,它真的是操作系统的中心部分,它是由驱动程序组成的,驱动程序是一个程序,与一个特定的硬件接口,例如: 如果我为计算机制作了一个数码相机,我需要为它制作一个驱动程序,驱动程序是唯一的程序,可以控制计算机的输入和输出
内核和操作系统是有区别的。上面描述的内核是操作系统的核心,它管理操作系统的核心特性,如果在内核上添加了一些有用的应用程序和实用程序,那么完整的包就成为了一个操作系统。因此,可以很容易地说,一个操作系统由一个内核空间和一个用户空间组成。
因此,我们可以说 Linux 是一个内核,因为它不包括文件系统工具、窗口系统和图形桌面、系统管理员命令、文本编辑器、编译器等应用程序。因此,许多公司在 Linux 内核上添加这类应用程序,并提供他们的操作系统,如 ubuntu、 suse、 centOS、 redHat 等。