หน้าเว็บ

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

Disk BooT

DISK-BOOT!!!

เครื่องคอมพิวเตอร์ หรือพีซี จะไม่มีประโยชน์อะไรเลยถ้าไม่รันชุดคำสั่ง โอเอส แต่ก่อนที่มันจะสามารถรันโอเอสได้ เราจำเป็นต้องหาทางบรรจุโปรแกรมโอเอสนี้ลงใน แรม เสียก่อนวิธีนั้นก็คือการ บูต ( boot หรือ bootstrap )

ดังนั้นที่เราได้กล่าวมาแล้วว่า ภายหลังจากกระบวนการ โพสต์ ( POST ) หรือการทดสอบตัวเองแล้ว ภาคที่สองของการบูตก็ คือ การหาว่า โอเอส อยู่ในดิสก์ไหน จากนั้นก็บรรจุโอเอสลงสู่แรม

หลายคนอาจส่งสัยว่าทำไมจึงออกแบบระบบการทำงานของพีซี ให้วุ่นวายเช่นนี้ ทำไมถึงไม่ใส่โอเอสไว้ในเครื่องถาวรเลย? เครื่องรุ่นเก่าๆที่ใช้เทคโนโลยีไม่สูงมาก เช่น Atari400 และ800 ก็มีโอเอสอยู่ภายในเครื่องอย่างถาวรเลย โดยอาจใส่ไว้ภายในชิปแต่อย่างไรก็ตาม เครื่องปกติ จะมีการบรรจุโอเอสจากดิสก์ ลงสู่หน่วยความจำก่อนเสมอ เพราะมีประโยชน์ 2 ประการ คือ

ประการแรก ทำให้ง่ายต่อการพัฒนา โอเอส เพราะถ้าเป็นเครื่องพีซีแบบมีโอเอสถาวรภายในเครื่องเลย การแก้ไขก็คงจะทำไม่ได้ วิธีแก้ไขก็อาจจะต้องเปลี่ยนเคื่องรุ่นใหม่ไปเลย แต่การบรรจุโอเอสลงบนดิสก์แล้วทำการบรรจุลงแรมทุกครั้งที่เปิดเครื่อง เวลาที่ต้องการอัปเกรดโอเอส ก็แค่ก๊อปโอเอสตัวใหม่ลงในดิสก์ เท่านั้น

ประการที่สอง การโหลด โอเอสจากดิสก์ ทำให้เรามีสิทธิ์ "เลือก" โอเอสที่เราต้องการได้ ทั้งนี้เพราะในโลกนี้ไม่ได้มีโอเอสจากบริษัทไมโครซอฟต์แต่อย่างเดียว



DISK FOR BOOT1!!!

1. หลังจากผ่านกระบวนการโพสต์ โปรแกรมบูตที่บรรจุอยู่ในรอม ไบออสจะสั่งให้พีซีตรวจสอบว่ามีดิสก์ที่ฟอร์แมตไว้ในฟลอปปี้ไดรฟ์ A หรือไม่ ถ้ามีดิสก์ที่ฟอร์แมตในไดร์นี้จริงแล้ว โปรแกรมจะทำการค้นหาตำแหน่งพิเศษบนดิสก์ ซึ่งเป็นตำแหน่งที่บรรจุแฟ้มข้อมูล หรือไฟล์ 2ไฟล์ด้วยกัน ไฟล์ทั้งสองนี้ เป็นสองส่วนแรกของระบบโอเอสที่สำคัญ ซึ่งเราจะมองไม่เห็นชื่อไฟล์เมื่อใช้คำสั่ง DIR ทั้งนี้เพราะเป็นไฟล์ที่ถูกกำหนดให้ซ่อนเอาไว้ โดยมากไฟล์ทั้งสองนี้จะชื่อ IO.SYS และ MSDOS.SYS แต่ถ้าในฟลอปปี้ไดรฟ์ว่างเปล่าไม่มีแผ่นดิสก์ โปรแกรมบูตก็จะทำการตรวจสอบไฟล์ทั้งสองในฮาร์ดดิสก์

DISK FOR BOOT2!!!

2.หลังจากค้นพบไฟล์ระบบทั้งสองแล้ว โปรแกรม บูตจะทำการอ่านข้อมูลจากเซกเตอร์แรก แล้วก๊อปปี้ลงหน่วยความจำแรม เซ็กเตอร์แรกนี้ เราอาจเรียกได้ว่า "บูตเซ็กเตอร์"(bootsector) ก็ได้มีขนาด 512 ไบต์ ซึ่งมากพอที่จะใส่คำสั่งการโหลดไฟล์ของระบบทั้งสองลงสู่แรมระบบได้ โปรแกรมบูตของไบออส จะทำงานจนถึงการบรรจุข้อมูลเซ็กเตอร์แรกนี้ลงในตำแหน่งพิเศษ ตำแหน่งที่มีตัวเลขฐานสิบหกว่า 7C00 จากนั้นโปรแกรมบูตที่มาจากไบออสจะโอนหน้าที่การบูตไปสู่โปรแกรมไปสู่บูตเซ็กเตอร์ ซึ่งขณะนี้จะอยู่ในแรมตำแหน่งที่ 7C00 นั้นเอง

DISK FOR BOOT3!!!

3. บูตเรคคอร์ดที่โหลดที่บูตเซกเตอร์นี้จะทำหน้าที่โหลด IO.SYS ลงสู่แรม สำหรับ IO.SYS นี้แท้จริงแล้วก็ คือ ส่วนขยายเพิ่มเติมของแรมไบออส ( RAM BIOS ) นั้นเอง และมีโปรแกรมชุดสั้นๆ ชุดหนึ่งที่เรียกว่า SYSINIT เพื่อจัดกระบวนการบูตที่เหลือทั้งหมด หลังจากบรรจุ IO.SYS แล้ว ข้อมูลที่บูตเรคคอร์ดที่อยู่ในแรมก็ไม่จำเป็นต้องใช้อีกต่อไป ซึ่งก็จะถูกทับที่โดยโปรแกรมอื่นๆ ต่อไป

DISK FOR BOOT4!!!

4. SYSINIT จะเป็นผู้ควบคุมกระบวนการบูตต่อมาโดยทำหน้าที่โหลด MSDOS.SYS ลงสู่แรม สำหรับไฟล์ MSDOS.SYS นี้มีหน้าที่จัดการเกี่ยวกับไฟล์ การกระทำกับโปรแกรม ( execute programs ) และตอบสนองสัญญาณใดๆ ที่มาจากฮาร์ดแวร์

DISK FOR BOOT5!!!

5. SYSINIT ทำการค้นหาข้อมูลในไดเร็กทรอรีราก ( root directory : ส่วนที่เก็บข้อมูลส่วนตัวของไฟล์ โดยจะเก็บว่าดิสก์นั้นๆ มีไฟล์กี่ไฟล์ อะไรบ้าง ขนาดเท่าไร อยู่ในตำแหน่งใดบนดิสก์ ฯลฯ ตำแหน่งของรูดไดเร็กทรอรีนี้จะอยู่หลังเซกเตอร์ MSDOS.SYS ) สิ่งที่ SYSINIT ค้นหาในไดเร็กทรอรีรากก็คือ หาไฟล์ที่ชื่อว่า CONFIG.SYS ว่าอยู่ที่ตำแหน่งไหนของดิสก์ จากนั้นบอกให้ MSDOS.SYS ทำการกระทำกับคำสั่งที่อยู่ในไฟล์นี้ ไฟล์ CONFIG.SYS เป็นไฟล์ที่ผู้ใช้สร้างขึ้นเอง เพื่อบอกให้โอเอสจัดสภาพแวดล้อมตามความต้องการของผู้ใช้ เช่น ต้องการให้โอเอสเปิดไฟล์ได้ 50 ไฟล์พร้อมกัน เป็นต้น และภายในไฟล์นี้เองที่เรามักพ่วงคำสั่งให้ MSDOS.SYS ทำการโหลดไฟล์ดีไวซ์ไดรเวอร์ต่างๆ เข้าไปด้วย ( device drivers คือ ไฟล์ที่บรรจุโค้ด หรือคำสั่งพิเศษ เพื่อเพิ่มขีดความสามารถ ของไบออส ให้สามารถควบคุมหน่วยความจำ หรือฮาร์ดแวร์พิเศษอื่นๆ ได้เพิ่มเติม เช่น เมาส์ ซีดีรอม เป็นต้น )


DISK FOR BOOT6!!!

6. SYSINIT บอกให้ MSDOS.SYS โหลด COMMAND.COM ไฟล์นี้เป็นไฟล์โอเอสที่ประกอบด้วย 3 ส่วนส่วนแรกเป็ภาคขยายฟังก์ชั่นการทำงานเกี่ยวกับอินพุต / เอาต์พุต ถูกโหลดลงแรมพร้อมกับไบออส และกลายเป็นโอเอสส่วนที่อยู่ในแรมอย่างถาวร


DISK FOR BOOT7!!!

7. ส่วนที่สองเป็นส่วนที่เก็บคำสั่งภายในของดอส ( internal DOS command ) เช่น DIR , COPY , TYPE เป็นต้น ส่วนนี้จะถูกโหลดในตำแหน่งบนสุดของหน่วยความจำทั่วไป ( conventional RAM ) ซึ่งเป็นบริเวณที่สามารถเขียนข้อมูลทับได้โดยโปรแกรมแอปพลิเคชั่นอื่นๆ ถ้ามันต้องการหน่วยความจำบริเวณนั้นจริงๆ


DISK FOR BOOT8!!!

8.ส่วนที่สามเป็นส่วนที่ใช้เพียงครั้งเดียวแล้วเลิกกัน เป็นส่วนที่ใช้ค้นหาไฟล์ AUTOEXEC.BAT เป็นไฟล์ที่ผู้ใช้สร้างขึ้นเพื่อใส่ชุดคำสั่งแบตไฟล์ และ/หรือ ชื่อโปรแกรมที่ต้องการใช้ทำงานทันทีเมื่อเปิดเครื่อง ถึงจุดนี้ก็เป็นอันสิ้นสุดกระบวนการ "บูต" อย่างสมบูรณ์

Thanks : www.geocities.com

ไม่มีความคิดเห็น: