linux內(nèi)核管理不包含的子系統(tǒng)是“硬件管理系統(tǒng)”。計算機的硬件主要包括內(nèi)存、中央處理器(CPU)、輸入/輸出(I/O)設(shè)備和硬盤等多個部分;在linux中,硬件要根據(jù)不同的種類分屬于不同的子系統(tǒng)管理,例如CPU屬于CPU管理系統(tǒng)的范圍,內(nèi)存屬于內(nèi)存管理系統(tǒng),顯卡屬于設(shè)備管理系統(tǒng)。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
Linxu內(nèi)核主要管理的子系統(tǒng)分為:
(1) CPU管理系統(tǒng):有時也稱為進程管理系統(tǒng),主要功能在于合理控制CPU的運行時間。Linux采用分時方式保證所有進程都能被執(zhí)行到,也可以設(shè)置程序執(zhí)行的順序和優(yōu)先級,并可在規(guī)定的時間和條件下執(zhí)行指定的任務(wù)。
(2) 內(nèi)存管理系統(tǒng):有時也稱為存儲管理系統(tǒng)、主要管理內(nèi)存的使用。Linux采用虛擬存儲技術(shù),可利用硬盤空間擴充內(nèi)存。當(dāng)程序剛被執(zhí)行時,只為其分配虛擬內(nèi)存空間,只有當(dāng)執(zhí)行到必須用到的程序段和數(shù)據(jù)時,才調(diào)入物理內(nèi)存。
(3) 文件管理系統(tǒng):主要管理文件存儲的方式、位置和空間大小等。Linux采用虛擬文件系統(tǒng)技術(shù)、可使用多種文件系統(tǒng)。
(4) 設(shè)備管理系統(tǒng):主要管理外部設(shè)備。Linux按照數(shù)據(jù)交換的特點,將所有設(shè)備分為三類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。
linux內(nèi)核管理不包含的子系統(tǒng)是“硬件管理系統(tǒng)”。
計算機的硬件主要包括內(nèi)存(RAM)、中央處理器(CPU)、輸入/輸出(I/O)設(shè)備和硬盤(Hard Disk),全部是由linux內(nèi)核(Kernel)來進行管理。
因此硬件要根據(jù)不同的種類分屬于不同的子系統(tǒng)管理,例如CPU屬于CPU管理系統(tǒng)的范圍,內(nèi)存屬于內(nèi)存管理系統(tǒng),顯卡屬于設(shè)備管理系統(tǒng)。
操作系統(tǒng)能讓計算機硬件準(zhǔn)確無誤的工作,可以這樣認為,操作系統(tǒng)就是內(nèi)核與其提供的接口工具,它們之間的關(guān)系下圖所示。
Linux 硬件資源管理
lspci 用于列出所有的 PCI 設(shè)備,比如主板、聲卡、顯卡和網(wǎng)卡等,也會把 USB 接口設(shè)備顯示出來,語法格式:lspci [參數(shù)]
基本顯示模式:
參數(shù) | 作用 |
---|---|
-mm | 生成機器可讀輸出(單個 -m 表示過時的格式) |
-t | 顯示總線樹 |
顯示選項:
參數(shù) | 作用 |
---|---|
-v | 冗余(-vv 或 -vvv 用于更高的冗余度) |
-k | 顯示處理每個設(shè)備的內(nèi)核驅(qū)動程序 |
-x | 顯示配置空間標(biāo)準(zhǔn)部分的十六進制轉(zhuǎn)儲 |
-xxx | 顯示整個配置空間的十六進制轉(zhuǎn)儲(危險;僅限 root) |
-xxxx | 顯示 4096 字節(jié)擴展配置空間的十六進制轉(zhuǎn)儲(僅限 root) |
-b | 總線中心視圖(總線看到的地址和 IRQ) |
-D | 始終顯示域名 |
-P | 除顯示總線和設(shè)備編號外,還顯示網(wǎng)橋路徑 |
-PP | 除顯示總線和設(shè)備編號外,還顯示總線路徑 |
將設(shè)備 ID 解析為名稱:
參數(shù) | 作用 |
---|---|
-n | 顯示數(shù)字 ID |
-nn | 顯示文本和數(shù)字 ID(名稱和數(shù)字) |
-q | 通過 DNS 查詢 PCI ID 數(shù)據(jù)庫中的未知 ID |
同上,但重新查詢本地緩存的條目 | |
-Q | 通過 DNS 查詢 PCI ID 數(shù)據(jù)庫中的所有 ID |
設(shè)備選擇:
參數(shù) | 作用 |
---|---|
-s[[[[]:]]:][][.[]] | 僅顯示選定插槽中的設(shè)備 |
-d[]:[][:] | 僅顯示具有指定 ID 的設(shè)備 |
其他選項:
參數(shù) | 作用 |
---|---|
-i | 使用指定的 ID 數(shù)據(jù)庫,而不是 /usr/share/hwdata/pci.ids |
-p | 在給定文件中查找內(nèi)核模塊,而不是默認 mode.pcimap |
-M | 啟用 “總線映射” 模式(危險;僅限 root) |
PCI 訪問選項:
參數(shù) | 作用 |
---|---|
-A | 使用指定的 PCI 訪問方法(有關(guān)列表,請參見 “-A help”) |
-O= | 設(shè)置 PCI 訪問參數(shù)(有關(guān)列表,請參見 “-O help”) |
-G | 啟用 PCI 訪問調(diào)試 |
-H> | 使用直接硬件訪問(=1 或 2) |
-F | 從給定文件讀取 PCI 配置轉(zhuǎn)儲 |
example:
lspci 00:00.0?Host?bridge:?Intel?Corporation?440BX/ZX/DX?-?82443BX/ZX/DX?Host?bridge?(rev?01)????#?集成主板設(shè)備的類型 00:01.0?PCI?bridge:?Intel?Corporation?440BX/ZX/DX?-?82443BX/ZX/DX?AGP?bridge?(rev?01) 00:07.0?ISA?bridge:?Intel?Corporation?82371AB/EB/MB?PIIX4?ISA?(rev?08) 00:07.1?IDE?interface:?Intel?Corporation?82371AB/EB/MB?PIIX4?IDE?(rev?01) 00:07.3?Bridge:?Intel?Corporation?82371AB/EB/MB?PIIX4?ACPI?(rev?08) 00:07.7?System?peripheral:?VMware?Virtual?Machine?Communication?Interface?(rev?10) 00:0f.0?VGA?compatible?controller:?VMware?SVGA?II?Adapter????#?VGA?顯卡設(shè)備 00:1b.0?Class?0403:?Intel?Corporation?82801G?(ICH7?Family)?High?Definition?Audio?Controller?(rev?01)????#?Intel?聲卡設(shè)備。 00:10.0?SCSI?storage?controller:?LSI?Logic?/?Symbios?Logic?53c1030?PCI-X?Fusion-MPT?Dual?Ultra320?SCSI?(rev?01) 00:11.0?PCI?bridge:?VMware?PCI?bridge?(rev?02) 00:15.0?PCI?bridge:?VMware?PCI?Express?Root?Port?(rev?01) 00:15.1?PCI?bridge:?VMware?PCI?Express?Root?Port?(rev?01) ......省略部分內(nèi)容 02:00.0?USB?controller:?VMware?USB1.1?UHCI?Controller????#?USB?接口設(shè)備 02:01.0?USB?controller:?VMware?USB2?EHCI?Controller 02:02.0?SATA?controller:?VMware?SATA?AHCI?controller????#?SATA?控制器,表明系統(tǒng)是?SATA?系列硬盤 03:00.0?Ethernet?controller:?VMware?VMXNET3?Ethernet?Controller?(rev?01)????#?百兆網(wǎng)卡設(shè)備
在 siblings 和 cpu cores 值之間有個對應(yīng)關(guān)系,如果 siblings 是 cpu cores 的兩倍,則說明系統(tǒng)支持超線程,并且超線程已打開;如果 siblings 和 cpu cores 一致,則說明系統(tǒng)不支持超線程,或者超線程未打開
cat?/proc/cpuinfo processor???????:?0????#?邏輯處理器的唯一標(biāo)識符 vendor_id???????:?GenuineIntel????#?處理器類型 cpu?family??????:?6 model???????????:?85 model?name??????:?Intel(R)?Xeon(R)?Silver?4214R?CPU?@?2.40GHz????#?cpu?的名稱,型號,主頻 stepping????????:?7????#?位于相同物理封裝中的邏輯處理器的數(shù)量 microcode???????:?0x5003302 cpu?MHz?????????:?2394.374 cache?size??????:?16896?KB physical?id?????:?0????#?物理封裝的唯一標(biāo)識符 siblings????????:?2????#?單?cpu?的邏輯核數(shù) core?id?????????:?0????#?每個內(nèi)核的唯一標(biāo)識符 cpu?cores???????:?2????#?位于相同物理封裝中的內(nèi)核數(shù)量 apicid??????????:?0 initial?apicid??:?0 fpu?????????????:?yes fpu_exception???:?yes cpuid?level?????:?22 wp??????????????:?yes flags???????????:?fpu?vme?de?pse?tsc?msr?pae?mce?cx8?apic?sep?mtrr?pge?mca?cmov?pat?pse36?clflush?mmx?fxsr?sse?sse2?ss?ht?syscall?nx?pdpe1gb?rdtscp?lm?constant_tsc?arch_perfmon?nopl?xtopology?tsc_reliable?nonstop_tsc?cpuid?pni?pclmulqdq?ssse3?fma?cx16?pcid?sse4_1?sse4_2?x2apic?movbe?popcnt?tsc_deadline_timer?aes?xsave?avx?f16c?rdrand?hypervisor?lahf_lm?abm?3dnowprefetch?invpcid_single?ssbd?ibrs?ibpb?stibp?ibrs_enhanced?fsgsbase?tsc_adjust?bmi1?avx2?smep?bmi2?invpcid?avx512f?avx512dq?rdseed?adx?smap?clflushopt?clwb?avx512cd?avx512bw?avx512vl?xsaveopt?xsavec?xgetbv1?xsaves?arat?pku?ospke?avx512_vnni?md_clear?flush_l1d?arch_capabilities bugs????????????:?spectre_v1?spectre_v2?spec_store_bypass bogomips????????:?4788.74 clflush?size????:?64 cache_alignment?:?64 address?sizes???:?45?bits?physical,?48?bits?virtual power?management:
查看物理 CPU 的個數(shù)
cat /proc/cpuinfo | grep “physical id” | uniq | wc -l
查看每個物理 CPU 中內(nèi)核的個數(shù)
cat /proc/cpuinfo | grep “cpu cores” | uniq
查看系統(tǒng)所有邏輯 CPU 個數(shù)(所有物理 CPU 中內(nèi)核的個數(shù)加上超線程個數(shù)),可通過如下命令查看。
cat /proc/cpuinfo | grep “processor” | wc -l
cat?/proc/meminfo MemTotal:???????24656144?kB????#?系統(tǒng)的物理內(nèi)存 MemFree:????????20415000?kB????#?物理內(nèi)存 MemAvailable:???23038032?kB Buffers:??????????194668?kB????#?緩沖區(qū) Cached:??????????2575064?kB????#?緩存 SwapCached:????????????0?kB Active:??????????1785688?kB Inactive:????????1789328?kB Active(anon):?????795436?kB Inactive(anon):????18024?kB Active(file):?????990252?kB Inactive(file):??1771304?kB ......省略部分內(nèi)容
fdisk?-l Disk?/dev/nvme0n1:?100?GiB,?107374182400?bytes,?209715200?sectors Units:?sectors?of?1?*?512?=?512?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes Disklabel?type:?dos Disk?identifier:?0xfa430a69 Device?????????Boot???Start???????End???Sectors?Size?Id?Type /dev/nvme0n1p1?*???????2048???2099199???2097152???1G?83?Linux /dev/nvme0n1p2??????2099200?209715199?207616000??99G?8e?Linux?LVM Disk?/dev/mapper/cs-root:?65.2?GiB,?69960990720?bytes,?136642560?sectors Units:?sectors?of?1?*?512?=?512?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes Disk?/dev/mapper/cs-swap:?2?GiB,?2176843776?bytes,?4251648?sectors Units:?sectors?of?1?*?512?=?512?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes Disk?/dev/mapper/cs-home:?31.8?GiB,?34158411776?bytes,?66715648?sectors Units:?sectors?of?1?*?512?=?512?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes
相關(guān)推薦:《Linux視頻教程》