Fedora Linux Core 4
นายฉัตรชัย ดำดี (46320388) นายทรงยศ คชนิล (46320511) นายอรรณพ สุวัฒนพิเศษ (46321105) นายอุทิศ ศักดิ์สิทธิ์ (46321139)
คณะวิทยาศาสตรì เอกวิทยาการคอมพิวเตอรì ชั้นปที่ 3 ปการศึกษา พ.ศ. 2548 มหาวิทยาลัยนเรศวร สารบัญ
1 ประวัติความเปนมาของ Linux 3 1.1 ประวัติของ Unix ...... 3 1.2 ประวัติของ Linux ...... 4 1.3 ประวัติ Fedora Linux ...... 6
2 การประยุกตìใชéงาน OS 8
3 ความตéองการของ Hardware 10 3.1 CPU ...... 10 3.2 Hard Drive ...... 10 3.3 Memory ...... 11 3.4 อื่น ๆ ...... 11
4 ระบบ RAID 12 4.1 ประวัติของ RAID ...... 12 4.2 ประโยชนìของ RAID ...... 12 4.3 จะเรียก Inexpensive หรือ independent ? ...... 12 4.4 ชนิดของ RAID ที่สนับสนุน ...... 13
5 ระบบ File System 14 5.1 ext2 หรือ Second extended file system ...... 14 5.2 ext3 หรือ Third extended file system ...... 14
6 ระบบ Memory Management 16
ก เอกสารอéางอิง 18
1 สารบัญรูป
1.1 แผนภาพตระกูลของ Unix และ Unix Compatible (รูปจาก http://en.wikipedia.org/wiki/Unix) . . . . . 4 1.2 Linus Torvalds, ผูéใหéกำเนิด Linux kernel (รูปจาก http://en.wikipedia.org/wiki/Linux) ...... 4 1.3 Richard Matthew Stallman, ผูéกèอตั้งโครงการ GNU (รูปจาก http://en.wikipedia.org/wiki/Linux) . . . 5 1.4 Andrew S. Tanenbaum, Professor of Computer Science, Vrije University ...... 5 1.5 Red Hat Enterprise Linux 4 (รูปจาก http://en.wikipedia.org/wiki/Red Hat Enterprise Linux) . . . . 6 1.6 Fedora Core 4 ทำงานบน GNOME desktop environment (รูปจาก http://en.wikipedia.org/wiki/GNOME) 7
2.1 GNOME desktop environment (รูปจาก http://en.wikipedia.org/wiki/GNOME) ...... 8 2.2 KDE desktop environment ...... 8
5.1 Ext File System Layout ...... 15
6.1 Logical address in Linux ...... 16
2 บทที่ 1
ประวัติความเปนมาของ Linux
กèอนที่เราจะรูéประวัติของ Fedora Linux Core 4 เราควรจะไดéรับรูéประวัติของ Unix และ Linux โดยทั่วไปเสียกèอน
1.1 ประวัติของ Unix
ระบบปฏิบัติการ Unix มีตéนกำเนิดจากหéองปฏิบัติการวิจัย Bell Labs (ใน AT&T) ประเทศสหรัฐอเมริกา โดย Ken Thompson และ Dennis Ritchie ป 1969 โดยการรèวมมือของ สถาบัน MIT (Massachusetts Institute of Technology), หéองปฏิบัติการวิจัย AT&T Bell Labs และบริษัท GE (General Electric) เพื่อพัฒนาโครงการ Multics ในป 1960 เพื่อ พัฒนาระบบปฏิบัติการสำหรับ Mainframe Computer รุèน GE 635 โดยใหéมีความสามารถในการโตéตอบ (Interactive) มีระบบอำนวยความสะดวกตèอการใชéแฟมขéอมูลรèวมกัน แตèเกิดปญหาหลายประการ จนกระทั่งหéองปฏิบัติการวิจัย Bell Labs ไดéลาออกจากโครงการไป แตèโครงการก็ยังดำเนินการตèอโดย Ken Thompson และ Dennis Ritchie ซึ่งทำงาน กับ Bell Labs พรéอม ๆ กันไปดéวย ตèอมา Ken & Dennis ไดéรèวมกันพัฒนาระบบปฏิบัติการใหมè เพื่อทำงานบนเครื่อง PDP-7 และใชéชื่อวèาระบบปฏิบัติการ Unix เพื่อใหéออกเสียงใกลéเคียงกับระบบ Multics ดังนั้นตéนกำเนิดของ Unix ก็คือ Multics นั่นเอง ไมèวèาจะเปนชื่อ ระบบแฟมขéอมูลที่ใชé แนวคิดของตัวแปรคำสั่ง (Shell) หลังจากนั้นทั้งสองไดéพัฒนามา เปน Version 2 เพื่อทำงานบนเครื่องรุèน PDP-11/20 โดยใชéภาษา Assembly และไดéพัฒนาปรับปรุงดéวยภาษา C (ภาษา C ก็พัฒนาที่หéองวิจัย Bell Labs เชèนกัน เพื่อทำงานบนระบบ Unix) และเผยแพรèไปสูèมหาวิทยาลัยตèาง ๆ ดéวย Version 6 ในป ค.ศ. 1976 ในป ค.ศ. 1978 Version 7 ก็พัฒนาออกมาและเปนตéนแบบของระบบ Unix รุèนใหมè ๆ หลังจากนั้น AT&T ซึ่งเปน องคìกรแมèของ Bell Labs ไดéเปนผูéรับผิดชอบ และควบคุมการออกตัวระบบปฏิบัติการ Unix ดังนั้นจึงกลายเปนผลิตภัณฑì แทนที่จะเปนเครื่องมือวิจัย AT&T ไดéพัฒนา Unix ออกมาใชéงานภายนอก ภายใตéชื่อ System III ในป 1982 และป 1983 ก็ออก System V และพัฒนามาเรื่อย ๆ จนไดéรับความนิยมในปจจุบัน หลังจากนั้นก็มีผูéพัฒนา Unix เพิ่มขึ้นมา เชèน University of California at Berkley ไดéพัฒนา BSD Unix (Berkley Software Distribution) ตèอมาหนèวยงาน กระทรวงกลาโหมของสหรัฐฯ (Defense Advanced Research Projects Agency - DARPA) ไดéใหéทุนกับ Berkley ในการพัฒนา Unix และเกิด BSD Version 4 เพื่อสนับสนุนเครือขèายของ DARPA ที่ใชéโปรโตคอล ในการสื่อสาร คือ TCP/IP Version ลèาสุดของ Berkley คือ BSD Version 4.4 ที่ออกมาในป ค.ศ. 1993 โดยมีความสามารถสนับสนุน Protocol X.25 หลังจากนั้น Berkley ก็หยุดการพัฒนา Unix นอกจาก Berkley ยังมีผูéพัฒนารายอื่น เชèน บริษัทซันไมโค รซิสเต็ม ก็ไดéพัฒนา Sun OS และ Solaris บริษัท DEC ไดéพัฒนา Ultrix และเปลี่ยนชื่อเปน OSF/1 บริษัทไมโครซอฟตì พัฒนา XENIX บริษัทไอบีเอ็มพัฒนา AIX แตèไมèวèาจะเปนคèายใดก็ตาม ตèางก็ยึดแนวทางของ BSD หรือไมèก็ System V ทั้งนั้น ปจจุบัน Unix เปนเครื่องหมายการคéาจดทะเบียน (Registered Trademark) ของหนèวยงานที่ชื่อ The Open Group ซึ่งจะทำการกำหนด และรับรองมาตรฐานของระบบปฏิบัติการ Unix ระบบปฏิบัติการ Unix มี 2 ลักษณะ คือ
1. ระบบปฏิบัติการที่ไดéมาตรฐาน Unix เปนระบบปฏิบัติการที่ใชéมาตรฐานของ The Open Group ในการพัฒนาขึ้นมา เชèน Digital Unix, SCO Unix, IBM’s Open Edition เปนตéน (รูปที่ 1.1)
2. ระบบปฏิบัติการคลéาย Unix (Unix Compatible, Unix like systems หรือ Unix Clone) เปนระบบที่มีลักษณะคลéาย ระบบ Unix แตèไมèไดéจดทะเบียนรับรองเปนทางการ เชèน Sun Solaris, IBM AIX, Linux เปนตéน (รูปที่ 1.1)
3 รูปที่ 1.1: แผนภาพตระกูลของ Unix และ Unix Compatible (รูปจาก http://en.wikipedia.org/wiki/Unix)
1.2 ประวัติของ Linux
ลินุกซì ถือกำเนิดขึ้นในฟนแลนดì ป ค.ศ. 1980 โดย Linus Trovalds (รูปที่ 1.2) นักศึกษาภาควิชาวิทยาการคอมพิวเตอรì (Computer Science) ในมหาวิทยาลัย เฮลซิงกิ ป ค.ศ. 1983 Richard Matthew Stallman (รูปที่ 1.3) ไดéกèอตั้งโครงการ GNU ขึ้น ซึ่งถือวèาโครงการนี้เปนสèวนหนึ่ง ของระบบ Linux โดยจุดมุèงหมายโครงการ GNU คือ ตéองการพัฒนาระบบปฏิบัติการ Unix ใหéทำงานไดéอยèางมีประสิทธิภาพ สมบรูณìมากขึ้น การเริ่มตéนการพัฒนามีตั้งแตèป คศ. 1990 หลังจากที่โครงการนี้ถูกละทิ้งและถูกคัดคéานนานมาก จนกระทั่ง Thomas Bushnell ไดéริเริ่มพัฒนาปรับปรุง The BSD 44-Lite Kernel ขึ้นมา ในระหวèางนั้นในป คศ. 1991 โครงการนี้ไดéกลายเปนงานอดิเรก หลังจากสำเร็จการศึกษามหาวิทยาลัยแลéว Trovalds ถือเปนตéนแบบในการพัฒนา Minix ในรุèน0.01 นี้ถือวèามีเครื่องมือที่เพียงพอสำหรับระบบ POSIX ที่ใชéเรียก Linux ที่รัน บน GNU Bash Shell และมีการพัฒนาอยèางตèอเนื่องและอยèางรวดเร็ว
รูปที่ 1.2: Linus Torvalds, ผูéใหéกำเนิด Linux kernel (รูปจาก http://en.wikipedia.org/wiki/Linux)
4 รูปที่ 1.3: Richard Matthew Stallman, ผูéกèอตั้งโครงการ GNU (รูปจาก http://en.wikipedia.org/wiki/Linux)
รูปที่ 1.4: Andrew S. Tanenbaum, Professor of Computer Science, Vrije University
ปจจุบัน Trovalds ยังคงมุèงมั่นพัฒนาระบบตèอไป เพื่อใหéสามารถรันบน X วินโดวì ไดé และตéองแมสคสยังคงใหéนก แพนกวินอยูèเปนสัญลักษณìแทนระบบ Linuxขéอความที่ ลีนุส ทอรìวัลดìส ไดéเผยแพรèไวéในกลุèมขèาว comp.os.minix ซึ่งถือ เปนจุดเริ่มตéนการพัฒนาไปสูèระบบปฏิบัติการ Linux ลีนุส เห็นวèาระบบมินิกซì (Minix) ที่เปนระบบยูนิกซìบนพีซีในขณะนั้น ซึ่งทำการพัฒนาโดย ศ.แอนดรูวì ทาเนนบาวมì (Andrew S. Tannenbaum) (รูปที่ 1.4) ยังมีความสามารถไมèเพียงพอแกèความตéองการ จึงไดéเริ่มตéนทำการพัฒนาระบบ ยูนิกซìของตนเองขึ้นมา โดยจุดประสงคìอีกประการ คือตéองการทำความเขéาใจในวิชาระบบปฏิบัติการคอมพิวเตอรìดéวยเมื่อ เขาเริ่มพัฒนาลินุกซì ไปชèวงหนึ่งแลéว เขาก็ไดéทำการชักชวนใหéนักพัฒนาโปรแกรมอื่น ๆ มาชèวยทำการพัฒนาลินุกซì ซึ่ง ความรèวมมือสèวนใหญèก็จะเปนความรèวมมือผèานทางอินเทอรìเน็ต ลีนุส จะเปนคนรวบรวมโปรแกรมที่ผูéพัฒนาตèาง ๆ ไดéรèวมกันทำการพัฒนาขึ้นมาและแจกจèายใหéทดลองใชéเพื่อทดสอบ หาขéอบกพรèอง ที่นèาสนใจก็คืองานตèาง ๆ เหลèานี้ผูéคนทั้งหมดตèางก็ทำงานโดยไมèคิดคèาตอบแทน และทำงานผèานอินเทอรì เน็ตทั้งหมด ปจจุบันเวอรìชันลèาสุดของระบบลินุกซìที่ไดéประกาศออกมาคือเวอรìชัน 2.6.14 (01/11/05) ขéอสังเกตในเรื่องเลขรหัส เวอรìชันนี้ก็คือ ถéารหัสเวอรìชันหลังทศนิยมตัวแรกเปนเลขคูèเชèน 1.0.x,1.2.x เวอรìชันเหลèานี้จะถือวèาเปนเวอรìชันที่เสถียร แลéวและมีความมั่นคงในระดับหนึ่ง แตèถéาเปนเลขคี่เชèน 1.1.x, 1.3.x จะถือวèาเปนเวอรìชันทดสอบ ซึ่งในเวอรìชันเหลèานี้จะ มีการเพิ่มเติมความสามารถใหมè ๆ ลงไป และยังตéองทำการทดสอบหาขéอผิดพลาดตèาง ๆ อยูè สรุปโดยรวมคือ GNU/Linux ไดéชื่อวèาเปนระบบปฏิบัติการซึ่งพัฒนาในรูปแบบของ Open Source ที่ไดéรับความนิยม มากที่สุด คำวèา Open Source นั้นเราหมายถึงการพัฒนาที่เปดเผยรหัสตéนฉบับของโปรแกรม (ซึ่งถือวèาเปนสิ่งมีคèาที่ โปรแกรมเมอรìหวงแหนที่สุด) ใหéผูéอื่นสามารถศึกษา หรือพัฒนาตèอยอดและแกéไขโปรแกรมไดé การที่ Linux เปน Open Source นี่เอง ทำใหéเกิดการพัฒนาตèอยอดเกิดขึ้นมากมาย ทำใหéเกิดแนวทางการพัฒนา Linux ออกไปเปนหลาย ๆ รูปแบบ (หรืออาจเรียกไดéวèาหลายคèาย) ซึ่งเรามักนิยมเรียกวèา Linux Distribution ซึ่งบางคèายอาจถูกพัฒนาขึ้นโดยนักศึกษา หรืออาสาสมัครที่มีใจรัก แตèก็ยังมี Linux อีกหลายคèายที่พัฒนาขึ้นเพื่อใชéในระบบงานสำคัญองคìกรธุรกิจขนาดใหญè ที่ ตéองการความมั่นใจและเชื่อถือไดé ในปจจุบัน Linux ไดéรับการยอมรับและการสนับสนุนจากบริษัทยักษìใหญè เชèน IBM, Novell และ Sun Microsystems ดéวย
5 1.3 ประวัติ Fedora Linux
รูปที่ 1.5: Red Hat Enterprise Linux 4 (รูปจาก http://en.wikipedia.org/wiki/Red Hat Enterprise Linux)
Linux Distribution ที่ไดéชื่อวèามีชื่อเสียงมากที่สุดทั้งในประเทศไทยและทั่วโลก ก็คงจะไมèพéน Red Hat Linux (รูป ที่ 1.5) ซึ่งพัฒนาโดยบริษัท Red Hat Inc. ถéาจะถามวèาเพราะอะไร ก็คงจะตอบไดéวèา Distribution ของ Red Hat นั้น มีการทำงานที่เชื่อถือไดéในความเสถียร (คือระบบไมèลèม หรือเกิด Downtime เอางèายๆ) สามารถใชéงานไดéดีทั้งการทำเปน Server ระดับองคìกร หรือจะใชéงานในลักษณะเปน Desktop สèวนตัวที่บéาน มีหนéาจอการติดตั้งที่ผูéใชéทั่ว ๆ ไปสามารถทำ ความเขéาใจไดéงèาย มีเครื่องมือการทำงานแบบ Graphic Interface เหมือนใน Windows และที่สำคัญที่สุดก็คือมีใหéเลือก ไดéทั้งในรูปแบบที่ใหé Download ไดéฟรีสำหรับผูéใชéทั่วไปที่ไมèตéองการ Support หรือถéาผูéซื้อเปนองคìกรตéองการรูปแบบที่ เปน Package พรéอมการบริการหลังการขายก็มีใหéเลือกเชèนกัน ในชèวงปลายป 2003 ที่ผèานมา ผูéที่ติดตามความเคลื่อนไหวในวงการ Open Source คงไดéทราบขèาวที่วèา Red Hat จะไมèพัฒนาผลิตภัณฑìที่ชื่อ Red Hat Linux อีกตèอไปแลéว ซึ่งสรéางความประหลาดใจ และวิตกกังวลกันไปทั่ววèาจะเกิด อะไรขึ้นกับ Linux เมื่อ Linux Distribution อันดับ 1 ของโลกหยุดการพัฒนาแลéว แตèทèามกลางความไมèแนèใจนั้นเอง ก็มี การพูดถึงชื่อของ Linux Distribution ที่เกิดขึ้นมาใหมèอีก 2 ชื่อ ซึ่งชื่อแรกนั้น เปนชื่อที่ทุกคนรูéจักดี แตèมาในรูปแบบใหมè คือ Red Hat Enterprise Linux แตèอีกชื่อหนึ่งคือ Fedora Linux เปนการพัฒนาในรูปแบบที่เรียกวèาเปน Community Project คือพัฒนาโดยกลุèมผูéใชé Linux รèวมกันผèานระบบอินเตอรì เน็ต และมี Red Hat เปนผูéที่สนับสนุนอยูèเบื้องหลัง นี่ เปนสิ่งที่แตกตèางจากการพัฒนา Red Hat Linux ในแบบเดิม ๆ ที่แนวทางการพัฒนาจะมาจากทางบริษัท Red Hat Inc. เอง ดังนั้น Fedora Linux จะมีการพัฒนา Package ตèาง ๆ เปนเวอรìชั่นใหมèไดéรวดเร็วกวèา ถูกใจผูéใชéมากกวèาเดิม และที่ สำคัญ ตัว Fedora Linux ก็ยังถูกใชéเปนฐานในการพัฒนา Red Hat Enterprise Linux ดéวย สำหรับ Red Hat Enterprise Linux นั้นถูกพัฒนาตèอเนื่องมาจาก Red Hat Advance Server นั่นเอง ซึ่งตอนนี้เปน เวอรìชัน 3 แลéว โดยจะถูกแบèงออกเปน 3 รุèนคือ
1. Advance Server (AS) สำหรับใชéงานเปน Server ระบบงานขนาดใหญè เชèน ระดับ Data center
2. Entry Server (ES) สำหรับ Server ระดับทั่ว ๆ ไปในองคìกร เชèน Mail Server, File/Print Server
3. Workstation (WS) สำหรับเครื่อง Desktop และ Workstation ในองคìกร
4. Desktop - สำหรับเครื่องที่ใชéงานทั่วไปที่ใชéงานเพียงคนเดียว
จะเห็นไดéวèา Red Hat Enterprise Linux จะเนéนตลาดลูกคéาที่เปนทางดéานองคìกรอยèางชัดเจน หรือถéาจะสรุปใหéเขéาใจ งèาย ๆ ก็คือ Fedora เนéนกลุèมผูéใชéทั่วไป และเปนเหมือน Beta tester ใหéกับ Red Hat Enterprise Linux ซึ่งเนéนในระดับ องคìกรนั่นเอง Fedora Core (รูปที่ 1.6) เปน RPM-based (Red Hat Packages Management - Base) ของ Linux distribution หนึ่งในตลาดของ Linux โดยการพัฒนาของกลุèมผูéใชé และนักพัฒนาอิสระ โดยไดéรับการสนับสนุนจาก Red Hat
6 รูปที่ 1.6: Fedora Core 4 ทำงานบน GNOME desktop environment (รูปจาก http://en.wikipedia.org/wiki/GNOME)
ประวัติ Fedora Linux แตèละ Core มีดังนี้
• Fedora Core 1 (FC1, รหัสพัฒนา Cambridge, ชื่อรหัสพัฒนาอยèางเปนทางการ Yarrow) โดยพัฒนาสำเร็จและ แจกจèายในวันที่ 6 พฤศจิกายน 2003 และถèายโอนใหé Fedora Legacy ในวันที่ 20 พฤศจิกายน 2004 โดยระบบ หลัก ๆ ทำงานบนพื้นฐานของ Red Hat Linux 9 ที่มี Automated Updates ซึ่งสามารถทำงานบน Notebook ที่สนับสนุน ACPI และ cpufreq โดยทำงานไดéเร็วขึ้นในชèวงเริ่มทำงาน และสนับสนุน AMD64 ในเดือน มีนาคม 2004
• Fedora Core 2 (FC2, ชื่อรหัสพัฒนา Tettnang) โดยพัฒนาสำเร็จและแจกจèายในวันที่ 18 พฤษภาคม 2004 และ ถèายโอนใหéกับ Fedora Legacy ในวันที่ 11 เมษายน 2005 โดยมันมาพรéอมกับ Linux Kernel 2.6, GNOME 2.6, KDE 3.2.1, และ SELinux โดยในรุèนนี้นั้นไดéเปลี่ยนแปลงระบบ XFree86 ไปใชé X.Org Server แทนดéวย แตèในรุèนนี้มีปญหาตèาง ๆ มากมาย ทั้งในการติดตั้ง และการใชéงาน โดยเฉพาะเรื่อง dual-booting ที่ทำงานรèวมกับ Windows XP
• Fedora Core 3 (FC3, ชื่อรหัสพัฒนา Heidelberg), เปนระบบที่ยังไมèมีความเสถียรภาพมากนัก โดยพัฒนาในสèวน ของ i386 และ AMD64 สำเร็จและแจกจèายในวันที่ 8 พฤศจิกายน 2004 โดยมันมาพรéอมกับ GNOME 2.8 และ KDE 3.3.0, X.Org Server 6.8.1, Xen virtualizer, และ Linux kernel รุèน 2.6.9
• Fedora Core 4 (FC4, ชื่อรหัสพัฒนา Stentz) เปนระบบที่มีความเสถียรภาพที่สุดในปจจุบัน (25 ธันวาคม 2005) โดยพัฒนาในสèวนของ i386, AMD64 และ PowerPC สำเร็จและแจกจèายในวันที่ 13 มิถุนายน 2005 มาพรéอมกับ GNOME 2.10 และ KDE 3.4, GCC 4.0, gcj-compiled รุèนสำหรับ Eclipse IDE และ Linux kernel รุèน 2.6.11.
• Fedora Core 5 Test 1 เปนรุèนทดสอบ ซึ่งยังไมèเสถียรภาพ และยังไมèปลèอยใหéใชéงานทั่วไป (เหมาะสำหรับนัก พัฒนา หรือผูéชำนาญการเทèานั้น) แตèจากขéอมูลในเว็บไซตìคาดวèาพัฒนาสำเร็จและแจกจèายไดéในวันที่ 27 กุมภาพันธì 2006 โดยปฎิทินการพัฒนาของ Fedora Core 5 มีดังนี้
– 21 พฤศจิกายน 2005 - Fedora Core 5 Test 1 – 23 ธันวาคม 2005 - Fedora Core 5 Test 2 – 23 มกราคม 2006 - Fedora Core 5 Test 3 – 27 กุมภาพันธì 2006 - Fedora Core 5 Final (พัฒนาสำเร็จและแจกจèาย)
7 บทที่ 2
การประยุกตìใชéงาน OS
Fedora มี Packages มากกวèา 5,000 packages โดยอาศัยการทำงานผèาน GUI installation ตัวอยèาง Packages ตèางๆ ไดéแกè
• ระบบ File Manager ใชéระบบของ Nautilus (คลéาย ๆ Windows Explorer) และ Default Window Manager เปน Metacity
• ระบบ Desktop Environment จะใชé GNOME เปนมาตรฐาน (รูปที่ 2.1)
รูปที่ 2.1: GNOME desktop environment (รูปจาก http://en.wikipedia.org/wiki/GNOME)
รูปที่ 2.2: KDE desktop environment (รูปจาก http://en.wikipedia.org/wiki/KDE)
• ระบบ Themes จะเปน ClearLooks Theme จาก GNOME (รูปที่ 2.1) และ Bluecurve Theme จาก KDE (รูปที่ 2.2) เปนตéน
• ระบบซอฟตìแวรìทำงานดéานสำนักงาน ไดéติดตั้ง OpenOffice.org , K office , GNOME Office แลéวแตèจะเลือก ติดตั้ง หรือติดตั้งทั้งหมดก็ไดéเชèนกัน แตèที่นิยมใชéจะเปน OpenOffice.org ซึ่งในปจจุบันอยูèใน Version 2.0 ที่มี
8 ความสามารถใกลéเคียง Microsoft Office System มากที่สุด โดยมีซอฟตìแวรìตัวอื่น ๆ ที่มีความสามารถเทียบเทèา กับในระบบ Microsoft Windows ที่ทำใหéเราสามารถทำงานไดéอยèางราบรื่นอยèางมาก โดยดูไดéจากตารางเปรียบเทียบ ในหัวขéอถัดไป
• ระบบ Server ตèาง ๆ (Web Server, Mail Server, DHCP Server, DNS Server, Internet Sharing, Proxy Server, File sharing Server ฯลฯ ) โดยสามารถทำงานไดéดีกับเครื่องแมèขèาย ที่มี Lan Card มากกวèา 1 ใบ ทèานสามารถตั้ง ใหé Lan Card ใบแรกติดตèอกับ Internet และ Lan Card อีกใบตèอกับระบบ Network ภายใน เพื่อใหé Fedora Linux ทำหนéาที่แจก IP Address (DHCP Server), Share Internet, เปน Proxy Server และ DNS Cache Server เพื่อใหéการใชéงาน Internet รวดเร็วยิ่งขึ้น, เปน Firewall เพื่อรักษา ความปลอดภัย, รวมถึงห้ำโปรแกรมที่ติดตèอกับ Internet ผèาน Port ที่แปลกปลอมใด ๆ สำหรับ เครื่องแมèขèาย ภายในที่มี Lan Card เพียงใบเดียว ทèานสามารถปรับ แตèงใหé Fedora Linux แจก IP Address (DHCP Server) และเปน Proxy Server ไดéอยèางงèายดาย * เครื่องแมèขèาย ที่มี Lan Card ใบเดียว ไมèสามารถใชéเปน Firewall พรéอม ๆ กับการ Share Internet ไดé Apache Web Server ที่มีคนใชéมากที่สุดในโลก ที่ทำใหéเราสามารถทำระบบ Website ขององคìกรไดéอยèางงèายดาย นอกจากนี้ ยังสามารถ เพิ่ม Web page สèวนตัวสำหรับผูéใชéแตèละคนของระบบไดéดéวย ผูéใชéแตèละทèานสามารถทำ Web page และนำขึ้นมา ไวéที่เครื่องแมèขèายไดéหลายวิธี เชèน ผèานระบบ Network Place ของ Windows หรือผèานssh ของ Unix/Linux หรือ ผèาน FTP เปนตéน Samba Server ทำใหéทèานสามารถนำ File จากเครื่อง Clientที่เปน Windows มาแลกเปลี่ยนกับ Fedora Linux ไดéงèาย และผูéใชéแตèละทèานสามารถนำ File เอกสารมาเก็บ (หรือ backup) และแลกเปลี่ยนกันไดéงèาย Admin สามารถจัดการ Folder ตèาง ๆ ที่ Share ที่เครื่อง Fedora Linux ไดéโดยงèายโดยผèาน Web Admin Tools นอกจากนี้ Fedora Linux ยังสามารถแลกเปลี่ยน File กับ Operating System (OS) อื่น ๆ ที่ไมèใชè Windows ไดéหลากหลายชèองการทำงาน ใหéเปน Intranet Mail Server ที่รองรับการทำงานภายในองคìกร และ Internet Mail Server ซึ่งทำหนéาที่เปน Mail Server ใน Internet อยèางแทéจริง ดéวยการปรับแตèงงèายๆ ผèาน Webmin Tools Mail โดนที่ Fedora Linux นี้มาพรéอมกับระบบปองกันการ Spam และ ไวรัสอยูèในตัว นอกจากนี้ Fedora Linux ยัง รองรับระบบ Visual Host อีกดéวย
• ระบบ Backup and Restore ซึ่งทèานสามารถสั่งใหéระบบทำการ Backup ขéอมูลสำคัญตèาง ๆ ลง CD/DVD ซึ่งทèาน สามารถนำขéอมูลมา Restore ไดéภายหลัง ทำใหéทèานสามารถยéายเครื่องแมèขèาย หรือ Upgrade เครื่อง ไดéโดยงèาย
• งานศึกษาและวิจัย ประเทศใด ๆ ในโลก ลéวนนิยมใชé Unix operating system/Linux ในการศึกษาและวิจัยตèางๆ สภาพแวดลéอมเหมาะกับการพัฒนา เขียนโปรแกรมประสิทธิภาพสูง และทำงานไดéจริง
• Programming language C/C++, Java, Perl, Python, Ada, Tck/tk, อื่น ๆ
• ระบบ Embedded systems และ Portable device มีการใชé Linux เพื่อควบคุมการทำงานของอุปกรณìตèาง ๆ มากมาย เชèน หุèนยนตì, Palm เปนตéน
• Graphics Rendering, Realtime, Image Processing and Simulation Linux ใชéสำหรับงานประเภทที่เวลาตอบสนอง มีความสำคัญสูง, คำนวณ และ ประมวลผล เชèน
Daimler Chrysler ใชé Linux ในการวิเคราะหìทางดéาน Image Processing อนาคตรถจะหยุดเอง ถéาพบ วèามีสิ่งกีดขวางดéานหนéา
บริษัท Digital Domain ซึ่งรับหนéาที่ทำระบบ CGI (Computer Generated Imagery) ใหéกับภาพยนตì เรื่อง Titanic ใชé Linux ในการ Reder ตัวเรือ Titanic ขนาดยักษìผèานระบบ Graphics Rendering บน Linux
บริษัท Square ใชé Render Farm ประมาณ 900+ CPU เปน Linux Cluster และใชé Software ชื่อวèา Pixar RenderMan for Linux สำหรับ render ภาพ
• อื่น ๆ อีกมากมาย
9 บทที่ 3
ความตéองการของ Hardware
3.1 CPU
CPU 32-bit x86 systems
• ขั้นต่ำคือ Pentium โดย Fedora Core 4 นี้จะ optimized ตัวรหัสสำหรับ CPU Pentium 4 แตèก็ยังคงสนับสนุน ทุกๆ CPU อื่นๆ ดéวย (เชèน Pentium, Pentium Pro, Pentium II, Pentium III รวมไปถึง AMD และ VIA )
• โดยสัญญาณนาฬกาของ CPU ที่ทำงานไดéดีใน text-mode คือ 200 MHz ใน Pentium หรือสูงกวèา
• โดยสัญญาณนาฬกาของ CPU ที่ทำงานไดéดีใน graphical-mode คือ 400 MHz ใน Pentium II หรือสูงกวèา CPU 64-bit x86 64 systems
• CPU AMD64 processors (โดยใชéไดéทั้ง Athlon64 และ Opteron)
• Intel processors ที่มี Intel Extended Memory 64 Technology หรือที่เรียกยèอๆ วèา Intel EM64T CPU PowerPC (PPC)
• PowerPC G3 / POWER4
• Fedora Core 4 สนับสนุนในรุèน New World ของ Apple Power Macintosh ที่เริ่มสèงสินคéาใน 1999 โดยที่สามารถ ทำงานไดéบน 64-bit G5 processor และ POWER processors ใน IBM eServer pSeries แตèในปจจุบัน 32-bit IBM RS/6000 นั้นยังไมèสนับสนุน
– โดยสัญญาณนาฬกาของ CPU ที่ทำงานไดéดีใน text-mode คือ 233 MHz G3 หรือสูงกวèา
– โดยสัญญาณนาฬกาของ CPU ที่ทำงานไดéดีใน graphical-mode คือ 400 MHz G3 หรือสูงกวèา
3.2 Hard Drive
CPU 32-bit x86 systems)
• Custom Installation (ต่ำสุด): 620MB
• Server: 1.1GB
• Personal Desktop: 2.3GB
• Workstation: 3.0GB
• Custom Installation (ลงระบบทุก ๆ อยèาง): 6.9GB
10 CPU 64-bit x86 64 systems
• Custom Installation (ต่ำสุด): 900MB
• Server: 1.5GB
• Personal Desktop: 2.7GB
• Workstation: 3.4GB
• Custom Installation: (ลงระบบทุก ๆ อยèาง) 7.5GB CPU PowerPC (PPC)
• เหมือน CPU 64-bit x86 64 system
3.3 Memory
CPU 32-bit x86 systems
• ขั้นต่ำสำหรับ text-mode: 64MB
• ขั้นต่ำสำหรับ graphical-mode: 192MB (แนะนำสำหรับ for graphical-mode: 256MB) CPU 64-bit x86 64 systems
• ขั้นต่ำสำหรับ text-mode: 128MB
• ขั้นต่ำสำหรับ graphical-mode: 256MB (แนะนำสำหรับ for graphical-mode: 512MB) CPU PowerPC (PPC)
• เหมือน CPU 64-bit x86 64 systems
3.4 อื่น ๆ
• Keyboard*, Mouse*
• Floppy Drive*, Optical Drive*, Monitor*
* จะมีหรือไมèมีก็ไดéขึ้นอยูèกับการใชéงานในแตèละงาน และแตèละชèวงเวลา เชèนในตอนติดตั้งอาจจำเปนตéองใชé Optical Drive แตèพอทำการติดตั้งเสร็จแลéวก็ไมèตéองใชé Optical Drive อีกตèอไปก็นำเอา Optical Drive ออก ไปไดéเลย
11 บทที่ 4
ระบบ RAID
RAID ยèอมาจาก Redundant Array of Independent Disks หรือ Redundant Array of Inexpensive Disks เปน ระบบในการจัดเก็บแบบ Hard Drive หลายๆ ตัว สำหรับในการแลกเปลี่ยน หรือสำรองขéอมูลบนสื่อเก็บขéอมูล โดยทั่วไป แลéว RAID จะใชé Hard Drive หลายตัวแลéวรวมมันเปน Hard Drive เสมือนเพียง 1 ตัว (หรือเรียกอีกอยèางวèา single logical unit)
4.1 ประวัติของ RAID
• ในป 1978 Norman Ken Ouchi นักวิจัยของ IBM ไดéรับสิทธิบัตร U.S. Patent 4,092,732 ในหัวขéอ "System for recovering data stored in failed memory unit" หรือระบบสำหรับการเรียกคืนขéอมูลจากการที่หนèวยความจำ ลéมเหลว
• ในป 1988 RAID level 1 - 5 ไดéคิดคéนขึ้นโดย David A. Patterson, Garth A. Gibson และ Randy H. Katz ใน ผลงานวิจัยชื่อ "A Case for Redundant Arrays of Inexpensive Disks (RAID)" โดยตีพิมพìในวารสารงานวิจัย SIGMOD Conference 1988 หนéาที่ 109 - 116
4.2 ประโยชนìของ RAID
• ทำใหé อัตราการโอนถèายขéอมูล (Data Transfer Rates) สูงกวèาอัตราการโอนถèายขéอมูลฮารìดดิสตìเพียงตัวเดียว
• ทำใหéการเพิ่มความจุของระบบจัดเก็บขéอมูลนั้นมีอยèางไมèจำกัดในลักษณะ single logical unit ในขณะที่การเพิ่ม ฮารìดดิสตìในแบบปกติ แมéจะเปนการเพิ่มความจุ แตèก็เปนการเพิ่มจำนวนไดรìฟไปในตัว (C,D,Eเปนตéน) เพราะ ไบ ออสของเครื่องออกแบบไวéเชèนนั้น ทำใหéการจัดเก็บอาจ จะตéองแยกกันเก็บและ ทำใหéลักษณะการจัดกระจายซึ่ง ยุèงยากในการบริหารจัดการ
• สรéางความปลอดภัยใหéขéอมูลดéวยระบบ Data redundancy/ Fault tolerance คุณจึงอุèนใจไดéวèาขéอมูลจะไมèมีวัน สูญหาย ถéาหากมีฮารìดดิสตì ตัวใดตัวหนึ่งในอะเรยì เสียอยèางกะทันหัน นอกจากนั้นแลéวคุณก็ยังสามารถแกéไขฮารìดดิสตì ตัวที่เสียโดย การถอดเปลี่ยนแทนที่ดéวยฮารìดดิสตìตัวใหมèโดยที่ไมèตéอง Down ระบบซึ่งตèางจากการตèอฮารìดดิสตìใน แบบทั่วๆไปหาก ฮารìดดิสตìเสีย ขึ้นมาก็เทèากับขéอมูลเกิดสูญหายในทันที
4.3 จะเรียก Inexpensive หรือ independent ?
โดยความหมายในตัว I ใน RAID แลéวตรงกับความหมาย independent มากกวèา inexpensive โดยจากการที่ RAID นั้นสามารถใชéงานไดéหลากหลายรูปแบบ และไมèยึดติดกับระบบใดระบบหนึ่งเชèน SCSI หรือ IDE/ATA หรือแมéแตè Flash memory ก็มีความคิดที่จำนำมาทำ RAID ดéวยเชèนกัน ทำใหéนèาจะใชéคำวèา Independent ที่แปลวèาอิสระ มากกวèา Inex- pensive ที่แปลวèาราคาถูก หรือประหยัด เพราะในความเปนจริง ก็มีราคาในการจัดการระบบ RAID ที่แพงกวèาธรรมดาอยูè แลéว
12 4.4 ชนิดของ RAID ที่สนับสนุน
รูปแบบลักษณะของ RAID แบèงออกเปน Level ซึ่èงแตกตèางกันออกไป แตèก็มีการแบèงประเภทของ Level อีกดéวยเปน 3 ประเภท คือ Standard RAID levels, Nested RAID Levels, Proprietary RAID levels ซึ่งในรายงานนี้เราจะขอพูด ในสèวนของ ระบบ Standard RAID levels เทèานั้น เพราะใชéกันมากที่สุด Standard RAID levels มี Level ดังนี้
• RAID Level 0 หรือเรียกอีกอยèางวèา Striped Disk Array without Fault Tolerance เปนการใชéเทคนิค performance- oriented data mapping หรืออีกอัยหนึ่งคือ การทำงานกระจายขéอมูลที่เรียกวèา Data Block และนำ Data Block กระจายไปเก็บไวéในฮารìดดิสกìที่ทำงานรèวมกันใน RAID ในแตèละตัว ทำใหéการทำงานในการอèาน และเขียนขéอมูล รวดเร็วมากขึ้น, การทำงานไมèตéองมีการคำนวณ parity เพื่อตรวจสอบการทำงานที่ผิดพลาด, การออกแบบเปนไป อยèางเรียบงèาย และติดตั้งงèาย แตè RAID 0 ยังไมèถือวèาเปน RAID ที่แทéจริง เพราะวèาไมèมีสèวนที่รับประกันความ ปลอดภัยของขéอมูล (data redundancy) ถéา Hard Drive ตัวใดตัวหนึ่งเสียหาย ขéอมูลทั้งหมดก็เสียหายไปดéวย จำ นวณ Hard Drive ขั้นต่ำคือ 2 Drive
• RAID Level 1 หรือเรียกอีกอยèางวèา Disk Mirroring เปนการใชéเทคนิค provides redundancy by writing identical หรืออีกนัยหนึ่งคือ การสรéางสำเนาขéอมูลโดยตรง แลéวนำไปเก็บไวéในฮารìดดิสกìที่ทำงานรèวมกันใน RAID ในแตèละ ตัว ทำใหéการทำงานในการอèานขéอมูลรวดเร็วมากขึ้น แตèไมèเทèากับ RAID Level 0 และการทำงานไมèตéองมีการ คำนวณ parity เพื่อตรวจสอบการทำงานที่ผิดพลาด, การออกแบบเปนไปอยèางเรียบงèาย และติดตั้งงèาย และที่ดีกวèา RAID Level 0 คือการพื้นสภาพจากการที่ Drive ลéมเหลวนั้นงèายมาก เรื่องจากขéอมูลจะยังคงเก็บอยูèใน Drive อีก ตัวหนึ่งเสมอ จำนวณ Hard Drive ขั้นต่ำคือ 2 Drive
• RAID Level 4 หรือเรียกอีกอยèางวèา Independent Data Disks with Shared Parity Disk เปนการใชéเทคนิด striping และ parity bit เขéามาจัดการ จึงตéองใชéจำนวณ Hard Drive ขั้นต่ำคือ 3 Drive โดย 2 Drive แรกติดตั้ง แบบ RAID Level 0 และ อีก Drive จะเก็บคèา parity bit เอาไวéซึ่งจะอธิบายความในอีกนัยหนึ่งวèา กèอนจะบันทึก ขéอมูลใหมèลงไป ขéอมูลเกèาที่ strip ไวéจะตéองถูกอèานขึ้นมากèอน รวมถึง strip ของ parity ที่เปน bit จากนั้นจึง บันทึกขéอมูลใหมèลงไปพรéอมกับขéอมูล parity ที่ไดéรับการคำนวณใหมè ดังนั้นการบันทึกแตèละ strip จะเกิดการอèาน 2 ครั้ง และบันทึกขéอมูล 2 ครั้ง สèวนการอèานขéอมูลจะมีลักษณะการทำงานเหมือนกับ RAID Level 0 เพียงแตèจะมี การตรวจสอบความถูกตéองของขéอมูลจากคèาของ parity bit เสมอ ทำใหéเกิดปญหาจุดคอขวดของการทำงานขึ้นมา เพราะขéอมูลตèางๆ จะประดังเขéามาใน Drive ที่เก็บ parity ตลอดเวลา
• RAID Level 5 หรือเรียกอีกอยèางวèา Independent Data Disk with Distributed Parity Blocks เปนการใชéเทคนิด striping และ parity bit เหมือนกับ RAID Level 4 เพียงแตèจะแตกตèางตรงที่แทนที่จะมีการใชé 2 Drive แรกติดตั้ง แบบ RAID Level 0 และ อีก Drive จะเก็บคèา parity bit เปลี่ยนมา ทุกๆ Drive จะมีทั้งขéอมูล strip และ parity bit โดยจะกระจายไปทุกๆ Drive ตัวอยèางเชèน ใชé RAID Level 5 กับจำนวน Drive 3 ตัว โดยขéอมูลจะ stripping และสèงใหéกับ Drive หมายเลข 1 และ 2 สèวนหมายเลข 3 จะเก็บ parity bit และขéอมูลตัวตèอมาเขéามา ขéอมูลก็จะ stripping และสèงใหéกับ Drive หมายเลข 2 และ 3 สèวนหมายเลข 1 จะเก็บ parity bit ไวé ทำวนเวียนตèอไปแบบนี้ เรื่อยๆ
• Linear RAID เปนการรวมกลุèมของการสรéาง Drive เสมือนขนาดใหญè โดยที่ linear RAID เปนการทำ allocated sequentially drive (disk) space หรือการทำใหé drive ทำการเก็บขéอมูลตèอไปไดéเรื่อยๆ ไมèมีที่สิ้นสุด โดยที่ เมื่อ drive ตัวแรกเก็บขéอมูลจนเต็มแลéว ระบบจะทำการเก็บขéอมูลมาที่ drive ตัวที่สองที่ไดéเตรียมไวé และเมื่อ drive ตัว ที่สองเต็มก็ทำการเก็บขéอมูลตèอมายัง drive ตัวที่สาม แตèถéาสมาชิกในกลุèมของระบบ linear RAID ขéอมูลในสèวน ของ Drive ที่เสียไป ก็จะใชéงานไมèไดé
13 บทที่ 5
ระบบ File System
ระบบ File System (FS) ของ Fedora Linux Core 4 นั้นโดยมาตรฐานแลéวคือ Extended file system หรือ ext เปน file system ตัวแรก ที่สรéางขึ้นมาเพื่อใชéสำหรับระบบปฎิบัติการ Linux โดยไดéทำการออกแบบเพิ่มเติมจากความสามารถ ที่จำกัดจาก Minix File system และจาก xiafs โดยมีอยูè 2 รุèน คือ ext2 และ ext3 แตèก็ยังมี File System อีกหลายตัวที่ Fedora Linux สามารถทำงานไดé เชèน NILFS, ReiserFS และ Reiser4
5.1 ext2 หรือ Second extended file system
ext2 เปน File System ที่ทำงานบน Linux kernel ทุกตัว ซึ่งออกแบบโดย Remy Card ในป 1993 ซึ่งทำงานไดé เร็วและมีประสิทธิภาพมาก แตèวèาไมèสนับสนุน การทำงานแบบ Journaling File System * และระบบ Journaling File System นี้มีใน ext3 ext2 เปน file system พื้นฐานใน Red Hat Linux, Fedora Linux Core และ Debian Linux
* Journaling File System (FS) คือระบบไฟลìอยèางหนึ่งที่คอยบันทึก metadata อยูèตลอดเวลาเพื่อปองกัน ปญหาขéอมูลผิดพลาดและขéอมูลพัง ซึ่ง Journaling FS นี้ก็มีอยูèหลายชนิดดéวยกัน เชèน NTFS ของ Win- dows, XFS ของ IRIX, EXT3, Reiser4, ReiserFS ของ Linux, และ HFS+ ของ Mac OS X เปนตéน การใชéระบบ Journaling FS มีขéอดีก็คือ จะชèวยปองกันปญหา เวลาที่เกิด system failure เชèนเครื่อง crash หรือวèาตéอง force reset (โดยการกดปุèม power .. ไมèผèาน shutdown process) ซึ่งก็ไมèไดéชèวยใหéปญหา หมดไป 100% แตèวèาก็ดีกวèาไมèมี สèวนประสิทธิภาพ ก็ถือวèาแยèกวèา Non-Journaling นิดหนèอยเทèานั้น (ย้ำ นิดหนèอยเทèานั้น .. ถéาไมèใชè benchmark tool เพื่อทดสอบ ไมèเห็นความแตกตèางแตèอยèางใด), รวิทัต ภูèหลำ
5.2 ext3 หรือ Third extended file system
มีคุณสมบัติพื้นฐานตèาง ๆ แบบเดียวกับ ext2 แตèใน ext3 นั้นมีการเพิ่มความสามารถขึ้นมาอีก 3 อยèางคือ
1. Journaling File System
2. H-tree (hashed tree) directory indexes
3. Online filesystem resizing
โดย ext3 ยังเปน file system พื้นฐานใน Red Hat Linux, Fedora Linux Core, Ubuntu Linux และ Debian Linux
14 โดยสรุปไดéจากขéอมูลดéานลèางนี้ทั้ง ext2 และ ext3
• ผูéพัฒนา : Stephen Tweedie (ออกแบบ ext3 และ เขียนระบบ), Remy Card (ออกแบบ ext2, รèวมพัฒนา ext3 และ เขียนระบบ), Theodore Ts’o (ระบบเครื่องมือ และ แกéไขปรับปรุง), Andreas Gruenbacher (xattrs และ ACLs), Andreas Dilger (ออกแบบระบบ online resizing), และที่ไมèไดéกลèาวอีกมาก
• ชื่อเต็ม : Second extended file system (ext2) และ Third extended file system (ext3)
• เริ่มนำมาใชé : เดือนเมษายน 1992 (Linux kernel 0.96c) สำหรับ ext2 และ เดือนพฤศจิกายน 2001 (ใน Linux kernel 2.4.15) สำหรับ ext3
• โครงสรéาง Directory : inode table (ext2) และ H-tree (ext3)
• File allocation : bitmap (free space) และ table (metadata)
• Bad blocks : Table
• ขนาดไฟลìที่ใหญèที่สุดที่รองรับ : 2TB
• จำนวนไฟลìสูงสุดที่รองรับ : เกือบจะไมèจำกัด
• ขนาดของปริมาณพื้นที่สำหรับเก็บขéอมูลสูงสุด : 32TB
• ตั้งชื่อที่มีความยาวสูงสุด : 255 ตัวอักษร
• ระบบสิทธิเขéาถึงไฟลì : Unix permissions, ACLs และ arbitrary security attributes (Linux kernel 2.6 ขึ้นไป)
รูปที่ 5.1: Ext File System Layout
15 บทที่ 6
ระบบ Memory Management
สèวนของ kernel ของลีนุกซìคèอนขéางซับซéอน แตèในจะแนะนำตèอไปนี้ คือ สèวนของ memory management ซึ่งจะเปน ในสèวนที่เราตéองทำความเขéาใจ
รูปที่ 6.1: Logical address in Linux
• ใชéระบบ Paging
• ระบบการทำงานรèวมกันของ หนèวยความจำทางกายภาพ (Physical memory) และหนèวยความจำทางตรรกะ (Log- ical memory) ผèาน page table
• การจัดการเฟรม (frame management)
• กระบวนการอéางอิงตำแหนèง (Process address space) โดยใชé
– Memory descriptors – Memory regions – Page faults
• ระบบที่ใชéรèวมกับ Intel x86 ใชé segmentation *
• Linux จะใชéการทำงานแบบ segmentation
• Linux ใชé paging ดéวยการ
16 – แบèง page ขนาด 4KB สำหรับ x86 CPU และ 8KB สำหรับ Alpha CPU – ใชé page table 3 ระดับ โดยใชé 64-bit addresses space – ในระบบ x86 processors ∗ ใชé page table 2 ระดับ โดยใชé 32 bit addresses space ∗ ใชé Segment + Offset จะไดé 4 GB Linear address ( หรือ 32 bits) โดยแบèงเปน user space ที่ 3 GB และ kernel space ที่ 1GB ∗ paging ตéองสนับสนุนโดย hardware ∗ จัดการโดย TLB (Translation Lookaside Buffer) **
* Segmentation (การแบèงหนéาจะแบèงใหéมีขนาดเทèากัน) แตèการแบèงเปนเซ็กเมนตìจะแบèงโปรแกรมออกเปน สèวน ๆ ไมèเทèากัน และมีการใชéตำแหนèงทางตรรกะ อéางอิงตำแหนèงจริงเชèนกัน และมีการใชéขéอมูล 2 สèวนคือ เลขที่เซ็กเมนตì และระยะเริ่มตéนของเซ็กเมนตì(Offset) สำหรับผลของการแบèงเซ็กเมนตìทำใหéเกิดชิ้นสèวนไมè เทèากัน (Dynamic partitioning) ซึ่งลดปญหาการสูญเสียพื้นที่ (Internal fragmentation)
** TLB : Translation lookaside buffer (บัฟเฟอรìคéนหาที่อยูè) ทุกครั้งที่เรียกใชéหนèวยความจำเสมือน ยèอม เรียกใชéหนèวยความจำหลัก 2 ครั้ง คือ การอèานตารางหนéา และอèานขéอมูลจริงจากหนèวยความจำหลัก ดังนั้น การทำงานแบบนี้จึงใชéเวลาถึง 2 เทèา จึงมีการใชé cach memory ซึ่งทำหนéาที่เก็บตารางหนéาที่เคยถูกเรียกใชé หรือเรียกวèา บัฟเฟอรìคéนหาที่อยูè (TLB : Translation Lookaside Buffer) ถéาพบใน TLB จะเรียก TLB hit ถéาไมèพบเรียก TLB miss และเขéาไปอèานตารางหนéา เมื่ออèานแลéวก็จะนำมาเพิ่มใน TLB สำหรับโอกาสที่จะถูก เรียกในอนาคต
17 ภาคผนวก ก
เอกสารอéางอิง
• ระบบปฏิบัติการยูนิกซì (NECTEC) http://www.nectec.or.th/courseware/program/Unix/0001.html
• Unix (วิกิพีเดีย สารานุกรมเสรี) http://en.wikipedia.org/wiki/Unix
• แนะนำลีนุกซìเบื้องตéน และประวัติความเปนมา (Kaiwal Development Team) http://xn--12cu4b7b4dza6l.th/pub/linux.sis/3.1/docs/LTP/02 2intro.html
• ลินุกซì (วิกิพีเดีย สารานุกรมเสรี) http://th.wikipedia.org/wiki/ลีนุกซì
• Unix กับ Linux ตèางกันอยèางไร? (วีรì สัตยมาศ) http://veer.exteen.com/20050804/Unix-linux
• Fedora Core (วิกิพีเดีย สารานุกรมเสรี) http://en.wikipedia.org/wiki/Fedora Core
• Fedora Project, sponsored by Red Hat (Red Hat, Inc.) http://fedora.redhat.com/
• Red Hat Enterprise Linux (วิกิพีเดีย สารานุกรมเสรี) http://en.wikipedia.org/wiki/Red Hat Enterprise Linux
• Journaling filesystem (วิกิพีเดีย สารานุกรมเสรี) http://en.wikipedia.org/wiki/Journaling filesystem
• General overview of the Linux file system (Machtelt Garrels) http://www.faqs.org/docs/linux intro/sect 03 01.html
• The Official Red Hat Linux Reference Guide RAID (Red Hat, Inc.) http://www.redhat.com/docs/manuals/linux/RHL-6.2-Manual/ref-guide/ch-raid.html
• Comparison of file systems (วิกิพีเดีย สารานุกรมเสรี) http://en.wikipedia.org/wiki/Comparison of file systems
• Linux Memory Management (Craig M. Grube) http://www.cs.purdue.edu/homes/li/cs690Z/Outline/vmm.pdf
• Lecture Overview Linux Memory Management (Dr. Richard Hall, Torsten Fink) http://www.inf.fu-berlin.de/lehre/SS01/OS/Lectures/Lecture14.pdf
• แนะนำเพิ่มเติมเนื้อหา Journaling filesystem, ประวัติ และการจัดรูปเลèม (ithilien rp (รวิทัต ภูèหลำ)) http://www.cs.su.ac.th/
18