最近看马哥的linux运维视频,虽然我是我做软件测试的,但是最近也对运维方面的东西很感兴趣,因为以前总是写写测试框架代码,谢谢自动化测试代码。发现自己懂得东西很少。我的目标是成为一个测试架构师,可是只是会写写代码的话,永远也达不到这个目标。测试架构师需要在各个计算机领域都有一定深度的了解。所以前一段时间学习mysql调优后,现在开始看马哥的linux视频。学习一下运维的知识。这里有一个很诧异的地方就是,运维需要会的东西是很多的,而且要很深。为什么国内运维人员的工资缺普遍还不如我们测试呢。这是个问题。今天开始我会陆续记录一下我学到东西。我只记录一些我觉得重要的东西

  1. 大概的概念

    我们计算机有5个组成部分:控制器,运算器,存储器,输入设备,输出设备。其中控制器和运算器组成了我们的CUP。存储器就是我们的主存,也就是内存。输入设备和输出设备就是我们的键盘鼠标和显示器之类的设备。

  2. 详细概念

    运算器:运算器就是我们的CUP用来计算的设备。我们知道在我们计算机中使用的是二进制算法。与CPU相连的针脚会传递电信号,通电时值为1,关闭电路时值为0。通过如此方式向运算器传递数据。以累加器为例,我们的CUP中会有多个累加器并组成我们的运算器。每个累加器都分别有两条传递加数和被加数的线,同时还有将计算出的数据传出的线。这样就组成了我们的累加器。而当我们进行运算的时候,例如十进制的9+9. 这样的操作需要进位。这样我们需要传递的数据除了相加后的结果外还需要存储“进位”,于是我们的寄存器就出现了。寄存器就是用来存储这样的数据。寄存器也是速度最快的存储设备,它可以与CPU同速。

    控制器:有了运算器还是不够得,我们需要知道数据从哪来,往哪去。并且操作运算的指令集从哪里取。所以便有了控制器。控制器负责从内存中取出运算的指令和数据。

    主存:也就是我们的内存,用来存储数据的地方。这里说一下系统开机自检测的流程。计算机程序就是指令集加数据的集合,我们之所以能够运行程序是因为控制器将主存中的数据和指令集传输到运算器中。但是当我们开机的时候我们的内存中是什么都没有的。那我们怎么运行开机自检测呢。这里除了主存(RAM)之外还有ROM和另外一个硬件存储设备,这种存储设备中拥有开机自检测的指令集,开机的时候它会用硬件原理(啥原理我还不知道)将指令集放到主存中。这些指令集就是去检测你的鼠标,键盘。这样控制器就知道如何开机自检测了。

    输入设备和输出设备:这两个设备很好理解,我们的鼠标键盘就是输入设备,显示器就是输出设备。同时网卡和硬盘既是输入设备也是输出设备。

  3. 中断

    刚才说了5大部件的作用,其中我们知道内存中的数据和指令集是由控制器读取传给运算器的。内存和控制器中有前端总线相连,那么我们的输入输出设备是怎么告诉CPU我现在有一个操作呢?答案就是中断。我们有一个中断控制器与CPU相连,同时中断控制器与每一个输入输出设备项链。每当我们点击鼠标的时候,都会产生一个中断,CPU接收到中断信号就会停止手上的工作跑去处理这个中断操作。因为中断信号的优先级很高,CPU会停止手上的工作,所以才叫中断。可想而知中断是十分消耗CPU资源的操作。这也就是为什么在服务器中如果网络流量太大的话,CPU的消耗会非常高,因为网卡也是一种输入输出设备,也是会产生中断信号的。

  4. CPU缓存与局部法则

    我们知道CPU的运算时间要比内存快的多的多。打个比方,如果CPU一秒钟内能向内存发出10个请求,但是内存只能返回1一个请求。这个时候怎么办?CPU的资源岂不是都浪费了。所以这个时候我们有了CPU的一级缓存和二级缓存。在CPU和内存中起到缓冲作用。CPU缓存的速度要比内存块的多但是慢与CPU。但是这已经大大的缓解了内存太慢的问题。想要CPU缓存起作用就需要我们的局部法则出场了。局部法则中有时间局部法则和空间局部法则:

    时间局部法则:最近读取的数据在之后的时间内可能也会要读取。

    空间局部法则:读取一个数据时与它相邻的数据也很可能会读取。

    有了这两个法则,我们的缓存就会将内存中的数据“预读”到缓存中以供CPU使用。这样就能提高速度了。

  5. CPU种类

    ARM:省电,性能

    X86:inter

    X64:inter

    alpha

    安腾

    power:IBM

    M68000也叫M68K

    PowerPC:inter,苹果和IBM联合设计的,性能比power稍差


其他还有很多就不一一列数了。这里只记录一下我认为重要的。