福州阳楠科技网站建设有限公司,俄罗斯搜索引擎入口,合肥的网站建设,临清建设局网站1. 计算机运行流程
如果不是很了解电脑运行流程的话#xff0c;我们可以类比一下#xff0c;假设电脑是一个人体#xff0c;那么每个元件对应到哪个地方呢#xff1f;可以这样思考#xff1a;
CPU脑袋#xff1a;每个人会做的事情都不一样#xff08;微指令集的差异我们可以类比一下假设电脑是一个人体那么每个元件对应到哪个地方呢可以这样思考
CPU脑袋每个人会做的事情都不一样微指令集的差异但主要都是通过脑袋来进行判断与控制身体各部分的活动
内存脑袋中放置正在被思考的数据的区块在实际活动过程中我们的大脑需要有外界刺激的数据 例如光线、环境、语言等 来分析那这些互动数据暂时存放的地方就是内存主要是用来提供给大脑判断用的信息
硬盘脑袋中放置回忆的记忆区块跟刚刚的内存不同内存是提供脑袋目前要思考与处理的信息但是有些生活琐事或其他没有要立刻处理的事情 就当成回忆先放置到脑袋 的记忆深处吧那就是硬盘主要目的是将重要的数据记录起来以便未来将这些重要的经验再次的使用
主板神经系统好像人类的神经一样将所有重要的元件连接起来包括手脚的活动都是大脑发布命令后 通过神经主板传导给手脚来进行活动啊
各项周边设备人体与外界沟通的手、脚、皮肤、眼睛等就好像手脚一般是人体与外界互动的重要关键
显卡脑袋中的影像将来自眼睛的刺激转成影像后在脑袋中呈现所以显卡所产生的数据来源也是CPU控制的。
电源供应器 Power心脏所有的元件要能运行得要有足够的电力供给才行这电力供给就好像心脏一样如果心脏不够力 那么全身也就无法动弹的心脏不稳定呢那你的身体当然可能断断续续的不稳定
2 计算机常用的计算单位
电脑的运算能力除了 CPU 微指令集设计的优劣之外但主要还是由速度来决定的。至于存放在电脑储存设备当中的数据容量也是有单位的。
2.1 容量单位
电脑对数据的判断主要依据有没有通电来记录信息所以理论上对于每一个记录单位而言它只认识0与1而已。0/1 这个二进制的的单位我们称为bit比特。但 bit 实在太小了所以在储存数据时每份简单的数据都会使用到 8 个 bits 的大小来记录因此定义出 Byte字节这个单位他 们的关系为
1 Byte 8 bits 不过同样的Byte 还是太小了在较大的容量情况下使用 Byte 相当不容易判断数据的大小举例来说1000000 Bytes 这样的显示方式你能够看得出有几个零吗所以后来就有一 些常见的简化单位表达式例如 K 代表 1024ByteM 代表 1024K 等。 而这些单位在不同的 进位制下有不同的数值表示下面就列出常见的单位与进位制对应 一般来说文件大小使用的是二进制的方式所以 1GBytes 的文件大小实际上为 1024x1024x1024Bytes 这么大速度单位则常使用十进制例如 1GHz 就是 1000x1000x1000Hz 的意思。
2.2 速度单位
CPU的运算速度常使用 MHz 或者是 GHz 之类的单位这个 Hz 其实就是秒分之一。而在网络传输方面由于网络使用的是 bit 为单位因此网络常使用的单位为 Mbps 是 Mbits per second亦即是每秒多少 Mbit。举例来说大家常听到的 20M/5M 光世代传输速度如果转成文件大小的 Byte 时其实理论最大传输值为每秒 2.5MByte/ 每秒625KByte的下载/上传 速度喔
3 文字编码系统
既然电脑都只有记录0/1而已甚至记录的数据都是使用Byte/bit等单位来记录的那么文字该如何记录啊 事实上文字文件也是被记录为0与1而已而这个文件的内容要被取出来查阅时必须要经过一个编码系统的处理才行。 所谓的“编码系统”可以想成是一个“字码对照表” 他的概念有点像下面的图示 当我们要写入文件的文字数据时该文字数据会由编码对照表将该文字转成数字后再存入文件当中。同样的当我们要将文件内容的数据读出时也会经过编码对照表将该数字转成对应的文字后再显示到屏幕上。 现在你知道为何Xftp工具或者我们选用文件服务器时编码写错时会出现乱码了吗这是因为编码对照表写错 导致对照的文字产生误差之故啦
常见的编码方式有ASCII编码、GB2312编码(简体中文)、GBK、BIG5编码(繁体中文)、ANSI编码、unicode、utf-8编码等。
4 机器程序与编译程序
计算机功能的体现核心在于软件现在我们了解一下“软件”是什么目前的电脑系统通常将软件分为两大类一个是系统软件一个是应用程序在了解这两个之前我们还需要了解一下什么是“程序”尤其是机器程序。我们前面谈到电脑只认识0与1而且电脑最重要的运算与逻辑判断是在CPU内部 而 CPU其实是具有微指令集的。因此我们需要CPU帮忙工作时就得要参考微指令集的内容 然后撰写让CPU读的懂的指令码给CPU执行这样就能够让CPU运行了。
不过这个流程里人们需要掌握机器语言、了解所有硬件的相关功能函数编写的程序还不具备通用性总的来说很麻烦。因此电脑科学家设计出一种可以让人类看的懂得程序语言 然后创造一种“编译器”来将这些人类能够写的程序语言转译成为机器能看懂得机器码 如此一来 我们修改与撰写程序就变的容易多了目前常见的编译器有C, C, Java, Fortran等等。 机器语言与高阶程序语言的差别如下所示 那么有两个问题思考一下;
a、华为在已取得Arm v8架构永久授权的情况下被英国芯片设计巨头ARM制裁制裁的是什么
b、为什么使用源码包编译安装redis、nginx的时候要用到GCC编译器
5 操作系统
5.1 操作系统核心Kernel
操作系统Operating System, OS其实也是一组程序 这组程序的重点在于管理电脑的所有活动以及驱动系统中的所有硬件。操作系统的功能就是让CPU可以开始判断逻辑与运算数值、 让内存可以开始载入/读出数据与程序 码、让硬盘可以开始被存取、让网卡可以开始传输数据、 让所有周边可以开始运行等等。总之我们知道硬件的所有动作都必须要通过操作系统来达成就是了。
上述的功能就是操作系统的核心Kernel。你的电脑能不能做到某些事情都与核心有关 只有核心有提供的功能你的电脑系统才能帮你完成举例来说你的核心并不支持 TCP/IP的网络协定 那么无论你购买了什么样的网卡这个核心都无法提供网络能力的 但是单有核心我们使用者也不知道能作啥事因为核心主要在管控硬件与提供相关的能力 例如存取硬盘、网络功能、CPU资源取得等 这些管理的动作是非常的重要的如果使用者能够直接使用到核心的话万一使用者不小心将核心程序停止或破坏 将会导致整个系统的崩溃因此核心程序所放置到内存当中的区块是受保护的 并且开机后就一直常驻在内存当中。
5.2 系统调用System Call
因为电脑的硬件都是由核心管理那么如果想要开发软件的话自然就得要去参考这个核心的相关功能 但是从原本参考硬件函数变成参考核心功能还是很麻烦啊 有没有更简单的方法呢 为了解决这个问题操作系统通常会提供一整组的开发接口给工程师来开发软件 工程师只要遵守该开发接口那就很容易开发软件了举例来说我们学习C程序语言只要参考C程序语言的函数即可 不需要再去考虑其他核心的相关功能因为核心的系统调用接口会主动的将 C程序语言的相关语法转成核心可以了解的任务函数 那核心自然就能够顺利运行该程序了
在定义上只要能够让计算机硬件正确无误的运行那就算是操作系统了。所以说操作系统其实就是核心与其提供的接口工具不过就如同上面讲的因为最原始的核心缺乏了与使用者沟通的友好接口 所以在目前一般我们提到的“操作系统”都会包含核心与相关的使用者应用软件
6 应用程序
应用程序是参考操作系统提供的开发接口所开发出来软件这些软件可以让使用者操作以达到某些电脑的功能利用。举例来说办公室软件Office主要是用来让使用者办公用的 影像处理软件主要是让使用者用来处理影音数据的 浏览器软件主要是让使用者用来上网浏览用的等等。需要注意的是应用程序是与操作系统有关系的不同的操作系统会对应不同的操作版本例如在windows7上能用的软件不一定能在windows8上面用也不能再Linux相关的操作系统上使用。
最后说一下我们平时说的服务器不管是云服务器还是物理服务器本质上也是一台台运行的计算机。
本文参考文档《鸟哥的Linux私房菜》