作者 | ithuangqing

来源 | 编码之外(ID:ithuangqing)

其实我在逐渐使用Windows的过程中发现“记事本”这个工具真的挺好用的!就是它:

平常我喜欢写一些东西,比如突如其来的灵感,和一些思考什么的,就想着写写,那么在电脑上用记事本去写,觉得体验很不错,觉得记事本这个东西真的很纯粹,就是记录文字!

那你有没有想过,这个软件是怎么运行起来的,当我们在上面写上一段文字之后又发生了什么呢?

今天要和大家分享的,如果你不是计算机专业,那你看了觉得真的涨姿势了,那对于计算机专业的来说,这就是必备的了,能让你进一步发现计算机基础的美妙之处!

回忆一下冯诺依曼体系

我们在之前和大家来过什么是冯诺依曼体系,说白了,就是它规定了计算机应该有哪些基本东西,主要有如下五大件:

  1. 运算器
  2. 控制器
  3. 存储器
  4. 输入设备
  5. 输出设备

那作为计算机专业的我们,应该知道,这个存储器是啥吧,不过我觉得还是有人比较模糊的,有人会说,存储器,是不是就是硬盘?对的,那是不是内存呢?也对的。

存储器就是一个存储数据的设备,无论是硬盘还是内存都是可以进行数据的存储,所以他们都是存储器,只不过一个是外部存储,一个是内部存储,想要详细了解这块的可以参考如下文章:

作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!

为啥要说这个?咱们接下来要说的和这个存储器是有很大关联的!一起来看看吧!

记事本是怎么运行起来的

首先要知道啊,记事本在我们的电脑上就是一个软件,比如我们安装的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的必读哦!

【 THE END 】—本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!

3T技术资源大放送!包括但不限于:Java、C/C++,Linux,Python,大数据,人工智能等等。在公众号内回复「1024」,即可免费获取!!

程序员杂志为啥没有了_计算机基础知识,程序员必备知识,java必会!新建一个TXT,发生了什么?...相关推荐

  1. 计算机及网络应用基础思维导图_计算机基础/算法/面试题 PDF+思维导图下载

    之前为了面试,整理了九大应付面试的思维导图 + 一份 630 页的程序员内功修炼手册 + 一份计算机基础/算法/Java技术栈/Linux C++技术栈的资料.当时我就是靠着这份思维导图以及整理的 P ...

  2. 计算机术语局部性,【计算机基础】程序的局部性简介

    什么是局部性? 局部性分类 局部性有什么作用? 局部性举例数据引用的局部性 取指令的局部性 结论 完整代码 什么是局部性? 程序倾向于使用它们最近使用的地址接近或相等的数据和指令. 局部性分类 局部性 ...

  3. 计算机术语中CPU是指______,试题题库_计算机基础知识考试试卷全套.doc

    试题题库_计算机基础知识考试试卷全套.doc 第一部分 计算机基础知识 (一)单项选择题 1. 世界上第一台计算机使用的物理器件是( ). A)电子管 B)继电器 C)晶体管 D)集成电路 2. 第四 ...

  4. matlab在图像上画出来的矩形框如何变成可托动的_计算机基础系列:源代码如何被计算机执行...

    计算机芯片的物理特性决定了它只能接受二进制指令.不同计算机芯片的指令集不同.高级编程语言需要转化成二进制机器语言才能被计算机所执行.编译型语言需要使用编译器经过编译和连接生成可执行文件,解释型语言需要 ...

  5. poll和死锁_计算机基础知识

    转自: http://blog.csdn.net/qq_15437629/article/details/52388685 在这里只做备份 计算机网络 TCP/IP 模型 TCP/IP协议集的分层实施 ...

  6. 新疆银行招聘计算机,新疆2017年银行招聘考试计算机学_计算机基础试题(19页)-原创力文档...

    .专业 .专注 . 新疆 2017 年银行招聘考试计算机学 :计算机基础试题 本卷共分为 1 大题 50 小题 ,作答时间为 180 分钟 ,总分 100 分 , 60 分及格 . 一 . 单项选择题 ...

  7. win10安装程序无法将配置为在此计算机,win10安装程序无法正常启动(完美解决)

    最近有用户遇到在Win7系统中升级Win10系统的时候出现"Win10安装程序无法启动"的问题,具体故障图如下,导致安装不能继续,升级失败,当我们遇到这样的问题时不要惊慌, 解决方 ...

  8. c语言设计程序实现顺序冒泡_计算机C语言编程设计专业知识题库汇总

    下列关于栈叙述正确的是(). A.算法就是程序 B.设计算法时只需要考虑数据结构的设计 C.设计算法时只需要考虑结果的可靠性 D.以上三种说法都不对 答案:D 下列叙述中正确的是(). A.有一个以上 ...

  9. c语言if(x==0x0f){x=0;y^=1;},全国2007年7月高等教育自学考试计算机基础与程序

    全国2007年7月高等教育自学考试 计算机基础与程序设计试题 课程代码:02275 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其 ...

最新文章

  1. 计算机语言平均数怎么算,使用python怎么求三个数的平均值
  2. java previous_java – 在枚举类型上实现`next`和`previous`的最好方法是什么?
  3. 作者:郭琨(1985-),女,博士,中国科学院虚拟经济与数据科学研究中心助理研究员...
  4. java 设备集成,java 集成 海康 SDK
  5. java程序设计教程(项目式)_《Java程序设计项目化教程(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
  6. mybatis-generator 根据表生成对应文件
  7. 关于如何在视频中合成声音
  8. 计算机故障排除pdf,计算机常见故障排除方法【藏】.pdf
  9. idea打包jar运行时出现——jar中没有主清单属性(Invalid or corrupt jarfile)
  10. matlab面板数据怎么求增长率的公式,环比增长率怎么算公式表格(教你如何计算同比增长率)...
  11. 如何测试串口线是否发生故障
  12. Python 微信公众号文章爬取 简单记录一下
  13. 大一到大二的总结与感想
  14. c语言srand函数
  15. 计算机主板功能是什么,电脑主板的作用是什么_电脑主板作用详细介绍 - 系统家园...
  16. 5w对讲机需要执照吗
  17. 2017华为软件精英挑战赛解分析
  18. 怎么复制黑苹果config配置_黑苹果主机(百分百成功硬件配置)
  19. 360度全景摄像是什么?360度全景摄像有什么用?
  20. 常用HTML转义字符

热门文章

  1. 友元函数的访问权限和注意事项
  2. win32开发(画笔、刷子、字体)
  3. 随想录(强大的kprobe)
  4. 随想录(systemtap中的基本原理)
  5. 12c oracle 修改内存_Oracle Database 12c In-Memory(内存数据库) 基本原理与简介
  6. oracle能不能改外键属性,CSS_小议Oracle外键约束修改行为(五), Oracle的外键用来限制子表 - phpStudy...
  7. 操作选项_Win 10系统中的电源选项及任务栏图标等功能介绍和操作
  8. 消息通知系统模型设计
  9. WPF窗体隐藏鼠标光标的方法
  10. Pocket英语语法---三、英语动词的特点是什么