最新公告
  • 自助下单 自动发货 58学课 欢迎您【客服QQ:260837161】
  • 掘金小册计算机是怎样运行的:从根儿上理解计算机

    • 在线网盘 点击查看详情 购买后内容一样

    小册介绍

    之前小孩子写了《MySQL是怎样运行的》,虽然挺受欢迎的,但受众实在太少,只有后端开发小伙伴以及部分DBA才会用到。所以这次小孩子憋了个大招,搞了一本各方通吃的小册《计算机是怎样运行的》,这是一本从完全零基础,讲解计算机是如何一步一步搭建起来的书籍。

    小贴士:

    小孩子想用若干年的时间去编写若干本极富小孩子特色的计算机学科的书籍,从而搭建一个计算机学科书籍的金字塔,而这本《计算机是怎样运行的》无疑就是这个金字塔中最底层的那块砖。

    不论大家从事前端开发、后端开发、数据分析还是算法岗位,不论使用C、Java、PHP、Javascript还是Python编写程序,我们都是在和计算机打交道,如果不清楚计算机是怎样运行的话,很大概率上在程序员的道路上走不太远。相反,如果您熟知计算机底层运行的一些原理,那之后学习新技术的时候,一定会成为那个啥都一点就通的最靓的仔!

    以往在谈到计算机组成原理的话题时,很多同学会认为这个太过于底层,直呼太难了学不懂。小孩子认真思考了一下,其实给大家造成“难”的这个错觉的原因大致有下边这些:

    • 概念简直不要太多,刚打开一本讲解计算机原理的书籍,各种概念像是从加特林机枪里射出来的,打的人都喘不上气。而且知识点像是散装起来的,彼此貌似有联系但又好像没太大联系,很难形成统一的整体。
    • 采用自顶向下的讲述策略,即先将计算机分成几个部分,再将各个部分分成各个小部分。这是一种非常简单粗暴的讲述策略,这种策略对知识的传播者足够友好(因为这样写的确很简单),却对知识的接收者足够不友好(因为人们的认知并不是先整体再具体的)。复杂事物的组成不是一开始就是那个样子的,一个凶神恶煞的怪兽的初期可能就是一个非常可爱的小宝宝,我们想要了解复杂怪兽,其实最好的手段是从它还是个小宝宝的时期开始,之后一步步的随着它的长大来了解更多信息,这样才会足够深入的理解它。
    • 引用尚未接触过的概念去解释新概念。这一点可能是因为作者假定读者已经掌握了某些知识,或者是作者一开始就没考虑各个概念之间的因果关系(因为大人长大后很难回忆起自己还是一个小孩子的时候是个啥样了)。
    • 细节!细节!还是细节!细节是魔鬼,细节对于理解问题的本质起着至关重要的作用,学习了缺乏细节的知识会让人觉得好像学了点儿什么,可吃完一顿饭之后又会觉得啥都没学。
    • 枯燥的语言带来了浓浓的“学术”气息,一个个冷冰冰的知识点被我们不情愿的装入脑中,让小伙伴们不禁感叹:学习真是一件苦差事啊。

    针对上边所述的问题,本小册做了针对性的改造:

    • 给各种概念分清层次,尽最大努力保证一次只介绍一个概念。并且将所有知识点串成一条线,希望大家在读完全书后有一种看了一整部电视剧或者游戏不断通关最后干掉大BOSS的感受。
    • 按照人们的认知顺序,先介绍简单的知识,再在简单知识基础上扩展新的知识,力求为大家打造一个十分平缓的学习曲线。我们觉得“是什么”的重要性远没有“为什么”重要,小册的基本讲述套路就是先抛出一个问题,然后针对问题提出较为简单的解决方案,再分析该方案的不足之处,之后逐渐改进。
    • 本小册是完全零基础的(不过需要各位有中学电学知识基础),并且尽最大努力避免引用未介绍过的概念去介绍新概念。
    • 沿着计算机从简单到复杂的发展历程,我们会保留其中最核心的一些东西,并力求给出足够多的细节去实现它们。当然,一考虑到篇幅有限,并不能在一本书中详细讲解所有内容;二考虑到大家的用户体验,短时间内介绍大量内容会影响心情。所以我们有时会只介绍某个东西如何使用,而不去纠结它是如何实现的了(比方说内存控制器),遇到这种情况我们会明确强调。
    • 小孩子写东西不喜欢那么严肃,大家在读本小册的时候可能会觉得有个人在和你扯淡,在扯淡中学习的过程还是蛮愉悦的嘛!

    现代计算机所能完成的任务五花八门,大家可以使用计算机看电视、听音乐、打游戏、做报表等等等等,但计算机大厦的基石其实就是由非常简单的开关组成。我们将从最基本的电路知识开始出发,使用电压信号来表示二进制数字,然后使用电控开关去改变信号,由于改变的方式五花八门,从而引入各种各样的逻辑门,从逻辑门再走向逻辑运算和逻辑函数。有了足够多的基础知识后,可以在此基础上搭建各种算术/逻辑运算电路,将其汇总起来作为算术/逻辑单元,之后从狗哥的实际问题出发引入寄存器概念,从而可以在时钟信号的控制下完成运算,之后再引入用户友好的存储设备以完成自动运算。为更方便的解决现实问题,我们逐渐引入各种指令,之后就诞生了“编程”的概念。然后就可以引入计算机中的各种高级主题,诸如指令集体系结构、总线、中断、汇编语言与高级语言等等。

    在《计算机是怎样运行的》小册中,小孩子从零实现了一个支持14条指令的单操作数miniCPU,并在FPGA上做了实现。这些指令分别是:

    指令名称 指令的二进制形式 指令的十进制形式 描述
    add_m 0000 0 加法,操作数为地址
    sub_m 0001 1 减法,操作数为地址
    and_m 0010 2 按位与,操作数为地址
    or_m 0011 3 按位或,操作数为地址
    halt 0100 4 停止执行
    store 0101 5 向数据RAM中写入数据(操作数为地址)
    load_m 0110 6 将数据RAM中的数据加载到累加器中,操作数为地址
    jmp 0111 7 跳转到某条指令执行(操作数为地址)
    je 1000 8 如果上次ALU运算结果为0,就跳转到某条指令执行(操作数为地址)
    add_i 1001 9 加法,操作数为立即数
    sub_i 1010 10 减法,操作数为立即数
    and_i 1011 11 按位与,操作数为立即数
    or_i 1100 12 按位或,操作数为立即数
    load_i 1101 13 将一个立即数加载到累加器中

    另外需要强调的一点是,虽然文中使用了较多的电路来解释问题,但本小册确确实实是写给软件开发同学看的,以至于电路结构能简化就简化,硬件开发同学是无需看的。

    作者介绍

    《MySQL是怎样运行的:从根儿上理解MySQL》以及《MySQL是怎样使用的:从零蛋开始学习MySQL》书籍作者,公众号「我们都是小青蛙」作者,辞掉工作专门研究怎样可以写出通俗但又深入的技术书籍,觉得把复杂的问题讲清楚是一件很牛逼的事儿。

    你会学到什么?

    从0到1搭建计算机,深刻理解计算机中的各种概念。

    适宜人群

    仅需中学电学知识基础,适用于使用计算机编程,却对底层原理不清楚的各种同学。

    每天成长一点点,要比别人快一步
    58学课 » 掘金小册计算机是怎样运行的:从根儿上理解计算机

    常见问题FAQ

    如何下单?如何下载?
    ->> 点击查看 自助下单,自动发货,下单后,页面会自动刷新,显示百度网盘地址
    如何查看下单后的内容?
    在线网盘 点击查看详情 下单后内容一样
    本站不议价 !
    本站不议价,不支持无理由退换,看清楚再下单
    更多常见问题?
    ->> 点击查看

    发表回复

    Hi, 如果你对这个资源有疑问,可以跟我联系哦!

    联系客服
    • 13132会员总数(位)
    • 5225资源总数(个)
    • 73本周发布(个)
    • 1 今日发布(个)
    • 1507稳定运行(天)

    自助下单 自动发货 58学课 欢迎您

    加入我们