0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解析CPU、内存、编译器(编程语言)、操作系统

小林coding 来源:小林coding 2023-01-04 15:31 次阅读

计算机是非常复杂的系统,涉及CPU、内存、编译器(编程语言)、操作系统等等。

那么,有没有可能一个人同时搞定整个计算机系统呢?

答案是肯定的。

而且是早在1976年就搞定了,从头到尾一人搞定整个计算机系统,包括硬件以及软件。

这台计算机系统长这样:

5170c4a4-8bff-11ed-bfe3-dac502259ad0.png

打造这台计算机的就是图片中右边这个家伙,天才工程师 Steve Wozniak (以下简称沃兹):

51a824da-8bff-11ed-bfe3-dac502259ad0.png

正是他和「乔布斯」一手打造了当今的苹果帝国。

1975 年 3 月 5 日,在加利福尼亚门洛帕克市Gordon French(一位美国的计算机程序员)的车库里家酿计算机俱乐部(homebrew computer club)举行了它的第一次聚会。

首次参加这个聚会的沃兹深受启发,并开始立刻着手设计自己的计算机系统(立刻行动的重要性)。

在没有 Githu b以及 Google 的年代里,沃兹单枪匹马就搞定了整个计算机系统并将其在俱乐部里展示了出来,甚至还帮助俱乐部中其它成员打造出了自己的计算机系统(开源精神就是这么来的?)。

有了天才的工程师然后天才的产品经理乔布斯出现了,乔布斯决定售卖沃兹制作的电路板,为了资助他们创建的小公司,乔布斯卖掉了他的车,沃兹卖掉了自己的HP-65计算器。

很快新公司开张并接到订单要求他们制作完整的计算机系统,这就是 Apple I。(这大概就是苹果售卖完整计算机设备基因的起源,你会发现苹果公司出售的都是软硬件完整的计算机系统,它既不会单独售卖硬件也不会单独售卖软件)

51c58c50-8bff-11ed-bfe3-dac502259ad0.png

让我们来看看这台计算机的配置。

沃兹在设计最初使用的是「摩托罗拉 6800 处理器」(好吧,CPU不是自己设计的),搭载了 4K 内存(内存也不是)。

软件方面则是沃兹自己实现的 BASIC 解释器,好吧,实际上 apple I 中并没有操作系统,有的只是一个所谓的 machine language monitor,这在 1970s 到 1980s 年代的计算机上非常流行:

51d7ac3c-8bff-11ed-bfe3-dac502259ad0.png

machine language monitor 类似于现在的shell,可以让用户输入命令并查看或者修改内存中的内容,沃兹实现的 monitor 有三个功能:可以让你以16进制来编程、检查一段代码的内容或者在特定地址运行一段程序,该monitor程序运行在一段256字节大小的内存空间中,你可以把monitor看做那个年代的操作系统。

1976 年 7 月,apple I 开始以 666.66 美元的价格开始售卖,因为沃兹喜欢重复的数字(666的鼻祖),这款计算机设备售卖一年后让位给了apple II,apple II让苹果公司家喻户晓(美国):

520843ba-8bff-11ed-bfe3-dac502259ad0.png

又过了几十年后划时代的 iPhone 发布,苹果享誉全球并成为世界上市值最高的企业。

可以看到,即使是在 1970 年代计算机发展初期,Woz 也没有自己动手设计 CPU 以及内存,而是采用现成的处理器与内存。

你需要知道的仅仅是如何对该处理器进行编程,然而即使是这其中看似简单的一项可能就会花费你几周的时间。

而搞定一个处理器尤其是可以商用的处理器绝非玩具处理器可比,如果你自己实现的简单处理器是这样一座桥的话:

那么商用处理器就是这种桥:

你可以说这都是桥,但这基本上就是两个不同的物种,商用处理器中的设计、实现、测试、调优、debug等等任何一项拿出了绝不是一个人能搞定的。

其它的像内存、硬盘、SSD等等皆是如此,完成这些后等着你的还有操作系统,同样,商用操作系统与教学或者玩具操作系统也是云泥之别。

因此,现代计算机系统打造更像是搭建积木,将现成的软件和硬件调试好后组装起来,即使对于富可敌国的苹果来说也是近两年才搞定桌面端处理器,在此之前依然要依靠 intel

好啦,本文就到这里。

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18288

    浏览量

    222167
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10446

    浏览量

    206566
  • 操作系统
    +关注

    关注

    37

    文章

    6288

    浏览量

    121886
  • 计算机系统
    +关注

    关注

    0

    文章

    213

    浏览量

    23881
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48618

原文标题:有可能一人搞定 CPU、操作系统、编译器吗?

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    几款C语言编译器推荐

    一些刚开始接触C语言编译的网友想下载一款C语言编译器来使用,不过,网络上有不少C语言编译器相关的
    发表于 09-05 09:19 9385次阅读

    不同操作系统下的编译器安装方式

    如前面介绍的那样,C++属于一种静态的编译语言,所以,开发环境配置过程中就需要用到对应的编译器
    发表于 09-13 15:54 530次阅读

    交叉编译器解析

    上去运行,也就是我们所说的环境不样,而这也就是为什么称之为交叉编译器的原因,用英文解释,这就是所谓的cross。二:体系结构与操作系统1,常见的体系结构有ARM结构、x86结构等.2,常见的
    发表于 12-16 09:47

    交叉编译器解析

    上去运行,也就是我们所说的环境不样,而这也就是为什么称之为交叉编译器的原因,用英文解释,这就是所谓的cross。二:体系结构与操作系统1,常见的体系结构有ARM结构、x86结构等.2,常见的
    发表于 12-21 16:57

    μC/OS-II操作系统在各种处理上的移植

    仍需使用汇编语言来完成些和处理相关的操作,例如读写处理、寄存时只能使用汇编
    发表于 08-14 09:46

    linkboy编程语言已初步支持鸿蒙操作系统

    linkboy是门面向物联网、边缘计算、工业控制等领域的自研编程语言,近期已初步完成对鸿蒙操作系统(OpenHarmony)的支持,实现了编译器
    发表于 07-09 08:08

    HDC技术分论坛:ArkCompiler(方舟编译器)原理解析

    体验和用户体验等方面的需求, ArkCompiler与硬件、操作系统、开发框架、编程语言协同设计,在多语言
    发表于 11-22 17:04

    C语言编译器包括哪几部分

    C语言编译器包括哪几部分?C语言编译器的桌面操作系统有哪些?C语言
    发表于 01-24 06:16

    基于Linux操作系统下C语言编程入门

    基于Linux操作系统下C语言编程入门
    发表于 10-27 15:36 11次下载
    基于Linux<b class='flag-5'>操作系统</b>下C<b class='flag-5'>语言</b><b class='flag-5'>编程</b>入门

    深入编程语言编译器是怎样工作的

    理解编译器内部原理,可以让你更高效利用它。按照编译的工作顺序,逐步深入编程语言编译器是怎样工作的。本文有大量的链接、样例代码和图表帮助你理
    的头像 发表于 12-26 09:53 4089次阅读

    主流的C语言编译器详细介绍

    于Windows操作系统之外,主要用于Unix/Linux操作系统。像现在很多版本的Linux都默认使用GCC作为C语言编译器。而像FreeBSD、macOS等
    发表于 09-05 17:27 2次下载
    主流的C<b class='flag-5'>语言</b><b class='flag-5'>编译器</b>详细介绍

    主流C语言编译器的详细资料介绍

    于Windows操作系统之外,主要用于Unix/Linux操作系统。像现在很多版本的Linux都默认使用GCC作为C语言编译器。而像FreeBSD、macOS等
    发表于 05-22 18:00 1次下载
    主流C<b class='flag-5'>语言</b><b class='flag-5'>编译器</b>的详细资料介绍

    既然C编译器是C语言写,那么第一个C编译器是怎样来的?

    既然C编译器是C语言写的,那第一个C编译器是怎样来的?
    的头像 发表于 02-25 15:47 2802次阅读

    盘点18款拿来就可用的在线编译器

    DJGPP是GCC编译器在DOS操作系统上的一个移植版本,可以用来在DOS操作系统编译生成32位保护模式的程序。学习C和C++语言
    的头像 发表于 09-02 11:36 1.2w次阅读
    盘点18款拿来就可用的在线<b class='flag-5'>编译器</b>

    某种编程语言的第一个编译器是怎么来的呢?

    不知道你有没有想过,某种编程语言的第一个编译器是怎么来的呢?这不就是“鸡生蛋,蛋生鸡”的问题吗?
    的头像 发表于 08-14 09:31 526次阅读
    某种<b class='flag-5'>编程</b><b class='flag-5'>语言</b>的第一个<b class='flag-5'>编译器</b>是怎么来的呢?