程序和線程我們先從 Linux 的程序談起,作業系統要運作一個可執行程式,首先要将程式檔案加載到記憶體,然後 CPU 去讀取和執行程式指令,而一個程序就是“一次程式的運作過程”,核心會給每一個程序建立一個名為task_struct的資料結構,而核心也是一段程式,系統啟動時就被加載到記憶體中了。
[root@docker ~]# ls /boot/
config-3.10.0-693.el7.x86_64 grub2 initramfs-4.19.20-1.el7.x86_64.img System.map-3.10.0-693.el7.x86_64 vmlinuz-3.10.0-693.el7.x86_64
config-4.19.20-1.el7.x86_64 initramfs-0-rescue-b2942a79696a4216b528ab0e9c10f754.img initrd-plymouth.img System.map-4.19.20-1.el7.x86_64 vmlinuz-4.19.20-1.el7.x86_64
efi initramfs-0-rescue-ebe1e1e21734302f83dc1a22a78a1851.img symvers-3.10.0-693.el7.x86_64.gz vmlinuz-0-rescue-b2942a79696a4216b528ab0e9c10f754
grub initramfs-3.10.0-693.el7.x86_64.img symvers-4.19.20-1.el7.x86_64.gz vmlinuz-0-rescue-ebe1e1e21734302f83dc1a22a78a1851