代码,硬件和操作系统如何相关?

时间:2014-07-11 18:30:03

标签: operating-system hardware compiled

多年来(我相当少 - 我当然是新手),我已经掌握了一些关于编译的一般信息,代码在哪里,以及OS的更好的工作是什么。我的一些感兴趣的朋友已经确切地询问了代码在编译时的位置(我通常使用C,但这显然适用于其他语言)以及准确执行编译的代码。我发现我并没有真正得到答案,我似乎只是猜测。我一般都喜欢考虑它是如何工作的#34;引擎盖下#34;我将在下面解释一个类比,但我开始认为这个类比是一个严重的过度简化或只是一个错误。我喜欢使用的类比如下:

我认为计算机作为一个整体是一个游乐场,程序是所有的孩子,操作系统,作为一名教师,监督整个情况。现在,在合理的范围内,只要受到监督,老师就允许孩子们进入操场的大部分区域。教师通常允许孩子们做他们喜欢的事情,如果他们至少首先要求许可(例如,#34;要求"内核访问记忆)。但是,如果一个孩子试图打击另一个孩子的脸,或试图以一种不应该处理的方式操纵游乐场,老师有权将他们从操场上移走。

这是一个可怕的过度简化吗?这是错的吗?操作系统在编译后是否实际处理代码,还是直接在硬件上运行?或两者?这个问题通常不包括解释语言,因为它们通常在另一个程序的帮助下运行。虽然我现在没有看到这些知识对我来说具有实际意义,但我希望能够向好奇的人解释这个系统。

如果有关于这个过程的任何好的讲座或论文,我很乐意看到它们。我试着谷歌搜索一些解释,但说实话,我不知道该搜索什么。我尝试的一切似乎完全指向不同的主题。

感谢您阅读!

P.S。我觉得这是这个问题的正确论坛,但如果不是,请告诉我!

1 个答案:

答案 0 :(得分:2)

嗯,首先,你的比喻应该得到全面的赞赏。但是,您的问题的基础是广义术语 Operating System ,,您最好用 the kernel 替换它。

  

这是一个可怕的过度简化吗?这是错的吗?是吗?   操作系统实际上是在编译后处理代码,或者是它   直接在硬件上运行?或两者兼而有之?

接下来,假设非常好,接近内核和内存的实际工作!对我来说,这似乎是正确的,因为内核是真正的老板!此外,内核是唯一与硬件交互的东西。但是,Operating system handles code after completion 错误的想法。

它只将代码作为一个进程连接起来,并为运行代码的硬件提供连接。计算机系统的几个组件便于运行代码,如设备驱动程序,进程调度程序,主内存。内核只是处理程序执行时发现/遇到的任何中断/异常。这时,硬件设备负责可执行代码的工作/运行!!!