其实我在逐渐使用Windows的过程中发现“记事本”这个工具真的挺好用的!就是它:
平常我喜欢写一些东西,比如突如其来的灵感,和一些思考什么的,就想着写写,那么在电脑上用记事本去写,觉得体验很不错,觉得记事本这个东西真的很纯粹,就是记录文字!
那你有没有想过,这个软件是怎么运行起来的,当我们在上面写上一段文字之后又发生了什么呢?
今天要和大家分享的,如果你不是计算机专业,那你看了觉得真的涨姿势了,那对于计算机专业的来说,这就是必备的了,能让你进一步发现计算机基础的美妙之处!
我们在之前和大家来过什么是冯诺依曼体系,说白了,就是它规定了计算机应该有哪些基本东西,主要有如下五大件:
那作为计算机专业的我们,应该知道,这个存储器是啥吧,不过我觉得还是有人比较模糊的,有人会说,存储器,是不是就是硬盘?对的,那是不是内存呢?也对的。
存储器就是一个存储数据的设备,无论是硬盘还是内存都是可以进行数据的存储,所以他们都是存储器,只不过一个是外部存储,一个是内部存储,想要详细了解这块的可以参考如下文章:
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
为啥要说这个?咱们接下来要说的和这个存储器是有很大关联的!一起来看看吧!
首先要知道啊,记事本在我们的电脑上就是一个软件,比如我们安装的qq啊,微信啊,或者是腾讯视频等等,这些都是可以运行在我们电脑上的客户端软件,Windows上一般就是exe可执行文件,这个你可以不管,就只需要知道,这些东西是属于软件,电脑上的软件。
那软件是怎么来的,对的,是程序员来发的,一般就是各种数据的集合,你可把软件想成是很多的数据融合在一块形成的东西,就像你用韭菜啊,猪肉啊,面皮这些东西,最后搞成一个饺子出来,这个饺子相当于最后的成品,也即是这里的软件,比如记事本就是,那数据就类似韭菜,猪肉这些等等的食材。
咋样,这个好理解吧!
我们接着说,现在我们知道了记事本其实也是个软件,那么这个软件我们在用的时候,有没有想过它是怎么运行起来的吗?有人会说了,那不简单,双击不就运行了吗?的确,不过今天如果我就说说这个,估计又要被人喷太水了。
你有没有想过,当我们双击这个记事本之后计算机的内部发生了什么嘞?就是我们可以稍微深入的去分析一下,这个记事本到底是怎么运行的。
如果你看过我之前写的那么多计算机基础相关的文章,那你一定知道,程序也就是我们说的软件,如果想要运行起来的话,是需要把软件相关的数据统统加载进内存中才行的,也就是说,程序需要被加载进内存中才能被后续运行起来。
我们都使用过电脑,也都安装过各种软件,那么不知道大家有没有留意过,当你安装软件的时候,一般会让你选择安装位置,可能非计算机专业的你们没有关注过这些,直接就下一步下一步了,但是作为程序员的我们,一般可以修改软件安装位置的话我们都会选择更改安装位置。
这是为啥,这是因为一般来说吧,软件默认的安装位置都是电脑中的C盘,而一般的话,C盘又是系统盘,所谓系统盘也就是操作系统所在盘,这里说一点,操作系统也是一个软件,可能有人对操作系统不太了解,你就可以简单的理解,操作系统是可以让你真正把电脑用起来的一个东西,没有他很多东西你都用不了,操作系统像是一个为你服务的,为了你更好的使用这个电脑。
那么这个操作系统就在C盘,我想你也肯定听过C盘不要太慢,否则会影响电脑速度,会比较卡之类的,对吧,这样说有道理吗?只能说有一定道理,所以啊,按照常规来说,也就是C盘太慢会影响电脑速度这种说法,学计算机的应该是接触这种说法比较早的,又加上知道C盘是系统盘,如果需要重装什么会比较麻烦,因此很多人做法也就是可以更改默认安装位置的就更改了。
我们继续说这个记事本软件,一般这个记事本是Windows自带的,软件的安装位置是在C盘的,给大家看看:
其实一个软件安装过后,会有很多的文件,比如这个记事本,是包含很多的文件数据的,如果我们想运行这个软件的话,也就是我们可以双击这个exe可执行文件,当你双击之后,与它相关的各种数据文件都会被加载进内存中,加载进内存之后才能被云心起来。
可能有人这里不太理解了,为啥要加载进内存嘞,首先啊,你要知道,一个软件,它要想运行的话,是依靠很多的文件数据以及一些系统指令啥啥的,反正多方面协同,最终运行起来,但是我们不用考虑那么复杂,按照我们所学去理解即可。
也就是,程序要运行,需要把相关数据加载进内存中,我在之前讲过CPU相关的知识,CPU是计算机的大脑,负责总的运算和控制,也就是说,程序最终是需要由CPU来执行运行的,那么CPU要想运行这个程序,是不是需要这个程序的相关数据。
那么怎么得到这些数据呢?对的,就是从内存中去读取,可能有人说了,为啥不把数据加载进CPU嘞?这是因为CPU的主要职责是负责与运算和控制,它其中也包含寄存器可以用来保存数据,但是容量极小,只用用来保存那些必须的一些正在用的数据,所以,程序的那么多数据放在CPU,这就导致CPU各种性能下降等等,反正肯定不能这样干,CPU 必须把主要精力放在主要职责上面。
那么所需的数据放哪呢?所以有了内存,那你可能问了,程序的数据本来就在硬盘中,为啥不直接让CPU去硬盘中读取呢?这是因为对于CPU来说,硬盘的速度太慢太慢了,所以中间有了内存,内存的速度要比硬盘快的太多太多了,但是比着CPU还是慢,但是总归差距没那么大了,于是CPU 要运行程序就去内存中读取数据。
另外,CPU也被设计成只能从内存中去读取数据,所以啊,程序运行最终依靠CPU,而CPU只能从内存中读取数据,那你说,程序运行是不是需要把数据加载进内存呢?
所以啊,当你双击记事本的时候,其内部就是把相关数据加载进内存中,然后CPU去内存中读取数据,继而把记事本给运行起来。
这里不知道你清楚不,就是这个记事本啊,本身它的一些数据什么的,都是在本地硬盘上的,当你打开记事本,准备在上面写点什么,比如我们打开一个记事本,写上如下一段话:
不知道你注意没,我们写下这段话,是没有进行保存的,前面说了,当你双击打开的这个记事本的时候,它就被加载进内存中了,然后CPU进行相应的运算,比如我们写下上面的这些文字,此时你要明白,这个时候你写的这些文字实在内存中操作的,也就是这些数据是被内存正在使用的。
说白了,此时这些文字内容是在内存中,如果你没有保存,电脑断电关机,那么你是找不回来这句话了,因为内存这种玩意,一断电数据就会丢失的,所以啊,当你写下这么一段话,这是在内存中操作的,然后你点击保存,这其实是个指令,然后CPU得到这样的指令,就命令内存这家伙,赶紧滴,把这段话保存到硬盘上去,于是乎,这段文字被成功保存到硬盘上,即使关机,下次依然可以找到。
程序需要被加载进内存才能被执行,CPU被设计成只能从内存中读取数据,处理完数据将结果再次写回到内存,然后可持久化到硬盘中!
想要继续了解,请继续学习如下这篇文章,相信你会学到更多!学Java的必读哦!
一个程序在计算机中是如何运行的?超级干货!!!
大学的时候选择了自学Java,工作了发现吃了计算机基础不好的亏,学历不行这是没办法的事,只能后天弥补,于是在编码之外开启了自己的逆袭之路,不断的学习Java核心知识,深入的研习计算机基础知识,所有心得全部书写成文,整理成有目录的PDF,持续原创,PDF在公众号持续更新,如果你也不甘平庸,那就与我一起在编码之外,不断成长吧!
其实这里不仅有技术,更有那些技术之外的东西,比如,如何做一个精致的程序员,而不是“屌丝”,程序员本身就是高贵的一种存在啊,难道不是吗?
非常欢迎你的加入,未来的日子,编码之外,有你有我,一起做一个人不傻,钱很多,活得久的快乐的程序员吧!
回复关键字“PDF”,获取技术文章合集,已整理好,带有目录,欢迎一起交流技术!
另外回复“庆哥”,看庆哥给你准备的惊喜大礼包,只给首次关注的你哦!
任何问题,可以加庆哥微信:H653836923,另外,我有个交流群,我会***不定期在群里分享学习资源,不定时福利***,感兴趣的可以说下我邀请你!
对了,如果你是个Java小白的话,也可以加我微信,我相信你在学习的过程中一定遇到不少问题,或许我可以帮助你,毕竟我也是过来人了!
感谢各位大大的阅读