surawutn
วันศุกร์ที่ 15 มิถุนายน พ.ศ. 2555
ลีนุกซ์คืออะไร
ลีนุกซ์คืออะไร
นุกซ์ระบบปฏิบัติการแบบ 32 บิต ที่เป็นยูนิกซ์โคลน สำหรับเครื่องพีซี และแจกจ่ายให้ใช้ฟรี สนับสนุนการใช้งานแบบหลากงาน หลายผู้ใช้ (MultiUser-MultiTasking) มีระบบ X วินโดวส์ ซึ่งเป็นระบบการติดต่อผู้ใช้แบบกราฟฟิก ที่ไม่ขึ้นกับโอเอสหรือฮาร์ดแวร์ใดๆ (มักใช้กันมากในระบบยูนิกซ์) และมาตรฐานการสื่อสาร TCP/IP ที่ใช้เป็นมาตรฐานการสื่อสารในอินเทอร์เนตมาให้ในตัว
ลีนุกซ์มีความเข้ากันได้ (compatible) กับ มาตรฐาน POSIX ซึ่งเป็นมาตรฐานอินเทอร์เฟสที่ระบบยูนิกซ์ส่วนใหญ่จะต้องมีและมีรูปแบบบางส่วนที่คล้ายกับระบบปฏิบัติการยูนิกซ์จากค่าย Berkeley และ System V โดยความหมายทางเทคนิคแล้วลีนุกซ์ เป็นเพียงเคอร์เนล (kernel) ของระบบปฏิบัติการ ซึ่งจะทำหน้าที่ในด้านของการจัดสรรและบริหารโพรเซสงาน การจัดการไฟล์และอุปกรณ์ I/O ต่างๆ แต่ผู้ใช้ทั่วๆไปจะรู้จักลีนุกซ์ผ่านทางแอพพลิเคชั่นและระบบอินเทอร์เฟสที่เขาเหล่านั้นเห็น (เช่น Shell หรือ X วินโดวส์)
ถ้าคุณรันลีนุกซ์บนเครื่อง 386 หรือ 486 ของคุณ มันจะเปลี่ยนพีซีของคุณให้กลายเป็นยูนิกซ์เวอร์กสเตชันที่มีความสามารถสูง เคยมีผู้เทียบประสิทธิภาพระหว่างลีนุกซ์บนเครื่องเพนเทียม และเครื่องเวอร์กสเตชันของซันในระดับกลาง และได้ผลออกมาว่าให้ประสิทธิภาพที่ใกล้เคียงกัน และนอกจากแพลตฟอร์มอินเทลแล้ว ปัจจุบันลีนุกซ์ยังได้ทำการพัฒนาระบบเพื่อให้สามารถใช้งานได้บนแพลตฟอร์มอื่นๆด้วย เช่น DEC Alpha , Motorolla Power-PC , MIPS เมื่อคุณสร้างแอพพลิเคชันขึ้นมาบนแพลตฟอร์มใดแพลตฟอร์มหนึ่งแล้ว คุณก็สามารถย้ายแอพพลิเคชันของคุณไปวิ่งบนแพลตฟอร์มอื่นได้ไม่ยาก
ลีนุกซ์มีทีมพัฒนาโปรแกรมที่ต่อเนื่อง ไม่จำกัดจำนวนของอาสาสมัครผู้ร่วมงาน และส่วนใหญ่จะติดต่อกันผ่านทางอินเทอร์เนต เพราะที่อยู่อาศัยจริงๆของแต่ละคนอาจจะอยู่ไกลคนละซีกโลกก็ได้ และมีแผนงานการพัฒนาในระยะยาว ทำให้เรามั่นใจได้ว่า ลีนุกซ์เป็นระบบปฏิบัติการที่มีอนาคต และจะยังคงพัฒนาต่อไปได้ตราบนานเท่านาน
ลีนุกซ์มีความเข้ากันได้ (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) ยังมีความสามารถไม่เพียงพอแก่ความต้องการ จึงได้เริ่มต้นทำการพัฒนาระบบยูนิกซ์ของตนเองขึ้นมา โดยจุดประสงค์อีกประการ คือต้องการทำความเข้าใจในวิชาระบบปฏิบัติการคอมพิวเตอร์ด้วยเมื่อเขาเริ่มพัฒนาลีนุกซ์ไปช่วงหนึ่งแล้ว เขาก็ได้ทำการชักชวนให้นักพัฒนาโปรแกรมอื่นๆมาช่วยทำการพัฒนาลีนุกซ์ ซึ่งความร่วมมือส่วนใหญ่ก็จะเป็นความร่วมมือผ่านทางอินเทอร์เนต ลีนุสจะเป็นคนรวบรวมโปรแกรมที่ผู้พัฒนาต่างๆได้ร่วมกันทำการพัฒนาขึ้นมาและแจกจ่ายให้ทดลองใช้เพื่อทดสอบหาข้อบกพร่อง ที่น่าสนใจก็คืองานต่างๆเหล่านี้ผู้คนทั้งหมดต่างก็ทำงานโดยไม่คิดค่าตอบแทน และทำงานผ่านอินเทอร์เนตทั้งหมด
โครงสร้างของระบบ Linux
ประกอบด้วย 3 ส่วนคือ
1. ตัวระบบปฏิบัติการ หรือเคอร์เนล (kernel)
2. ไลบรารีของระบบ
3. ยูทิลิตี้ของระบบ และการจัดการระบบ
2. ไลบรารีของระบบ
3. ยูทิลิตี้ของระบบ และการจัดการระบบ
ตัวระบบปฏิบัติการ (kernel)
เคอร์เนลเป็นส่วนประกอบที่สำคัญของระบบ เรียกว่าเป็นแกนหรือหัวใจของระบบก็ว่าได้ เคอร์เนลจะมีหน้าที่ควบคุมการทำงานทั้งหมดของระบบ ตั้งแต่การจัดสรรทรัพยากรของระบบบริการโพรเซสงาน (Process) การจัดการไฟล์และอุปกรณ์อินพุต , เอาต์พุต บริหารหน่วยความจำ โดยเคอร์เนลจะควบคุมอุปกรณ์ฮาร์ดแวร์ของเครื่องทั้งหมด ดังนั้นเคอร์เนลจึงขึ้นอยู่กับฮาร์ดแวร์ ถ้าฮาร์ดแวร์เปลี่ยนรุ่นใหม่ เคอร์เนลก็จะต้องเปลี่ยนไปด้วยเคอร์เนล
ประกอบด้วยส่วนย่อย ๆ พื้นฐาน 3 ส่วน คือ 1. ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
2. ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler) มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆ
3. ตัวควบคุมมอนิเตอร์ ( monitor control X มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่างๆของระบบการทำงานของส่วนย่อยทั้ง 3 ของเคอร์เนล ต้องการความเร็ว ในการทำงานสูงมากเพราะเป็นขั้นพื้นฐานและมีการทำงานบ่อยมาก ดังนั้นเคอร์นอลมักจะเขียนขึ้นด้วยภาษาแอสเซมบลี้ และเป็นส่วนที่ขึ้นอยู่กับฮาร์ดแวร์ของเครื่อง (hardware dependent)ด้วย นั่นคือ ถ้าโครงสร้างทางฮาร์ดแวร์ของเครื่องมีการเปลี่ยนแปลง ส่วนของเคอร์แนลต้องถูกนำมาแก้ไขใหม่ด้วยเพื่อให้สามารถทำงานกับฮาร์ดแวร์ชิ้นใหม่ได้ นอกจากหน้าที่พื้นฐานทั้ง 3 แล้ว เคอร์เนลยังมีหน้าที่อื่นๆ อีก เช่น จัดการเรื่องการเข้าจังเหวะของ โปรเซส (process synchronization) และการติดต่อระหว่างโปรเซส (process communication)
ประเภทรูปแบบ เคอร์เนล
1. โมโนลิทริค เคอร์เนล(Monolithic kernel)
Monolithic Kernel เป็นแบบซึ่งจะตัด Driver ของ Hardware ที่ไม่ต้องการออกไป ทำให้มีขนาดเล็กลง การทำงานก็เร็วขึ้น โมโนลิทริค เคอร์เนลมีอยู่ใน
- Linux kernel
- MS-DOS, Microsoft Windows 9x Series (Windows 95 Windows98 เป็นต้น)
- Agnix
รูปภาพแสดงหลักการทำงานของโมโนลิทริค เคอร์เนล |
2. ไมโครเคอร์เนล (Microkernel)
รูปภาพแสดงหลักการทำงานของไมโครเคอร์เนล |
3. เคอร์เนลแบบผสม (Hybrid kernel)
ไลบรารีของระบบ
เป็นที่เก็บรวบรวมฟังก์ชันมาตรฐานที่ใช้ในการติดต่อกับเคอร์เนล ทำให้โปรแกรมทั่วไปสามารถต่อกับระบบได้โดยผ่านทางด้านฟังก์ชันมาตรฐานเหล่านี้ ซึ่งก็เหมือนกับฟังก์ชัน Unix ทั่วไป เหตุนี้โปรแกรมใดที่ใช้งานบน Unix หรือ POSIX ก็สามารถรันบน Linux ได้
การพัฒนาระบบงานบนลีนุกซ์
ลีนุกซ์ได้ทำการเตรียม เครื่องมือพัฒนาโปรแกรมให้เราไว้อย่างครบครันซึ่งจะมีตั้งแต่แอพพลิเคชันมาตรฐานคือ C/C++ คอมไพเลอร์ของ GNU และหากเราต้องการพัฒนาระบบบน X ก็มี TCL/TK เตรียมไว้ให้ด้วย สำหรับคอมไพเลอร์ภาษาอื่นๆก็มีเช่น Perl, Smalltalk , Pascal, Lisp เป็นต้น ถ้าคุณมีความเชี่ยวชาญการเขียนโปรแกรมแบบ X-Base หรือ FoxPro บนลีนุกซ์ก็มีดาต้าเบสที่มีการเขียนโปรแกรมแบบนี้ให้เช่นกัน และล่าสุดลีนุกซ์ก็มีจาวาคอมไพเลอร์ให้สำหรับผู้ที่ชื่นชอบการเขียนแอพเพลตจาวา สำหรับรันบนอินเทอร์เนตด้วย
สมัครสมาชิก:
บทความ (Atom)