电脑系统是怎么做出来的?

哎呦我的tou像不错呦

这个是不矛盾的,为何非要纠结于鸡和蛋。操作系统本身就是一个程序,有没有操作系统和能不能写出程序是没有关系的。

当计算机出来的时候,便是通过0和1来操作(低电压和高电压),也就是最底层的硬件就是通过电压然后一个个的门来进行操作的。



那么这些门怎么组成电脑的呢?(准确来说是CPU),不同的CPU有不同的组成方式,早期的电脑就是一台机器就是一台机器,其他机器的命令绝对不可能运行在这样机器上。所以后来决定统一一下。所以现在主流的CPU架构就这么几种。

不同的CPU架构,它的指令是不一样的,所有这样的指令,被称为指令集,这个指令集可以完整的操控电脑的所有硬件。这就是机器码。那么后来决定这样太麻烦了,记不住,于是发明了汇编语言,加入了一些助记符号。

但是这样还是很麻烦(中间的发展过程我就不详细讲了),于是发明了c语言,在早期的c语言里面可以嵌入汇编语言的,虽然现在已经不允许了。c语言被称作中级语言,因为它很方便,但是对底层的硬件支持十分良好。c语言的指令,对应的就是汇编语言的指令或者最原始的机器指令。当编译之后,c语言指令(汇编语言指令)就转变为了机器码。然后这样的机器码才在CPU上运行。



那么操作系统呢?第一个操作系统是由BCPL(c语言的前身)语言写出来的(Unix),虽然后来经过优化,使用C语言完成的。

所以说操作系统也不过是一个程序而已,没有操作系统,只是不习惯我们现在操作而已,如果直接将机器码放在CPU中,一样是可以运行的。

而Java就是自己的指令对应着c语言的指令或者机器码,然后通过JVM进行编译或者解释,最终运行。


Python雁横

没有学过计算机发展史吧,你学过就不会感觉疑惑。第一代为机器语言,即0101这种形式,也是现代计算机主要数据储存和表示方式。第二代为自然语言(汇编语言),即开始通过符号来表示0101,例如AND。第三代高级语言(以C/C++,Java为代表),就是题主所举例的。操作系统本身也是一种程序,不过是混入了一些汇编语言。高级语言是面向应用层的,机器、汇编面向是物理层的,操作系统不是用Java编写的,而是一个和Java无关的领域了。


程序员1024

首先,"语言程序在系统中运行"的观点不对。有的计算机是没有系统的,如单片机。还有,就算是我们常用的电脑,也可以不运行windows,也可以不运行linux。微机原理课程的汇编语言实验,程序是运行在裸机系统上的。

也就是说,可以编写程序(如汇编)放在磁盘引导扇区,不经过系统直接运行该程序。如果编写一个任务调度的简单程序,就实现了多个程序同时运行的功能,这是操作系统的一部分。如果用同样的方式,编写具有内存管理,内存分配等等的功能,就是在制造一个操作系统了。


分享到:


相關文章: