วันศุกร์ที่ 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 บนลีนุกซ์ก็มีดาต้าเบสที่มีการเขียนโปรแกรมแบบนี้ให้เช่นกัน และล่าสุดลีนุกซ์ก็มีจาวาคอมไพเลอร์ให้สำหรับผู้ที่ชื่นชอบการเขียนแอพเพลตจาวา สำหรับรันบนอินเทอร์เนตด้วย
ยูทิลลิตี้ของระบบ และการจัดการระบบ
คือการจัดการระบบ (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
ประโยชน์ของลีนุกซ์
ลีนุกซ์มีความสามารถเกือบทุกอย่างที่คุณจะพบได้ในระบบปฏิบัติการ UNIX ทั่วๆ ไป อีกทั้งยังมีความสามารถบางอย่างซึ่งแตกต่างไปจาก UNIX ตัวอื่นๆ
- ลีนุกซ์เป็นระบบปฏิบัติการแบบหลายงานและหลายผู้ใช้ (Multitasking and Multiuser) ที่สมบูรณ์แบบ (เหมือนระบบปฏิบัติการ UNIX ทั่วๆ ไป) นั่นคือสามารถมีผู้ใช้งานพร้อมๆ กันได้หลายคน และแต่ละคนสามารถรันโปรแกรมได้หลายๆ โปรแกรมพร้อมๆ กัน
- ลีนุกซ์มีความเข้ากันได้ (compatible) กับ UNIX ส่วนมากในระดับซอร์สโค้ด ตัวอย่างเช่น IEEE POSIX.1, System V UNIX และ BSD UNIX เป็นต้น มันถูกพัฒนาขึ้นโดยยึดหลัก source portability ดังนั้นคุณจะพบว่า features ที่ถูกใช้งานเป็นประจำของลีนุกซ์สามารถพบได้ใน UNIX อื่นๆ ทั่วไป ซอฟต์แวร์ UNIX ในอินเตอร์เน็ตส่วนใหญ่สามารถนำมาคอมไพล์บนลีนุกซ์ได้โดยไม่จำเป็นต้องแก้ไขซอร์สโค้ดเลย นอกจากนี้ซอร์สโค้ดทั้งหมดของระบบลีนุกซ์อันได้แก่ เคอร์เนล ดีไวซ์ไดรเวอร์ ไลบรารี โปรแกรมใช้งาน และโปรแกรมระบบต่างๆ สามารถหาดาวน์โหลดได้ฟรีจากศูนย์บริการ FTP มากมายทั่วโลก
- ความสามารถอื่นๆ อันได้แก่ posix job control (ซึ่งถูกใช้ในโปรแกรม shell ต่างๆ เช่น bash, sh และ csh) เทอร์มินอลเสมือน (pseudo terminal) คอนโซลเสมือน (virtual console) ซึ่งทำให้คุณสามารถสลับหน้าจอระหว่าง login sessions ต่างๆ บนหน้าจอคอนโซลในเท็กซ์โหมดได้ ฯลฯ
- ลีนุกซ์สนับสนุนระบบไฟล์หลายชนิด เช่น ext2fs (ถูกพัฒนาสำหรับใช้งานกับลีนุกซ์โดยเฉพาะ) MINIX-1 และ XENIX (เป็นระบบไฟล์ที่ใช้งานบนระบบมินนิกซ์และซีนิกซ์) MS-DOS FAT, ISO-9660 (ระบบไฟล์ที่ใช้กันบนซีดีรอมส่วนใหญ่) NCPFS (ใช้ในการ mount volume ต่างๆ ของ NetWare) SMBFS (ใช้ในการ mount ไดเรคทอรีของ Windows for Workgroup) เป็นต้น
- ลีนุกซ์สนับสนุนระบบเครือข่าย TCP/IP อย่างสมบูรณ์แบบ มีดีไวซ์ไดรเวอร์สำหรับอีเธอร์เน็ตการ์ดหลายยี่ห้อ สนับสนุนโปรโตคอล SLIP (Serial Line IP) PLIP (Parallel Line IP) PPP (Point-to-Point Protocol) NFS (Network File System) ฯลฯ นอกจากนี้ยังมีโปรแกรมไคล์เอ็นต์และเซิร์ฟเวอร์สำหรับบริการต่างๆ ในอินเตอร์เน็ตทุกประเภท เช่น FTP, Telnet, NNTP, SMTP, Gopher, WWW เป็นต้น
- เคอร์เนลของลีนุกซ์มีความสามารถในการจำลองการทำงานของโปรเซสเซอร์ช่วยประมวลผลทางคณิตศาสตร์ 80387 ดังนั้นแม้ในเครื่องที่ไม่มีโปรเซสเซอร์ช่วยประมวลผลทางคณิตศาสตร์ก็ยังสามารถรันโปรแกรมที่ต้องการใช้งานคำสั่งเกี่ยวกับ floating-point ได้
- เคอร์เนลของลีนุกซ์สนับสนุน demand-paged loaded executable นั่นคือเฉพาะส่วนของโปรแกรมที่กำลังถูกเรียกทำงานเท่านั้นที่จะถูกอ่านจากดิสค์เข้าสู่หน่วยความจำของเครื่อง ทำให้ระบบมีการใช้งานหน่วยความจำอย่างมีประสิทธิภาพ นอกจากนี้ตัวเคอร์เนลจะโหลดโปรแกรมขึ้นมาทำงานด้วยวิธี shared copy-on-write pages หมายถึงมีหลายๆ โปรเซสที่สามารถจะใช้งานหน่วยความจำส่วนเดียวกันในการทำงานได้ ซึ่งจะทำให้สามารถโหลดโปรแกรมได้อย่างรวดเร็วในกรณีที่มีการเรียกใช้โปรแกรมเดียวนี้โดยผู้ใช้คนอื่นอยู่ก่อนแล้ว และสามารถลดการใช้งานหน่วยความจำลงได้
- เพื่อให้มีหน่วยความจำใช้งานมากขึ้น ลีนุกซ์สนับสนุน swap space มากถึง 2 กิกะไบต์ ดังนั้นคุณจึงสามารถรันแอพพลิเคชันขนาดใหญ่และมีผู้ใช้งานได้พร้อมกันมากขึ้น
- เคอร์เนลของลีนุกซ์มีระบบ unified memory pool สำหรับโปรแกรมและดิสค์แคช นั่นคือหน่วยความจำที่ว่างอยู่ทั้งหมดจะถูกใช้งานเป็นดิสค์แคชและเมื่อมีการโหลดโปรแกรมขนาดใหญ่ ขนาดของดิสค์แคชก็จะถูกลดลงโดยอัตโนมัติ
- โปรแกรมที่ใช้งานบนลีนุกซ์จะมีการใช้งาน dynamically linked shared libraries ซึ่งก็คือโปรแกรมที่รันบนลีนุกซ์จะมีการใช้งานไลบรารีไฟล์ร่วมกัน (เหมือน shared library ของ SunOS หรือ DLL ของ Windows) ซึ่งจะทำให้โปรแกรมที่รันบนลีนุกซ์มีขนาดเล็กลงมาก โดยเฉพาะโปรแกรมที่มีการใช้งานฟังก์ชันจากหลายๆ ไลบรารี แต่ในขณะเดียวกันถ้าคุณต้องการทำการดีบักโปรแกรมหรือต้องการใช้งานโปรแกรมแบบ static linked ก็สามารถใช้ได้เช่นกัน
- เพื่อสนับสนุนการดีบักโปรแกรม ตัวเคอร์เนลจะทำการสร้างไฟล์ core dump เพื่อใช้ในการดีบักและหาสาเหตุที่ทำให้โปรแกรมทำงานผิดพลาดได้
การเปรียบเทียบ linux กับ windows
ลีนุกซ์ (Linux) และวินโดว์ส (Windows) ต่างเป็นระบบปฏิบัติการคอมพิวเตอร์ส่วนบุคคล (PC) ที่ได้รับการยอมรับอย่างกว้างขวางทั้งระดับผู้ใช้ทั่วไป จนถึงระดับองค์กรขนาดใหญ่ทั่วโลก ทว่าประสิทธิภาพของระบบทั้งสองนี้ กลับรับรู้กันอย่างคลุมเครือหรือไม่ก็เพียงเฉพาะระบบใดระบบหนึ่งเท่านั้น ซึ่งเป็นการลำบากอย่างยิ่งสำหรับผู้กำลังตัดสินใจที่จะใช้ระบบใดระบบหนึ่ง บนเครื่องของตน
ข้อเปรียบเทียบต่อไปนี้รวบรวมขึ้น เพื่อนำเสนอข้อแตกต่างของระบบปฏิบัติการคอมพิวเตอร์ทั้งสอระบบ ข้อเปรียบเทียบระหว่างระบบปฏิบัติการลีนุกซ์ (Linux) และ วินโดว์ส ( Microsoft Windows )
ลีนุกซ์(Linux)และวินโดว์ส(Windows) ต่างเป็นระบบปฏิบัติการคอมพิวเตอร์ส่วนบุคคล(PC)ที่ได้รับการยอมรับอย่างกว้างขวางทั้งระดับผู้ใช้ทั่วไป จนถึงระดับองค์กรขนาดใหญ่ทั่วโลก ทว่าประสิทธิภาพของระบบทั้งสองนี้ กลับรับรู้กันอย่างคลุมเครือหรือไม่ก็เพียงเฉพาะระบบใดระบบหนึ่งเท่านั้น ซึ่งเป็นการลำบากอย่างยิ่งสำหรับผู้กำลังตัดสินใจที่จะใช้ระบบใดระบบหนึ่งบนเครื่องของตน ข้อเปรียบเทียบต่อไปนี้รวบรวมขึ้นเพื่อนำเสนอข้อแตกต่างของระบบปฏิบัติการคอมพิวเตอร์ทั้งสองระบบ
จากข้อแตกต่างด้านราคาและประสิทธิภาพ ทำให้องค์ทั้งภาครัฐและเอกชนหันมาสนใจที่จะใช้ Linux เป็น "ระบบปฏิบัติการหลัก" ในองค์กรของตนมากขึ้น สังเกตจากระดับความนิยมลีนุกซ์ตามแผนภูมิด้านล่าง
เห็นได้ว่าระบบ Windows ของMicrosoft นั้นครองตลาดมากที่สุดในปัจจุบัน ส่วนLinux กำลังไล่ขึ้นมาติดๆโดนเฉพาะในภูมิภาคโลกที่สาม สีน้ำเงิน หมายถึง ไมโครซอร์ฟ
สีแดง หมายถึง แมคอินทอช สีเหลือง หมายถึง ลีนุกซ์
อย่างไรก็ตามสิ่งที่สำคัญที่สุดคือตัวผู้ใช้นั้นต้องเลือกระบบที่เหมาะสมกับตนที่สุดนั่นเอง
สรุป ข้อแตกต่างของระบบ Windows กับระบบ Linux
สำหรับโหมดไฟล์ของระบบ Windows กับระบบ Linux นั้นมีลักษณะที่แตกต่างกัน ส่วนมากระบบ Windows สามารถใช้งานได้ปกติไม่ค่อยได้ยุ่งเกี่ยวกับโหมดไฟล์เท่าไหร่ ระบบโหมดไฟล์จะเกี่ยวกับท่านที่ใช้ Hosting เป็นระบบ Linux เป็นส่วนใหญ่ที่จะต้องเรียนรู้การเปลี่ยนโหมดไฟล์ (Change Mode) การเปลี่ยนโหมดไฟล์นั้นจะเกี่ยวกับการเก็บค่าคอนฟิกระบบตอนติดตั้ง โดยที่ระบบ CMS แต่ละตัวจะมีการเปลี่ยนโหมดไฟล์ที่ไม่เหมือนกัน อาทิเช่น ระบบ PHPNuke จะเปลี่ยนไฟล์ config.php และ config-old.php เป็น 666 เป็นต้น การที่เราจะเปลี่ยนที่ไฟล์ไหนนั้นปกติระบบ cms ที่เราใช้จะแนะนำให้อยู่แล้ว เราสามาถอ่านรายละเอียดเพิ่มเติมได้ในไฟล์ readme.txt หรือในไดเร็กทอรี doc ของตัวติดตั้งนั้นๆ
สมัครสมาชิก:
บทความ (Atom)