Answers:
操作系统的技术定义是“一个平台,该平台由一组特定的库和基础结构组成,用于在其上构建应用程序并相互交互。” 从这个意义上讲,内核是一个操作系统。
最终用户定义通常围绕“提供桌面,应用程序快捷方式,Web浏览器和媒体播放器的软件包”周围的内容。内核与该定义不匹配。
因此,对于最终用户而言,Linux发行版(例如Ubuntu)是一个操作系统,而对于程序员而言,Linux内核本身就是一个完全有效的操作系统,具体取决于您要实现的目标。例如,嵌入式系统大多只是内核,在它们之上运行的专用进程数量很少。在这种情况下,内核本身将成为操作系统本身。
我认为您可以根据该OS上运行的大多数应用程序的需求划清界限。如果大多数仅需要内核,则内核为OS;如果大多数需要运行X Window System,则您的操作系统将成为X +内核。
一个内核是操作系统的一部分介导访问系统资源。它负责通过控制对CPU,内存,磁盘I / O和网络的访问,使多个应用程序有效共享硬件。
一个操作系统是内核加,使用户能够得到的东西做的应用程序(如编译器,文本编辑器,窗口管理器等)。
看来,最初使我们获得“内核”一词的原始比喻已被忘记。隐喻是操作系统是种子。种子的“内核”是操作系统的核心,为应用程序提供操作系统服务,而应用程序则被用户从外部看到的种子的“外壳”所包围。
有些人想把“内核”(甚至是“壳”)束缚得比它更具体。但实际上,跨操作系统存在很多差异。最重要的是,这些变体构成了一个“外壳”(范围从Solaris sh
到Netware的控制台命令解释器,再到OS / 2的Workplace Shell和Windows NT的Explorer),但是从一个操作系统到另一个操作系统,还有很多差异。什么是“内核”的一部分,是否不是(例如,可能包括或不包括磁盘I / O)。
最好记住这些术语是隐喻。
内核是操作系统的一部分,而不是操作系统本身。除了介绍内核的所有功能之外,我将参考Wikipedia页面:http : //en.wikipedia.org/wiki/Kernel_%28computing%29。很棒的全面概述。
在计算中,“内核”是大多数计算机操作系统的核心组件。它是应用程序和在硬件级别完成的实际数据处理之间的桥梁。内核的职责包括管理系统资源(硬件和软件组件之间的通信)。通常,内核作为操作系统的基本组件,可以为应用软件必须控制以执行其功能的资源(尤其是处理器和I / O设备)提供最低级别的抽象层。它通常通过进程间通信机制和系统调用使这些功能可用于应用程序进程。
内核可能是操作系统,也可能是操作系统的一部分。在Linux中,首先加载并执行内核。然后,它启动OS的其他位(例如init)以使系统有用。
在微内核环境中尤其如此。内核具有最少的功能。其他所有内容(例如文件系统和TCP / IP)都作为用户进程运行。
ruby -e "puts Kernel.methods"
,您将看到定义了许多方法。