零基础学习计算机原理,应该从哪些核心模块入手?

零基础学习计算机原理,应该从哪些核心模块入手?

我一直对计算机背后的运行机制充满好奇,但非科班出身,感觉无从下手。想听听大家的建议,如何系统学习这些硬核知识,才能真正理解而非死记硬背?

————————————

那我就通俗的引导一下,剩下的你可以根据关键信息去学习;

1、首先计算机是一个自动化机器

是的,从你按了开机,它就自己开始自动的运作了;

实现整个自动化的,是各个部分的配合;

【振荡器】是自动化源头,它通电之后,会源源不断的输出周期性变化的电,从而触发其他电路周而复始的运作;

【控制电路】受振荡器的控制,然后不断的、重复的,去读取【内存】,内存里面的电信号就会不断的涌出,去触发其他电路;

这些其他电路,最主要的部分就是【固化好的一堆 计算电路】,这些电路都有自己的触发开关条件,从而让其动作,完成计算;

这些触发条件,就成为了后来的【指令】

当然,程序就在内存里面,它就是编排这些指令达到不同的计算效果,反正整个机器是自动的,只要上电开机,内存里面有程序,就ok,自动开始运行了

2、放弃1和0幻想

嗯,摆正心态,不要去相信“计算机能识别1和0”这种鬼话,这种描述,只适合大众科普,虽然科普了个寂寞;

真实情况,是我们脑内的幻想,我们幻想有那么个符号“1”或“0”,与电路的状态扯上了关系;

真实机器电路上,从来都没有1和0,他们不是奇迹,也不是魔法,只是我们的幻想;

真实电路上,只有电压的高低,电流的有无,亦或是磁盘上的南北极,以及光盘上激光烧出的坑;

我们这一切,都是【指代】,就像我们发明语言文字“牛”,指代了那个在田里劳作的生物;

但也因为指代的原因,于是就有了代码,“牛”是代码,“1”或“0”亦是代码;

代码的真正意义,是方便了你我之间的交流,我一说“牛”,你就知道了意思,我就没必要去逮一头抱到你面前;

1和0也是给我们自己看或者与别人交流的,也不要去相信“1和0是人与机器交流的语言”这种鬼话,机器又不是某个智能体,又不存在意识,你买个硬盘对它喊一辈子的10101都不会有任何回应;

只是说,我们用我们心中幻想的1和0这两个符号,指代了电路上的状态、或者电压电流,由此我们就不用在那通篇的说断电有电几伏几安;

然后,机器是自动的,我们还可以利用内存里面的电自动的去控制外部电路;

3、数字电路,只是一个电路设计方案

很多原理讲解,起步就是数字电路与或非,好像没有它就没有计算机;

事实是很打脸的,即便没有数字电路,并不妨碍我们制作出一台计算机,不然几个世纪前的机械计算机是什么东西?机械计算机时代,其天花板就是巴贝奇的分析机,同样有内存、有控制器、有运算单元,全齿轮结构,连打孔纸带都有,但那时候数字电路都还没出现;

只是说,数字电路,提供了一套科学优秀的【装置设计方案】,这个装置就是电路,当你想要设计一个具备某个功能的电路的时候,就可以引用数字电路的设计思想,方便的搭建好电路,不然就会复杂化;

数字电路,基于布尔逻辑零基础学习计算机原理,应该从哪些核心模块入手?,这个是一个逻辑学科,布尔逻辑就是把它代数化了,变成了可以进行代数计算的形式,它的核心是二值逻辑,两个值:真与假。你以为数字电路上幻想的符号1和0是二进制,但真不是计算机工作原理采用那个科学家的设计思想,数字电路上,1和0两个符号,联系的是【电路状态】和【真与假】

4、程序起始于自动开关,构造了机器语言的幻想

上面第1点是很重要的,它是一个自动化系统,但同时也是一个可编程系统,核心就是内存;

你知道的,做任何事情,都有自己的步骤,让计算机乖乖的去计算也是如此;

在计算机不是某种智能体的情况下,只能是我们把步骤放进内存,然后依靠自动化系统一步一步的自动的执行;

要实现这一点,就需要一个最重要的东西——【自动的开关】

当,我们制作了一堆【固化的】、【各种功能的】电路的时候,我们要启动这些电路就是接通他们的开关(是的计算机工作原理采用那个科学家的设计思想,就是可以这么理解),这个时候,你总不能自己用自己的手去闭合吧?

电子计算机早期,使用的是一个名为【继电器】的元件,只要给它通电,就可以吸铁,嗯,好的,那我们就去吸附开关不就好了。

对于给继电器通电这件事,完全可以把内存里面的电放出来送到继电器上;我们只需合理安排继电器的位置,和那些【固化的】、【各种功能的】电路联动即可。

振荡器》控制电路》内存放电》继电器》其他功能电路,就完成了可编程链路;

这个时候,我们的关注点,就是内存里面的电,应该怎么放置,我们可以制作充电电路给充电进去,但是随意的充电吗?显然不是;

对于那些【固化的】、【各种功能的】电路的触发开关,我们就根据他们的排布,幻想成了我们脑子里面的1和0,比如有三个开关,闭合前面两个就能启动一个加法电路,ok,我们可以表示成“110”,此时,指令诞生了,加法指令就是110,后面在送进去两个电代表数据即可;

所以,最终,根据这些固化的、各种功能的电路的触发条件零基础学习计算机原理,应该从哪些核心模块入手?,我们得到一堆基本指令,我们可以按需根据指令,以及我们想要完成的任务,给内存中充电。

然后,这一堆指令的集合,便就成了【程序】,而那些1和0,我们取了个名字—— 机器语言;

5、内存结构 辅助自动化

重复一下,你知道的,做任何事情,都有自己的步骤,让计算机乖乖的去计算也是如此;

早期的内存是比较简单的,但并不契合,没法更好的辅助自动化;

现代内存,基于【矩阵结构】,就像是一个表格,每一个格子就是一个可以充电的容器,而每一排,就是一个最小步骤;

此时,我们可以给每一排编号,于是有了内存地址,我们只需一些控制线,控制每一排,就可以进行充电和放电;

在【由振荡器驱动的控制电路】那边,就可以弄个计数装置,每次内存放电一次,计数+1,自动跳到下一排控制,由此完成步骤的自动化执行;

6、万物化为数据,并通过终端设备还原

虽然,数字电路在设计上,幻想的1和0是真与假,但我们确实可以再一次幻想成是数据;

幻想归幻想,1和0是我们脑子里面的,电路上也只有电信号。那些万物(声音、图像、文字)怎么展现出来?

要展现,得先记录,这是一切的起源;

声音这边,声音是振动,当我们声音的振动让话筒里面的碳粉也振动的时候,我们就得到了一段变化的电信号,这段电信号,可以直接注入扬声器,基于电磁原理让扬声器的线圈带着纸盆在磁铁上跳动,然后推动空气还原成声音;

要想变成数据,我们只需在对着话筒说话的时候,每隔一段时间记录一次电信号的值,然后给它一个二进制编码,来代表这个值,最终,我们就得到了一堆1和0,是可以放进内存的计算机工作原理采用那个科学家的设计思想,称之为数据。

还原的时候,我们只需设计一种电路,让其根据二进制还原成具体的电信号值即可,然后送入扬声器;

图像这边,得益于小孔成像的原理,人们发现可以把现实世界的画面投射到物体上,后来小孔成像被透镜成像取代,发展出了如今的镜头。我们只需把画面投射到遇到光会发生变化的物体上就可以搞些事情了,最早这导致了照相机的诞生,最开始用的是某种铜板,后来是胶卷;

直到,人们发现了光电效应,某些物质,会在被光照射时,产生电信号,于是人们利用这些物质做出了感应装置(这方面内容较多,也可以自行搜索),现在的感应装置,被切分成很多点,当人们把画面投射到感应装置上后,每个点都会基于自己当前光产生对应的电信号,这些电信号也会被编码,成为一堆1和0,并且人们基于对光的研究,根据不同的光谱,也可以产生不同的电信号,于是颜色也有了;

逆过程还原,靠的是显示器,现代显示器,屏幕也是一个个点,人们基于数学计算,可以对图像进行放大缩小显示在显示器上;

至于文字,人们会事先画好文字的字形,也是像素点,然后存储起来形成字库,接着人们会为每个文字编号,编号采用二进制编号,于是有了字符编码,你所看到的电脑上的文本,文本本身就是一堆编号(字符编码),计算机会根据编号从字库取字形打印到显示器上;

编码成1和0,或者把1和0解码成声音等电信号,最早也是通过一些专门的电路实现,可以自己搜索查阅。

7、字符编码,编程语言的起点

一旦人们通过显示器显示出了自己的人类的文字,人们当然是期望能通过自己的文字来编排指令的;

于是,人们开始设计一套字母文字的编排规则以便和指令对应。然后人们又根据规则提前设计了一套程序用于解析文字(字符编码)(各种词法分析等),然后给内存正确的充电。这个时候,编程语言就诞生了,最早的就是汇编语言。

8、操作系统

事实上,操作系统本身就是一套程序。

并且,计算机可以不用操作系统,只是说,最简单的情况下,自动化的计算机在自动的执行内存里面的程序之后,就会直接停机;

人们期望它不会停下来,并且能物尽其用,甚至同时运行多个程序,于是有了操作系统,有一个【管理程序】统管全部,这势必会涉及到硬件资源的分配,以及多个程序的运行调度,在有外部存储的情况下,还得建立一套文件系统,这方面也是一个大块头,操作系统也有自己的发展历史,最早批量化、然后有了多道程序系统,从此有了管理程序,后面有了专门的调度器程序,可以自己去搜索学习。

其实还不止,包括互联网我也没讲,从以太网到web,还有CPU的出现和指令集的出现(最早并没有CPU,为了能通用一些程序,人们集成了计算机的一部分核心功能成为了cpu,并设计了通用指令集),现代计算机已经变的足够复杂,但基本的原理还算是通用的,基本的结构这么多年也基本没有变化。只是在细节上复杂了、变的更好了。还有元件历史,早期的继电器如今已经演变成了半导体元件,本质上还是模拟的继电器自动开关,只是更好更快了。

书籍推荐:

计算机系统要素,计算机组成原理,模拟电路,数字电路,自动机理论、语言和计算导论,编码,

深入理解计算机系统(CSAPP),操作系统概念,现代操作系统、

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » 零基础学习计算机原理,应该从哪些核心模块入手?

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们