他们使用Windows编写Windows吗?我不知道,但如果他们这样做了,并且突然间没有Windows,他们会用什么来重写Windows?
答案 0 :(得分:2)
你的头衔很有道理。但你问题的第二行很有趣......即使我理解你的意思:D我很久以前也有同样的问题。
与机器相同。人们今天使用机器来构建其他机器。如果突然没有机器会怎么样?......你像工业革命前一样从头开始。退后一步,使用手工工具制造机器,它从头开始。我猜人们使用直接机器代码等装配和汇编程序在DOS和DOS下使用编译器/工具编写Windows ...
每当你怀疑这个问题,就这样想吧。您可以用手来构建工具,使用该工具制作更好的工具,使用它来制作更好的工具等等......如果现有工具发生任何问题,您可以从最好的工具开始,甚至虽然它有点过时了。它真的是一个简单的概念,通过今天的软件开发方法看起来很复杂。每个(版本)操作系统只是一个做某事的工具。您只需使用最新版本即可构建下一个最佳版本。
关于所需的工具 - 如果您想要处理操作系统开发,这个维基是一个很好的起点 - http://wiki.osdev.org/Main_Page
Microsoft团队使用Visual Studio 2008 Team System开发Visual Studio 2010 Team System。如果我在视频中看到的内容是正确的,他们甚至使用之前版本的VS来编写下一个版本!你的困惑是完全可以理解的......他们称之为狗食。
答案 1 :(得分:1)
我建议查看OSDev上的资源。那里有很多信息,无论是在编写内核时会发生什么,以及如何去做。
然而,一般而言,大多数复杂的事情都是通过引导过程编写的 - 编写基本工具以允许您使用基本工具创建更复杂的工具,然后使用复杂工具创建更复杂的工具工具,等等。
答案 2 :(得分:0)
pico nachos和gcc - 任何UW CS354都喜欢那里?
答案 3 :(得分:0)
从头开始 - 我要做的是设置“从机械源读入RAM”,其中读取的源二进制文件将是可以读取ROM的引导加载程序。 (即,切换开关)然后,引导加载程序将包含驱动程序以从例如UART(串行端口标准芯片)读取电子信号。在串行端口的另一端,您可能有一台计算机,它可以发送其他软件来做您想做的任何事情。
这是嵌入式系统的标准问题。最终通常发生的是引导加载程序安装在ROM芯片中 - CPU定义为在给定地址开始读取ROM - ROM地址包含跳转到引导加载程序代码的指令。安装了通信驱动程序(即jtag或串行端口),然后允许外部计算机为显示器和/或键盘安装新的设备驱动程序。
答案 4 :(得分:0)
Windows是一种操作系统而非语言。他们用C制作窗口,你编译它的操作系统并不重要。例如,Windows 1.0是用C语言编写的,并在DOS平台上编译。编译它的位置无关紧要。
就内核而言,大多数现代内核都是使用C创建的。一些关键的子程序是用汇编语言编写的。