Unix 如何使用操作系统。。。跑没有运行操作系统?

Unix 如何使用操作系统。。。跑没有运行操作系统?,unix,operating-system,Unix,Operating System,我现在真的很好奇。我是一名Python程序员,这个问题让我感到困惑:你编写一个操作系统。你是怎么运作的?它必须以某种方式运行,而这种方式在另一个操作系统中 没有操作系统,应用程序如何运行?如果没有操作系统,你如何告诉计算机运行,比如说,C,并在屏幕上执行这些命令 它是否与UNIX内核有关?如果是这样的话,什么是unix内核,或者一般的内核 我相信操作系统比这更复杂,但它是如何工作的呢?知道这一点真是太棒了 谢谢。您需要一个操作系统来完成虚拟化内存和仲裁对硬件的访问。因为操作系统可以完全访问内存和

我现在真的很好奇。我是一名Python程序员,这个问题让我感到困惑:你编写一个操作系统。你是怎么运作的?它必须以某种方式运行,而这种方式在另一个操作系统中

没有操作系统,应用程序如何运行?如果没有操作系统,你如何告诉计算机运行,比如说,C,并在屏幕上执行这些命令

它是否与UNIX内核有关?如果是这样的话,什么是unix内核,或者一般的内核

我相信操作系统比这更复杂,但它是如何工作的呢?知道这一点真是太棒了


谢谢。

您需要一个操作系统来完成虚拟化内存和仲裁对硬件的访问。因为操作系统可以完全访问内存和硬件,所以它不需要操作系统来运行。大多数程序从操作系统获得的服务,操作系统本身要么提供自己,要么从硬件获得。

您需要一个操作系统来完成虚拟化内存和仲裁对硬件的访问等任务。因为操作系统可以完全访问内存和硬件,所以它不需要操作系统来运行。大多数程序从操作系统获得的服务,操作系统本身要么提供自己,要么从硬件获得。

运行任何软件的是某种CPU、一块电子电路、硬件

无论软件是操作系统还是其他类型的程序,CPU都不关心。它只是尽可能长时间地运行它(例如,直到所述软件导致不可恢复的错误,迫使CPU进入一些奇怪的状态或简单地重置)

接通电源后,CPU开始执行在内存中某个位置找到的任何代码。该位置可以在CPU中硬接线,也可以通过CPU电路外部配置,甚至可以通过软件编程。它是哪一个取决于CPU和整个设备的设计方式

并非所有程序都需要操作系统在CPU上运行。操作系统就是这种程序的一个很好的例子。如果每个操作系统都需要另一个操作系统,您将如何停止这种无限递归?:)但这不是唯一的一个

许多电子设备,特别是像数字时钟这样非常简单的设备,没有任何操作系统

一个操作系统在另一个操作系统上运行的时间大约只有在您使用虚拟化时。但我不打算在这个回答中提到这一点

一个操作系统只需要它的基本功能,如调度、线程/进程同步、内存分配等,或者自己完成全部或大部分设备I/O,并对运行在操作系统IOW中的程序隐藏硬件特性,以允许可移植程序。您可以用Python编写
print 123
,它可以在任何与Python兼容的操作系统(=它可用的操作系统)中到处打印123,而不考虑不同计算机和不同操作系统上的显示、分辨率和许多其他差异。如果通用操作系统没有提供一些通用功能(以及一些或多或少通用的API),比如控制台、文件I/O和内存管理,那么Python就不适用于它们,这些操作系统也就不会是通用的

操作系统内核是操作系统的核心。它做大部分低级和肮脏的工作,处理:

  • 中断处理
  • 线程/进程调度和同步
  • 内存管理
  • 相似的
有时候,操作系统的功能已经足够了,在这种情况下,操作系统和内核之间没有任何区别,它们在这里是一样的

如果,OTOH,需要更多的东西,例如,更大的灵活性,对不同设备的支持,一些管理所有这些的代码,以及一堆用于文件系统、网络和TCP/IP堆栈等的特殊驱动程序,那么仅仅一个简单的(也许,只是相对简单的)内核是不够的,需要有更多的东西围绕着它,这就是你开始区分操作系统和内核的地方,并得出操作系统=内核+附加的结论。您正在使用的文本编辑器,即使它是随操作系统附带的,也不完全是一个额外的程序,它是一个常规程序,不需要与操作系统捆绑在一起,但为了方便起见,它可以是

UNIX是操作系统的一个例子。还有很多,尤其是Linux和Windows


你应该给自己买一些关于计算机体系结构和组织的书,以了解计算机一般是如何工作的。里面是什么,它是如何组合起来的,引擎盖下发生了什么等等。

运行任何软件的都是某种CPU,一块电子电路,硬件

无论软件是操作系统还是其他类型的程序,CPU都不关心。它只是尽可能长时间地运行它(例如,直到所述软件导致不可恢复的错误,迫使CPU进入一些奇怪的状态或简单地重置)

接通电源后,CPU开始执行在内存中某个位置找到的任何代码。该位置可以在CPU中硬接线,也可以通过CPU电路外部配置,甚至可以通过软件编程。它是哪一个取决于CPU和整个设备的设计方式

并非所有程序都需要操作系统在CPU上运行。操作系统就是这种程序的一个很好的例子。如果每个操作系统都需要另一个操作系统,您将如何停止这种无限递归?:)但这不是唯一的一个

许多电子设备,特别是像数字时钟这样非常简单的设备,没有任何操作系统

一个操作系统在另一个操作系统上运行的时间大约只有在您使用虚拟化时。但我不打算在这个回答中提到这一点

一个操作系统只需要它的基本功能,如调度、线程/进程同步、内存分配等,或者自己完成全部或大部分设备I/O,并对运行在操作系统IOW中的程序隐藏硬件特性,以允许可移植程序。您用Python编写
print 123
,它会在任何地方打印123,