IT:从硬件开始

对于绝大部分人,电脑一词的概念就是家里的台式机,笔记本。网吧里一排排的“游戏机”,国人认为windows是标配,很少有操作系统也是商品的概念,更甭提买正版系统光盘了。

如果去掉那些普通人并不感冒的计算机历史,这个概念也无可厚非。毕竟很多人不会接触windows之外的系统,白富美高富帅的MAC除外。

个人计算机,即PC即我们日常的电脑得以普及和推广,是硬件不断更新的必然。inter推出的X86架构系列芯片,因其当时的性价比较高,获得较多市场。而最终选择X86为基础的windows的出现又是个划时代的的产物,加之基于windows的众多软件出现,让X86架构成了事实上的桌面电脑统治者。

何为X86?先说CPU/芯片是干什么的。其一:运算,任何电子指令到了计算机的物理层面都是一股电流经历一堆与或门,使电子元件的的状态发生改变,来体现运算的结果。当然,往往都是8个,16个,32个甚至64个电子元件的状态一起改变。(数电,模电,这是计算机分类中的底层知识)这种使物理状态改变的能力,便是cpu内置指令集发挥的作用了。cpu的指令集不具有使硬件做加法的功能的话,你死活都没法在其上编出加法程序的(以前加减乘除所有运算都基于加法!)。简单说,X86架构是一系列使用了大概相同或兼容指令集的的CPU家族。

很早就知道中国有在研究“龙芯”,但迄今为止市面上仍未量产,其使用的指令集为基于MIPS的一套指令集,与X86并不兼容。这意味着。。。没法装大众化的windows。。。进一步没法装基于windows的所有软件。所以,只能猜想龙芯面向的受众不同吧。

为啥龙芯不能装windows呢?windows是操作系统(OS),是覆盖于硬件之上的第一层软件,windows的内核可以直接通知硬件做运算指令,这就不难看出了。一种内核,肯定是基于某种cpu编的,因为不同cpu指令集不同嘛。windows当年选择了x86,所以。。。而众多花哨的应用软件又是基于操作系统的。(java所谓的跨平台,只能说高层面的跨平台,所有调用都只针对jvm,而jvm在各操作系统中是必须不能一样的)理论上c语言也是跨平台的,可惜悲催的是大型c程序,尤其是GUI往往代码里直接调用操作系统API。这就导致换到linux,linux完全不知道这个程序想要干什么,更甭提去调cpu了。(所以java相对于C就是在操作系统与程序之间加了一层缓冲,不知道是不是符合“任何编程问题都可以通过加一个中间层来解决”这句话,不过这也是java比较慢的原因。)

计算机是个很神奇的东西,一道指令,通过电流,改变电容电位,计算机就认识了。。。计算机技术发展到今日,已有众多分支,众多程序员往往是建立在高层次抽象方面,后续的事?让编译器去忙吧~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值