km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2...

11
บทที่ 2 โครงสร้างของยูนิกซ์และลินุกซ์ วัตถุประสงค์ 1. สามารถอธิบายองค์ประกอบของระบบปฏิบัติการว่ามีกี่ส ่วนอะไรบ้าง และแต่ละ ส่วนทางานอย่างไร 2. สามารถอธิบายความหมายของเคอร์เนล(kernel) คืออะไร และทาหน้าที่อะไรใน ระบบปฏิบัติการ 3. สามารถอธิบายของเชลล์ (shell) และหน้าที่ของเชลล์ 4. สามารถอธิบายถึง X-Window, Window Manager, X Desktop 5. สามารถอธิบายระบบไฟล์ระบบปฏิบัติการบนลินุกซ์ 6. สามารถอธิบายโครงสร้างไดเรคทอรีและไฟล์บนลินุกซ์ประกอบไปด้วยอะไรบ้าง และแต่ละส่วนทาหน้าที่อย่างไร

Transcript of km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2...

Page 1: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

บทท

2 โครงสรางของยนกซและลนกซ

วตถประสงค

1. สามารถอธบายองคประกอบของระบบปฏบตการวามกสวนอะไรบาง และแตละสวนท างานอยางไร

2. สามารถอธบายความหมายของเคอรเนล(kernel) คออะไร และท าหนาทอะไรในระบบปฏบตการ

3. สามารถอธบายของเชลล (shell) และหนาทของเชลล 4. สามารถอธบายถง X-Window, Window Manager, X Desktop 5. สามารถอธบายระบบไฟลระบบปฏบตการบนลนกซ 6. สามารถอธบายโครงสรางไดเรคทอรและไฟลบนลนกซประกอบไปดวยอะไรบาง

และแตละสวนท าหนาทอยางไร

Page 2: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 15 -

บทท 2 โครงสรางของยนกซและลนกซ

บทน า ในบทนจ ากลาวถงโครงสรางของระบบปฏบตการยนกซและลนกซ ซงประกอบไปดวย 4 สวนคอ ฮารดแวร เคอรเนล เชลล และยทลตกบซอฟตแวรประยกต ตอจากนนจะกลาวถงโครงสรางของไฟลและไดเรคทรอรบนยนกซและลนกซ

โครงสรางของยนกซและลนกซแบงออกไดเปน 4 สวนคอ [8] ฮารดแวร (Hardware) หมายถง อปกรณตางๆ ทประกอบขนเปนเครองคอมพวเตอร

มลกษณะเปนโครงรางสามารถมองเหนดวยตาและสมผสได (รปธรรม) เชน หนวยประมวลผลกลาง หนวยความจ า เมนบอรด จอภาพ คยบอรด เครองพมพ เมาส เปนตน

เคอรเนล (kernel) เคอรเนลเปนสวนหนงของซอฟตแวรในระบบปฏบตการทส าคญ เรยกไดวาเปนแกนหรอหวใจของระบบกวาได เคอรเนลจะมหนาทควบคมการท างานทงหมดของระบบ ตงแตการจดสรรทรพยากรของระบบบรการโพรเซสงาน (Process) การจดการไฟลและอปกรณอนพต , เอาตพต บรหารหนวยความจ า โดยเคอรเนลจะควบคมอปกรณฮารดแวรของเครองทงหมด ดงนนเคอรเนลจงขนอยกบฮารดแวร ถาฮารดแวรเปลยนรนใหม เคอรเนลกจะตองเปลยนไปดวยเคอรเนล เคอรเนลนยมเขยนขนดวยภาษาแอสเซมบลหรอภาษาซ และเปนสวนทขนอยกบฮารดแวรของเครอง (hardware dependent) ดวย นนคอ ถาโครงสรางทางฮารดแวรของเครองมการเปลยนแปลง สวนของเคอรแนลตองถกน ามาแกไขใหมดวยเพอใหสามารถท างานกบฮารดแวรชนใหมได

เชลล (shell) เปนซอฟตแวรตวกลางทท าหนาทตดตอระหวางผใชกบเคอรเนล แบงออกเปน 2 กลมคอ กลมเชลลทมการตดตอกบผใชดวยค าสง (Command Line Interface - CLI) และเชลลทมการตดตอกบผใชโดยใชภาพสญลกษณ (Graphic User Interface - GUI)

- CLI ผใชจะตองปอนค าสงผานทางคยบอรดเปนลกษณะขอความ(หรอเรยกวา Text Shell กได) ทเหมาะสมและถกตอง ดงนนผใชจะตองจดจ ารายละเอยดตางๆ ของค าสง ยงจดจ าไดมากกจะสามารถใชงานในแบบ CLI ไดสะดวกมากขน CLI นยมใชในระบบปฏบตการยนกซและลนกซ เนองจาก

Page 3: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 16 -

เชลลดงกลาวใชทรพยากรของระบบนอย และเชลลกมใหเลอกใชงานไดหลายตว เชน Bourne shell, C-shell, และ Korn shell เปนตน แตละเชลลแบบมความสามารถพนฐานคลายกน แตมขดความสามารถในการเขยนเชลลสครปตางกน

- กราฟฟกเชลล(Graphic shell) การเชอมตอกบผใชดวยภาพหรอสญลกษณไดรบความนยมแพรหลายมากในปจจบน เชน วนโดวสรนตางๆ ส าหรบระบบปฏบตการยนกซและลนกซมการพฒนาการเชอมตอกบผใชดวยลกษณะของกราฟฟกเชนเดยวกน เรยกวาระบบ X-Window [9] ซงเปนระบบทมการพฒนามาเปนระยะเวลานาน และมโปรแกรมจดการ Window ใหเลอกใชหลายตวเชน OSF/Motif, FVM, KDE เปนตน และมโปรแกรมประยกตจ านวนหนงส าหรบใชงานในระบบเหลาน คอ

X-Windows โดยปกตการใชงานของยนกซ จะตองพมพค าสง (CLI) เพอสงงาน ถาเปรยบเทยบการใชงานกบวนโดวสแลว ยนกซมการใชงานทคอนขางล าบากกวา เนองจากตองจ าค าสงตาง ๆ มากมาย ดงนนจงมผทพยายามท าใหยนกซมการใชงานทงายขน เชนเดยวกบวนโดวส จากการสนบสนนของ DEC ไดมการเรมพฒนาตอจาก W-Window ซงคดคนโดย Robert Scheifler และพฒนาตอมาถง X-Window สวนส าคญทท าให X-Window เปนทแพรหลายมาก นอกเหนอจากความสะดวกในการใชงานแลว นนคอ เปนโปรแกรมทแจกฟร และมโปรแกรมอน ๆ ทสนบสนนการใชงานอน ๆ มากมาย ส าหรบหนาตาของ X-Window นจะมลกษณะและการใชงานเชนเดยวกนกบ Microsoft Windows Window Manager

น าเอารปภาพหรอไอคอนตาง ๆ ทชวยในการตดตอสอสารระหวางผใชกบระบบ X-Window ซงเปนตวชวยในการท างานใหเกดความสะดวกมากยงขน การใชงานจะอยในลกษณะทเราเรยกวา กราฟฟกโหมด แทนการพมพค าสงหรอ command line ในระบบ เทกโหมด (โหมดตวอกษร) ส าหรบ Window Manager ทเปนทรจกกนดคอ FVWM และ FVWM2

X Desktop Environment พฒนาการตอจาก Window Manager ซงตวโปรแกรมเองจะท างานครอบ Window Manager อกทหนง ซงท าหนาทจดการเกยวกบ ไฟล รวมทงตว

Page 4: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 17 -

Window Manager ดวย ส าหรบ X Desktop Environment ทนยมใชกนคอ KDE (หนาตาและรปรางคลายกบ Microsoft Windows)) และ GNOME KDE (หนาตาและรปรางคลายกบ KDE แตใชงานไดงายกวา)

GNOME X Desktop Environment

KDE X Desktop Environment

Page 5: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 18 -

Xfce X Desktop Environment

FVWM Window Manager

Page 6: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 19 -

ยทลลตและซอฟตแวรประยกต (Utilities and Application Programs) เปนสวนทท าหนาทจดการระบบและอ านวยความสะดวกใหกบผใชงาน ประกอบไปดวยโปรแกรมทท าหนาทจดการระบบในสวนตาง ๆ เชน จดการระบบไฟล สวนผใชงาน ระบบรกษาความปลอดภย และระบบเครอขาย เปนตน

ระบบปฏบตการลนกซจะใชทรพยาการนอยกวายนกซ เนองจากลนกซเปนระบบปฏบตการทออกแบบส าหรบใหท างานบนเครองพซททใชสถาปตยกรรมแบบ x86 จงสามารถน าฮารดแวรหรอเครองไมโครคอมพวเตอรทมความสามารถต ามาท าการตดตงได และสามารถแสดงผลแบบกราฟฟกได

Page 7: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 20 -

โครงสรางของระบบปฏบตการยนกซและลนกซ

ประเภทของไฟลบนระบบปฏบตการยนกซและลนกซ [10-11] โครงสรางของไฟลบนระบบปฏบตการยนกซคลายกบลนกซ ดงนนในสวนนจะกลาวถงโครงสรางของไฟลบนลนกซเปนหลก ในลนกซ ท าการเกบขอมลโดยใช ไฟล และไดเรกทอร โดยจะมลกษณะเปนรปแบบล าดบชน (hierarchy) หรอโครงสรางแบบตนไม ไดเรกทอรจะเปรยบเสมอนแฟม ทสามารถเกบไฟลตางๆ ไดเรกทอรล าดบบนสดจะถกเรยกวา ไดเรกทอรราก (root directory) ระบบไฟลทใชบนลนกซถกพฒนาขนครงแรกคอระบบไฟลแบบมนกซ (Minix FS) ซงระบบไฟลแบบมนกซมขอจ ากดคอ บลอกแอดเดรส (Block Address) มขนาดใหญสดเพยง 16 บต ดวยเหตนจงท าใหขนาดสงสดของไฟลจ ากดอยท 64 (216 = 65,535) เมกกะไบตและตงชอไฟลไดยาวสงสดไดเพยง 14 ตวอกษร จงไดมการออกแบบและพฒนาระบบไฟลขนมาใหมคอ ระบบไฟลแบบ Ext FS (Extended File System) ทชวยลดขอจ ากดเหลาน โดยบลอกแอดเดรสมขนาดใหญเพมขนเปน 2 กกะไบต และสามารถตงชอไฟลไดสงสดเปน 255 ตวอกษร แตระบบไฟลแบบเอกซเทนยงไมสนบสนนการแกไข ไอโหนด (Inode) การแกไข Timestamps และการด าเนนการของระบบไฟลใชลสตแบบไมเรยงล าดบ จงไดมการออกแบบและพฒนาระบบไฟลขนมาใหม 2 ระบบไฟลเพอแกไขปญหาคอ ระบบไฟลแบบ Xia (Xia File System) และระบบไฟลแบบ Ext2 FS (Second Extended File System) ในปจจบนระบบปฏบตการลนกซไดมการพฒนาระบบไฟลขนอก 2 แบบคอ Ext3 และ Ext4 ซง Ext3 [12] มคณสมบตทเพมขนหลายประการจาก Ext 2 แตทหลกๆ คอ เปนระบบไฟลแบบ journaling เมอขอมลในระบบเสยหาย ไมจ าเปนตองมการใชค าสง fsck เพอตรวจสอบและซอมแซมแฟมขอมลนน เพราะวาการท างานของ journaling นนจะมการกแฟมขอมลทเสยหายขนมาใหโดยอตโนมต รองรบพนทไดมากสด 16 เทอราไบต

Page 8: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 21 -

(TB) และขนาดของไฟลใหญทสด 2 TB มไดเรกทอรยอยๆ ไดมากถง 32,000 ไดเรกทอรยอย ขณะเขยนไฟลกจะมการจดสรรพนททละบลอค (only allocates one block) ในแตละครงทเขยนลงไฟล กคอวาถามการเขยนไฟลขนาด 1 MB กจะมการจดสรรบลอคในการเขยนไฟล 256 ครง (block size = 4KB) ส าหรบ Ext4 ไดปรบปรงแกไขสวนส าคญในเรองของโครงสรางของระบบไฟลใน Ext3 เพมขน ตวอยางเชน ไดมการก าหนดพนททเกบขอมลไฟลไวลวงหนา ท าใหระบบไฟลมการจดสรรพนทเกบขอมลทดขน เพมความนาเชอถอมากขน สรปไดดงน Ext4 [13] ไดมการเพม block address เปนขนาด 48-bit ท าใหสามารถรองรบพนทไดถง 1 EB (1 EB = 1,048,576 TB) และขนาดของไฟลใหญทสด 16 TB (1 EB = 1024 PB, 1 PB = 1024 TB, 1 TB = 1024 GB เรยกวา Large file system/file sizes) มไดเรกทอรยอยไดถง 64,000 ไดเรกทอรยอย(Sub Directory) มการจองพนททอยตดกน กอนทจะเขยนไฟล ท าใหไฟลทมขนาดใหญมประสทธภาพมากขนและชวยลดการกระจายของขอมล(Extents) ใช "multiblock allocator" (mballoc) ซงจะมการจดสรรบลอกไดทละหลายๆบลอก ในการเรยกเขยนไฟลใน 1 ครง(Multiblock allocation) ใชเทคนคทเรยกวา allocate-on-flush หรอทรจกกนในชอ delayed allocation ซงวธของ delayed allocation น ถาเกดมการเขยนไฟลขนมามนจะยงไมจดสรรพนทของบลอกทจะเขยนโดยทนท จนกวาขอมลนนจะถกเขยนลงดสกจรงๆ จงจะมการจดสรรพนทของบลอก(delayed allocation) เพมความเรวในการตรวจสอบและซอมแซมแฟมขอมลของระบบไฟลเหมอนกบ Scandisk บน windows(Faster file system checking) ในระบบไฟล Ext3 สามารถเปลยนไปเปน Ext4 ดวยวธงายๆเพยงแค 2 ค าสง คอ tune2fs และ fsck(Compatibility) แกปญหา Year 2038 problem ดวยการเพมไปอก 2 bit ท timestamp field ท าใหขยายเวลาไปอกกวา 500 ป(Improved timestamps) เพมขนาดของ inode เปน 256 bytes ( จากของเดม 128 bytes ใน Ext3 ) ไฟลใน ลนกซ จะจดแบงและเรยงล าดบกนเปนโครงสรางตนไม(Tree structure) มดวยกนหลายประเภท ดงตอไปน [14]

Directory เปนไฟลทใชเกบรายการของไฟลอนๆ จะขนตนไฟลดวยอกษร d เชน

drwxr-xr-x 26 root root 4096 Sep 22 09:29 /

Regular files เปนไฟลทใชงานปกตทวไป เมอท าการสรางไฟลขนบนลนกซ ไฟลทสรางขนจะเปนประเภท regular เสมอ

-rw-r-—r-- ... /etc/passwd

Special files หรอ Device file เปนไฟลทถกน ามาใชงานในกรณพเศษตางๆ โดยสวนมากจะใชในการตดตอกบอปกรณตางๆ จะพบเหนใน /dev

crw------- ... /dev/null

brw-rw---- ... /dev/sda

Links เปนไฟลทใชในการอางถงหรอชไปยงไฟลตางๆ ในระบบ โดยขอมลไมไดเกบอยทไฟลน

lrwxrwxrwx ... termcap -> /usr/share/misc/termcap

Page 9: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 22 -

Sockets เปนไฟลชนดพเศษ เพอใหระบบใชส าหรบควบคมงานหรอขอมลบางอยาง srwxrwxrwx ... /tmp/.X11-unix/X0

Named pipes ลกษณะการใชงานคลายกบ socket เพอใชระหวางแลกเปลยนขอมลระหวางโปรเซส

prw-rw---- ... mypipe

โครงสรางของไดเรคทรอรของลนกซ ยนกซและลนกซจะมองทกอยางเปนโครงสรางของไฟลทงหมด เชน CDROM จะอางถงดวย /media/cdrom ในสวนนจะกลาวถงโครงสรางของไฟลตางๆ พรอมทงหนาทการท างาน

โครงสรางของไดเรคทรอรและไฟลของลนกซ [8-9]

Page 10: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 23 -

/ เปนไดเรคทรอรเรมตน(root) ซงเปนไดเรกทอรทอยชนบนสดของโครงสรางล าดบชนของไดเรคทรอร

/bin ยอมาจาก Binary เปนไดเรคทรอรส าหรบเกบค าสงทเรยกใชจากผใช โดยสวนใหญเปนค าสงอ านวยความสะดวกแกผใชงานระบบ และเปนค าสงพนฐานทจ าเปนตอการใชงานลนกซ ทวไป

/boot ใชเกบไฟลทใชส าหรบควบคมการท างานของลนกซหรอ kernel รวมทงไฟลทจ าเปนตองใช boot เครองคอมพวเตอร เชน GRUB (GRand Undified Boot loader)หรอ LILO เปนตน

/dev ยอมาจาก Device ใชเกบชอไฟลพเศษ ทเกยวของกบอปกรณตางๆ ทมในระบบ เชน tty(Terminal) hda(hard disk) เปนตน โดยในแตละไฟลจะหมายถงการเชอมตอกบอปกรณหนงอปกรณ

/etc ค าวา et cetera (ยอมาจาก Et cetera เปนภาษาลาตน มหมายความในภาษาองกฤษวา and the others (Et คอ and, cetera คอ others)ใชเกบ Configuration file ซงใชส าหรบดแลรกษาระบบ (System administrator) และไฟลสครปตทใชควบคมการเปดปดบรการ(Service) ตางๆ ซงสวนใหญจะเกบอยภายใต etc คอ /etc/init.d

/home เปนไดเรคทรอรส าหรบเกบขอมลของผใชแตละคนยกเวน root จะเกบไวท /root แยกออกตางหาก

/lib ยอมาจาก Library ใชส าหรบเกบไลบรารของโปรแกรมตางๆ /lost+found เปนไดเรคทรอรทใชเกบไฟลทก าลงถกใชงานแลวดสกเกดปญหา หรอระบบ

ลมเหลว หรอไมใชค าสงปดเครองทถกตอง ซงบางครงท าใหไฟลทก าลงใชงานเหลานมปญหา เมอเรมการท างานของระบบใหม(boot) โปรแกรม fsck ซงท าหนาทตรวจสอบระบบไฟลจะเรมท างาน หากพบไฟลทเกดความผดพลาดเกดขนในระบบไฟลใด กจะน าไฟลทเกบส ารองไวใน lost+found ไปแทนทในไดเรคทรอรทมปญหาดงกลาว

/media เปนไดเรกทอรส าหรบการเชอมอปกรณเขากบโครงสรางของไฟลในลนกซดวยค าสง mount สวนใหญอปกรณทเชอมตอจะเปนอปกรณเกบขอมลประเภทสอตางๆ ทจ าเปนตอระบบ เชน cdrom, thumb drive

/mnt เปนไดเรกทอรทใชเชอมตอกบอปกรณเกบขอมลอนๆ /opt เปนไดเรคทรอรทใชเกบโปรแกรมสวนขยายอนๆ หรอโปรแกรมประเภท third party

software หรอโปรแกรมทเราเอามาตดตงเอง แตสวนมากนยมตดตงไวใน /usr/local มากกวา

Page 11: km.pmitc.ac.th › files › 15111113135251983_1707110992258.pdf บทที่บทท 2 โครงสร างของย น กซ และลน กซ ว ตถ ประสงค

โครงสรางของยนกซและลนกซ

- 24 -

/proc เปนไดเรกทอรส าหรบเกบขอมลของระบบทก าลงท างานอย เชน ขอมลโปรเซส หรอ สถานะตางๆ ของระบบ เปนตน

/root เปน home directory ของ root /sbin เปนไดเรคทรอรส าหรบเกบโปรแกรมหรอค าสงส าหรบผดแลระบบ โดยมาก

โปรแกรมทเกบอยในไดเรคทรอรนตองใช สทธ root หรอตองใช sudo จงจะสามารถใชงานค าสงได

/tmp เปนไดเรคทรอรทใชเกบไฟลชวคราว ไดเรคทรอรนไมวาผใชคนใดในระบบสามารถเขยนขอมลลงไปได และไมสามารถเกบขอมลไดเมอ boot เครองใหมเพราะขอมลจะหาย

/usr เปนไดเรคทรอรทใชเกบโปรแกรม ไลบรารตางๆ หรอโปรแกรมตางๆ ทผใชตดตงเพมเตมลงไป

/usr/bin เกบค าสงของผใชงานทวไป /var เกบไฟลทเปลยนแปลงหรอไฟลชวคราวตางๆ ทสรางโดยโปรแกรมหรอผใช เชน log

ขอมล E-mail ขอมลการพมพตางๆ สรปทายบท โครงสรางของยนกซและลนกซประกอบดวย 4 สวนหลกๆ คอ คอ ฮารดแวร คอ สวนประกอบของเครองคอมพวเตอร ทสามารถมองเหนดวยตาและสมผสได เคอรเนล คอ ซอฟตแวรทท าหนาท เชอมตอและควบคมการท างานระหวางฮารดแวรกบผใชงาน เชลล คอ ซอฟตแวรตวกลางทท าหนาทตดตอระหวางผใชกบเคอรเนล และยทลตกบซอฟตแวรประยกต คอ ซอฟตแวรทท าหนาทอ านวยความสะดวกใหกบผใชงาน โครงสรางของไฟลบระบบปฏบตการยนกซและลนกซมหลายประเภท คอ FS, Ext FS, Ex2, Ex2 FS, Ex3, Ex4 โดยมความสามารถเพมขนตามล าดบ โครงสรางของไฟลและไดเรคทรอรของยนกซและลนกซแบงออกเปนสวนๆ ตามหนาทการท างาน เชน /boot มหนาทเกบแฟมส าหรบบตระบบปฏบตการ /bin เกบค าสงทเรยกใชจากผใชงาน /dev เกบไฟลทเกยวของกบอปกรณตางๆ ทมในระบบ เปนตน