计算机基础知识入门

1. 计算机运行流程

如果不是很了解电脑运行流程的话,我们可以类比一下,假设电脑是一个人体,那么每个元件对应到哪个地方呢?可以这样思考:

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 代表 1024Byte,M 代表 1024K 等。 而这些单位在不同的 进位制下有不同的数值表示,下面就列出常见的单位与进位制对应:
计算机基础知识入门_第1张图片
一般来说,文件大小使用的是二进制的方式,所以 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而已,而这个文件的内容要被取出来查阅时,必须要经过一个编码系统的处理才行。 所谓的“编码系统”可以想成是一个“字码对照表”, 他的概念有点像下面的图示:
计算机基础知识入门_第2张图片
当我们要写入文件的文字数据时,该文字数据会由编码对照表将该文字转成数字后,再存入文件当中。同样的,当我们要将文件内容的数据读出时,也会经过编码对照表将该数字转成对应的文字后,再显示到屏幕上。 现在你知道为何Xftp工具或者我们选用文件服务器时编码写错时,会出现乱码了吗?这是因为编码对照表写错, 导致对照的文字产生误差之故啦!

常见的编码方式有:ASCII编码、GB2312编码(简体中文)、GBK、BIG5编码(繁体中文)、ANSI编码、unicode、utf-8编码等。

4 机器程序与编译程序

计算机功能的体现核心在于软件,现在我们了解一下“软件”是什么?目前的电脑系统通常将软件分为两大类,一个是系统软件,一个是应用程序,在了解这两个之前我们还需要了解一下什么是“程序”,尤其是机器程序。我们前面谈到电脑只认识0与1,而且电脑最重要的运算与逻辑判断是在CPU内部, 而 CPU其实是具有微指令集的。因此,我们需要CPU帮忙工作时,就得要参考微指令集的内容, 然后撰写让CPU读的懂的指令码给CPU执行,这样就能够让CPU运行了。

不过这个流程里人们需要掌握机器语言、了解所有硬件的相关功能函数,编写的程序还不具备通用性,总的来说很麻烦。因此电脑科学家设计出一种可以让人类看的懂得程序语言, 然后创造一种“编译器”来将这些人类能够写的程序语言转译成为机器能看懂得机器码, 如此一来 我们修改与撰写程序就变的容易多了!目前常见的编译器有C, C++, Java, Fortran等等。 机器语言与高阶程序语言的差别如下所示:
计算机基础知识入门_第3张图片
那么,有两个问题思考一下;

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私房菜》

你可能感兴趣的:(软件安装,Linux,操作系统,云服务器,linux)