วันศุกร์ที่ 15 มิถุนายน พ.ศ. 2555

ยูทิลลิตี้ของระบบ และการจัดการระบบ

คือการจัดการระบบ (System Administration) ประกอบด้วยโปรแกรมที่ทำหน้าที่จัดการระบบในส่วนต่าง ๆ เช่น ระบบไฟล์ ผู้ใช้งานระบบ โมดูล ระบบรักษาความปลอดภัย ระบบเครือข่าย เป็นต้น ส่วนหนึ่งที่สำคัญคือ เครื่องมือสำหรับการพัฒนาโปรแกรม (Development Tools) โดยเฉพาะ GNU C เป็นคอมไพเลอร์มาตรฐานใน Linux
ในระบบ Unix จะใช้ทรัพยากรระบบค่อนข้างเปลือง แต่สำหรับ Linux จะใช้ทรัพยากรระบบเพียงน้อยนิด ใช้งานกับเครื่องคอมพิวเตอร์รุ่นเก่าที่ใช้ซีพียู 386ให้แสดงผลแบบกราฟฟิกได้ (X-Windows) ถือได้ว่าเป็นระบบปฏิบัติการแบบ 32 บิต และมีการเชื่อมต่อเครือข่ายด้วยโปรโตคอล TCP/IP
เนื่องจาก Linux เป็นระบบปฏิบัติการที่ออกแบบสำหรับการทงานบนเครื่องพีซีที่ใช้หน่วยประมวลผล x86 จึงสามารถนำฮาร์แวร์หรือเครื่องไมดครอคอมพิวเตอร์ที่มีสเป็คต่ำมาทำการติดตั้งได้ เช่น การนำเครื่องที่มีซีพียู 80486 ขั้นไป แรม 4-16 เมกกะไบต์ขึ้นไป พร้อมที่ว่างบนฮาร์ดดีสก์ 250 เมกกะไบต์ขึ้นไปก็สามารถใช้งาน Linux เป็นเครื่องแม่ข่าย (Server) หรือทำงานร่วมกับเครือข่ายอื่น ๆ ได้อย่างไม่มีปัญหา
รูป 14.1 แสดงส่วนประกอบเต็มระบบของ  Linux System ส่วนที่สำคัญที่สุดอยู่ระบบระหว่าง kernel และส่วนอื่นทุกๆ โค้ดของ kernel  จะรันบนโหมดพิเศษของโปรเซสเซอร์โดยจะสามารถแอ็กเซสได้ทุกรีซอร์สของคอมพิวเตอร์โหมดพิเศษที่ว่า ”kernel mode” ใน Linux จะไม่มีโค้ด user mode รวมอยู่ใน kernel  สำหรับโค้ดที่สนับสนุนการทำงานของระบบปฏิบัติการที่ไม่ได้ใช้กับ kernel mode จะวางอยู่ในไลบรารีระบบแทน ถึงแม้ว่าระบบปฏิบัติการสมัยใหม่จะนำสถาปัตยกรรมการส่งผ่านแมสเสจมาใช้ภายใน  kernel แต่ Linux ยังคงใช้โมเดลของ UNIX เดิมอยู่  kernel ที่เป็นแบบ  monolithic binary เพื่อปรับปรุงประสิทธิ์ภาพ ทั้งนี้เนื่องจากทุกโค้ดของ  kernel  และโครงสร้างข้อมูลถูกเก็บข้อมูลอยู่ในแอ็ดเดรสเดียว  ไม่จำเป็นต้องใช้คอนเท็กซ์สวิตซ์ เมื่อโปรเซสเรียกฟังก์ชันของระบบปฏิบัติการ หรือเมื่อเกิดการอินเทอร์รัพต์ของฮาร์ดแวร์ไม่เพียงโค้ดในการจักเวลาและหน่วยความจำเสมือนที่ยึดครองแอ็ดเดรสนี้เท่านั้น ทุกโค้ดของ  kernel  ที่รวมทั้งดีไวซ์เวอร์,ระบบไฟล์และเน็ตเวิร์คโค้ดจะอยู่ในแอ็ดเดรสเดียวกัน


        เนื่องจากทุก  kernel  แชร์ทุกรีซอร์สไม่ได้หมายความว่าทุกส่วนประกอบจะไม่มีขอบเขต เช่นเดียวกับแอปพลิเคชันที่สามารถโหลดไลบรารีที่แชร์ในขณะรันเพื่อดึงส่วนของโค้ดที่จำเป็นต้องใช้ ดังนั้น  kernel  ของ Linux  จะสามารถโหลดโมดูลได้ตลอดเวลาในขระที่รัน โดยที่ kernel ไม่จำเป็นต้องทราบเลยว่ามีการโหลดโมดูลไหน (มีความอิสระในการโหลด) kernel ของ Linux  เป็นแกนหลักของระบบปฏิบัติการ Linux  ที่ประกอบด้วยฟังก์ชันทั้งหมดที่จำเป็นในการรันโปรเซส รวมทั้งการบริการอื่น ๆ ที่มีต่อรีซอร์สและการป้องกันการแอ็กเซสรีซอร์สนั้นด้วย ถึงแม้ kernel  ของ Linux จะมีทุกฟีเจอร์ที่จำเป็นสำหรับระบบปฏิบัติการ แต่ kernel ของ Linux ไม่มีอะไรเหมือนของ UNIX  ใน  Linux  ขาดฟีเจอร์พิเศษของ UNIX  และฟีเจอร์ที่มีก็ไม่มีความจำเป็นสำหรับรูปแบบที่แอปพลิเคชันบน UNIX  คาดหวังอยู่แล้ว อินเทอร์เฟซที่มองเห็นของระบบปฏิบัติการสำหรับรันแอปพลิเคชันไม่ได้อยู่ในการดูแลของ  kernel  แต่แอปพลิเคชันจะเรียกไปยังไลบรารีของระบบ หรืออาจจะมีการเรียกใช้บริการของระบบตามจำเป็น
        ไลบารรีระบบมีฟังก์ชันหลายประเภท ในระดับธรรมดาที่สุด ไลบรารีจะยอมให้แอปพลิเคชันเพื่อร้องขอ kernel-system-service การใช้ system call รวมถึงการการแปลงการควบคุมจาก user mode ที่ไม่พิเศษ ไปยัง cernel mode แบบพิเศษ ไลบรารีจะดูแลชุดอาร์กิวเมนต์ของ system call และถ้าจำเป็นจะมีการจัดเรียงอาร์กิวเมนต์เหล่านี้ในรูปแบบพิเศษที่จำเป็นสำหรับ system call นอกจากนี้ไรบรารียังมี system call ที่ซับซ้อน เช่น ฟังก์ชันที่ใช้ดูแลภาษา C ก็มีอยู่ในไลบราลีซึ่งมีการควบคุมไฟล์พิเศษกว่า system call ของ cernel พื้นฐาน นอกจากนี้ไลบรารียังมีรูทีนที่ไม่เกี่ยวข้องกับ system call ทั้งหมด เช่น อัลกอลิทึมในการเรียงลำดับ ฟังก์ชันทางคณิตศาสตร์ และรูทีนที่จัดการทางด้านข้อความ ฟังก์ชันทั้งหมดนี้จำเป็นสำหรับแอปพลิเคชันของ UNIX และ  POSIX  จะมีอยู่ในไลบรารีของระบบ
        นอกจากส่วนที่เป็น cernel และไลบรารีระบบแล้ว ในLenux system ยังมีโปรแกรมที่เป็น user mode อีกมากมายทั้งที่เป็นยูทิลิตี้ระบบและยูทิลิตี้ของผู้ใช้ โดยยูทิลิตี้ระบบประกอบด้วยโปรแกรมทั้งหมดที่จำเป็นในการกำหนดค่าเริ่มต้นของระบบ เช่น โปรแกรมที่ปรับแต่งระบบเน็ตเวิร์คดีไวซ์ หรือโหลด kernel modules แม้แต่โปรแกรมที่ทำให่เซิร์ฟเวอร์ทำงานอยู่นั้นก็เป็นยูทิลิตี้ระบบ โปรแกรมที่ช่วยให้เซิร์ฟเวอร์ทำงานอยู่นี้ เช่น โปรแกรมที่ดูแลการร้องขอการล็อกเข้าระบบ การเชื่อมต่อเน็ตเวิร์คและการจัดคิวของเครื่องพิมพ์  ใน UNIX มียูทิลิตี้พื้นฐานมากมายที่ทำในสิ่งธรรมดาทุกวัน เช่น การลิสต์ไดเรกเทอรี การย้ายหรือการลบไฟล์ การแสดงข้อมูลในไฟล์ ยังมียูทิลิตี้พิเศษที่ทำฟังก์ชันในการจัดการข้อความ เช่น การเรียงลำดับข้อความ หรือการค้นหาข้อความ ยูทิลิตี้ทั้งสองกลุ่มถึงแม้จะไม่ได้ทำฟังก์ชันในระบบปฏิบัติการ แต่ก็มีความจำเป็นและเป็นส่วนสำคัญที่มีให้ใช้งานใน UNIX และ Lenux

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

แสดงความคิดเห็น