<<

Fedora 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 ระบบ 14 5.1 หรือ Second ...... 14 5.2 หรือ 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 , ผูéใหéกำเนิด (รูปจาก 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 Enterprise Linux 4 (รูปจาก http://en.wikipedia.org/wiki/Red Hat Enterprise Linux) . . . . 6 1.6 Fedora Core 4 ทำงานบน GNOME (รูปจาก 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 ) เพื่อพัฒนาโครงการ Multics ในป‚ 1960 เพื่อ พัฒนาระบบปฏิบัติการสำหรับ Mainframe Computer รุèน GE 635 โดยใหéมีความสามารถในการโตéตอบ (Interactive) มีระบบอำนวยความสะดวกตèอการใชéแฟ‡มขéอมูลรèวมกัน แตèเกิดป˜ญหาหลายประการ จนกระทั่งหéองปฏิบัติการวิจัย Bell Labs ไดéลาออกจากโครงการไป แตèโครงการก็ยังดำเนินการตèอโดย Ken Thompson และ Dennis Ritchie ซึ่งทำงาน กับ Bell Labs พรéอม ๆ กันไปดéวย ตèอมา Ken & Dennis ไดéรèวมกันพัฒนาระบบปฏิบัติการใหมè เพื่อทำงานบนเครื่อง PDP-7 และใชéชื่อวèาระบบปฏิบัติการ Unix เพื่อใหéออกเสียงใกลéเคียงกับระบบ Multics ดังนั้นตéนกำเนิดของ Unix ก็คือ Multics นั่นเอง ไมèวèาจะเปšนชื่อ ระบบแฟ‡มขéอมูลที่ใชé แนวคิดของตัวแปรคำสั่ง () หลังจากนั้นทั้งสองไดéพัฒนามา เปšน Version 2 เพื่อทำงานบนเครื่องรุèน PDP-11/20 โดยใชéภาษา Assembly และไดéพัฒนาปรับปรุงดéวยภาษา (ภาษา C ก็พัฒนาที่หéองวิจัย Bell Labs เชèนกัน เพื่อทำงานบนระบบ Unix) และเผยแพรèไปสูèมหาวิทยาลัยตèาง ๆ ดéวย Version 6 ในป‚ ค.ศ. 1976 ในป‚ ค.ศ. 1978 Version 7 ก็พัฒนาออกมาและเปšนตéนแบบของระบบ Unix รุèนใหมè ๆ หลังจากนั้น AT&T ซึ่งเปšน องคìกรแมèของ Bell Labs ไดéเปšนผูéรับผิดชอบ และควบคุมการออกตัวระบบปฏิบัติการ Unix ดังนั้นจึงกลายเปšนผลิตภัณฑì แทนที่จะเปšนเครื่องมือวิจัย AT&T ไดéพัฒนา Unix ออกมาใชéงานภายนอก ภายใตéชื่อ System III ในป‚ 1982 และป‚ 1983 ก็ออก System และพัฒนามาเรื่อย ๆ จนไดéรับความนิยมในป˜จจุบัน หลังจากนั้นก็มีผูéพัฒนา 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 ถือเปšนตéนแบบในการพัฒนา ในรุèน0.01 นี้ถือวèามีเครื่องมือที่เพียงพอสำหรับระบบ POSIX ที่ใชéเรียก Linux ที่รัน บน GNU 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 อีกหลายคèายที่พัฒนาขึ้นเพื่อใชéในระบบงานสำคัญองคìกรธุรกิจขนาดใหญè ที่ ตéองการความมั่นใจและเชื่อถือไดé ในป˜จจุบัน Linux ไดéรับการยอมรับและการสนับสนุนจากบริษัทยักษìใหญè เชèน IBM, Novell และ Sun Microsystems ดéวย

5 1.3 ประวัติ Fedora Linux

รูปที่ 1.5: 4 (รูปจาก http://en.wikipedia.org/wiki/Red Hat Enterprise Linux)

Linux Distribution ที่ไดéชื่อวèามีชื่อเสียงมากที่สุดทั้งในประเทศไทยและทั่วโลก ก็คงจะไมèพéน (รูป ที่ 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 ตèางๆ ไดéแกè

• ระบบ ใชéระบบของ Nautilus (คลéาย ๆ Windows Explorer) และ Default Manager เปšน

• ระบบ 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 จะเปšน จาก 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 กับ (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 หรือแมéแตè ก็มีความคิดที่จำนำมาทำ 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 และ

5.1 ext2 หรือ Second extended file system

ext2 เปšน File System ที่ทำงานบน Linux kernel ทุกตัว ซึ่งออกแบบโดย Remy Card ในป‚ 1993 ซึ่งทำงานไดé เร็วและมีประสิทธิภาพมาก แตèวèาไมèสนับสนุน การทำงานแบบ * และระบบ Journaling File System นี้มีใน ext3 ext2 เปšน file system พื้นฐานใน Red Hat Linux, Fedora Linux Core และ 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, 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