目前最主流的服务器还是X86架构,所以拿X86进行介绍

参考书籍:

处理器信息

Linux下查看CPU信息脚本

  1. #! /bin/bash
  2. # uniq:重复行只显示一次
  3. # grep keyword:搜索含keyword的内容
  4. # wc -l:输出文件行数
  5. # 物理CPU个数:即为实际卡槽内的CPU个数
  6. # CPU核数:CPU上可处理数据的芯片组数量
  7. # 逻辑CPU个数:
  8. # 不支持超线程:物理CPU个数*每个CPU核数
  9. # 支持超线程:物理CPU个数*每个CPU核数* 2
  10. # 超线程:就是利用特殊的硬件指令,把一个物理内核模拟成两个逻辑内核
  11. #! /bin/bash
  12. #逻辑CPU个数
  13. echo "logical CPU number:"
  14. cat /proc/cpuinfo | grep "processor" | wc -l
  15. #物理CPU个数:
  16. echo "physical CPU number:"
  17. cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
  18. #物理CPU核数:
  19. echo "core number in a physical CPU:"
  20. cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F: '{print $2}'
  21. #查看每个physical cpu上core id的数量,即为每个物理CPU上的core的个数
  22. echo "core id number in a physical CPU:"
  23. cat /proc/cpuinfo | grep "core id"
  24. #是否为超线程?
  25. # 如果有两个逻辑CPU core具有相同的”core id”,那么超线程是打开的。
  26. # 当然也可知直接查询 /proc/cpuinfo 中的 "ht"这个flag
  27. echo "if hyper threading:"
  28. cat /proc/cpuinfo | grep flags | grep ht
  29. #每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
  30. echo "logical CPU number in a physical CPU:"
  31. cat /proc/cpuinfo | grep "siblings"
  32. # 较新的系统上有util-linux这个包,里面有lscpu这个命令,可以打印出方便人阅读的CPU架构信息 (2016-02-01 update)
  33. echo "ls CPU:"
  34. lscpu

中断及中断虚拟化

X86内存架构

地址空间

X86基本模式

X86寄存器组

X86中断和异常

I/O架构

DMA

时钟