先有鸡还是先有蛋?先有操作系统,还是先有汇编器?(对计算机本质的探讨)

//当年学微机原理,追着老师问这个问题,老师很耐心,但是回答的也是很含糊,今天看到这个解释,感觉挺有意思。

这个是以前给别人的回帖,感觉对初学者应该还有点帮助吧,于是就无耻的再贴出来了,大家包涵。

内容开始:

    “这个问题很好,说明搂主是个寻根究底的人,任何求知欲强的人都会通过探索层层深入,最后到最根本的问题。最痛恨一知半解的人乱回答别人的问题,或者找风马牛不相及的答案糊弄人!这样的人就别搞技术了,去搞政治更合适!

你的困惑感应该和蛋鸡问题类似,到底是先有操作系统还是先有汇编器?其实只要对计算机史了解的话就不会迷惑了。原始的电子计算机是没有操作系统也没有汇编器的,那时编程是靠写一条条机器指令(就是高低电位组成的信号)进行的,没多久,出现了汇编语言,就是用符号来表示原本的指令由程序员写出这些符号指令,再由其他人对表翻译成真正的机器指令。这就是所谓的手工汇编。后来出现了用程序来代替人的查表,就是现在的机器汇编,从此现在意义上的汇编语言诞生。

    运行汇编程序并不一定要操作系统,只要把程序加载到内存,然后cpu逐条执行就可以了,而操作系统也未必非要汇编语言来写,也可以用机器指令写的。也就是说他们在逻辑上并非一定的因果关系。所以历史上也没有明确的先后关系,是同时交错进行的。那时没有操作系统的概念,只是一个个工具程序而已。

    你的困惑还在于最初程序是如何输入进计算机的,现在要把一个程序加载到内存,需要借助别的程序,那这个“别的程序”又是怎么到内存里的呢?还是蛋鸡问题。其实,最早把程序加入计算机里的方法是搬开关,一位一个开关来代表高低电位。后来打卡片(和纸带),再用转换器读入。再后来出现了磁介质,存储和加载靠程序对磁介质读写来完成,这就不需要借助体力和外部设备了,存储和加载都在计算机内部完成。那么这个“最初的加载程序”当然不是靠程序加载的,是靠人力加载的(可以搬开关,也可以打孔。)

    再后来呢,由于输入汇编指令太累,所以有人就开发了一中程序,叫“自动编程器”,就是输入一条高级指令,由那个程序解释成多条机器指令,这就是后来的高级语言。

    ps:其实计算机的本质就是一条条电信号(机器指令)来推动运行的,和一台内部有很多齿轮的精密大钟没什么两样,都是机器!什么操作系统啦,什么程序啦,都是我们抽象后给他们起的名字,他们本质还是一个个机器指令,注意,我很反对某些人说机器指令就是1、0数字组成的,这很不确切容易使人误解(可能他自己就误解了),应该说是由高低电位组成的,只不过我们把高电位看作1,低电位看作0。我还很鄙视某些缺乏探索精神的所谓的“技术人员”,在他们看来好像在键盘上按一个键,然后显示器上显示出字符,这么一个简单的过程是理所应当的,不值得探索,殊不知就是这个简单的过程也是很多很多内部指令的结果,这些都不思考更不要指望他们去思考“最初的操作系统”类的问题了。一句话,没有探索的欲望和好奇心,就不要搞研究!”

结束!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值