基础知识

Posted alohana

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础知识相关的知识,希望对你有一定的参考价值。

计算机

计算机其实是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。因此,只要有输入设备(不管是键盘还是触摸式屏幕)及输出设备(屏幕或直接打印出来),让你可以输入数据使该机器产生信息的,那就是一台计算机。

计算机硬件的五大单元

  1. 输入单元
  2. 内存
  3. 中央处理器
    • 算术逻辑单元, 负责程序运算与逻辑判断
    • 控制单元, 主要协调各组件与各单元间的工作
  4. 输出单元

技术图片

CPU的种类

CPU内部已经含有一些小指令集,软件都要经过CPU内部的微指令集来完成才行。

精简指令集(Reduced Instruction Set Computing, RISC)

这种CPU的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的操作也很单纯,指令的执行性能较佳;但是若要做复杂的事情,就要由多个指令来完成。

常见的RISC微指令集CPU主要有Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列与ARM系列等。

SPARC 架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的计算机架构;
至于 PowerPC架构的应用上,例如 Sony公司出产的 Play Station 3(PS3)就是使用 PowerPC 架构的 Cell 处理器;
ARM呢?你常使用的各品牌手机、PDA、导航系统、网络设备(交换机、路由器)等,几乎都是使用ARM架构的CPU。老实说,目前世界上使用范围最广的CPU可能就是ARM呢!

复杂指令集(Complex Instruction Set Computer, CISC)

在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。

常见的CISC微指令集CPU主要有AMDIntelVIA等x86架构的CPU。

AMD、Intel、VIA 所开发出来的 x86 架构 CPU 被大量使用于个人计算机(Personal Computer)用途上面,因此,个人计算机常被称为x86架构的计算机

那为何称为x86架构 [5]呢?这是因为最早的那个 Intel 发展出来的 CPU 代号称为 8086,后来依此架构又开发出 80286, 80386 等,因此这种架构的 CPU 就被称为 x86 架构了。
在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,为了区别两者的不同,因此64位的个人计算机CPU又被统称为x86_64的架构!

接口设备

除了前面稍微提到的输入/输出设备以及 CPU 与内存之外, 还有其他接口设备。
其中最重要的接口设备是主板,因为主板负责将所有的设备连接在一起,让所有的设备能够进行协调与通信。
而主板上面最重要的组件就是主板芯片组,这个芯片组可以将所有的设备汇集在一起。

其他重要的接口设备还有

  • 存储设备:包括硬盘、软盘、光盘、磁带等。
  • 显示设备:显卡与显示的精度、色彩与分辨率都有关系。
  • 网络设备

运作流程

  • CPU=大脑:每个人会做事情都不一样(微指令集的区别),但主要都是通过大脑来进行判断与控制身体各部分的活动。
  • 内存=大脑中的记录区块:在实际活动过程中,我们的大脑能够将外界的互动暂时记录起来,提供CPU来进行判断。
  • 硬盘=大脑中的记忆区块:将重要的数据记录起来,以便未来再次使用这些重要的经验。
  • 主板=神经系统:好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是大脑发布命令后,通过神经(主板)传输给手脚来进行活动。
  • 各项接口设备=人体与外界通信的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的关键部位。
  • 显卡=脑袋中的影像:将来自眼睛的刺激转成影响后在脑袋中呈现,所以显卡所产生的数据来源也是CPU控制的。
  • 电源(Power)=心脏:所有的组件要能运作,得要有足够的电力供给才行。这电力供给就好像心脏一样,如果心脏不够强,那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续地不稳定!

个人计算机架构与接口设备

CPU

  • 多核:在一个CPU封装当中嵌入了两个以上的运算内核
  • 脚位:不同的CPU型号大多具有不同的脚位(CPU上面的插脚),能够搭配的主板芯片组也不同
  • 频率:CPU每秒钟可以进行的工作次数
    不同的CPU之间不能单纯以频率来判断运算性能。这是因为每个CPU的微指令集不相同,架构也不一样,每次频率能够进行的工作指令数也不同,所以频率目前仅能用来比较同款CPU的速度。
  • CPU的“外频”与“倍频”:外频指的是CPU与外部组件进行数据传输/运算时的速度,倍频则是CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU 的频率。
  • “超频”:将CPU的倍频或者是外频通过主板的设定功能更改成较高频率的一种方式。但因为CPU的倍频通常在出厂时已经被锁定而无法修改,因此较常被超频的为外频。

32位与64位

  • 总线:CPU运算的数据都是由内存提供的,内存与CPU的通信速度靠的是外部频率,每次工作可以传送的数据量则由总线决定。
    • 北桥总线(系统总线):内存传输的主要信道,速度较快;
    • 南桥总线(输入输出(I/O)总线):主要用于“联系”硬盘、USB、网卡等接口设备。
  • 总线频宽:FSB x 总线宽度,每秒钟可传送的最大数据量
    • 前端总线速度(Front Side Bus, FSB):北桥所支持的频率
    • 总线宽度:每次传送的位数,目前常见的总线宽度有32/64位(bit)
  • 字组大小(word size)CPU每次能够处理的数据量称为字组大小, 字组大小依据CPU的设计而有32位与64位。
  • 字组大小与总线宽度可以不相同

Linux文件系统

ext2/3

技术图片

  1. data block
    数据读取时会一次读取多个扇区(sector, 大小为512bytes, 即0.5 KB), 这些扇区就叫block
    用来放置文件内容的地方, 格式化时可以选择大小。data block 的大小会影响文件系统支持的最大磁盘容量和最大单一文件容量。
    某些程序对单一文件的大小也会有限制, 这与文件系统无关。
  2. inode table
    inode table就是储存inode的区段
    inode记录文件属性(包括位置), 但不包括文件名。inode的大小一般为128字节或256字节。其中的内容至少有:
    1. 文件的访问模式(r、w、x)
    2. 文件所有者和所属组
    3. 文件的大小
    4. 文件的时间戳
      1. ctime: 最近一次文件创建或状态改变的时间
      2. atime: 最近一次的读取时间
      3. mtime: 最近修改的时间
    5. 定义文件特性的标志(flag), 如SetUID、SetGID、SBIT
    6. 该文件真正内容的指针(pointer)
  3. super block
    第一个以后的block group不一定有super block
    记录文件系统的相关信息, 其中的内容至少有:
    1. block和inode的总量
    2. 未使用与已使用的block/inode数量
    3. block/inode的大小
    4. 时间戳
      1. 文件系统的挂载时间
      2. 最近一次写入数据的时间
      3. 最近一次检验磁盘(fsck)的时间
      4. ...
    5. validbit, 若文件系统被挂载, 值为0, 若未被挂载, 则为1
  4. File System Description(文件系统描述说明)
    这个区段可以描述每个block group以及每个区段的开始与结束的block号码
  5. block bitmap(块对照表)
    记录block的使用情况(是否为空)
  6. inode bitmap(inode对照表)
    记录inode的使用情况(是否已被使用)

以上是关于基础知识的主要内容,如果未能解决你的问题,请参考以下文章

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

VsCode 代码片段-提升研发效率

201555332盛照宗—网络对抗实验1—逆向与bof基础

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

JSP基础

片段 getActivity 不起作用