วันอังคารที่ 27 มกราคม พ.ศ. 2552

Decrypt

ciphertext Uyew
Dec 20 50 30 48
binary 010100 110010 011110 110000
HEX 53 27 B0

ciphertext Xb2z
Dec 23 27 54 51
binary 010111 011011 110110 110011
HEX 5D BD B3

ciphertext dTR4
Dec 29 19 17 56
binary 011100 010011 010001 111000
HEX 71 34 78

ciphertext PUTC
Dec 15 20 19 2
binary 001111 010100 010011 000010
HEX 3P 44 C2

Encrypt

Plaintext Erq
HEX4 43 42
binary 0100 01000011 01000010
Dec 17 3 16 2
Table R D Q C

Plaintext Dkp
HEX 44 36 41
binary 01000100 00110110 01000001
Dec 17 3 25 1
Table R D Z B

Plaintext BOY
HEX 42 4F 59
binary 01000010 01001111 01011001
Dec 16 40 61 25
Table Q o 9 Z

Plaintext NEA
HEX 4E 45 41
binary 01001110 01000101 01000001
Dec 19 36 21 1
Table T k V B

สรุปบทเรียนบทที่13,14,15 และข้อสอบท้ายบท

สรุปบทที่ 13
13. การรักษาความปลอดภัย
การรักษาความปลอดภัยจะมีความหมายอยู่หลายด้าน แต่ที่สำคัญมีอยู่ 3 ด้าน คือ การสร้างความเสียหายลักษณะของผู้ประสงค์ร้าย และข้อมูลสูญหายโดยเหตุสุดวิสัย
• การสร้างความเสียหาย (Threats)
จากแนวความคิดของการรักษาความปลอดภัย ระบบคอมพิวเตอร์จะมีเป้าหมายทั่วไปอยู่ 3 ประการเพื่อทำการตอบโต้กับความเสียหายที่เกิดขึ้นกับระบบ ซึ่งแสดงอยู่ในรูป 13.1 เป้าหมายแรกคือความลับของข้อมูล (Data confidentiality) จะเกี่ยวข้องกับการรักษาข้อมูลลับให้ลับ เช่น เจ้าของข้อมูลนั้นจะอนุญาตให้ผู้ที่สามารถเข้าถึงข้อมูลได้เฉพาะผู้ที่ได้รับอนุญาตนั้นเข้าถึงข้อมูลได้ยิ่งละเอียดลงไปอีก เจ้าของข้อมูลสามารถจะกำหนดได้ว่าจะให้ใครสามารถดูข้อมูลอะไรในส่วนไหนได้บ้าง และระบบก็ควรจะทำตามข้อกำหนดนี้ได้
เป้าหมาย
การสร้างความเสียหาย
ความลับของข้อมูล
ความเชื่อถือได้ของข้อมูล
ระบบยังคงทำงานอยู่ได้
เปิดเผยข้อมูล
เข้าไปเปลี่ยนแปลงข้อมูล
ปฏิเสธการให้บริการ
13.1 เป้าหมายของการรักษาความปลอดภัยและการสร้างความเสียหาย
เป้าหมายที่สอง คือ ความเชื่อถือได้ของข้อมูล (Data integrity) จะหมายถึงผู้ใช้ที่ไม่ได้รับอนุญาตจากเจ้าของข้อมูลจะไม่สามารถเข้าไปทำการเปลี่ยนแปลงข้อมูลได้ การเปลี่ยนแปลงข้อมูลในที่นี้จะรวมถึงการลงข้อมูลและการเพิ่มข้อมูลที่ผิดๆ ลงไปด้วย ระบบจะต้องการป้องกันข้อมูลไม่ให้มีการเปลี่ยนแปลงเกิดขึ้นจนกว่าเจ้าของข้อมูลจะทำการเปลี่ยนแปลง ข้อมูลนั้นด้วยตัวเจ้าของข้อมูลเอง
เป้าหมายที่สอง การที่ระบบยังคงทำงานอยู่ได้ (System availability) หมายถึงการที่ไม่มีใครสามารถที่จะทำการรบกวนการทำงานของระบบ ทำให้ระบบล่มไม่สามารถทำงานต่อไปได้
• ผู้ประสงค์ร้าย (Intruders)
ในการออกระบบเพื่อให้ปลอดภัยจากผู้ที่บุกรุกเข้ามาเพื่อประสงค์ร้ายกับระบบนั้น จำเป็นที่เราต้องระลึกอยู่เสมอว่าผู้ที่บุกรุกเข้ามานั้นคือผู้ที่เข้ามาต่อสู้กับการรักษาความปลอดภัยของเรา ประเภทต่างๆ ของผู้ประสงค์ ร้ายคือ
• ผู้ใช้ทั่วไปที่ชอบสอดรู้สอดเห็น
• คนภายในที่ขอบสอดแนม นักศึกษา โปรแกรมเมอร์ พนักงานควบคุมเครื่อง และพนักงานทางด้านเทคนิคต่างๆ
• ผู้ที่พยายามสร้างรายได้ให้กับตนเอง
• ผู้ที่จารกรรมข้อมูลทางทหารหรือทางธุรกิจ
• ข้อมูลสูญหายโดยเหตุสุดวิสัย (Accidental Data Loss )
นอกจากภัยคุกคามที่เกิดจากผู้ประสงค์ร้ายแล้ว ข้อมูลยังสามารถสูญหายโดยอุบัติเหตุได้เหมือนกันสาเหตุพื้นฐานที่ทำให้ข้อมูลสูญหายโดยเหตุสุดวิสัย คือ
• ปรากฏการณ์ทางธรรมชาติ เช่น ไฟไหม้ แผ่นดินไหว สงคราม จลาจล หรือ หนูกัดเทปหรือแผ่นดิสก์
• ฮาร์ดแวร์หรือซอฟต์แวร์ทำงานผิดพลาด เช่น การทำงานผิดพลาดของซีพียู แผ่นดิสก์หรือเทปเสียหายเน็ตเวิร์คเสีย หรือข้อผิดพลาดอื่นๆ
• ข้อผิดพลาดที่เกิดจากมนุษย์ เช่น การบันทึกข้อมูลผิดพลาด หยิบเทปิดหรือหยิบดิสก์ผิดแผ่น เทปหรือดิสก์สูญหาย ฯลฯ
การรับรองผู้ใช้ (User Authentication)
กระบวนการสำคัญของระบบปฏิบัติการในการรักษาความปลอดภัยให้ระบบ โดยจะมีหน้าที่ในการพิสูจน์ว่าผู้ที่กำลังใช้ระบบขณะนี้คือใครกระบวนการนี้เรียกว่า “ การรับรองผู้ใช้ ” (user authentication)
เครื่องมินิคอมพิวเตอร์ในยุคแรกๆ เช่น POP- และ POP-8 จะไม่มีขั้นตอนการล็อกอินเข้าระบบ (login) แต่เนื่องจากความนิยมในการใช้งานระบบ UNIX ของเครื่อง POP-11 มีอย่างแพร่หลายจึงทำให้จำเป็นต้องมีขั้นตอนการล็อกอินเข้าระบบ เครื่องพีซี ในยุคแรก เช่น Apple ll และ IBM PC ก็ไม่มีขั้นตอนของการล็อกอินเข้าระบบ แต่เนื่องจากระบบปฏิบัติการของเครื่องพีซีนับวันจะมีความทันสมัยและมีความซับซ้อนมากขึ้น เช่น ระบบWindows 2000 จึงจำเป็นต้องมีขั้นตอนของการล็อกอินเข้าระบบ
ใครก็ตามที่ต้องการจะสร้างความเสียหายให้กับระบบใดระบบหนึ่ง ในขั้นแรกเลยจะต้องเข้าสู่ขั้นตอนการล็อกอินเข้าระบบนั้น ซึ่งจะหมายถึงว่าบุคคลนั้นสามารถที่จะผ่านเข้าสู่ขั้นตอนของการรับรองผู้ใช้แล้ว ซึ่งบุคคลพวกนี้มีชื่อเรียกว่า “ แฮกเกอร์ ” (hacker)
จุดอ่อนของการใช้รหัสผ่าน (Password Vulnerabilities)
รหัสผ่านอาจจะสร้างขึ้นมาได้โดยระบบคอมพิวเตอร์หรือผู้ใช้เป็นผู้กำหนดขึ้นมาด้วยตัวเอง รหัสผ่านที่คอมพิวเตอร์กำหนดให้อาจจะยากต่อการจำทำให้ผู้ใช้ต้องจดรหัสผ่านเอาไว้เพื่อกันลืม รหัสผ่านที่ผู้ใช้กำหนดขึ้นเองส่วนใหญ่แล้วจะง่ายต่อการเดา เพราะอาจจะเป็นชื่อของผู้ใช้เองหรือเป็นสิ่งที่ผู้ใช้โปรดปราน บางระบบจะมีผู้ดูแลระบบจะทำการตรวจสอบรหัสผ่านของผู้ใช้และแจ้งไปยังผู้ใช้ถ้าพบว่ารหัสผ่านสั้นเกิดไปหรือเป็นรหัสผ่านที่เดาได้ง่าย บางระบบจะมีการกำหนดอายุของรหัสผ่าน โดยจะให้ผู้ใช้ทำการเปลี่ยนรหัสผ่านตามช่วงระยะเวลาที่กำหนด เช่น จะต้องเปลี่ยนรหัสผ่านทุก 3 เดือน แต่วิธีนี้ก็ยังไม่ใช่หนทางที่ดีเพราะว่าจะทำให้ผู้ใช้จำสับสนกันระหว่างรหัสผ่าน หนทางที่จะใช้แก้ปัญหานี้ก็คือจะต้องทำการสร้างระบบที่ใช้ทำการบันทึกรายการของรหัสผ่านที่ผู้ใช้แต่ละคนเคยใช้มาทั้งหมด นั่นคือรหัสผ่านที่เคยใช้มาแล้วจะไม่สามารถนำมาเป็นรหัสผ่านได้อีก
• รหัสผ่านแบบใช้ได้ครั้งเดียว (One-Time Passwords)
Leslie Lamport ได้คิดค้นรูปแบบของการสร้างรหัสผ่านโดยการใช้ฟังก์ชัน โดยผู้ใช้สามารถจะขอเข้าไปใช้เครื่องในเน็ตเวิร์คได้อย่างปลอดภัยโดยใช้รหัสผ่านแบบใช้ครั้งเดียว (Lamport, 1981) วิธีการของ Lamport ช่วยให้ผู้ใช้เครื่องคอมพิวเตอร์ส่วนตัวที่บ้านสามารถขอเข้าไปใช้เครื่องเซิร์ฟเวอร์ในอินเทอร์เน็ตได้อย่างปลอดภัยแม้ว่าจะมีผู้ที่คอยแอบดูหรือคัดลอกข้อมูลในระหว่างการเดินทางของข้อมูลในเน็ตเวิร์ค
อัลกอริทึมของ Lamport จะอยู่ในรูปของฟังก์ชัน y = f(X) ซึ่งฟังก์ชันนี้ถ้าทราบค่า x จะทำให้สามารถหาค่าของ y ได้ แต่ถ้าทราบค่าของ yจะไม่สามารถคำนวณเพื่อหาค่าของ x ได้ ในส่วนของข้อมูลเข้าและข้อมูลออกควรที่จะมีความยาวเท่ากัน เช่น 128 บิต
• โปรแกรมอันตราย (Program Threats)
ในสภาพแวดล้อมที่ผู้เขียนโปรแกรมและผู้ใช้งานโปรแกรมไม่ใช่บุคคลคนเดียวกัน ทำให้มีโอกาสของการใช้งานโปรแกรมผิดวัตถุประสงค์และทำให้เกิดเหตุการณ์ที่ไม่คาดคิดขึ้นได้กับระบบ ซึ่งโดยทั่วไปเหตุการณ์ที่ไม่คาดคิดนั่นก็คือ ม้าโทรจัน (Trojan horses) และประตูกับดัก (trap doors)
13.3.1 ม้าโทรจัน (Trojan Horses)
ม้าโทรจัน (Trojan horse) หมายถึง โปรแกรมคอมพิวเตอร์ที่ถูกบรรจุเข้าไปในคอมพิวเตอร์ เพื่อลอบเก็บข้อมูลของคอมพิวเตอร์เครื่องนั้น เช่น ข้อมูลชื่อผู้ใช้ รหัสผ่าน เลขที่บัญชีธนาคาร หมายเลขบัตรเครดิต และข้อมูลส่วนบุคคลอื่น ๆ โดยส่วนใหญ่แฮกเกอร์จะส่งโปรแกรมเข้าไปในคอมพิวเตอร์เพื่อดักจับข้อมูลดังกล่าว แล้วนำไปใช้ในการเจาะระบบ และเพื่อโจมตีคอมพิวเตอร์, เซิร์ฟเวอร์, หรือระบบเครือข่ายอีกที ซึ่งเป็นที่รู้จักกันในชื่อการโจมตีเพื่อ "ปฏิเสธการให้บริการ" (Denial of Services)
โปรแกรมม้าโทรจัน ถือเป็นโปรแกรมที่สอดคล้องกับการทำงานของคอมพิวเตอร์ ไม่มีคำสั่งหรือการปฏิบัติการที่เป็นอันตรายต่อตัวคอมพิวเตอร์ จึงไม่ถือว่าเป็นไวรัสคอมพิวเตอร์

13.3.2 ประตูกับดัก (Trap Door)
อีกรูปแบบหนึ่งที่เป็นช่องโหว่ของการรักษาความปลอดภัยให้ระบบคือ ประตูกับดัก การสร้างประตูกับดักจะเกิดจากการเขียนคำสั่งโดยโปรแกรม
ระบบอันตราย (System Threats)
13.4.1 หนอนคอมพิวเตอร์ (worm)
หนอนคอมพิวเตอร์เป็นขบวนการของกลไกในการบังคับประสิทธิภาพการทำงานของระบบ หนอนคอมพิวเตอร์จะทำการสำเนาตัวเอง โดยใช้รีซอร์สระบบหรือบางทีจะทำการป้องกันไม่ให้โปรเซสอื่นๆ ใช้รีซอร์สของระบบ ในระบบเน็ตเวิร์คหนอนคอมพิวเตอร์จะมีความสามารถมาก คือสามารถที่จะทำสำเนาตัวเองและแพร่กระจายไปในแต่ละเครื่องในเน็ตเวิร์คและทำให้ระบบในเน็ตเวิร์คหยุดทำงาน ซึ่งจะเห็นได้จากเหตุการณ์ในปี 1988 ที่เกิดขึ้นกับระบบ UNIX ใ นเครือข่ายอินเทอร์เน็ตหยุดทำงานทั้งหมด ทำให้เกิดความเสียหายหลายล้านดอลลาร์
หนอนคอมพิวเตอร์มีจุดเริ่มมาจากเมื่อวันที่ 2 พฤศจิกายน 1988 โดยโรเบิร์ต แทปแปน มอร์ริส นักศึกษาระดับปริญญาโทปีที่ 1 องมาหาวิทยาลัยคอร์แนบล ได้ปลอ่ยโปรแกรมที่มีหนอนคอมพิวเตอร์ไปในเครื่องเซิร์ฟเวอร์ในอินเทอร์เน็ต โดยเป้าหมายของการปล่อยหนอนคอมพิวเตอร์ คือ เครื่อง SUN Microsystem 3 เครื่องและเครื่อง VAX ซึ่งใช้โปรแกรมระบบ UNIX เ วอร์ชั่น 4 BSD หนอนคอมพิวเตอร์ได้แพร่กระจายอย่างรวดเร็วภายในเวลาไม่กี่ชั่วโมงที่ได้ปล่อยออกไป โดยหนอนคอมพิวเตอร์จะทำการเรียกใ ช้รีซอร์สระบบจนทำให้ระบบไม่สามารถทำงานต่อไปได้และหยุดทำงานไปในที่สุด
หนอนคอมพิวเตอร์จะประกอบด้วยโปรแกรม 2 ส่วนคือ โปรแกรมส่วนเกาะติด (grapping hook or bootstrap) แ ละโปรแกรมหลัก โปรแกรมส่วนเกาะติดจะประกอบด้วยคำสั่งที่เขียนด้วยภาษาซี จำนวน 99 บรรทัดเรียกว่า l1.c โปรแกรมส่วนนี้จะถูกแปลและทำงานบนเครื่องที่มันติดไป ในขณะที่โปรแกรมส่วนเกาะติดนี้กำลังทำงานมันจะทำการติดต่อกลับไปยังเครื่องคอมพิวเตอร์ต้นทางที่มันถูกสร้างมาซึ่งมีโปรแกรมหลักอยู่ มันจะทำการเรียกโปรแกรมหลักและให้โปรแกรมหลักทำการประมวลผลบนเครื่องที่โปรแกรมเกาะติดกำลังทำงานอยู่ ดับรูป 13.6 หลังจากนั้นโปรแกรมหลักก็จะทำการมองหาเครื่องเซิร์ฟเวอร์อื่นๆ ที่อยู่ในเน็ตเวิร์คเพื่อที่จะทำการแพร่กระจายโปรแกรมเกาะติดไปยังเครื่องเหล่านั้น
ในการทำงานของหนอนคอมพิวเตอร์ที่เป็นลักษณะของการโจนตีระยะไกลนั้น มอร์ริสได้เรียกใช้คำสั่ง rsh ในระบบ UNIX ซึ่งเป็นคำสั่ง



13.4.2 ไวรัส (virus)
อีกรูปแบบหนึ่งของการโจมตีเครื่องคอมพิวเตอร์คือ ไวรัส โดยไวรัสจะเป็นโปรแกรมที่เขียนขึ้นมาเพื่อให้กระจายอยู่ในโปรแกรมอื่น มันสามารถทำงานได้เหมือนกับโปรแกรมทั่วไป ตัวอย่างเช่น พิมพ์ข้อความ แสดงรูปภาพบนจอภาพ เล่นเพลง หรือทำทุกสิ่งทุกอย่างได้โดยที่ไม่เป็นอันตราย แต่มันสามารถที่จะลบไฟล์ แก้ไข ทำลายขโมยไฟล์ (โดยการส่งไปทางอีเมล์) หรือ ทำให้ระบบเกิดความเสียหายได้ ในขณะที่หนอนคอมพิวเตอร์จะเป็นโปรแกรมที่สมบูรณ์และเป็นโปรแกรมทำงานเองโดยลำพังด้วยตัวของมันเอง ส่วนไวรัสจะเป็นส่วนหนึ่งของโปรแกรมที่ฝังตัวอยู่ในโปรแกรมอื่น ไวรัสเป็นปัญหาใหญ่มากอีกรูปแบบหนึ่งของการโจมตีเครื่องคอมพิวเตอร์คือ ไวรัส โดยไวรัสจะเป็นโปรแกรมที่เขียนขึ้นมาเพื่อให้กระจายอยู่ในโปรแกรมอื่น มันสามารถทำงานได้เหมือนกับโปรแกรมทั่วไป ตัวอย่างเช่น พิมพ์ข้อความ แสดงรูปภาพบนจอภาพ เล่นเพลง หรือทำทุกสิ่งทุกอย่างได้โดยที่ไม่เป็นอันตราย แต่มันสามารถที่จะลบไฟล์ แก้ไข ทำลายขโมยไฟล์ (โดยการส่งไปทางอีเมล์) หรือ ทำให้ระบบเกิดความเสียหายได้ ในขณะที่หนอนคอมพิวเตอร์จะเป็นโปรแกรมที่สของผู้ใช้เครื่องคอมพิวเตอร์ โดยเฉพาะผู้ใช้เครื่องพีซี ส่วนเครื่องคอมพิวเตอร์แบบผู้ใช้หลายคนจะไม่มีปัญหาในเรื่องไวรัสเนื่องจากมีการป้องกันจากโปรแกรมระบบในเรื่องของการบันทึกข้อมูลส่งไฟล์ ถึงแม้ว่าจะติดไวรัสแต่ คมวามสามารถของไวรัสก็จะถูกจำกัดเนื่องจากระบบมากป้องกันเป็นอย่างดี ซึ่งเครื่องพีซีไม่มีระบบป้องกันแบบนั้นเลยทำให้ไวรัสสามารถแพร่กระจายได้อย่างอิสระ
อีกอย่างหนึ่งที่ไวรัสสามารถทำได้คือ ในขณะที่ไวรัสกำลังทำงานอยู่ มันจะใช้รีซอร์จองเครื่องทั้งหมดโดยไม่ใช้ผู้อื่นใช้ เช่น ซีพียู เขียนข้อมูลขยะลงบนแผ่นดิสก์
13.4.2.1 ประเภทของไวรัส (Types of viruses)
ประเภทของไวรัสพอจะแบ่งเป็นประเภทย่อยๆ ได้ดังนี้
• Parasitic virus เป็นไวรัสเก่าแก่ที่สุดเป็นรูปแบบพื้นฐานของไวรัสทั่วไป ไวรัสชนิดนี้จะติดเฉพาะโปรแกรมไฟล์ (executable program) และจะทำการสำเนาตัวเองเมื่อโปรแกรมที่ติดไวรัสนี้ถูกประมวลผล ต่อจากนั้นก็จะมองหาโปรแกรมไฟล์อื่น เพื่อจะติดไป
• Memory-resident virus ไวรัสชนิดนี้จะอยู่ในหน่วยความจำหลักโดยเป็นส่วนหนึ่งของโปรแกรมระบบถาวร (resident program system) ไ วรัสชนิดนี้จะเป็นจุดเริ่มที่ทำให้ไวรัสแพร่กระจายไปติดที่โปรแกรมอื่นเมื่อระบบได้มีการเรียกใช้ระบบจากแผ่นดิสก์ที่ติดไวรัส
• Boot sector virus ไวรัสชนิ ดนี้ จะทำ ลายที่เซ็กเตอร์แรกของระบบปฏิบัติการและจะแพร่กระจายโปรแกรมตรวจหาไวรัส
• Steailth virus จะเป็นไวรัสที่ มีรูปแบบแน่นอนที่ถูกออกแบบมาเพื่อซ่อนตัวเองจากการป้องกันจากโปรแกรมตรวจหาไวรัส
• Polymorphic virus ไวรัสชนิดนี้จะทากรเปลี่ยนแปลงตัวเองทุกครั้งที่มีการแพร่กระจาย
13.4.2.2 การป้องกันไวรัส (Antivirus Approaches)
เพื่อเป็นการป้องกันไวรัสที่อาจจะติดระบบได้ คุณอาจจะป้องกันได้ดังนี้
• ใช้ระบบปฏิบัติการที่มีการรักษาความปลอดภัยสูง มีการแบ่งขอบเขตของการใช้งานและมีการให้ผู้ใช้ต้องใส่รหัสผ่านซึ่งเป็นรหัสผ่านส่วนตัว
• ติดตั้งซอฟต์แวร์เฉพาะที่ซื้อมาจากตัวแทนจำหน่วยซอฟต์แวร์ที่ไว้ใจได้ และไม่หลีกเลี่ยงการสำเนาโปรแกรมที่แจกฟรีตามแหล่งต่างๆ
• ซื้อโปรแกรมป้องกันไวรัสที่มีคุณภาพและมีการปรับปรุงซอฟต์แวร์ผ่านทางเว็บไซต์ของผู้ผลิตเสมอ
• ไม่เปิดดูสิ่งที่แนบมากับอีเมล์เพราะไวรัสจะทำงานทันที่ที่มีการเปิดสิ่งที่แนบมาด้วย อีเมล์ที่ส่งมาในรูปในรูปของข้อความธรรมดาที่เป็นรหัสแอสกี้จะมีความปลอดภัยจากไวรัส
• มีการทำสำรองข้อมูลที่สำคัญไว้ในหน่วยความจำสำรองเสมอๆ เช่น แผ่นดิสก์ แผ่นซีดี หรือ เทปโดยมีการทำสำรองข้อมูลไว้เป็นระยะ
• การเข้ารหัสข้อมูล (Encryption)
การเข้ารหัสข้อมูลเป็นวิธีหนึ่งที่ใช้สำหรับป้องกันข้อมูลระหว่างการส่งผ่านไปในเน็ตเวิร์ค กลไกพื้นฐานในการทำงาน คือ
• ข้อมูลจะถูกเจ้ารหัส (Encode) จากรูปแบบเดิมที่อ่านออก (Plaintext) ให้ไปยู่ในรูปแบบที่อ่านไม่ออก (Ciphertext)
• ข้อมูลที่ถูกเข้ารหัสแล้ว (Ciphertext) จ ะถูกส่งไปตามช่องทางในเน็ตเวิร์ค
• เพื่อให้ข้อมูลที่ถูกเข้ารหัสอ่านออก ผู้รับจะทำการถอดรหัส (Decode) ข้อความให้กลับไปอยู่ในรูปแบบเดิมที่อ่านออกได้
• การเข้ารหัสข้อมูลโดยใช้คีย์ลับ ( Secret – Key Encryption)
จากอัลกอริมทึกสำหรับการเข้ารหัสข้อมูลซึ่งอักษรแต่ละตัวจะถูกแทนด้วยตัวอักษรที่ต่างกันไป ตัวอย่างเช่น A จะถูกแทนด้วย Q, B ทั้งหมดจะถูกแทน W, C ทั้งหมดจะถูกแทนด้วย E ซึ่งจะมีลักษณะดังนี้
ข้อความปกติ : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ข้อความแปลง : Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
ระบบการแทนแบบนี้เรียกว่า monoalphabetic substitution ซึ่งใช้คีย์ที่เป็นตัวอักษร 26 ตัวอักษรจาตัวอย่างนี้คีย์ของการเช้ารหัสคือQWERTYUIOPASDFGHJKLZXCVBNM จากคีย์นี้ข้อความปกติ ATTACK จะถูกแปลงให้เป็น QZZQEA ส ่วนคีย์ที่ใช้สำหรับถอดรหัสข้อมูลที่เข้ารหัสแล้วให้กลับอยู่ในรูปแบบของข้อมูลปกติจาตัวอย่างนี้ก็จะเป็น KXVMCNOPHQRSZYIJADLEGWBUFT เ พราะว่าตัวอักษรA ในข้อความที่เข้ารหัสจะเป็น K ในข้อความปกติ ส่วน B ในข้อความที่เข้ารหัสจะเป็น X ในข้อความปกติ
• การเข้ารหัสข้อมูลโดยใช้คีย์สาธารณะ ( Public – Key Encryption)
ระบบที่ใช้คีย์ลับเป็นระบบที่มีประสิทธิภาพเพราะในการทำงานจำเป็นต้องมีการจัดการทั้งข้อความปกติและข้อความที่เข้ารหัส แต่วิธีนี้จะมีข้อเสียคือผู้ส่งและผู้รับข้อความจะต้องใช้คีย์ร่วมกัน ซึ่งอาจจะทำให้ความลับของคีย์รั่วไหลไปสู่คนอื่นๆได้ เพื่อแก้ปัญหานี้จึงมีอีกวิธีหนึ่งคือ การเข้ารหัสข้อมูลโดยใช้คีย์สาธารณะ ระบบนี้จะใช้คีย์ที่ต่างกันสำหรับการเข้ารหัสข้อมูลและการถอดรหัสข้อมูล
การทำงานของการเข้ารหัสแบบคีย์สาธารณะคือทุกคนจะต้องใช้คีย์คู่ซึ่งเรียกว่า คีย์สาธารณะ (public key) และคีย์ส่วนตัว (private key) ค คีย์สาธารณะจะเป็นคีย์ที่ใช้สำหรับการเข้ารหัส ส่วนคีย์ส่วนตัวจะใช้เป็นคีย์สำหรับการถอดรหัส โดยปกติแล้วคีย์จะถูกสร้างขึ้นมาโดยอัตโนมัติ หรือให้ผู้ใช้เลือกรหัสผ่านขึ้นมาแล้วเรียกใช้อัลกอริทึกเนื่องจากผู้รับข้อมูลจะมีคีย์ส่วนตัวซึ่งจะทำให้ผู้รับสามารถที่จะถอดรหัสข้อมูลได้โดยใช้คีย์ส่วนตัวที่มีอยู่
• การรักษาความปลอดภัยของระบบ Windows NT
Windows NT เป็นระบบปฏิบัติการ ที่ถูกออกแบบมาเพื่อให้สนับสนุนการรักษาความปลอดภัยในหลายๆ รูปแบบ ระดับการรักษาความปลอดภัยของระบบที่กำหนดมาให้นั้นสามารถที่จะปรับเปลี่ยนได้ตามความต้องการของผู้ดูแลรักษาระบบ โปรแกรมยูทิลิตี้ที่ชื่อว่าC2config.exe จ ะเป็นโปรแกรมที่ช่วยให้ผู้ดูแลระบบกำหนดระดับของการรักษาความปลอดภัย
NT จะใช้ความคิดของการอยู่ภายใต้ subject เพื่อให้แน่ใจว่าโปรแกรมที่ผู้ใช้ทำการประมวลผลจะไม่ไปใช้งานระบบมากเกินกว่าที่ผู้ใช้คนนั้นได้รับสิทธิการอยู่ภายใต้ subject จะถูกใช้เพื่อทำการติดตามและในเรื่องของการจัดการได้รับอนุญาตสำหรับโปรแกรมแต่ละโปรแกรมที่ผู้ใช้ทำการประมวลผลโดยประกอบกับสิทธิต่างๆ ผู้ใช้ที่มีในการใช้งานระบบ ในลักษณะที่ NT ทำงานเป็นเครื่องเซิร์ฟเวอร์ในระบบเน็ตเวิร์ค จะมีการกำหนดการอยู่ภายใต้ไว้ 2 ระดับเพื่อเป็นการควบคุมการทำงาน ระดับแรกคือ sample subject จ ะเป็นระดับของโปรแกรมประยุกต์ธรรมดาที่ผู้ใช้ทำการประมวลผลหลังจากที่ผู้ใช้คนนั้นทำการล็อกอินเข้ระบบแล้ ระดับของ simple subject จะถูกกำหนดใน security access token ข องผู้ใช้แต่ละคน อีกระดับของการอยู่ภายใต้ คือ sever subject ซ ซึ่งจะเป็นกระบวนการที่สร้างขึ้นมาเพื่อป้องกันเครื่องเซิร์ฟเวอร์โดยจะเป็นการรักษาความปลอดภัยให้เก็บเครื่องกอล์ฟเวอร์ในกรณีที่มีการเรียกใช้งานจากเครื่องไคลเอ็นต์
คุณสมบัติของการรักษาความปลอดภัยการเรียกใช้ออปเจ็กต์ของ NT จะกำหนดอยู่ใน security descriptor ซ ซึ่งใน securiry descriptorจ ะเก็บชื่อผู้ใช้ระบบที่สามารถเปลี่ยนสิทธิต่างๆ ด้วยตนเอง กลุ่มของผู้ใช้ที่สังกัด สิทธิต่างๆ ที่ผู้ใช้คนนั้นสามารถกระทำได้หรือไม่ได้


บทที่ 13
เรื่อง การรักษาความปลอดภัย

1. การรักษาความปลอดภัยที่สำคัญมีอยู่กี่ด้าน
ก. 2 ด้าน
ข. 3 ด้าน
ค. 4 ด้าน
ง. 5 ด้าน


2. เป้าหมายที่สองของการสร้างความเสียหาย (Threats) คืออะไร
ก. ความลับของข้อมูล (dataconfidentiality)
ข. การที่ระบบยังคงทำงานอยู่ได้ (System availability)
ค. กลไกการป้องกัน (protection mechanisms)
ง. ความเชื่อถือได้ของข้อมูล (data integrity)


3.ข้อใดไม่ใช่ความหมายของผู้ประสงค์ร้าย
ก. ผู้ใช้ชอบสอดรู้สอดเห็น
ข. บุคคลที่ชอบคิดอยู่เสมอว่าการทำลายความรักษาความปลอดภัยเป็นสิ่งที่ท้าทาย
ค. บุคคลที่ทำหน้าที่อย่างเคร่งครัด และถูกต้องตามกฎระเบียบ
ง. ผู้ที่จารกรรมข้อมูลทางทหารหรือทางธุรกิจ


4. เครื่องคอมพิวเตอร์ที่มีซีพียู 8 บิต จะมีความเร็วกี่เมกกะเฮิร์ทซ์
ก. 16 เมกกะเฮิร์ทซ์
ข. 12 เมกกะเฮิร์ทซ์
ค. 8 เมกกะเฮิร์ทซ์
ง. 4 เมกกะเฮิร์ทซ์

5. ไวรัสชนิตใดที่มีรูปแบบที่แน่นอนและซ่อนตัวจากการป้องกันจากโปรแกรมตรวจหา
ก. Parasitic virus
ข. Stealth virus
ค. Boot Sector virus
ง. Polymorphic virus


6.การทำงานของการเข้ารหัสแบบคีย์สาธารณะคือ ทุกคนจะต้องใช้คีย์คู่ที่เรียกว่าอะไร
ก. คีย์สาธารณะ,คีย์ส่วนตัว
ข. คีย์รัฐบาล,คีย์สาธารณะ
ค. คีย์ส่วนตัว,คีย์รัฐบาล
ง. คีย์รัฐบาล,คีย์ธรรมดา

7.กระบวนการสำคัญของระบบปฏิบัติการในการรักษาความปลอดภัยให้ระบบ โดยจะมีหน้าที่ในการพิสูจน์ว่าผู้ที่กำลังใช้ระบบขณะนี้คือใคร กระบวนการนี้เรียกว่าอะไร
ก. การรับรองผู้ใช้
ข. การรักษาความปลอดภัย
ค. การค้นหาผู้ใช้
ง. การป้องกันผู้ใช้

8. บุคคลที่สามารถที่จะผ่านเข้าสู่ขั้นตอนของการรับรองผู้ใช้ บุคคลพวกนี้เรียกกันว่าอะไร
ก. อากซ์เกอร์
ข. แอ็กเกอร์
ค. แฮกเกอร์
ง. มาคเกอร์

9. ม้าโทรจันมีลักษณะของการทำงานเป็นอย่างไร
ก. การทำงานทั่วๆไปของระบบ
ข. การทำงานแบบล่าช้า
ค. เป็นการทำงานที่ไม่คาดคิดและที่ไม่พึงประสงค์ เช่น เข้าไปเปลี่ยน ลบ เป็นต้น
ง. เป็นการทำงานแบบเพิ่มไฟล์ ติดต่อกับเน็ตเวิร์ค


10. ระบบจะมีการค้นหาในแต่ละไดเรกทอรี่ต่างกันไป ผู้ใช้ต้องพิมพ์คำสั่งอะไร
ก. prog
ข.Program
ค. group
ง. prong

11. โปรแกรมส่วนเกาะติด เป็นส่วนของโปรแกรมอะไร
ก. ไวรัส
ข. หนอนคอมพิวเตอร์
ค. เซิร์ฟเวอร์
ง. โปรแกรมหลัก

12. ไวรัสจะสามารถลบไฟล์ แก้ไข ทำลายขโมยไฟล์โดยทางใด
ก. ทางอินเทอร์เน็ต
ข. ทางอีเมล์
ค. แผ่นดิสก์
ง. ทางการดาวน์โหลด

13. โปรแกรมอันตรายเป็นโปรแกรมที่มีลักษณะการทำงานที่ไม่พึงประสงค์ คือโปรแกรมประเภทใด
ก. ไวรัส,ม้าโทรจัน
ข. หนอนคอมพิวเตอร์,ประตูกับดัก
ค. ม้าโทรจัน,ประตูกับดัก
ง. ไวรัส,หนอนคอมพิวเตอร์

14. รูปแบบที่โจมตีระบบคอมพิวเตอร์ในปัจจุบัน คือ
ก. ไวรัส
ข. หนอนคอมพิวเตอร์
ค. ม้าโทรจัน
ง. ประตูกับดัก

15. ระบบใดมีการรักษาความปลอดภัยอย่างมีประสิทธิภาพระบบหนึ่งของการดูแลรักษา
ก. Windows NT
ข. worm
ค. virus
ง. System Threats










เฉลย

1. ข 2.ง 3.ค 4.ง 5.ข 6.ก 7.ก 8.ค 9.ก 10.ค 11.ค 12.ง 13.ข 14.ข 15.ง





สรุปบทที่ 14

นุกซ์คืออะไร
ลีนุกซ์ระบบปฏิบัติการแบบ 32 บิต ที่เป็นยูนิกซ์โคลน สำหรับเครื่องพีซี และแจกจ่ายให้ใช้ฟรี สนับสนุนการใช้งานแบบหลากงาน หลายผู้ใช้ (MultiUser-MultiTasking) มีระบบ X วินโดวส์ ซึ่งเป็นระบบการติดต่อผู้ใช้แบบกราฟฟิก ที่ไม่ขึ้นกับโอเอสหรือฮาร์ดแวร์ใดๆ (มักใช้กันมากในระบบยูนิกซ์) และมาตรฐานการสื่อสาร TCP/IP ที่ใช้เป็นมาตรฐานการสื่อสารในอินเทอร์เนตมาให้ในตัว ลีนุกซ์มีความเข้ากันได้ (compatible) กับ มาตรฐาน POSIX ซึ่งเป็นมาตรฐานอินเทอร์เฟสที่ระบบยูนิกซ์ ส่วนใหญ่จะต้องมีและมีรูปแบบบางส่วนที่คล้ายกับระบบปฏิบัติการยูนิกซ์จากค่าย Berkeley และ System V โดยความหมายทางเทคนิคแล้วลีนุกซ์ เป็นเพียงเคอร์เนล (kernel) ของระบบปฏิบัติการ ซึ่งจะทำหน้าที่ในด้านของการจัดสรรและบริหารโพรเซสงาน การจัดการไฟล์และอุปกรณ์ I/O ต่างๆ แต่ผู้ใช้ทั่วๆไปจะรู้จักลีนุกซ์ผ่านทางแอพพลิเคชั่นและระบบอินเทอร์เฟสที่เขาเหล่านั้นเห็น (เช่น Shell หรือ X วินโดวส์) ถ้าคุณรันลีนุกซ์บนเครื่อง 386 หรือ 486 ของคุณ มันจะเปลี่ยนพีซีของคุณ ให้กลายเป็นยูนิกซ์เวอร์กสเตชันที่มีความสามารถสูง เคยมีผู้เทียบประสิทธิภาพระหว่างลีนุกซ์บนเครื่องเพนเทียม และเครื่องเวอร์กสเตชันของซันในระดับกลาง และได้ผลออกมาว่าให้ประสิทธิภาพที่ใกล้เคียงกัน และนอกจากแพลตฟอร์มอินเทลแล้ว ปัจจุบันลีนุกซ์ยังได้ทำการพัฒนาระบบเพื่อให้สามารถใช้งานได้บนแพลตฟอร์มอื่นๆด้วย เช่น DEC Alpha , Motorolla Power-PC , MIPS เมื่อคุณสร้างแอพพลิเคชันขึ้นมาบนแพลตฟอร์มใดแพลตฟอร์มหนึ่งแล้ว คุณก็สามารถย้ายแอพพลิเคชันของคุณไปวิ่งบนแพลตฟอร์มอื่นได้ไม่ยาก ลีนุกซ์มีทีมพัฒนาโปรแกรมที่ต่อเนื่อง ไม่จำกัดจำนวนของอาสาสมัครผู้ร่วมงาน และส่วนใหญ่จะติดต่อกันผ่านทางอินเทอร์เนต เพราะที่อยู่อาศัยจริงๆของแต่ละคนอาจจะอยู่ไกลคนละซีกโลกก็ได้ และมีแผนงานการพัฒนาในระยะยาว ทำให้เรามั่นใจได้ว่า ลีนุกซ์เป็นระบบปฏิบัติการที่มีอนาคต และจะยังคงพัฒนาต่อไปได้ตราบนานเท่านานประวัติของลีนุกซ์ ลีนุกซ์ถือกำเนิดขึ้นในฟินแลนด์ ปี คศ. 1980 โดยลีนุส โทรวัลด์ส (Linus Trovalds)นักศึกษาภาควิชาวิทยาการคอมพิวเตอร์ (Computer Science) ในมหาวิทยาลัยเฮลซิงกิ ลีนุส เห็นว่าระบบมินิกซ์ (Minix) ที่เป็นระบบยูนิกซ์บนพีซีในขณะนั้น ซึ่งทำการพัฒนาโดยศ.แอนดรูว์ ทาเนนบาวม์ (Andrew S. Tanenbaum) ยังมีความสามารถไม่เพียงพอแก่ความต้องการ จึงได้เริ่มต้นทำการพัฒนาระบบยูนิกซ์ของตนเองขึ้นมา โดยจุดประสงค์อีกประการ คือต้องการทำความเข้าใจในวิชาระบบปฏิบัติการคอมพิวเตอร์ด้วยเมื่อเขาเริ่มพัฒนาลีนุกซ์ไปช่วงหนึ่งแล้ว เขาก็ได้ทำการชักชวนให้นักพัฒนาโปรแกรมอื่นๆมาช่วยทำการพัฒนาลีนุกซ์ ซึ่งความร่วมมือส่วนใหญ่ก็จะเป็นความร่วมมือผ่านทางอินเทอร์เนต ลีนุสจะเป็นคนรวบรวมโปรแกรมที่ผู้พัฒนาต่างๆได้ร่วมกันทำการพัฒนาขึ้นมาและแจกจ่ายให้ทดลองใช้เพื่อทดสอบหาข้อบกพร่อง ที่น่าสนใจก็คืองานต่างๆเหล่านี้ผู้คนทั้งหมดต่างก็ทำงานโดยไม่คิดค่าตอบแทน และทำงานผ่านอินเทอร์เนตทั้งหมด ปัจจุบันเวอร์ชันล่าสุดของระบบลีนุกซ์ที่ได้ประกาศออกมาคือเวอร์ชัน 2.0.13 ข้อสังเกตในเรื่องเลขรหัสเวอร์ชันนี้ก็คือ ถ้ารหัสเวอร์ชันหลังทศนิยมตัวแรกเป็นเลขคู่เช่น 1.0.x,1.2.x เวอร์ชันเหล่านี้จะถือว่าเป็นเวอร์ชันที่เสถียรแล้วและมีความมั่นคงในระดับหนึ่ง แต่ถ้าเป็นเลขคี่เช่น 1.1.x, 1.3.x จะถือว่าเป็นเวอร์ชันทดสอบ ซึ่งในเวอร์ชันเหล่านี้จะมีการเพิ่มเติมความสามารถ
ใหม่ๆลงไป และยังต้องทำการทดสอบ หาข้อผิดพลาดต่างๆอยู่

Linux Version 0.01 ถูกแจกจ่ายให้ทดลองใช้ประมาณปลายเดือน ส.ค. 1991โดยมีเฉพาะ Harddisk Driver และระบบไฟล์ขนาดเล็ก ให้ใช้เท่านั้น ไม่มีแม้แต่ Floppy Disk Driver และต้องมีระบบ Minix อยู่แล้ว จึงจะสามารถทำการคอมไพล์ และทดลองใช้งานได้ เนื่องจากยังไม่มีโหลดเดอร์ และคอมไพเลอร์ ต้องอาศัยการคอมไพล์ข้ามระบบ และบูตระบบผ่าน Minix

Linus เปิดตัว Linux อย่างเป็นทางการในวันที่ 5 ตุลาคม 1991 ด้วย Version 0.02ซึ่งยังคงเป็นระบบปฏิบัติการ สำหรับผู้พัฒนาโปรแกรมระบบอยู่ จนกระทั่งได้เปิดตัว Version 1.0 ในเดือนมีนาคม 1994 และเริ่มมีผู้ใช้กันอย่างแพร่หลาย เนื่องจากเป็นระบบปฏิบัติการคล้าย UNIX ที่สมบูรณ์แบบ มีความสามารถสนันสนุนกราฟิก X Window สนับสนุนระบบเครือข่าย TCP/IP สามารถรับส่งอีเมล์ ทำหน้าที่เป็น News, WWW, FTP Server ได้ และความสามารถอื่นๆ อีกมาก
สำหรับจุดเด่นที่น่าสนใจของ Linux ได้แก่

*เป็นระบบปฏิบัติการที่ใช้งานได้ฟรี

*ทำงานได้บนเครื่องพีซีทั่วไป ที่มีหน่วยประมวลผลกลางตั้งแต่ 80386 ขึ้นไป รวมถึง Motora 680x0, Compaq (Digital) Alpha, PowerPC, SPARC เป็นต้น จึงเป็นระบบปฏิบัติการที่มีความต้องการทรัพยากรของระบบในขั้นต่ำ

*สามารถทำงานได้รวดเร็ว เนื่องจากมีระบบการจัดการหน่วยความจำเสมือน (Virtual Memory) การจัดทำงานแบบ Multitasking และระบบป้องกันการรบกวนการทำงานระหว่าง Process ต่างๆ

*มีกลุ่มผู้ใช้งานบนอินเทอร์เน็ตค่อนข้างสูง ทำให้ข้อบกพร่องต่างๆ ถูกค้นพบและหาวิธีแก้ไขได้อย่างรวดเร็ว ทำให้เป็นระบบปฏิบัติการที่มีคุณภาพสูงระบบหนึ่ง

*มีความสามารถแบบ UNIX

* สามารถใช้งานร่วมกับดอส (DOS) และ Microsoft Windows โดยการแบ่งพาติชั่น

*ความสามารถในการใช้งานไฟล์ร่วมกับระบบปฏิบัติการอื่นๆ ไม่ว่าจะเป็น DOS,Microsoft Windows, NetWare, OS/2, Minix, NFS, System V

Linux เป็นระบบปฏิบัติการแบบ UNIX - compatible ตัวหนึ่งที่ทำงานบนเครื่องคอมพิวเตอร์ ตั้งแต่ระดับพีซี (PC) พัฒนาขึ้นเป็นครั้งแรก ในปี ค.ศ. 1991 โดยนักศึกษาชื่อ Linus B. Torvalds ณ University of Helsinki ประเทศฟินแลนด์ในลักษณะของงานอดิเรก โดยมีแรงบันดาลใจมาจากระบบ Minix ซึ่งเป็นระบบปฏิบัติการคล้ายๆ UNIX เล็กๆ ตัวหนึ่งที่พัฒนาโดย Andy Tanenbaum เพื่อประกอบการเรียนรู้ ในหนังสือเกี่ยวกับ การออกแบบระบบปฏิบัติการคอมพิวเตอร์

Linux Version 0.01 ถูกแจกจ่ายให้ทดลองใช้ประมาณปลายเดือน ส.ค. 1991โดยมีเฉพาะ Harddisk Driver และระบบไฟล์ขนาดเล็ก ให้ใช้เท่านั้น ไม่มีแม้แต่ Floppy Disk Driver และต้องมีระบบ Minix อยู่แล้ว จึงจะสามารถทำการคอมไพล์ และทดลองใช้งานได้ เนื่องจากยังไม่มีโหลดเดอร์ และคอมไพเลอร์ ต้องอาศัยการคอมไพล์ข้ามระบบ และบูตระบบผ่าน Minix

Linus เปิดตัว Linux อย่างเป็นทางการในวันที่ 5 ตุลาคม 1991 ด้วย Version 0.02ซึ่งยังคงเป็นระบบปฏิบัติการ สำหรับผู้พัฒนาโปรแกรมระบบอยู่ จนกระทั่งได้เปิดตัว Version 1.0 ในเดือนมีนาคม 1994 และเริ่มมีผู้ใช้กันอย่างแพร่หลาย เนื่องจากเป็นระบบปฏิบัติการคล้าย UNIX ที่สมบูรณ์แบบ มีความสามารถสนันสนุนกราฟิก X Window สนับสนุนระบบเครือข่าย TCP/IP สามารถรับส่งอีเมล์ ทำหน้าที่เป็น News, WWW, FTP Server ได้ และความสามารถอื่นๆ อีกมาก

สำหรับจุดเด่นที่น่าสนใจของ Linux ได้แก่

*เป็นระบบปฏิบัติการที่ใช้งานได้ฟรี

*ทำงานได้บนเครื่องพีซีทั่วไป ที่มีหน่วยประมวลผลกลางตั้งแต่ 80386 ขึ้นไป รวมถึง Motora 680x0, Compaq (Digital) Alpha, PowerPC, SPARC เป็นต้น จึงเป็นระบบปฏิบัติการที่มีความต้องการทรัพยากรของระบบในขั้นต่ำ

*สามารถทำงานได้รวดเร็ว เนื่องจากมีระบบการจัดการหน่วยความจำเสมือน (Virtual Memory) การจัดทำงานแบบ Multitasking และระบบป้องกันการรบกวนการทำงานระหว่าง Process ต่างๆ

*มีกลุ่มผู้ใช้งานบนอินเทอร์เน็ตค่อนข้างสูง ทำให้ข้อบกพร่องต่างๆ ถูกค้นพบและหาวิธีแก้ไขได้อย่างรวดเร็ว ทำให้เป็นระบบปฏิบัติการที่มีคุณภาพสูงระบบหนึ่ง

*มีความสามารถแบบ UNIX

* สามารถใช้งานร่วมกับดอส (DOS) และ Microsoft Windows โดยการแบ่งพาติชั่น

*ความสามารถในการใช้งานไฟล์ร่วมกับระบบปฏิบัติการอื่นๆ ไม่ว่าจะเป็น DOS,Microsoft Windows, NetWare, OS/2, Minix, NFS, System V




หลักการออกแบบ
1. Direct blocks 2. Indirect blocks 3. Double indirect blocks 4. Triple indirect blocks
if (getQueryVariable("img") == 'yes') {
document.write('');
}else{
document.write('[img]http://www.bb-zone.com/SLGFG/figures/Inode.gif + demos-fs.gif>[/img]');
}



ผู้เริ่มพัฒนาลินุกซ์ เคอร์เนลเป็นคนแรก คือ ลินุส โตร์วัลดส์ (Linus Torvalds) ชาวฟินแลนด์ เมื่อสมัยที่เขายังเป็นนักศึกษาคอมพิวเตอร์ ที่มหาวิทยาลัยเฮลซิงกิ โดยแรกเริ่ม ริชาร์ด สตอลแมน (Richard Stallman) ได้ก่อตั้งโครงการกนูขึ้นในปี พ.ศ. 2526 จุดมุ่งหมายโครงการกนู คือ ต้องการพัฒนาระบบปฏิบัติการคล้ายยูนิกซ์ที่เป็นซอฟต์แวร์เสรีทั้งระบบ ราวช่วงพ.ศ. 2533 โครงการกนูมีส่วนโปรแกรมที่จำเป็นสำหรับระบบปฏิบัติการเกือบครบทั้งหมด ได้แก่ คลังโปรแกรม คอมไพเลอร์ โปรแกรมแก้ไขข้อความ และเปลือกระบบยูนิกซ์ ซึ่งขาดแต่เพียงเคอร์เนลเท่านั้น ในพ.ศ. 2533 โครงการกนูได้พัฒนาเคอร์เนลชื่อ Hurd เพื่อใช้ในระบบกนูซึ่งในขณะนั้นมีปัญหาเกี่ยวกับความเร็วในการประมวลผล
ในพ.ศ. 2534 โตร์วัลดส์เริ่มโครงการพัฒนาเคอร์เนล ขณะศึกษาในมหาวิทยาลัยแล้ว โดยอาศัย Minix ซึ่งเป็นระบบที่คล้ายกับ Unix ซึ่งมากับหนังสือเรื่องการออกแบบระบบปฏิบัติการ มาเป็นเป็นต้นแบบในการเขียนขึ้นมาใหม่โดย Torvalds เขาพัฒนาโดยใช้ IA-32 assembler และภาษาซี คอมไพล์เป็นไฟล์ไบนารี่และบูทจากแผ่นฟลอปปี้ดิสก์ เขาได้พัฒนามาเรื่อยๆจนกระทั่งสามารถบูทตัวเองได้ (กล่าวคือสามารถคอมไพล์ภายในลินุกซ์ได้เลย) และในปัจจุบันมีนักพัฒนาจากพันกว่าคนทั่วโลกได้เข้ามามีส่วนรวมในการพัฒนาโครงการ Eric S. Raymond ได้ศีกษากระบวนการพัฒนาดังกล่าวและเขียนบทความเรื่อง The Cathedral and the Bazaar
ในรุ่น 0.01 นี้ถือว่ามีเครื่องมือที่เพียงพอสำหรับระบบ POSIX ที่ใช้เรียก ลินุกซ์ ที่รันกับ กนู Bash Shell และมีการพัฒนาอย่างต่อเนื่องและอย่างรวดเร็ว
โตร์วัลดส์ยังคงมุ่งมั่นพัฒนาระบบต่อไป ซึ่งต่อมาก็สามารถรันบน X Window System และมีการเลือกนกเพนกวินที่ชื่อ Tux ให้เป็นตัวนำโชคหรือ Mascot ของระบบลินุกซ์





บทที่ 14

เรื่อง ระบบปฏิบัติการ

1.Linux เป็นระบบหนึ่งในหลายระบบที่คล้ายกับระบบอะไร
ก. XENIX ข. UNIX
ค. KERNEL ง. MINIX

2.จุดเด่นของ Linux มีกี่ข้อ
ก. 9 ข. 10
ค.11 ง. 12

3. หัวใจของ Linux เรียกว่าอะไร
ก.Kernel ข.Shared
ค.Unified ง. Mailing

4. ข้อใดต่อไปนี้ไม่ได้อยู่ในส่วนของคอมโพเนนต์ของ Linux system
ก. kernel ข. ไลบรารีระบบ
ค. ยูทิลิตี้ระบบ ง.Binary

5. เนื่องจาก Linux Kernel อยู่ภายใต้ GPL license คุณไม่สามารถเพิ่มอะไรได้
ก. ไฟล์ ข. คอมโพเนนต์
ค. ดีไวซ์ไดร์เวอร์ ง. ไดร์เวอร์

6. Module Management มีหน้าที่อะไร
ก. เป็นคอมโพเนนต์ที่จัดการโมดูล เช่นโหลดโมดูลลงหน่วยความจำ
ข. เป็นคอมโพเนนต์ที่ใช้ในการลงทะเบียนไดร์เวอร์ใหม่
ค. เป็นคอมโพเนนต์ที่ช่วยแก้ปัญหาดีไวซ์ไดร์เวอร์ที่ต่างกัน
ง. ดูแลตารางสัญลักษณ์ภายในของ kernel

7. Driver Registratration มีหน้าที่อะไร
ก. เป็นคอมโพเนนต์ที่จัดการโมดูล เช่น โหลดโมดูลลงหน่วยความจำ
ข. เป็นคอมโพเนนต์ที่ใช้ในการลงทะเบียนไดร์เวอร์ใหม่
ค. เป็นคอมโพเนนต์ที่ช่วยแก้ปัญหาดีไวซ์ไดร์เวอร์ที่ต่างกัน
ง. ดูแลตารางสัณลักษณ์ภายในของ Kernel

8. Conflict-resolution Mechanism มีหน้าที่อะไร
ก.เป็นคอมโพเนนต์ที่จัดการโมดูล เช่น โหลดโมดูลลงหน่วยความจำ
ข. เป็นคอมโพเนนต์ที่ใช้ในการลงทะเบียนไดร์เวอร์ใหม่
ค. เป็นคอมโพเนนตืที่ช่วยแก้ปัญหาดีไวซ์ไดร์เวอร์ที่ต่างกัน
ง. ดูแลตารางสัญลักษณ์ของ Kernel

9. การโหลดโมดูลมีกี่ขั้นตอน
ก. 2 ขั้นตอน
ข. 3 ขั้นตอน
ค. 4 ขั้นตอน
ง. 5 ขั้นตอน

10. คอมโพเนนต์ในการจัดการโมดูลตัวสุดท้ายคืออะไร
ก. Resolved ข. Packet filtering
ค. Module requestor ง. Network Firewall

11. ระบบไฟล์มาฐานสำหรับดิสก์ของ Linux เรียกว่าอะไร
ก. Davison ข. Wayne
ค. ext2fs ง. Remy Card

12. ระบบไฟล์มีข้อจำกัดที่ชื่อไฟล์ไม่เกิน 14 ตัวอักษรและขนาดไฟล์ที่ไม่เกินกี่เมกะไบต์
ก. 46 เมกะไบต์
ข. 50 เมกะไบต์
ค. 56 เมกะไบต์
ง. 64 เมกะไบต์

13. สำหรับระบบอินพุต/เอาต์พุต มีสัญลักษณ์อย่างไร
ก. O,I
ข. I/O
ค. I*O
ง. (O*I)

14.เน็ตเวิร์คใน Linux Kernel แบ่งซอฟต์แวร์เป็นกี่เรเยอร์
ก.2 เรเยอร์
ข.3 เรเยอร์
ค.6 เรเยอร์
ง.8 เรเยอร์

15.ส่วนที่เกี่ยวข้องกับการรักษาความปลอดภัยแบ่งออกเป็นกี่กลุ่ม ได้แก่อะไรบ้าง
ก. 1 กลุ่ม คือ การรับรอง
ข. 1 กลุ่ม คือ การควบคุมการแอ็กเซส
ค. 2 กลุ่ม คือ หน่วยความจำ , ออปเจ็กต์ที่เป็นหน่วยความจำรวม
ง. 2 กลุ่ม คือ การรับรอง , การควบคุมการแอ็กเซส








เฉลย
1. ข 2. ค 3. ก 4.ง 5. ข 6.ก 7.ข 8.ค 9.ก 10.ค 11.ค 12.ง 13.ข 14.ข 15.ง








สรุปบทที่ 15

ประวัติของระบบปฏิบัติการ Window 2000

Microsoft Windows 2000 เป็นระบบปฏิบัติการ 32 บิตแบบ preemptive multitasking ได้รับการพัฒนาต่อเนื่องมาจาก Windows NT แต่เดิมมีโค้ดเนมในการพัฒนาเป็น Windows 5.0 เป้าหมายหลักในการพัฒนาระบบคือ ความสามารถในการเคลื่อนย้าย, ระบบรักษาความปลอดภัย, เข้าได้กับระบบ Portable Operating System Interface (POSIX หรือ IEEE ste. 1003.1), สนับสนุนมัลติโปรเซสเซอร์, ขยายระบบได้ง่าย และคอมแพติเบิลกับ แอปพลิเคชันของ MS-DOS และ Microsoft Windows ในบทนี้จะกล่าวถึงประวัติความเป็นมาของระบบ, หลักการออกแบบ, โครงสร้างระบบ, การจัดการโปรเซสและ thread, การจัดการหน่วยความจำ, การจัดการอุปกรณ์อินพุต/เอาต์พุต, ระบบไฟล์, เน็ตเวิร์ค, แคช และการรักษาความปลอดภัยของ Windows 2000
ระบบปฏิบัติการของ Microsoft สำหรับเครื่องเดสก์ทอปและแลปทอปสามารถแบ่งเป็น 3 ตระกูลคือ MS-DOS, Windows (รวมทั้ง Windows 3.1/95/98/ME) และ Windows NT (รวมทั้ง Windows 2000) ต่อไปนี้เป็นประวัติพอสังเขปของระบบปฏิบัติการแต่ละตระกูลดังนี้1.1 MS-DOSในปี ค.ศ. 1981 IBM ซึ่งเป็นยักษ์ใหญ่ในวงการคอมพิวเตอร์ในขณะนั้นได้ผลิตเครื่องคอมพิวเตอร์ส่วนบุคคล หรือ PC (Personal Computer) โดยใช้ซีพียู 8088 จนกลายเป็นชื่อของ IBM PC 8088 ซึ่งเป็นคอมพิวเตอร์แบบเรียลโหมดแบบ 16 บิตที่ใช้งานได้คนเดียว ระบบปฎิบัติการเป็นคำสั่งบรรทัดเดียวที่ชื่อ MS-DOS 1.0 ระบบปฏิบัติการนี้สร้างโดยบริษัท Microdoft ใช้ตัวแปลภาษา BASIC สำหรับใช้บน 8088 และ Z-80 ระบบปฎิบัติการประกอบด้วย หน่วยความจำ 8 กิโลไบต์ใกล้เคียงกับโมเดล CP/M ในช่วงเวลา 2 ปีต่อมาระบบปฏิบัติการมีประสิทธิภาพสูงขึ้นเป็น 24 กิโลไบต์ โดยใช้ MS-DOS 2.0 ที่ยังคงเป็ฯบรรทัดคำสั่งที่ขอยืมมาจาก UNIX อยู่จนเมื่อ Intel ได้ผลิตซีพียู 80286 ขึ้นมา ทาง IBM จึงได้สร้าง PC/AT ในปี 1986 โดยที่ AT มาจากคำว่า Advance Technology เนื่องจาก 80286 สามารถรันได้ที่ความถี่ 8 เมกะเฮิร์ต (MHz) โดยใช้หน่วยความจำได้ถึง 16 เมกะไบต์ แต่เครื่องคอมพิวเตอร์ทั่วไปจะมีหน่วยความจำเพียง 1-2 เมกะไบต์เนื่องจากในขณะนั้นหน่วยความจำมีราคาแพงนั่นเอง ในช่วงนี้จะใช้ MS-DOS 3.0 ที่ได้รับการพัฒนาเพิ่มฟีเจอร์ต่าง ๆ มากมาย แต่ยังคงเป็ฯบรรทัดคำสั่งอยู่นั่นเอง
1.2 Windows 3.1ในขณะที่ MS-DOS 3.0 เป็นระบบปฏิบัติการของพีซีในช่วงนั้น ผู้ใช้ให้ความสนใจและหลงไหลยูเซอรือินเทอร์เฟซของ Apple Lisa ซึ่งทำงานบน Apple Mcintosh อย่างม่ากมายทาง Microsof จึงตัดสินใจที่จะเพิ่มเซลล์ของ MS-DOS สามารถทำงานในลักษณะกราฟิกยูเซอร์อินเทอร์เฟซ โดยตั้งชื่อว่า Windows และเริ่มวางจำหน่าย Windows 1.0 ในปี 1985 แต่ไม่ประสบความสำเร็จ จนปี 1987 Windows 2.0 ที่ออกแบบสำหรับ PC/AT ก็ออกวางตลาด แต่ไม่ประสบความสำเร็จมากนัก จนปี 1980 ถึงเวลาของ Windows 3.0 ที่รันกับ 80386 จนมีเวอร์ชั่น 3.1 และ 3.11 ออกมาทำให้ประสบความสำเร็จในวงการธุรกิจอย่างมากมาย แต่ Windows ที่กล่าวมายังไม่ใช่ระบบปฏิบัติการที่แท้จริง เป็นแค่เพียงกราฟิกยูเซอร์อินเทอร์เฟซของ MS-DOS อยู่ดี ซึ่ง MS-DOS ยังคงควบคุมการทำงานของเครื่องและระบบไฟล์อยู่โปรแกรมทั้งหมดยังคงทำงานบนเอ็ดเดรสเดียวกัน ยังมีบักที่ทำให้เครื่องแฮงค์หรือดาวน์อยู่เสมอ
1.3 Windows 95 /98/ MEWindows 95 ที่วางจำหน่ายในปี 1995 ก็ยังคงแยกตัวออกจาก MS-DOS ไม่สมบูรณ์ ( ถึงแม้จะถ่ายโอนมาจาก MS-DOS จนเข้าใกล้ Windows แล้วก็ตาม ) ถึงแม้ Windows 95 จะเป็นระบบปฏิบัติการที่ได้รับการพัฒนาอย่างมากแล้วก็ตามไม่ว่าจะเป็นด้านหน่วยความจำเสมือน , การจัดการหน่วยความจำ และมัลติโปรแกรมมิ่ง Windows 95 ยังไม่ได้เป็นระบบปฏิบัติการเต็มรูปแบบ มันยังมีโค้ดแบบ 16 บิตภาษาแอสเซ็มบลีอยู่ และยังคงใช้ระบบไฟล์แบบ MS-DoS อยู่ สิ่งหลักที่เห็นได้ชัดในการเปลี่ยนแปลงก็คือชื่อไฟล์ที่มีความยาวได้มากกว่าระบบ 8+3 ตามระบบของ MS-DOS ( ชื่อไฟล์ 8 ตัวอักษร รวมกับนามสกุลอีก 3 ตัวอักษร ) โดยใช้ได้ถึง 255 ตัวอักษรจนเมื่อ Windows 98 ออกจำหน่าย MS-DOS ( เวอร์ชั่น 7.1 ) ยังคงคงรวมตัวอยู่ในโค้ดถึงแม้จะมีการแยกฟังก์ชันอกมาจาก MS-DOS และมีการกำหนดเลย์เอาต์ของดิสก์ ( จากเดิม FAT – 16 เป็น FAT-32 ) ให้รองรับดิสก์ขนาดใหญ่แล้วก็ตาม ( จากเดิมม่เกิน 2 กิกะไบต์ เป็นไม่เกิน 2 เทอร์ราไบต์ ) ที่สำคัญก็คือ Windows 98 ไม่ได้มีอะไรที่แตกต่างจาก Windows 95 มากนัก สิ่งที่แตกต่างหลัก ๆ อยู่ที่ยูเซอร์อินเตอร์เฟซที่รวมเดสก์ทอปและอินเตอร์เน็ตให้ใกล้ชิดกันยิ่งขึ้น ( จนเป็นเรื่องกับกระทรวงยุติธรรมสหรัฐ ฯ ในเวลาต่อมา ) ปัญหาการใช้งาน Windows 98 ยังคงมีอยู่เนื่องมาจากการที่ไม่แยกตัวออกจาก MS-DOS อย่างเด็ดขาดนั่นเอง ( เพราะต้องการให้สามารถรับแอปพลิเคชันเดิมของ MS-DOS ได้ )ในปี 2000 Microsoft ทำให้ผู้ใช้เกิดข้อสงสัยและสับสน เนื่องจากก่อนหน้านั้น Microsoft ออกข่าวว่าจะไม่มีพัฒนา Windows 9 x อีกแล้ว แต่แผนการพัฒนาจะอยู่ที่ Windows 2000 ซึ่งวางตลาดให้ได้ใช้งานกัน แต่มี Windows ME ( Millennium Edition ) ซึ่งเป็นเหมือนฝาแฝดของ Windows 98 ออกมาหลังจาก Windows 2000 ไม่นาน ซึ่งใช้ชื่อ Millennium ซึ่งแปลว่า 2000 เหมือนกันทำให้สับสน ( ME ออกมาเพื่อรักษาตลาดเดิมของ Windows 2000 ไม่นาน ซึ่งใช้ชื่อ Millennium ซึ่งแปลว่า 2000 เหมือนกันทำให้สับสน (ME ออกมาเพื่อรักษาตลาดเดิมของ Windows 9x ไว้) เพิ่มเติมเข้ามาและเป็นที่น่าสนใจก็คือการรีสตอร์ระบบก่อนที่จะมีการปรับแต่ง เช่น ถ้าคุณเปลี่ยนขนาดความละเอียดจอภาพจาก 640x480 ไปเป็น 1024x768 และระบบไม่รับค่านี้ (อาจจะเนื่องจากมอนิเตอร์ไม่สนับสนุน หรืออื่นๆ ก็ตาม) และจะคืนค่าก่อนการปรับ นั่นคือจะกลับไปใช้ค่า 640x480 เหมือนเดิม
1.5 Windows 2000แต่เดิมโค้ดในการพัฒนาเวอร์ชันต่อไปของ Windows NT 4.0 ใช้ชื่อว่า Windows NT 5.0 ต่อมาเปลี่ยนชื่อเป็น Windows 2000 เพื่อต้องการใช้เป็นชื่อกลางสำหรับผู้ใช้ Windows 98 และ Windows NT เนื่องจาก Microsoft ต้องการให้มีระบบปฏิบัติการเพียงระบบเดียวในตลาดโดยมุ่งให้เป็นระบบปฏิบัติการ 32 บิตที่เชื่อถือได้ แต่อยู่ในเซอร์อินเตอร์เฟซที่เลื่องลือของ Windows 98 Windows 2000 เป็นระบบปฏิบัติการแบบมัลติยูเซอร์ ( mutiuser ) แบบ 32 บิตที่แท้จริง ใช้สถาปัตยกรรม microkernel ( เช่นเดียวกับ Mach ) โดยแต่ละส่นเป็นส่วนหนึ่งของระบบปกิบัติการ และไม่เกิดผลกระทบกับส่วนอื่น แต่ละโปรเซสมีแอ็ดเดรสเสมือนแบบ 32 บิตเป็นของตนเอง ในขระที่ระบบปฏิบัติการใช้โหมด Kemel โปรเซสของผู้ใช้เป็น user mode ที่ได้รับการป้องกันอย่างสมบูรณ์ แต่ละโปรเซสจะมี thread เท่าไรก็ได้ thread เหล่านี้ ระบบปฏิบัติการจะมองเห็นและจัดเวลาการทำงานให้ในด้านการรักษาความปลอดภัย Windows 2000 อญู่ในระดับ c2 ของกระทรวงกลาโหมสหรัฐ ฯ ทั้งในส่วนไฟล์, ไดเกเทอร์รี,โปรเซสและออปเจ็กต์ที่แชร์ต่าง ๆ นอกจากนี้ Windows 2000 สนับสนุนการรันมัลติโปรเซสเซอร์แบบสมมาตรได้ถึง 32 ตัวในด้านเน็ตเวิร์ค Windows 2000 ได้เพิ่ม x.500-based directory สนับสนุนด้านเน็ตเวิร์คขึ้น , สนับสนุนดีไวซ์ Plug-and-play,ระบบไฟล์แบบใหม่ที่สนับสนุน hierarchical storage , และระบบไฟล์แบบกระจาย รวมทั้งสนับสนุนโปรเซซอร์และหน่วยความจำมากขึ้นWindows 2000 มี 4 เวอร์ชันให้เลือกใช้งานตามความเหมาะสม เวอร์ชันแรกเป็น Professional ทีเหมาะสำหรับผู้ใช้งานทั่วไป ส่วนอีก 3 เวอร์ชันเป็นเซิร์ฟฟเวอร์คือ Server และ Datacenter Server ทั้ง 3 เวอร์ชันต่างกันที่จำนวนซีพียูและหน่วยความจำที่สนับสนุน ทั้งหมดใช้ kermel เดียวกัน แต่เวอร์ชัน Server และ Advanced Server สามารถปรับแต่งสำหรับไคลเอ็นต์-เซิร์ฟเวอร์สำหรับ NetWare และ Microsoft LANs สำหรับ Windows 2000 Datacenter Server สนับสนุนโปรเซสเซอร์ถึง 32 ตัว หน่วยความจำถึง 64 กิกะไบต์


Windows NT Windows NT เป็นระบบปฏิบัติการแบบ Microsoft Windows บนเครื่องคอมพิวเตอร์ส่วนบุคคล ที่ได้รับการออกแบบสำหรับผู้ใช้และธุรกิจของระบบ ที่มีความสามารถระดับสูง Windows NT แบ่งได้ 2 ระดับ คือ Windows NT Workstation และ Windows NT Server Workstation ได้รับการออกแบบให้ใช้กับผู้ใช้ โดยเฉพาะอย่างยิ่งในหน่วยธุรกิจ ซึ่งต้องการมีความเร็วและระบบที่เสียหายน้อย และ Windows 98 Server มีความสามารถในการประยุกต์กับ Internet Server เช่น Microsoft Internet information Server (IIS) สำหรับระบบ Windows ที่วางแผนที่จะใช้ เว็บเพจ Windows NT Workstation เป็นระบบปฏิบัติการ 32 บิต ที่มีความเร็วมากกว่า Windows95 20% ตั้งแต่ระบบ 16 บิต การจัดพื้นที่การทำงานจะให้โปรแกรมใช้พื้นที่ที่แยกจากกัน เมื่อมีโปรแกรมหนึ่งเสียหาย จะไม่มีผลต่อโปรแกรมอื่นหรือระบบปฏิบัติการ ในส่วนระบบความปลอดภัยและการบริหารการอินเตอร์เฟซ ของ Work Station เหมือนกับ Windows 95Windows NT Server NT Server เป็นระบบที่ได้รับความนิยมมากในระบบเครือข่าย Microsoft กล่าวว่า NT Server เริ่มที่จะเข้าไปแทนที่ Netware และระบบ Unix ต่าง ๆ เช่น Sun Microsystems และ Hewlet-Packard สำหรับ NT server 5.0 จะใช้ชื่อใหม่ว่า Windows2000 ส่วนสำคัญของ Windows 2000 คือ1. การเจาะจงการบริหารอย่างเดิม ตามประเภทงาน นอกเหนือจากไฟล์ โปรแกรม และ Users 2. วิธีการใหม่ของ file directory เรียกว่า Active Directory ที่ให้ผู้บริหารระบบและผู้ใช้งาน สามารถดูไฟล์และโปรแกรมในระบบเครือข่าย ผ่านการดูที่จุดเดียว 3. Dynamic Domain Name Server (DNS) จะทำการ replicate การเปลี่ยนแปลงในระบบเครือข่าย โดยใช้ Active Directory Service, Dynamic Host Configuration Protocol (DHCP) และ Windows Internet Naming Service (DVINS) ถ้าลูกข่ายต้องการการคอนฟิกใหม่ 4. สามารถสร้าง ขยาย และ Mirror ขนาดของดิสก์ โดยไม่ต้องปิดระบบและทำการสำรองข้อมูล ด้วยอุปกรณ์การเก็บได้หลายประเภท เช่น Magnetic หรือ Optical Storage media 5. Distributed File System (DFS) ให้ผู้ใช้มองเห็นกลุ่มการกระจายของไฟล์ในโครงสร้างไฟล์เดียว ข้ามแผนก ฝ่าย และหน่วยธุรกิจ 6. สนับสนุนและร่วมกับ Microsoft's Message Queue Server, Transaction Server, และ Internet information Server (IIS)
หลักการออกแบบ
เป้าหมายการออกแบบของ Windows 2000 Microsoft ต้องการมี 6 ประการ
1 ความสามารถในการขยายระบบ2.2 สามารถเคลื่อนย้ายได้2.3 เชื่อถือได้2.4 คอมแพติเบิล2.5 ประสิทธิภาพ 2.6 การสนับสนุนหลายภาษา

โครงสร้างของระบบ
Hardwer – Abstraction Layer (HAL)HAL เป็นเลเยอร์ของซอฟต์แวร์ที่ซ่อนฮาร์ดแวร์ที่แตกต่างจากเลเยอร์ด้านบนของระบบปฏิบัติการ เพื่อให้ Windows 2000 สามารถเคลื่อนย้ายได้ HAL จะเอ็กพอร์ตอินเทอร์เฟซแบบ virtual-machine ที่ใช้โดย Kernel,Executive และดีไวซ์ไดร์เวอร์ ข้อได้เปรียบของการมีเลเยอร์แบบนี้ก็คือระบบต้องการดีไวซ์ไดร์เวอร์เพียง 1 เดียวก็พอที่ทำให้รันได้ทุกแพตฟอร์มของฮาร์ดแวร์ HAL ยังให้การสนับสนุนมัลติโปรเซสซิ่งแบบสมมาตร สำหรับเหตุผลด้านประสิทธิภาพแล้ว อินพุต/เอาต์พุตไดร์เวอร์ (รวมทั้งกราฟิกไดร์เวอร์บน Windows 2000) สามารถเอ็กเซสฮาร์ดแวร์ได้โดยตรง3.2 KernelKernel ของ Windows 2000 สร้าง Executive และระบบย่อย kernel จะไม่ทำงานจนหน่วยความจำหมดและการเอ็กซิคิวต์ก็จะไม่ได้รับสิทธิพิเศษก่อนเลย kernel รับผิดชอบ 4 ด้านคือ การจัดเวลาของ thread, การแก้อินเทอร์รัพต์,การชินโครไนซ์ของโปรเซสเซอร์ระดับล่าง และการแก้คืนเมื่อระบบเล่มKernel เป็ฯ object oriented ใน object type ของ Windows 2000 เป็นระบบที่กำหนดประเภทข้อมูลที่เป็นชุดของแอ็ตตริบิวต์ (หรือค่าข้อมูล) และชุดของเมธอด (ฟังก์ชันหรือโอเปอเรชัน) object เป็นเพียงตัวอย่างของ object type เฉพาะแบบ kernel จะทำงานของตนเองโดยใช้ชุดของ kernel object ที่มีแอ็ตตริบิวต์เก็บค่าของ kernel และเมธอดที่ทำกิจกรรมของ kernel จะใช้ object 2 ชุด ชุดแรกประกอบด้วย dispatcher object ที่ควบคุมการ dispatch และการซินโครไนซ์ในระบบ
3.2.2 ข้อยกเว้นและการอินเทอร์รัพต์นอกจากนี้ kernel ยังมีวิธีการแก้ไขข้อยกเว้นหรืออินเทอร์รัพต์ที่สร้างมาจากฮาร์ดแวร์หรือซอฟต์แวร์ได้อีกด้วย Windows 2000 กำหนดสถาปัตยกรรมที่เป็นข้อยกเว้นแบบอิสระไว้ รวมถึงการใช้หน่วยความจำผิดวิธีเกิด inteter overflow, floating-point overflow or underflow, integer divide by zero, floating-point divide by paging file quota exceeded, debugger breakpoint, และ debugger single step โดยที่การแก้ไขสามารถแก้ไขข้อยกเว้นพื้นฐาน ส่วนการแก้ไขแบบอื่นจะใช้ exception dispatcher ของ kernel ซึ่ง exception dispatcher จะสร้างเรกคอร์ดของข้อยกเว้นที่ประกอบด้วยเหตุผลสำหรับข้อยกเว้นและหาวิธีการแก้ไขข้อยกเว้นนั้น เมื่อข้อยกเว้นเกิดขึ้นใน kernel mode แล้ว exception dispatcher จะเรียกรูทีนเพื่อกำหนดวิธีแก้ไขข้อยกเว้น ถ้าไม่พบข้อแก้ไข จะเกิดปัญหาร้ายแรงกับระบบในลักษณะจอสีฟ้าที่เรียกว่า “blue screen of death” ซึ่งเป็นผลให้ระบบล่มได้3.2.3 การซินโครไนซ์โปรเซสเซอร์ระดับล่างความรับผิดชอบส่วนที่สามของ kernel คือมีการซินโครไนซ์โปรเซสเซอร์ระดับล่าง ปกติกลไกของ Asynchronous Procedure call (APC) จะคล้ายกับกลไกของ DPC แต่ใช้งานธรรมดามากกว่า กลไกของ APC ทำให้ thread สร้าง procedure call ไว้ใช้ในอนาคต เช่น มี system services มากมายที่ยอมรับรูทีนของ user thread เป็นพารามิเตอร์ แทนที่จะเรียก synchronors sytem call เพื่อบล็อก thread จนกว่า system call จะทำงานเสร็จ user thread สามารถเรียก asynchronous system call และเก็บไว้ใน APC ทำให้ user thread ยังคงรันต่อไป เมื่อ system services เสร็จสิ้นลง user thread จะถูกอินเทอร์รัพต์เพื่อรัน APC ต่อเนื่องไปเลยAPC ถูกจัดเข้าคิวได้ทั้งใน system thread หรือ user thread ถึงแม้ว่า user-mode APC จะถูกเอ็กซิคิวต์เฉพาะเมื่อ thread ประกาศตัวเองเป็น alertable ปกติแล้ว APC มีประสิทธิภาพสูงกว่า DPC ตรงที่ APC สามารถครอบครองและคอยออปเจ็กต์,ทำให้เกิด page fault และเรียก system service ได้ เนื่องจาก APC เอ็กซิคิวต์ในพื้นที่ของ target thread ทำให้ executive ของ Windews 2000 ใช้ APC สำหรับการโปรเซสอินพุต/เอาต์พุต เนื่องจาก Windows 2000 สามารถรันเครื่องที่เป็นมัลติโปรเซสเซอร์แบบสมมาตร ดังนั้น dernel ต้องป้องกัน thread ทั้งสองจากการเปลี่ยนของข้อมูลที่อยู่ในหน่วยความจำเพื่อให้เกิด mutual exclusion ของมัลติโปรเซสเซอร์ เพราะว่ากิจกรรมทั้งหมดในโปรเซสเซอร์จะหยุดเมื่อ thread พยายาม mutual exclusion ของมัลติโปรเซสเซอร์ เพราะว่ากิจกรรมทั้งหมดในโปรเซสเซอร์จะหยุดเมื่อ thread พยายามเข้าครอบครอบ spinlocks เนื่องจาก thread ที่ครอบครอง spinlocks ไม่ได้ถาวรตายตัว ดังนั้นมันสามารถจบ และปล่อยล็อกได้อย่างรวดเร็ว
3.2.4 การกู้กลับเมื่อไฟตกความรับผิดชอบข้อสุดท้ายของ kernel คือ การแก้ไขปัญหาไฟตก อินเทอร์รัพต์ที่เกิดจากไฟตกเป็น priority สูงสุดอันดับสองที่แจ้งระบบปฏิบัติการเมื่อไฟตก โดย power-notify object มีวิธีการทำให้ดีไวซ์ไดร์เวอร์ลงทะเบียนรูทีนไว้ก่อน เมื่อเกิดปัญหาก็จะเรียกรูทีนนี้เพื่อนำค่าเดิมมาใช้เพื่อมั่นใจได้ว่า ดีไวซ์รับค่าสถานะที่ถูกต้องในการคืนค่ากลับ สำหรับระบบแบ็คอัพแบ็ตเตอรี่ power-status object มีประโยชน์มาก ก่อนเข้าขั้นวิกฤต ไดร์เวอร์จะพิจารณา power-status object ที่ตรวจสอบว่าเกิดไฟตกหรือไม่ ถ้าไดร์เวอร์ตรวจสอบแล้วว่าไฟไม่ตก มันจะเพิ่มค่า IRQL ของโปรเซสเซอร์เพื่อบล็อก powerfail interrupt จนกว่าวิกฤตนั้นจะหมดไป
3.3 Executiveด้านบนของ kernel และดีไวซ์ไดร์เวอร์เป็นส่วนบนของระบบปฏิบัติการที่เรียกว่า Executive ซึ่งเขียนด้วยภาษา C เป็นสถาปัตยกรรมอิสระประกอบด้วย 10 คอมโพเนนต์ แต่ละคอมโพเนนต์เป็นชุดของโปรซีเตอร์ที่ทำงานคล้ายกันและทำงานร่วมกันเพื่อให้งานสำเร็จ คอมดพเนนต์เหล่านี้ไม่มีขอบเขตที่แน่นอน ความแตกต่างที่ผู้เขียนกล่าวถึงเป้นเพียงการแบ่งกลุ่มหน้าที่ของโปรซีเดอร์ลงในคอมโพเนนต์เท่านั้น คอมโพเนนต์ในระดับเดียวกันสามามารถเรียกใช้งานได้ คอมโพเนนต์ทั้ง 10 มี ดังนี้ Object manager จะทำหน้าที่จัดการทุกออปเจ็กต์ที่ระบบปฏิบัติการรู้จัก· ร่วมถึงโปรเซส,thread,ไฟล์ไดเร็กทอรี,semaphore, ดีไวซ์อินพุต/เอาต์พุต และอื่น ๆ object manager นี้จะวางอยู่ในหน่วยความจำเสมือนเหนือ kernel เมื่อมีการสร้างออปเจ็กต์ขึ้นมา object manager จะเข้ามาติดตามทุกออปเจ็กต์เมื่อไม่ให้สสับสนให้จำว่าคอมโพเนนต์ที่มีคำว่า mger ในรูปท 15.1 ส่วนมากจะไม่ใช้โปรเซส หรือ thread แต่เป็นเพียงชุดของโปรซีเดอร์ที่ thread สามารถเอ็กซิคิวต์เมื่ออยู่ใน kernel mode มีเพียงบางคอมโพเนนต์เท่านั้น เช่น Power manager และ Plug-and-play manager เท่านั้น ที่เป็น thread แบบอิสระอาจกล่าวได้ว่า object manager เป็นศูนย์กลางฟังก์ชันของ Windows 2000 ก็ว่าได้ I/O manager เป็นเฟรมเวิร์คสำหรับจัดการอินพุต/เอาต์พุตดีไวซ์· และอินพุต/เอาต์พุตเซอร์วิส มันยังเตรียมดีไวซ์ให้ระบบโดยการเรียกไดร์เวอร์ที่เหมาะสมกับอุปกรณ์อินพุต/เอาต์พุต I/O manager เป็นเหมือนบ้านของดีไวซ์ไดราเวอร์นั่นเอง ระบบไฟล์ที่แตกต่างกัน 2 ระบบคือ FAT (File Allocation Table) และ NtFS (New Technology File System) แต่ละระบบเป็นอิสระต่อกัน และควบคุมแต่ละดิสก์พาร์ติชัน ทุกระบบไฟล์ที่เป็น FAT จะจัดการโดยไดร์เวอร์เพียงตัวเดียว (สามารถศึกษารายละเอียดเพื่อเติมในหัวข้อ”ระบบไฟล์ใน Windows2000”) ใน I/O manager ยังมีระบบยอ่ยคือ File system, cache manager, Device drivers, และ Network manager Process manager จะทำหน้าที่ให้บริการโปรเซสและ thread· ที่รวมทั้งการสร้าง,การลบ และการใช้ดปรเซสและ thread ขึ้นอยู่กับกลไกการจัดการมากกว่าวิธีการนำไปใช้ Process manager จะสร้างโปรเซส และ thread ของ kernel รวมทั้งการะเพิ่มฟังก์ชันพิเศษให้กับโปรเซสและ thread ที่สร้าง Process manager เป็นหลักในระบบมัลติโปรแกรมมิ่งใน Windows 2000 (สามารถศึกษารานยละเอียดเพิ่มเติมได้ในหัวข้อ “การจัดการโปรเซส และ thread”)· Virtual Memory manager ส่วนนี้ทำหน้าที่จัดการหน่วยความจำเสมือนใน Windows 2000 โดยการแมพหน่วยความจำเสมือนกับหน่วยความจำจริง โดยใช้การจัดการแบบ page-based ที่มีขนาดเพจเป็น 4 กิโลไบต์ (4 KB) เพจ ของข้อมูลกำหนดให้โปรเซส ผไม่ใช้หน่วยความจำจริง) เก็บไว้ใน paging file บนดิสก์ ด้วยเหตุที่ VM manager ใช้แอ็ดเดรสแบบ 32 บิต ทำให้แต่ละโปรเซสจะมีหน่วยความจำเสมือน 4 กิกะไบต์ (4 GB) โดยที่ 2 กิกะไบต์บนกำหนดคุณลักษณะของโปรเซสและใช้ใน kernel mode ของ Windows 2000 ส่วน 2 กิกะไบต์ ล่างเป็นข้อแตกต่างของโปรเซสที่สามารถแอ็กเซสได้ทั้ง user mode และ kernel mode ในการใช้งานจริง Windows 2000 จะสงวน 1 กิกะไบต์ไว้สำหรับ ระบบปฏิบัติการ และยอมให้โปรเซสใช้เนื้อที่เพียง 3 กิกะไบต์เท่านั้น (สามารถศึกษารายละเอียดเพิ่มเติมได้ในหัวข้อ “การจัดการหน่วยความจำ”) Security· manager ทำให้กลไกการรักษาความปลอดภัยของ Windows 2000 มีความประณีตมากขึ้น ทำให้ได้รับระดับ C2 จากกระทรวงกลาโหม สหรัฐฯ ในการรักาความปลอดภัย ซึ่งมีข้อที่ต้องปฏิบัติมากมาย เช่น ต้องมีระบบการล็อกอินเข้าระบบที่ต้องใช้ชื่อ และรหัสผ่าน หรือในเรื่องของหน่วยความจำเสมือนก็จะต้องเคลียร์ให้เป็น 0 ก่อนที่จะนำกลับมาใช้ใหม่ เป็นต้น (สามารถศึกษารายละเอียดเพิ่มเติมได้ในหัวข้อ “การรักษาความปลอดภัย”) Cache manager จะทำหน้าที่จัดการแคชของระบบ· โดยเป็นการเก็บข้อมูลการใช้พื้นที่ดิสก์ไปไว้บนหน่วยความจำเพื่อให้การแอ็กเซสในภายหลังทำได้รวดเร็วขึ้น โดย Cache manager จะทำหน้าที่ตรวจสอบเมื่อมีการใช้เนื้อที่ดิสก์ว่ามีข้อมุลส่วนนั้นอยู่บนหน่วยความจำหรือไม่ เพื่อพิจารณาการนำข้อมูลมาใช้ให้เร็วขึ้น ถึงแม้ว่า Windows 2000 จะมีหลายระบบไฟล์ก็ไม่มีปัญหาสำหรับ Cache manager ที่ไม่ต้องการการจัดการเป็นของตนเอง Cache manager จะทำงานร่วมกับ Virtual Memory majnager ขนาดของเนื้อที่ที่เป็นแคชเป็นไดนามิก นั่นหมายความว่ามีขยาดที่ไม่คงที่ สามารถเปลี่ยนแปลงได้ ตลอดตามต้องการ(สามารถศึกษารายละเอียดเพิ่มเติมได้ในหัวข้อ “การจัดการแคช”) Plug-and Play manager· ในระบบปกิบัติการจะทำหน้าที่แจ้งเตือนเมื่อมีดีไวซ์ใหม่เชื่อมต่อกับระบบทันทีที่บูตระบบขึ้นมา แต่ในบางดีเวซ์สามารถเชื่อมต่อได้ในขณะที่ระบบกำลังทำงานอยู่ เช่น USB เป็นต้น ทั้งนี้ Plug-and-play (PnP) จะทำงานได้ทั้งดีเวซ์และไดร์เวอร์ จะต้องสนับสนุนมาตรฐาน PnP โดย PnP manager จะแจ้งเตือนทันทีที่มีการตรวจพบว่ามีการเชื่อมต่อดีไวซ์ใหม่ Windows 2000 ได้เตรียมไดร์เวอร์สำหรับดีไวซ์ประเภทต่าง ๆ ไว้มากมาย ดดยจะมีรายการดีไวซ์เหล่านี้ไว้ พร้อมทั้งไดร์เวอร์สำหรับดีไวซ์นั้น แต่ในกรณีที่ระบบไม่สามารถตรวจสอบได้ว่าดีไวซ์เป็นอะไร อยู่ในประเภทไหน ระบบจะแจ้งให้คุณทราบแต่เพียงว่ามีดีไวซ์ใหม่เชื่อมต่ออยู่ พร้อมกับให้คุณใส่แผ่นไดร์เวอร์เพื่อให้ดีไวซ์ทำงานได้ถูกต้องต่อไป Power· manager ทำหน้าที่จัดการเกี่ยวกับพลังงานในระบบทั้งหมด ตั้งแต่การปิดมอนิเตอร์,หยุดการใช้ดิสก์เมื่อระบบไม่ได้รับการตอบสองจากผู้ใช้ในเวลาที่กำหนด สำหรับเครื่องแลปทอป Power manager จะตรวจสอบการใช้ไฟในแบ็ตเตอรี่ และจะแจ้งเตือนเมื่อไฟเหลือน้อยเพื่อให้คุณเตรียมการเช่น จัดเก็บงาน, ชัตดาวน์ระบบ หรือชาร์จแบ็ตเตอรี่ใหม่ เป็นต้น Configuration manager· ทำหน้าที่จัดการคอนผิกุเรชันของระบบโดยจะจัดการลงในรีจิสตรี (registry) ทั้งการเพิ่มคีย์ใหม่ หรือการพิจารณาคีย์เมื่อมีการร้องขอ Local Procedure· Call manager ทำหน้าที่ในการส่งผ่านคำร้องขอและผลลัพธ์ระหว่างโปรเซสของไคลเอ็นต์และเซิร์ฟเวอร์ในเครื่องเดียวกัน งานเฉพาะคือระบบจะใช้ LPC เพื่อร้องขอเซอร์วิสจากระบบย่อยของ Windows 2000 กลไกลของ LPC จะเหมือนกัน RPC (Remote Procedure Call)
3.4 Environmental SubsystemEnvironmental Subsystem เป็นโปรเซสแบบ user-mode ที่อยู่ด้านบนของ Executive ของ Windows2000 ซึ่งทำให้ Windows 2000 รันโปรแกรมที่ถูกพัฒนาจากระบบปฏิบัติการอื่น รวมถึง Windows 16 บิต , MS-DOS,POSIX และแอปพลิเคชันแบบ character-based ของ OS/2 แบบ 16 บิต แต่ละ Environmental Subsystem จะมี 1 API หรือ application environment ใน Windows 2000 ใช้ระบบย่อย Win 32 เป็นหลัก ซึ่งทำให้จะสตาร์ตทุกโปรเซส เมื่อมีการเอ็กซิคิวต์แอปพลิเคชัน Win32 จะเรียก VM manager เพื่อโหลดโค้ดของแอปพลิเคชัน memory manager จะส่งค่าสถานะกลับไปยัง Win 32 เพื่อบอกชนิดของโค้ดที่สามารถเอ็กซิคิวต์ได้ ถ้าไม่ใช่โค้ดที่ Win32 สามารถเอก็ซิคิวต์ได้ Win32 environmw/ent จะตรวจดูว่ามีระบบย่อยที่เหมาะสมรันอยู่หรือไม่ ถ้าไม่มีมันจะเริ่มต้นเป็นโปรเซสแบบ user-mode หลังจากนั้น Win 32 จะสร้างโปรเซสเพื่อรันแอปพลิเคชันและส่งการควบคุมไปยัง environmental subsystem
การจัดการโปรเซสและ Thread
ใน Windows2000 โปรเซสก็คือ แอปพลิเคชันที่กำลังเอ็กซิคิวต์ และ thread เป็นหน่วยหนึ่งของโค้ดที่จัดเวลาโดยระบบปฏิบัติการ ดังนั้นโปรเซสประกอบด้วย thread 1 thread หรือมากกว่าก็ได้ โปรเซสจะเริ่มต้นเมื่อโปรเซสอื่นเรียกรูทีน CreateProcess รูทีนนี้จะโหลด Dynamic Link Libraries (DLL) ที่โปรเซสต้องการใช้งาน และสร้าง primary thread นอกจากนี้ thread ยังสามารถสร้างจากฟังก์ชัน CreateThread แต่ละ thread จะสร้างด้วยสแต็กของตัวเอง ซึ่งสแต็กนี้จะมีขนาดมาตรฐานเป็น 1 เมกะไบต์ แต่สามารถกำหนดเพิ่มเติมได้ในอาร์กิวเมนต์ของ CreateThread ด้วยเหตุที่ฟังก์ชันที่เป็นภาษา C คอยรักษาสถานะของตัวแปรคงที่ เช่น errmo ทำให้แอปพลิเคชัน ทีเป็น multithread ต้องการเกราะป้องกัน การแอ็กเซส thread ที่ไม่มีการซินโครไนซ์ โดยมีฟังก์ชัน beginthreadex ทำให้มีการซินโครไนซ์ที่เหมาะสม
5.การจัดการหน่วยความจำ
Win32 API มีวิธีการสำหรับแอปพลิเคชันในการใช้หน่วยความจำหลายวิธี ไม่ว่าจะเป็นหน่วยความจำเสมือน แมพหน่วยความจำเป็นไฟล์, heap และ thread-local storage โดยมีรายละเอียดที่น่าสนใจ ดังนี้ การใช้หน่วยความจำเสมือน :· แอปพลิเคชันจะให้ฟังก์ชัน virtualAlloc ในการสงวนหรือใช้หน่วยความจำเหมือน ส่วนคำสั่งตรงข้ามคือ VirtuaFree เพื่อเลิกใช้หน่วยความจำ ฟังก์ชันทั้งสองนี้ทำให้แอปพลิเคชันกำหนดแอ็ดเดรสมือนที่หน่วยความจำวางอยู่ แอปพลิเคชันจะใช้หน่วยความจำหลาย ๆ เพจ โดยที่แอ็ดเดรสเริ่มต้นของย่านหน่วยความจำจะต้องมากกว่า 0x10000 โปรเซสอาจจะเลือกเพจของหน่วยความจำที่ใช้งานของตนเองไปเป็นหน่วยความจำทางกายภาพโดยการเรียกฟังก์ชัน virtualLock โดยที่โปรเซสสามารถล็อกจำนวนเพจได้สูงสุดถึง 30 เพจ นอกเสียจากว่าในครั้งแรกโปรเซสเรียกฟังก์ชัน SetPriocessWorkingSetSize เพื่อเพิ่มขนาดพื้นที่ใช้งานไว้ก่อน แมพหน่วยความจำเป็นไฟล์ :· วิธีนี้เป็นอีกวิธีหนึ่งที่แอปพลิเคชันใช้หน่วยความจำโดยแมพเนื้อที่หน่วยความจำเป็นไฟล์ การแมพหน่วยความจำนี้เป็นประโยชน์เมื่อโปรเซส 2 โปรเซสมีการแชร์หน่วยความจำ โดยโปรเซสทั้งสองจะแมพไฟล์เดียวกันนั้นในหน่วยความจำเสมือน เมื่อใดก็ตามที่โปรเซสต้องการแมพเนื้อที่ก็จะทำแคเพียงแวร์พื้นที่หน่วยความจำกับโปรเซสอื่นไม่จำเป้นต้องใช้ไฟล์ โปรเซสสามารถเรียกใช้ CreateFileMapping ด้วยไฟล์ที่ตำแหน่ง 0xffffffff และขนาดพาะ ผลของการแมพอาจจะเป็นการแชร์โดยรับช่วง, ใช้ชื่อ หรือโดยการสำเนาก็ได้ Heap :· heap ในสภาพวะ Win32 เป็นเพียงแอ้ดเดรสของเนื้อที่สงวน เมื่อโปรเซสใน Win32 เริ่มต้นขึ้นมันจะสร้าง default heap ขนาด 1 เมกะไบต์ เนื่องจากฟังก์ชันของ Win 32 หลายฟังก์ชันใช้ default heap การแอ็กเซส heap เป็นการซินโครไนซ์เพื่อป้องกันโครงสร้างข้อมูลของ heap จากอันตรายเมื่ออัปเดทพร้อมกันจาก thread หลาย thread ในเวลาเดียวกัน Win 32 มีฟังก์ชันสำหรับจัดการ heap หลายวิธี ดังนั้น โปรดเซสสามารถกำหนดและจัดการ heap ส่วนตัวได้ ฟังก์ชันที่ว่านี้ Wi32 API ยังมีฟังก์ชัน HeapLock และ HeapUnlock เพื่อให้ thread เพิ่มการแอ็กเซส heap ได้ดีขึ้น ฟังก์ชันเหล่านี้จะต่างกับฟังก์ชัน VirtualLkock ตรงที่ฟังก์ชันเหล่านี้ จะกระทำเฉพาะการซินโครไนซ์ จะไม่ล็อกเพจกับหน่วยความจำจริง Thread-local storage :· วิธีที่สี่นี้เป็นวิธีการใช้หน่วยความจำของแอปพลิเคชัน ฟังก์ชันที่ขึ้นอยู่กับข้อมูลแบบโกลบอลหรือไดนามิก โดยปกติจะทำงานไม่ถูกต้องในสภาวะ multithreaded เช่น ฟังก์ชันในภาษา C ที่ชื่อ Strtok ที่ใช้ตัวแปรคงที่ในการตรวจจับตำแหน่งปัจจุบันที่ส่งสตริง สำหรับ thread 2 thread ที่เอ็กซิควิต์ strtok พร้อมกันจำเป็นต้องมีตัวแปร current position แยกต่างหาก กลไก Thread-local storage มีการกำหนด storage แบบโกลบอลบนพื้นฐานของ thread มีทั้งวิธีตายตัวและไดนามิกในการสร้าง Thread-local storage
การจัดการอุปกรณ์อินพุต/เอาต์พุต
เป้าหมายหลักของระบบอินพุต/เอาต์พุตของ Windows2000 ก็คือสร้างเฟรมเวิร์คสำหรับดูแลอุปกรณ์อินพุต/เอาท์พุต ที่มีอยู่หลากหลาย อุปกรณ์ที่เป็นอินพุตในปัจจุบันมีทั้งคีย์บอร์ด,เมาส์,จอยสติ๊ก, สแกนเนอร์,กล้องดิจิตอล,เครื่องอ่านบาร์โค้ด และไมโครโฟน ส่วนอุปกรณ์ที่เป็นเอาต์พุตมีทั้งมอนิเตอร์,เครื่องพิมพ์,พล็กตเตอร์,เครื่องบันทึกซีดี และการ์ดเสียง นอกจากนี้ยังมีสื่อที่ใช้ในการจัดเก็บข้อมุล เช่น ฟล็อปปีดิสก์,ฮาร์ดดิสก์,ซีดีรอม,ดีวีดี และเทป รวมถึงอุปกรณ์อื่น ๆ เช่น นาฬิกา,เน็ตเวิร์ค,โทรศัพท์,กล้องแคมคอร์ดเดอร์ ในอนาคตอันใกล้นี้อาจจะมีอุปกรณ์เพิ่มเติมอีกก็ได้ ดังนั้น Windows 2000 ได้ถูกออกแบบด้วยเฟรมเวิร์คธรรมดาที่ทำให้อุปกรณ์สามารถเชื่อมต่อระบบได้อย่างง่ายดาย ในพารากราฟต่อไปเป็นการกล่าวถึงการจัดการอุปกรณ์อินพุต/เอาต์พุตที่น่าสนใจ
ระบบไฟล์ใน Window 2000
Windows 2000 สนับสนุนระบบไฟล์หลายรูปแบบที่สำคัญคือ FAT -16 (File Allocation Table) ,FAT-32 NTFS (New Technology Fuile System) และ OS/2 โดยที่ FAT-16 เป็นระบบไฟล์เดิมของ MS-DOS ที่ใช้แอ็ดเดรสแบบ 16 บิตทำให้ขนาดของดิสก์พาร์ติชันมีขนาดไม่เกิน 2 กิกะไบต์ (2 GB) ในขณะที่ FAT-32 ใช้แอ็ดเดรสไฟล์แบบแบบใหม่ที่เสนอมาตั้งแต่ Windows 2000 ด้วย ระบบไฟล์แบบนี้ใช้แอ็ดเดรสแบบ 64 บิต


เน็ตเวิร์ค
Windows 2000 สนับสนุนทั้งเน็ตเวิร์คแบบ Peer-to-peer และ Client-server นอกจากนี้ยังมีเครื่องมือในการจัดการเน็ตเวิร์คที่ทรงประสิทธิภาพ เน็ตเวิร์คคอมดพเนนต์ใน Windows 2000 ทำให้มีการส่งข้อมูล การติดต่อระหว่างโปรเซส การแชร์ไฟล์ข้ามเน็ตเวิร์ค และความสามารถในการส่งงานไปพิมพ์ยังเครื่องที่อยู่ห่างไกลได้เป็นอย่างดี เรามักจะกล่าวถึงอินเทอร์เฟซภายในเน็ตเวีร์คที่มี 2 รูปแบบคือ Network Device Interface Specification (NDIS) และ Transport Driver Interface (TDI) ซึ่ง NDIS นี้พัฒนาขึ้นในปี 1989 ดดยความร่วมมือระหว่างไมดคซอฟต์และ 3Com เพื่อแยกเน็ตเวิราคอะแด็ปเตอร์จากโปรโตคอล ซึ่งจะไม่มีผลกระทบกับส่วนอื่น ๆ NDIS อยู่ระหว่างเลเยอร์ data-link control และ media-access control ในโมเดล OSI และมีหลายโปรโตคอลที่สามารถทำงานได้หลายเน็ตเวิร์คอะแด็ปเตอร์ที่แตกต่างกัน สำหรับ TDI ในเทอมของดมเดล OSI นั้นจะเป็นอินเทอร์เฟซระหว่างเลเยอร์ Transport และเลเยอร์ session อินเทอร์เฟซนี้ทำให้คอมโพเนนต์ของเลเยอร์ Sesion ใช้กลไกการส่งข้อมูลได้ TDI สนับสนุนการส่งข้อมูลทั้งแบบ connection-based และ connectionless และมีฟังก์ชันหลากหลายในการส่งข้อมูลประเภท
โปรโตคอลWindows 2000 เสนอดปรโตคอล Transport เป็นไดร์เวอร์ ซึ่งไดร์เวอร์เหล่านี้สามารถโหลด หรือยกเลิกจากระบบแบบไดนามิก ถึงแม้จะต้องมีการบูตเครื่องใหม่เมื่อมีการเปลี่ยนก็ตาม Windows 2000 มาพร้อมกับเน็ตเวิร์คโปรโตคอลหลายรูปแบบ ที่น่าสนใจดังนี้ค SMB : โปรโตคอล SMB· (server Messge Block) เริ่มปรากฏตัวตั้งแต่ MS-DOS 3.1 ดดยระบบใช้โปรโตคอลนี้ในการส่งคำร้องขออินพุต/เอาต์พุต ผ่านเน็ตเวิร์ค โปรดตคอล SMB มีแม สเสจ 4 ประเภทคือ แมสเสจ Session control (คำสั่งเพื่อเริ่มต้นและจบการเชื่อมต่อเพื่อแชร์รีชอร์สที่เซิร์ฟเวอร์),แมสเสจ File (เพื่อแอ็กเซสไฟล์ที่เซิร์ฟเวอร์),แมสเสจ Printer (เพื่อส่งข้อมูลไปยังคิดการพิมพ์ที่อยู่ห่างไกล และรับข้อมู่ลเสตตัสกลับมาป และแมสเสจ Message (ใช้ในการติดต่อสื่อสารกับเวิร์สเตชันอื่น) NetBIOS:· โปรตคอล NetBIOS (Network Basic Input/Output System) เป็น hardware-abstraction interface สำหรับเน็ตเวิร์คที่พัฒนาในช่วย 1980 ใช้เครื่องคอมพิวเตอร์ที่ใช้ MS-DOS และกลายเป็นอินเทอร์เฟซมาตรฐานสำหรับเน็ตเวิร์คโปรแกรมมิ่ง NetBIOS มีหน้าที่สร้าง logiclal name บนเวิร์ค,สร้าง logical connection หรือ session ระหว่าง logical name ทั้งสองบนเน็ตเวิร์ค และสนับสนุนการถ่ายโอนข้อมูล สำหรับ sission ผ่านทางNetBIOS หรือ SMB NetBEUI : โปรโตคอล NetBEUI (NetBIOS Extended User· Interface) พัฒนาโดย IBM เมื่อ 1985 โดยเป็นเน็ตเวิร์คโปรโตคอลที่ใช้งานง่าย,มีประสิทธิภาพ และเชื่อมต่อได้ถึง 254 เครื่อง ถูกกำหนดให้เป็นดีฟอลต์โปรโตคอลบน Windows 95 และ Windows for workgroup ใน Windows 2000 ใช้ NetBEUI เมื่อต้องการแชร์รีซอร์บนเน็ตเวิร์คเหล่านี้ NetBEUI มีข้อจำกัดตรงที่จะใช้ชื่อคอมพิวเตอร์เป็นแอดเดรส และไม่สนับสนุนการ routing เมื่อโปรโตคอล TCP/IP เหมาะสมในการนำมาใช้งานกับอินเทอร์เน็ตจนกลายเป้นมาตรฐาน Windows 2000 ใช้ในการเชื่อมต่อกับระบบปฏิบัติการและแพตฟอร์มของฮาร์ดแวร์ที่หลากหลาย ในแพ็กเกจของ TCP/IP ใน Windows 2000 ประกอบด้วย Simple Network Management Protocol (SNMP)Dynamic Host-configuration Protocol (DHCP) Windows Internet Name Service (WINS) และสนับสนุน NetBIOS PPTP : โปรดตคอล PPTP (Point-to-Point· tunneling Protocol) มีอยู่ใน Windows 2000 เพื่อติดต่อสื่อสารระหว่างรีโมทแอ็กเซสเซิร์ฟเวอร์โมดูรลที่รันบนเครื่องเซิร์ฟเวอร์ของ Windows 2000 และไคลเอ็นต์อื่น ที่เชื่อมต่อผ่านทางอินเทอร์เน็ต เซิร์ฟเวอร์ที่เป็นรีโมทแอ็กเซสนี้สามารถใส่รหัสข้อมูลที่ผ่านการเชื่อต่อนี้ และยังสนับสนุนมัลติดปรโตคอลของ VPN (Virtual Private Network) ผ่านทางอินเทอร์เน็ตอีกด้วย DLC : โปรโตคอล DLC (Data-Link Control) มีอยู่ใน· Windows 2000 นำมาใช้ในการีแอ็กเซสกับเมนเฟรมของ IBM และเครื่องพิมพ์ของ HP ทีเชื่อมต่อโดยตรงทางเน็ตเวิร์ค นอกนั้นก็ไม่ได้ใช้อะไรเพิ่มเติม ApplesTalk :· โปรโตคอลนี้ถูกออกแบบโดย Apple เพื่อประหยัดค่าใช้จ่ายในการเชื่อมต่อทำให้เครื่องแม็คอินทอชแชร์ไฟล์กันได้ และทำให้ Windows 2000 สามารถแชร์ไฟล์และเครื่องพิมพ์ กับเครื่องแม็ดอินทอชผ่านทาง AppleTalk นี้ได้เช่นกัน เมื่อเซิร์ฟเวอร์ของ Windows 2000 รันแพ็กเกจ Windows 2000 services for Macintosh
กลไกการโปรเซสแบบกระจาย· NetBIOS ใน Windows 2000 ทำให้แอปพลิเคชันสามารถติดต่อสื่อสารข้ามเน็ตเวิร์คโดยใช้ NetBEUI, NWLink และ TCP/IP Named pipes เป็นกลไกแบบ connection-+oriented· message แต่เดิมถูกพัฒนาเป็นอินเทอร์เฟซระดับสูงของ NetBIOS เพื่อเชื่อมต่อข้ามเน็ตเวิร์ค โปรเซสสามารถใช้ named pipes ในการติดต่อกับโปรเซสอื่นบนเครื่องเดียวกัน เนื่องจาก named pipes มีการแอ็กเซสผ่านทางอินเทอร์เฟซระบบไฟล์ ทำให้กลไกการรักษาความปลอดภัยที่ใช้กับไฟล์ถูกนำมาใช้กับ named pipes ด้วย ชื่อของ named pipes มีรูปแบบที่เรียกว่า Uniform Naming Cjonvention (UNC) โดยชื่อ UNC เหมือนกับชื่อไฟล์แบบรีโมท โดยมีรูปแบบคือ \\server name\share_name\x\y\z โดยที่ server_name จะเป็นเซิร์ฟเวอร์บนเน็ตเวิร์ค ส่วน share_name เป็น รีซร์ส ที่แชร์ไว้เพื่อใช้ในเน็ตเวิร์ค เช่น ไฟล์,ไดเร็กทอรี,เครื่องพิมพ์, หรืออื่น ๆ สำหรับ x\y\z เป็นส่วนของไฟล์และพาธตามปกติ Mailslots เป็นกลไกแบบ· connectionless messaging ใช้ในการส่งผ่านแอพลิเคชัน เช่น การค้นหาคอมโพเนนต์บนเน็ตเวิร์ค นอกจากนี้ยังใช้กับ Windows 2000 Computer Browser อีกด้วย แต่ Mailslots ไม่ค่อยมีความน่าเชื่อถือตรงที่แมสเสจที่ส่งไปยัง mailslots อาจจะสูญหายก่อนถึงมือผู้รับ Winsock เป็น Windows 2000 socket API· เป็นอินเทอร์เฟซแบบ session-layer ที่คอมแพติเบิลกับ UNIX socket นอกจากนี้ Winsock ยังมีอินเทอร์เฟซมาตรฐานกับโปรโตคอล Transport ที่อาจจะมีกำกำหนดแอ็ดเดรสที่ต่างกัน ดังนั้น แอปพิลเคชันของ Winsock สามารถรันได้พาะกับ Winsock compliant protocol stack RPC (Remote Procedure Protocol)· เป็นกลไกลแบบไคลเอ็นต์เซิร์ฟที่ทำให้แอปพลิเคชันจากเครื่องหนึ่งเรียกโปรซีเดอร์ไปอีกเครื่องหนึ่งได้ ไคลเอ็นต์จะเรียกโปรดซีเดอร์ของตนเอง (รูทีนย่อย) ที่แพ็กอาร์กิวเมนต์ลงในแมสเสจเล้วส่งข้ามเน็ตเวิร์คไปยังโปรเซสที่กำหนด เมื่อถึง ฝั่งเซิร์ฟเวอร์จะขยายแพ็กออกเรียกโปรซีเดอร์ แล้วแพ็กผลลัพธ์ลงในแมสเสจแล้วส่งกลับไปฝั่งไคลเอ็นต์ เมื่อไลเอ็นต์ได้รับแมสเสจแล้วจะขยายแพ็กผลลัพธ์ RPC ออก แล้วส่งผลลัพธ์นั้นไปให้ผู้เรียก แพ็กของอาร์กิวเมนต์นี้บางครั้งเรียกว่า marshalling กลไกล RPC ของ Windows 2000 นี้นำมาใช้อย่างกว้างขวางในสภาพวะแล้วล้อมแบบกระจายมาตรฐานแมสเสจแบบ RPC ดังนั้นโปรแกรมที่เขียนเพื่อใช้ RPC ของ Windows 2000 จะเคลื่อนย้ายได้ง่าย มาตรฐาน RPC มีรายละเอียดปลีกย่อยมาก มันซ่อนความแตกต่างด้านสถาปัตยกรรมคอมพิวเตอร์ไว้ โดยการกำหนดรูปแบบข้อมูลมาตรฐาน RPC ใน Windows 2000 สามารถส่งแมสเสจ RPC โดยใช้ NetBIOS, winsock บนเน็ตเวิร์ค TCP/IP หรือ named pipes บนเน็ตเวิร์ค LAN/Manager MIDL (Microsoft Interface Definition Language)· เป็นภาษาที่ออกแบบโดยไมโครซอฟต์เพื่ออธิบายชื่อของรีโมทโปรซีเดอร์ และประเภทของข้อมูลสำหรับอาร์กิวเมนต์และแมสเสจที่ส่งค่ากลับ นอกจากนี้มันยังสร้างซอร์สโค้ดสำหรับรายละเอียดของรูทีนที่ใช้บนฝั่งไคลเอ็นต์ เพื่อ dispatcher ฝั่งเซิร์ฟเวอร์ COM· เป็นกลไกสำหรับการติดต่อสื่อสารภายในโปรเซสที่พัฒนาสำหรับ Windows ออปเจ็กต์ COM จะมีการกำหนดอินเทอร์เฟซเพื่อจัดการกับข้อมูลในออปเจ็กต์ Windows 2000 มีส่วนขยายที่เรียกว่า DCOM ที่นำมาใช้บนเน็ตเวิร์คกับกลไก RPC เป็นวิธีการพัฒนาแอปพลิเคชันแบบกระจาย
โดเมนในโดเมนของ Windows 2000 ประกอบด้วยเซิร์ฟเวอร์และเวิร์คสเตชันที่แชร์ทั้งรีซอร์ส, ฐานข้อมูลโดยมีระบบรักษาความปลอดภัยป้องกันอยู่ เนื่องจากปัจจุบัน Windows 2000 ใช้โปรโตคอล Kerberos สำหรับ trust และ authennication แต่เดิม Windows NT ใช้หลักการควบคุมโดเมนหลักและสำรอง แต่ปัจจุบันทุกเซิร์ฟเวอร์ในโดเมนเป็นตัวควบคุมในโดเมนได้ นอกจากนี้แต่เดิมต้องเซ็ตอัพ trust ระหว่างโดเมนในลักษณะทางเดียว แต่ใน Windows 2000 ใช้ลักษณะลำดับชั้นโดยอิงกับ DNS และยอมให้ส่งผ่าน trust ขึ้นลงตามลำดับชั้นได้ วิธีนี้ทำให้ลดจำนวน trust ที่ต้องการสำหรับ n โดเมน จาก n*(n-1) เป็น 0 เวิร์คสเตชันในโดเมนกำหนด trust ให้กับการควบคุมโดเมนเพื่อให้ข้อมูลที่ถูกต้องเกี่ยวกับสิทธิการแอ็กเซสของผู้ใช้แต่ละคน ผู้ใช้ทุกคนยังคงมีความสามารถในการจำกัดแอ็กเซสเวิร์คสเตชันของตนเองไม่ว่าตัวควบคุมโดเมนจะเป็นอย่างไร
Name Solution ในเน็ตเวิร์ค TCP / IPในเน็ตเวิร์ค IP คำว่า Name Solution หมายถึงขั้นตอนการแปลงชื่อคอมพิวเตอร์ไปเป็น IP address
การจัดการแคช
งานของ cache manager คือ การเก็บรักษากลุ่มของระบบไฟล์ที่ใช้งานล่าสุดในหน่วยความจำเพื่อลดเวลาการแอ็กเซลสิ่งที่เหมือนกัน ใน Windows 2000 มีเพียงแคชแบบรวมการเพียงแคชเดียวที่ทำงานได้กับทุกระบบไฟล์ไม่ว่าจะเป็น NTFS,FAT-16,FAT-32 และแม้แต่ระบบไฟล์สำหรับซีดีรอม นั่นหมายความว่าระบบไฟล์ไม่จำเป้นต้องดูแลแคชของตนเองเลย เป้าหมายหลักการออกแบบแคชแบบรวมการสำหรับระบบไฟล์ที่หลากหลาย cache manager จะว่าอยู่ตำแหน่งที่ไม่ธรรมดา มันไม่ได้เป็นส่วนหนึ่งของระบบไฟล์ เพราะมีระบบไฟล์มากมายที่เป็นอิสระต่อกันทำให้ไม่ใช่สิ่งธรรมดา มันทำงานในระดับสูงกว่าระบบไฟล์ซึ่งเป็นไดร์เวอร์ทาง


การรักษาความปลอดภัย

เนื่องจาก Windows 2000 ได้รับขั้นการรักษาความปลอดภัยของระบบระดับ C2 จากกระทรวงกลาโหมสหรัฐฯ ทำให้ Windows 2000 มีการรักษาความปลอดภัยในระดับที่ระบบปฏิบัติการพึงมีอยู่แล้ว นอกจากการใช้ชื่อล็อกอินและรหัสผ่านสำหรับการเข้าสู่ระบบซึ่งเป็นสิ่งพื้นฐานแล้วใน Windows 2000 ผู้ใช้ทุกคนจะถูกกำหนดด้วย SID (Security ID) ซึ่ง SID เป็นเลขฐานสองที่มีสองส่วนคือส่วนหัวสั้น ๆ และตามด้วยตัวเลขสุ่มหลายตัว แต่ละ SID มีเจตนาให้เป็นหนึ่งเดียวทั่วโลก เมื่อผู้ใช้เริ่มต้นโปรเซส ทั้งโปรเซสและ thread จะรันภายใต้ SID ของผู้ใช้นั้น ระบบรักษาความปลอดภัย ส่วนมากถูกออกแบบเพื่อให้มั่นใจว่าแต่ละออปเจ็กต์จะถูกแอ็กเซสโดย thread ได้เฉพาะ SID ที่อนุญาตเท่านั้น






บทที่ 15

เรื่อง ระบบปฏิบัติการ

1.ระบบปฏิบัติของ Microsoft สำหรับเครื่องเดสก์ทอปและแลปทอปสามารถแบ่งเป็นตระกูล
ก.1 ตระกูล
ข.2 ตระกูล
ค.3 ตระกูล
ง.4 ตระกูล

2.เป้าหมายการออกแบบของwindows2000ที่microsoftต้องการมีกี่ประการ
ก.6 ประการ
ข.7 ประการ
ค.8 ประการ
ง.9 ประการ

3.Ready เป็นสถานะอย่างไร
ก.เป็นสถานะที่หยุดคอยสัญญาณ
ข.เป็นสถานะที่พร้อมในการรัน
ค.เป็นสถานะที่threadใหม่รอคอยการใช้รีซอร์สสำหรับการเอ็กซิคิวต์
ง.เป็นสถานะที่ thread เสร็จสิ้นการเอ็กซิคิวต์แล้ว

4.waitingเป็นสถานะอย่างไร่
ก.เป็นสถานะที่หยุดคอยสัญญาณ
ข.เป็นสถานะที่พร้อมในการรัน
ค.เป็นสถานะที่ thread ใหม่รอคอยในการใช้รีซอส์สำหรับการเอ็กซิคิวต์
ง.เป็นสถานะที่ thread เสร็จสิ้นการเอ็กซิคิวต์แล้ว

5.Terminated เป็นสถานะอย่างไร
ก.เป็นสถานะที่หยุดคอยสัญญาณ
ข.เป็นสถานะที่พร้อมในการัน
ค.เป็นสถานะที่ thread ใหม่รอคอยการใช้รีซอร์สสำหรับการเอ็กซิคิวต์
ง.เป็นสถานะที่ thread เสร็จสิ้นการเอ็กซิคิวต์แล้ว

6.ด้านบนของ kernel และดีไวซ์ไดร์เวอร์เป็นแบบส่วนบนของ ระบบปฏิบัติการที่เรียกว่าอะไร
ก. manager
ข. Executive
ค. process
ง. semaphore

7. Executive มีการแบ่งกลุ่มหาที่ของโปรดีเดอร์ลงในคอมโพเนนต์กีหน้าที่
ก. 3 หน้าที่
ข. 5 หน้าที่
ค. 8 หน้าที่
ง. 10 หน้าที่

8. win32 แบ่งกลุ่มแอปพลิเคชันเป็นกี่กลุ่ม
ก. 2 กลุ่ม
ข. 3 กลุ่ม
ค. 6 กลุ่ม
ง. 7 กลุ่ม

9. พื้นฐานที่สุดของระบบไฟล์ NTFS คืออะไร
ก. Number
ข. Cluster
ค. Sector
ง. Volume

10.โปรโตคอล Transport เป็นไดร์เวอร์ที่สามารถโหลดหรือยกเลิกจากระบบแบบใด
ก. แบบไดนามิก
ข. แบบเซิร์ฟเวอร์
ค. แบบแอ็กเซสไฟล์
ง. แบบแมสเสจ

11. งานของ cache manager คืออะไร
ก. ขั้นตอนการเปลี่ยนแปลงชื่อคอมพิวเตอร์ให้เป็น IP
ข. การเก็บรักษากลุ่มของระบบไฟล์ใช้งานล่าสุดในหน่วยความจำ
ค. เป็นเน็ตเวิร์คส่วนใหญ่จะมีลักษณะเป็นกลุ่ม
ง. กลไกสำหรับติดต่อสื่อสารภายในโปรเซล

12.ในระบบไฟล์ NTFS ไม่ได้แยกดิสก์ออกเป็นเซ็กเตอร์(Sector)แต่จะใช้อะไรในการกำหนดหน่วยของดิสก์
ก. เรกคอร์ด
ข. คลัสเตอร์ (Cluster)
ค. แอ็ดเดรส
ง. ไดเร็กทอรี

13. Mailslots เป็นกลไกแบบได
ก. NetBIOS
ข. Connetctionless messaging
ค. Named pipes
ง. Session-layer

14.คุณสมบัติอีกประการหนึ่งของ Cache manager คืออะไร
ก. การรักษาระหว่างไฟล์ที่แมพกับหน่วยความจำและไฟล์
ข. การรักษาแบบธรรมดา
ค. การแก้ไขข้อมูล
ง. ระบบที่รับบล็อก

15.กลไกในการควบคุมการแอ็กเซสใน Windows2000 ขึ้นอยู่กับอะไร
ก. Access
ข. Elements
ค. Security descriptor
ง. token








เฉลย
1.ค 2. ก 3. ข 4. ก 5. ง 6.ข 7.ง 8.ก 9.ง 10.ก 11. ข 12.ข 13.ข 14.ก 15. ค