วันพุธที่ 5 มีนาคม พ.ศ. 2557

ความต้องการทางด้านฮาร์ดแวร์


        มาถึงขณะนี้คุณอาจจะเริ่มสนใจลีนุกซ์ขึ้นมาบ้างแล้ว แต่ก่อนที่จะติดตั้งลีนุกซ์คุณควรจะทราบก่อนว่าลีนุกซ์ต้องการใช้ฮาร์ดแวร์ในระดับและมีข้อจำกัดอะไรบ้าง
        เนื่องจากลีนุกซ์ถูกพัฒนาโดยผู้ใช้ของมันเองนั่นก็หมายถึงฮาร์ดแวร์ส่วนใหญ่ที่ลีนุกซ์สนับสนุนก็คือฮาร์ดแวร์ที่ผู้ใช้งานและผู้พัฒนาสามารถหามาใช้ได้นั่นเอง  ดังนั้นฮาร์ดแวร์และอุปกรณ์ต่อพ่วงสำหรับระบบพีซีทั่วๆ ไปก็สามารถนำมาใช้งานกับลีนุกซ์ได้ (อันที่จริงแล้วลีนุกซ์สนับสนุนฮาร์ดแวร์มากกว่า UNIX เพื่อการค้าบางตัวเสียอีกอย่างไรก็ตาม ลีนุกซ์ยังคงใช้งานไม่ได้กับอุปกรณ์ต่อพ่วงบางอย่าง แต่เนื่องจากเคอร์เนลของลีนุกซ์มีการพัฒนาอย่างต่อเนื่องตลอดเวลา ดังนั้นก็มีโอกาสที่จะสามารถนำอุปกรณ์นั้นมาใช้งานได้ในอนาคต
         อีกเหตุผลหนึ่งที่ทำให้ไม่สามารถนำฮาร์ดแวร์บางอย่างมาใช้กับลีนุกซ์ได้ เนื่องจากบริษัทที่ผลิตฮาร์ดแวร์ดังกล่าวไม่มีการเปิดเผยถึงรายระเอียดวิธีการในการเขียนโปรแกรมติดต่อกับฮาร์ดแวร์นั้น ทำให้การพัฒนาไดรเวอร์สำหรับลีนุกซ์จะต้องอาศัยการทำ reverse engineering ตรวจสอบดูว่าฮาร์ดแวร์ดังกล่าวจะสามารถเขียนโปรแกรมควบคุมได้อย่างไร ซึ่งก็มีทั้งที่ประสบความสำเร็จและล้มเหลว
ต่อไปนี้คือความต้องการทางด้านฮาร์ดแวร์ที่ลีนุกซ์ต้องการอย่างคร่าวๆ คุณสามารถหาอ่านรายการอุปกรณ์ที่ลีนุกซ์สนับสนุนทั้งหมดได้จาก Linux Hardware Compatibility HOWTO (ftp://ftp.nectec.or.th/pub/mirrors/linux/docs/HOWTO)
·       เมนบอร์ดและหน่วยประมวลผลกลาง ขณะนี้ลีนุกซ์สามารถทำงานได้บนหน่วยประมวลผลกลาง Intel ในตระกูล 80386 ขึ้นไป (80386/80386SX,80486/80486SX, Pentium, Pentium Pro และ Pentium II) รวมทั้งหน่วยประมวลผลกลางจากบริษัทอื่นๆ ที่เข้ากันได้ เช่น จาก AMD และ Cyrix ถ้าคุณใช้ 80386 หรือ 80486SX คุณจะต้องติดตั้งโปรเซสเซอร์ช่วยประมวลผลทางคณิตศาสตร์เพื่อการประมวลผลทางคณิตศาสตร์ที่เร็วขึ้น ถึงแม้ว่าลีนุกซ์ไม่จำเป็นจะต้องใช้มันก็ตาม เนื่องจากเคอร์เนลสามารถทำการจำลองคำสั่งประมวลผลทางคณิตศาสตร์ได้ (ขณะนี้การพัฒนาลีนุกซ์เพื่อให้สามารถทำงานได้บนสถาปัตยกรรมหน่วยประมวลผลกลางแบบอื่นก็คืบหน้าไปมากแล้วเช่นกันเมนบอร์ดที่ใช้จะต้องมีระบบบัสแบบ ISA, EISA,VESA หรือ PCI LocalBus สำหรับระบบบัสแบบ MicroChannel ซึ่งมีการใช้งานอยู่บนเครื่อง IBM/PS2 ขณะนี้ยังอยู่ระหว่างการพัฒนา ซึ่งคุณสามารถหารายละเอียดเพิ่มเติมได้จาก
http://www.undergad.math.uwaterloo.ca/~cpbeaure/mca-linux.html


·       หน่วยความจำ ลีนุกซ์ต้องการหน่วยความจำอย่างน้อย เมกะไบต์ อย่างไรก็ตาม คุณควรจะมีอย่างน้อย เมกะไบต์เพื่อไม่ให้ระบบทำงานช้าเกินไป และแน่นอนครับ เช่นเดียวกับระบบปฏิบัติการอื่นๆ คือยิ่งมีมากก็ยิ่งดี

·       ฮาร์ดดิสค์คอนโทรลเลอร์ คุณจะต้องมีคอนโทรลเลอร์ที่เป็น AT-standard (16บิตหรือ XT-standard (8บิตสำหรับฮาร์ดดิสก์ที่มีการเชื่อมต่อแบบ MFM, RLL และ IDE ส่วนคอนโทรลเลอร์ฮาร์ดดิสค์แบบ SCSI ที่สามารถนำมาใช้งานได้ก็มีอยู่หลายรุ่นด้วยกัน เช่น Adaptec AHA1542B, AHA1542C, AHA1742A, Future Domain 1680, TMC-850, Seagate ST-02, UltraStore SCSI, Western Digital WD7000FASST เป็นต้น

·       พื้นที่ฮาร์ดดิสค์ ส่วนใหญ่แล้วจะขึ้นอยู่กับความต้องการของคุณและจำนวนซอฟต์แวร์ที่คุณจะติดตั้ง คุณสามารถติดตั้งลีนุกซ์ลงบนฮาร์ดดิสค์ที่มีเนื้อที่ว่างขนาด 10-20 เมกะไบต์ แต่อาจจะไม่เหมาะสมกับการเพิ่มขยายระบบนัก โดยเฉพาะอย่างยิ่งถ้าคุณมีการติดตั้งซอฟต์แวร์ขนาดใหญ่เช่น ระบบ X Window หรือต้องการให้ระบบมีผู้ใช้งานจำนวนมาก นอกจากนี้คุณควรจะกันเนื้อที่ไว้เป็น swap space ด้วย (โดยปกติแล้วจะกันไว้ประมาณสองเท่าของหน่วยความจำที่มีนอกจากนี้แต่ละ distribution ยังมีจำนวนซอฟต์แวร์ที่จะติดตั้งให้คุณแตกต่างกันด้วย โดยทั่วไปแล้วถ้าคุณเลือกติดตั้งแบบครบหมดจะกินเนื้อที่ประมาณ 300 เมกะไบต์

·       จอภาพและการ์ดแสดงผล ลีนุกซ์สนับสนุนจอภาพและการ์ดแสดงผลทั้ง Hercules, CGA, EGA, VGA, IBM Monochrome และ SuperVGA สำหรับการแสดงผลในเท็กซ์โหมด สำหรับการแสดงผลในกราฟิกโหมดนั้นจะขึ้นอยู่กับระบบ X Window ที่คุณเลือกใช้ แต่โดยปกติแล้วจะใช้ได้กับการ์ดแสดงผลทั่วๆ ไป

·       อีเธอร์เน็ตการ์ด รายการคร่าวๆ ของอีเธอร์เน็ตการ์ดที่ลีนุกซ์สนับสนุนได้แก่
v   3com 3c503, 3c503/16, 3c509, 3c589
v   Novell NE1000, NE2000
v   Western Digital WD8003, WD8013
v   Hewlett-Packard HP27245, HP27247, HP27250

·       อุปกรณ์ต่อพ่วง
v   เม้าส์และอุปกรณ์ชี้อื่นๆ : ลีนุกซ์สนับสนุนทั้ง serial mouse ทั่วๆ ไป เช่น Logitech, MM series, Mouseman, Microsoft และยังสนับสนุน Microsoft, Logitech และ ATIXL busmouse อีกด้วย นอกจากนี้ mouse ที่มีการเชื่อมต่อแบบ PS/2 ก็สามารถใช้ได้เช่นกัน สำหรับอุปกรณ์ชี้อื่นๆ เช่น trackballs ซึ่งสามารถจำลองการทำงานเป็น mouse ข้างต้นได้ก็สามารถใช้ได้เช่นกัน


v   ซีดีรอม : ลีนุกซ์สนับสนุนซีดีรอมไดร์ฟที่มีอินเตอร์เฟสแบบ SCSI เกือบทุกรุ่น เพียงแต่คุณจะต้องมีคอนโทรลเลอร์ SCSI ที่ใช้กับลีนุกซ์ได้ นอกจากนี้ซีดีรอมไดร์ฟแบบอื่นๆ ที่สามารถนำมาใช้งานกับลีนุกซ์ได้ เช่น NEC CDR-74, Sony CDU-541, CDU-31a, Mitsumi และซีดีรอมแบบ IDE (ATAPI) เป็นต้น
v   เทปไดร์ฟ : สนับสนุนเทปไดร์ฟที่มีการเชื่อมต่อแบบ SCSI และอื่นๆ เช่นQIC-117, QIC-40/80, QIC-3010/3020 (QIC-WIDE)
v   โมเด็มและเครื่องพิมพ์ : มีหลักการง่ายๆ ก็คือ ถ้าคุณสามารถใช้โมเด็มหรือเครื่องพิมพ์นั้นบน DOS หรือระบบปฏิบัติการอื่นๆ ได้ คุณก็ควรจะสามารถนำมาใช้กับลีนุกซ์ได้เช่นกัน
v   ซาวนด์การ์ด : ที่สามารถใช้งานกับลีนุกซ์ได้ เช่น Adlib (OPL2), Audio Excell DSP16, Aztech Sound Galaxy NX Pro, Gravis Ultrasound, Logitech SoundMan, Microsoft Sound System (AD1848), OAK OTI-601D cards (Mozart), Sound Blaster และTurtle Beach Wavefront cards (Maui, Tropez) เป็นต้น


ความสามารถของลีนุกซ์


ลีนุกซ์มีความสามารถเกือบทุกอย่างที่คุณจะพบได้ในระบบปฏิบัติการ 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 เพื่อใช้ในการดีบักและหาสาเหตุที่ทำให้โปรแกรมทำงานผิดพลาดได้

ความเป็นมาของลีนุกซ์


          ลีนุกซ์เป็นระบบปฏิบัติการคอมพิวเตอร์แบบ UNIX ที่ถูกพัฒนาขึ้นเป็นครั้งแรกที่ University of Helsinki ประเทศ Finland โดยนักศึกษาที่ชื่อ Linus B. Torvalds และถูกแจกจ่ายให้ทดลองใช้งานบนอินเตอร์เน็ต ทุกคนที่มีความสามารถและความพยายามมากพอสามารถจะพัฒนาและเปลี่ยนแปลงระบบตามต้องการได้ ตัวเคอร์เนลของลีนุกซ์ไม่ได้ใช้ซอร์สโค้ดจาก AT&T หรือระบบปฏิบัติการ UNIX อื่นใด แอพพลิเคชันซอฟต์แวร์หลักที่ใช้งานบนลีนุกซ์ส่วนใหญ่พัฒนามาจากโปรเเจ็กต์ GNU ที่ Free Software Foundation (FSF) แต่อย่างไรก็ตาม ในปัจจุบันเริ่มมีโปรแกรมเมอร์หันมาพัฒนาโปรแกรมเพื่อใช้งานบนลินุกซ์เพิ่มมากขึ้นเรื่อยๆ
Linus B. Torvalds
          ในระยะแรกลินุกซ์ถูกพัฒนาเพื่อเป็นงานอดิเรกเท่านั้น โดยผู้เริ่มพัฒนาได้แรงบันดาลใจมาจากมินนิกซ์  (Minix) ซึ่งเป็นระบบปฏิบัติการ UNIX เล็กๆ ตัวหนึ่งที่พัฒนาขึ้นโดย Andy Tanenbaum เพื่อประกอบการเรียนรู้ในหนังสือเกี่ยวกับการออกแบบระบบปฏิบัติการคอมพิวเตอร์ของเขา ลินุกซ์ถูกพูดถึงเป็นครั้งแรกในกลุ่มข่าว comp.os.minix ว่าเป็นระบบ UNIX เพื่อการศึกษาขนาดเล็กสำหรับผู้ใช้งานมินนิกซ์ที่ต้องการความสารถมากกว่าที่มินนิกซ์จะทำได้การพัฒนาในระยะแรกจะมุ่งไปที่ความสามารถในการสลับการทำงานระหว่างโปรเซส (Task-Switching) ของหน่วยประมวลผลกลาง 80386 ในโปรเท็กเต็ดโหมดโดยโปรแกรมทั้งหมดถูกเขียนขึ้นด้วยภาษาแอสเซมบลีภายหลังได้เริ่มเปลี่ยนมาใช้ภาษา C ซึ่งช่วยให้การพัฒนาเป็นไปได้เร็วขึ้นกว่าเดิมมาก
          ในที่สุดลีนุกซ์เวอร์ชัน 0.01 (ราวๆ ปลายเดือนสิงหาคม 1991) ก็ถูกแจกจ่ายให้ทดลองใช้ ในเวอร์ชันนี้มีเพียงฮาร์ดดิสค์ไดรเวอร์และระบบไฟล์ขนาดเล็กให้ใช้งานเท่านั้น ไม่มีแม้แต่ฟล็อบปี้ดิสก์ไดรเวอร์ คุณจะต้องมีระบบมินนิกซ์อยู่แล้วจึงจะสามารถทำการคอมไพล์และทดลองใช้งานได้ เนื่องจากมันยังไม่มีโหลดเดอร์และคอมไพล์เลอร์ที่จะทำงานบนเคอร์เนลนี้ได้โดยตรง ต้องอาศัยการคอมไพล์ข้ามระบบ (Cross-compile) และบูตระบบผ่านทางมินนิกซ์

          Linus เปิดตัวลีนุกซ์อย่างเป็นทางการครั้งแรกในวันที่ 5 ตุลาคม 1991 บนกลุ่มข่าว comp.os.minix ด้วยเวอร์ชัน 0.02 ซึ่งลีนุกซ์ในเวอร์ชันนี้สามารถรัน bash (GNU Bourne Again Shell), gcc (GNU C Compiler) และอื่นๆ อีกเล็กน้อยได้แล้ว แต่ยังคงเป็นระบบที่เหมาะกับผู้พัฒนาโปรแกรมระบบเท่านั้น ยังไม่มีการพูดถึงเอกสารอธิบายประกอบ ไม่มีการสนับสนุนผู้ใช้ และไม่มีสิ่งที่จะช่วยอำนวยความสะดวกในการเข้าใจการทำงานของเคอร์เนลเลย ผู้ที่จะนำเคอร์เนลนี้ไปใช้จะต้องติดตามแกะเอาจากซอร์สโค้ดเองว่าระบบมีการทำงานอย่างไร
          หลังจากเวอร์ชัน 0.03 Linus ได้เพิ่มเวอร์ชันไปเป็น 0.10 เนื่องจากระบบเริ่มทำงานได้มากขึ้นและมีผู้สนใจร่วมพัฒนามากขึ้น หลังจากนั้นอีกสองสามเวอร์ชัน Linus ได้เพิ่มเวอร์ชันขึ้นเป็น 0.95 เนื่องจากเขาคาดว่าระบบในขณะนั้นใกล้จะเสร็จสมบูรณ์และพร้อมจะประกาศตัวอย่างเป็นทางการในไม่ช้า (อยู่ในช่วงราวๆ เดือนมีนาคม 1992) หลังจากนั้นอีกสองปีต่อมา (มีนาคม 1994) Linus ก็ได้เปิดตัวลีนุกซ์ 1.0 ขึ้น และเริ่มมีผู้นำไปใช้งานกันอย่างแพร่หลายตั้งแต่นั้นมา ในขณะที่จัดทำต้นฉบับอยู่นี้ลีนุกซ์ได้พัฒนามาถึงเวอร์ชัน 2.0 (2.0.15) แล้ว ซึ่งมีความความสามารถด้านต่างๆ พัฒนาเพิ่มขึ้นจากเวอร์ชัน 1.0 มากมาย          
          ถึงวันนี้ลีนุกซ์นับเป็นระบบปฏิบัติการ UNIX ที่สมบูรณ์แบบ มีความสามารถในการรันระบบ X Window สนับสนุนระบบเครือข่าย TCP/IP สามารถรับ/ส่ง e-mail ทำหน้าที่เป็น News, WWW หรือ FTP server ได้ ฟรีซอฟต์แวร์ส่วนใหญ่ถูกพอร์ตให้มาทำงานบนลีนุกซ์ และรวมถึงได้เริ่มมีการพัฒนาซอฟต์แวร์เพื่อการค้าเวอร์ชันสำหรับลีนุกซ์ขึ้นมาบ้างแล้ว มีหลายคนได้ทดลองรันโปรแกรมทดสอบความสามารถ (Benchmark) บนลีนุกซ์และพบว่าลีนุกซ์มีความสามารถเทียบเท่าเครื่องเวอร์กสเตชันระดับกลางจาก SUN และ DEC เลยทีเดียว ไม่เคยมีใครคาดคิดมาก่อนว่าจาก UNIX เล็กๆ ตัวหนึ่ง จะสามารถเติบโตขึ้นมาเป็นระบบ UNIX ที่สมบูรณ์แบบได้จนทุกวันนี้

ทำไมต้องเป็นลีนุกซ์


จุดเด่นที่น่าสนใจและเป็นเหตุผลที่ทำให้มีผู้เปลี่ยนจากระบบปฏิบัติการอื่นๆ มาใช้งานลีนุกซ์คือ
·       ลีนุกซ์เป็นระบบปฏิบัติการที่แจกฟรี คุณสามารถไปขอก็อปปี้จากใครก็ได้ที่มีอยู่แล้ว หรืออาจจะดาว์นโหลดมาจากศูนย์บริการ FTP ต่างๆ บนอินเตอร์เน็ตหรือคุณอาจจะหาซื้อซีดีรอมลีนุกซ์ได้ในราคาที่ไม่แพงนักตามร้านหนังสือหรือร้านอุปกรณ์คอมพิวเตอร์ทั่วไป

·       ลีนุกซ์เป็นระบบปฏิบัติการ UNIX ที่สามารถรันได้บนเครื่องพีซีทั่วไปที่มีราคาไม่แพงนักโดยสามารถรันได้บนเครื่องที่มีหน่วยประมวลผลกลางตั้งแต่ 80386 ขึ้นไป พร้อมกับสนับสนุนอุปกรณ์ต่อพ่วงต่างๆ เช่น การ์ดควบคุมการแสดงผล ซีดีรอม ฮาร์ดดิสค์ เครื่องพิมพ์ และอีเธอร์เน็ตการ์ด เป็นต้น สามารถทำงานได้บนระบบบัสทั้งแบบ EISA, ISA,VESA Localbus หรือ PCI นอกจากนี้ในปัจจุบันได้เริ่มมีการพอร์ตเคอร์เนลไปรันบนเครื่องที่ใช้หน่วยประมวลผล กลางอื่นๆ เช่น Motorola 680x0, DEC Alpha, PowerPC และ SPARC เป็นต้น

·       ประสิทธิภาพ คุณอาจจะแปลกใจที่เห็นระบบสามารถทำงานได้อย่างรวดเร็ว ถึงแม้ว่าจะมีหลายโปรเซสทำงานอยู่ในขณะนั้น ลีนุกซ์ถูกออกแบบให้ใช้งานอุปกรณ์ฮาร์ดแวร์ทุกอย่างของเครื่องอย่างเต็มประสิทธิภาพ ตรงกันข้ามกับ DOS ที่แทบจะไม่ได้ใช้งานความสามารถต่างๆ ของหน่วยประมวลผลกลาง 80386 ที่เพิ่มขึ้นมาจาก 8086 เช่น การจัดการหน่วยความจำเสมือน ( Virtual Memory ) การจัดการทำงานแบบมัลติทาสก์กิง ( Multitasking ) และ ระบบป้องกันการรบกวนการทำงานระหว่างโปรเซสต่างๆ เป็นต้น ถ้าคุณมีหน่วยประมวลผลกลางที่เร็วและเพิ่มหน่วยความจำให้มากพอ คุณจะพบว่าลีนุกซ์ทำงานได้ดีพอๆ กับหรือดีกว่าเครื่อง UNIX Workstation ราคาแพงหลายๆ ตัวในท้องตลาดขณะนี้เลยทีเดียว


·       คุณภาพ ลีนุกซ์เป็นความร่วมมือระหว่างโปรแกรมเมอร์นับพันที่ติดต่อกันทางอินเตอร์เน็ต ในขณะเดียวกันก็มีกลุ่มผู้ใช้งานเป็นจำนวนมากบนอินเตอร์เน็ตอีกเช่นกันที่พร้อมจะทดลองใช้งาน รายงานความผิดพลาดและให้คำแนะนำหรือเสนอความสามารถใหม่ๆ ให้กับผู้พัฒนาตลอดเวลา ถ้าคุณลองสมัคร mailing list หรือลองเข้าไปอ่านกลุ่มข่าว ( News Group ) ต่างๆ ของลีนุกซ์ดูคุณจะพบว่า แต่ละวันจะมี e-mail ที่พูดคุยกันถึงเรื่องความสามารถและ       จุดบกพร่องต่างๆ ของตัวเคอร์เนลรุ่นล่าสุดมากกว่า 100 ฉบับต่อวันเลยทีเดียว ด้วยวิธีนี้           ข้อบกพร่องต่างๆ จะถูกค้นพบและถูกแก้ไขได้อย่างรวดเร็ว กลุ่มผู้ใช้งานและพัฒนาลีนุกซ์มีทั้งที่เป็นนักศึกษา อาจารย์ นักวิจัยในมหาวิทยาลัย พนักงานบริษัท ( มีข่าวลือว่า แม้แต่พนักงานของ IBM และ Microsoft ก็ยังมีลีนุกซ์ไว้ใช้งานเอง ) และโปรแกรมเมอร์ ฯลฯ ดังนั้นคุณจึงมั่นใจได้ทั้งคุณภาพและประสิทธิภาพของระบบ
·       ความสามารถแบบ UNIX เนื่องจากลีนุกซ์เป็นระบบปฏิบัติการแบบหลายผู้ใช้และหลายงาน ( Multi-user, Multi-tasking ) อย่างแท้จริง มีระบบ X Window สำหรับการติดต่อกับผู้ใช้ในรูปแบบกราฟิกซึ่งสนับสนุนโปรแกรมจัดการ Window ( Window Manager ) หลายตัว นอกจากนี้ยังสนับสนุนระบบเครือข่ายหลากหลายรูปแบบ ไม่ว่าจะเป็น อีเธอร์เน็ต, โทเก้นริง, SLIP, PPP หรือ UUCP เป็นต้น
·       การใช้งานร่วมกับ DOS และ Windows คุณสามารถติดตั้งลีนุกซ์ลงบนพาร์ติชันหนึ่งของฮาร์ดดิสค์หรือในกรณีที่คุณไม่ต้องการแบ่งพาร์ติชันใหม่ คุณก็สามารถติดตั้งทับลงไปบนระบบไฟล์ของ DOS ( FAT ) ได้ด้วย คุณสามารถอ่านและเขียนแผ่นดิสค์หรือฮาร์ดดิสค์ที่ถูกฟอร์แมตโดย DOS ได้โดยตรง นอกจากนี้ยังได้มีการพัฒนาโปรแกรมจำลองการทำงาน DOS ( Dos Emulator ) และ Windows ( Windows Emulator : WINE ) บนลีนุกซ์ ซึ่งจะทำให้คุณรันโปรแกรมของ DOS และ Windows บางตัวได้ โดยที่โปรแกรมต้นแบบในขณะนี้สามารถรันโปรแกรมทั้งของ DOSและ Windows ได้ส่วนหนึ่ง
·       ความสามารถในการใช้งานไฟล์ร่วมกับระบบปฏิบัติการอื่นๆ ลีนุกซ์สนับสนุนระบบไฟล์ของระบบปฏิบัติการหลายชนิด ไม่ว่าจะเป็น DOS ( FAT ), Windows for Workgroup  ( SMB ), Windows 95 ( VFAT ), Windows NT ( NTFS ), NetWare ( NCP ), OS/2 ( HPFS ), MINIX, NFS และ System V เป็นต้น คุณจึงสามารถถ่ายโอนข้อมูลจากระบบปฏิบัติการอื่นๆ มาใช้งานได้โดยง่าย
·       ความต้องการทรัพยากรของระบบ ระบบขั้นต่ำที่ลีนุกซ์สามารถทำงานได้คือเครื่องพีซีที่มีหน่วยประมวลผลกลาง 80386 /SX หน่วยความจำ 2 เมกะไบต์ ฟลอบปี้ดิสค์ขนาด 1.44 หรือ 1.2 เมกะไบต์ การ์ดแสดงผล และจอภาพแบบโมโนโครม แต่แน่นอนครับว่าระบบขนาดนี้คงจะไม่สามารถทำงานอะไรได้มากนัก ระบบที่พอจะใช้ทำงานได้คือควรจะมีหน่วยความจำ    ตั้งแต่ 4 เมกะไบต์ขึ้นไป ถ้าคุณไม่ต้องการระบบ X Window หรือ 8 เมกะไบต์ขึ้นไปสำหรับระบบ  X Window ถ้าคุณต้องการให้ระบบคุณเร็วขึ้น ควรจะใช้หน่วยประมวลผลกลางที่เร็วกว่า      80386 /SX และต้องมีฮาร์ดดิสก์สำหรับเก็บโปรแกรมใช้งานต่างๆ  สำหรับขนาดของฮาร์ดดิสค์ที่เหมาะสมนั้นก็ขึ้นอยู่กับลักษณะงานที่จะนำไปใช้ เช่น ถ้าต้องรองรับงานจากผู้ใช้หลายคนก็ต้องเผื่อเนื้อที่สำหรับผู้ใช้แต่ระคนไว้ด้วย
·       มีผู้คอยให้ความช่วยเหลือมากมายเมื่อเกิดปัญหาขึ้นกับระบบ ในปัจจุบันนี้      อินเตอร์เน็ตถือเป็นแหล่งให้ความช่วยเหลือที่สำคัญที่สุดและใหญ่ที่สุดของลีนุกซ์ เนื่องจากลีนุกซ์เกิดและเติบโตขึ้นมาบนอินเตอร์เน็ตนั่นเอง มีกลุ่มข่าว (News Group) และ mailing list มากมายเกี่ยวกับลีนุกซ์ที่พร้อมจะรับฟังปัญหาและช่วยเหลือคุณตลอดเวลา
·       ลีนุกซ์เป็นระบบปฏิบัติการแบบเปิด เกือบทุกโปรแกรมที่รันบนลีนุกซ์และแม้แต่ตัวเคอร์เนลเองจะถูกแจกจ่ายไปพร้อมกับซอร์สโค้ด (ส่วนใหญ่เป็นภาษา C ) ดังนั้นหากคุณไม่พอใจหรือต้องการปรับปรุงความสามารถของระบบในส่วนต่างๆ ก็สามารถทำได้เอง และนอกจากนี้เนื่องจากระบบจะถูกแจกจ่ายมาพร้อมกับซอร์สโค้ดจึงทำให้มหาวิทยาลัยหลายแห่งเลือกใช้ลีนุกซ์เป็นระบบตัวอย่างประกอบการเรียนการสอนในวิชาที่เกี่ยวกับระบบปฏิบัติการคอมพิวเตอร์ นักศึกษาสามารถเข้าใจส่วนต่างๆ ของระบบปฏิบัติการรวมทั้งยังสามารถพัฒนาโปรแกรมระบบต่างๆ เช่น ดีไวซ์ไดรเวอร์
·       ระบบจัดการไฟล์ หรือแอพพลิเคชันโปรแกรมขึ้นมาใช้งานเองได้โดยง่าย ดังจะเห็นได้จากส่วนหนึ่งของโปรแกรมเมอร์ที่ร่วมพัฒนาลีนุกซ์ เป็นนักศึกษาที่ยังคงเรียนอยู่ในมหาวิทยาลัยต่างๆ ทั่วโลก

วันพุธที่ 26 กุมภาพันธ์ พ.ศ. 2557

Linux คืออะไร?


          Linux เป็นชื่อตัวปฏิบัติการระบบ (Operating System) ตัวหนึ่ง เช่นเดียวกับ DOS, Windows 95, Windows NT, OS/2  หรือ ระบบ Unix อื่นๆ   Linux ถูกออกแบบมาให้ใช้กับเครื่องคอมพิวเตอร์ ที่ใช้ตัวประมวลผลหรือ CPU ตระกูล  x86 ( เช่น 80386, 486, Pentium เป็นต้น) แต่ปัจจุบันมีการพัฒนาให้ใช้กับตัวประมวลผลตระกูลอื่นๆ เช่น Alpha chip ได้ด้วย โดยจะมีลักษณะการทำงานแบบ Unix  หลายท่านคงจะรู้จัก Unix มากันบ้างแล้ว  Unix เป็นระบบปฏิบัติการที่พัฒนาใช้กันมาหลายสิบปี เป็นระบบปฏิบัติการที่มีประสิทธิภาพมาก และเป็นที่แพร่หลายใช้กันทั่วโลก Unix มีหลายยี่ห้อ ซึ่งแต่ละยี่ห้อก็จะมีลักษณะปลีกย่อยแตกต่างกันเล็กน้อย ขึ้นอยู่กับบริษัทที่จัดทำ
          Linux ได้ถูกพัฒนาขึ้น เริ่มแรกโดย Linus Torvalds โดยตั้งใจจะให้เป็น UNIX ซึ่งสามารถใช้งานบนเครื่อง PC ธรรมดา ที่ใช้ CPU ตระกูล x86 ซึ่งก็คือ PC ธรรมดาที่เราใช้กันตามบ้านนั่นเอง คือเป็นการพลิกผันโลกของ Unix แทนที่จะอยู่เฉพาะในเครื่องใหญ่ๆ ตามศูนย์คอมพิวเตอร์เท่านั้น กลายเป็น Unix สำหรับทุกคน ผู้ใดอยากจะใช้ก็ได้ ใช้ฮาร์ดแวร์ธรรมดา
Linux เป็นระบบปฏิบัติการ UNIX ที่มีประสิทธิภาพสูงมากตัวหนึ่ง และเป็นที่นิยมใช้งานกันอย่างแพร่หลายในหมู่ผู้ใช้งานอินเตอร์เน็ต ที่สำคัญก็คือลีนุกซ์เป็นซอฟต์แวร์ภายใต้ลิขสิทธิ์ GPL (GNU Public License ซึ่งจะมีรายละเอียดในภาคผนวก) สามารถใช้งานโดยที่ไม่ต้องเสียค่าใช้จ่ายใดๆ สามารถจะไปดาวน์โหลดได้จากศูนย์บริการ FTP ทั่วๆ ไปหากคุณมีอินเตอร์เน็ตใช้งาน หรือคุณอาจจะต้องจ่ายเงินเล็กน้อยเพื่อสั่งซื้อแผ่นดิสค์หรือแผ่นซีดีจากบริษัทจำหน่ายซอฟต์แวร์บนซีดีต่างๆ ถ้าคุณไม่มีอินเตอร์เน็ตใช้งานหรือไม่อยากจะรอ FTP นานๆ ชนิดข้ามวันข้ามคืน เนื่องจากตัวซอฟต์แวร์ทั้งชุดจะมีขนาดหลายร้อยเมกะไบต์
          ส่วนเคอร์เนลหรือแกนกลางของระบบปฏิบัติการลีนุกซ์ถูกเขียนขึ้นมา โดยมีจุดเริ่มต้นมาจากงานอดิเรกของนักศึกษาที่ University of Helsinki ประเทศ Finland ที่ชื่อ Linus B. Torvalds เพื่อประกอบการเรียนรู้ในวิชา Operating System และได้แจกจ่ายไปให้ชุมชนอินเตอร์เน็ตเป็นผู้ทดลองใช้และรายงานข้อบกพร่องต่างๆ ต่อมาภายหลังมีผู้สนใจร่วมพัฒนาและเพิ่มเติมความสามารถให้กับตัวเคอร์เนลพร้อมกับได้มีการพอร์ตซอฟต์แวร์ต่างๆ ที่มีการใช้งานอยู่บน UNIX อื่นๆ ให้มาใช้งานบนลีนุกซ์ ได้มากมายในปัจจุบันนี้ลีนุกซ์นับเป็นระบบปฏิบัติการ UNIX ที่สมบูรณ์แบบ มีความสามารถแทบจะทุกอย่างที่ UNIX อื่นๆ มี
          เราสามารถใช้งาน Linux ได้โดยไม่ต้องเสียค่าใช้จ่ายในส่วนลิขสิทธิ์ แต่ Linux ไม่ใช่ Freeware หรือ Shareware ตัว Kernel (คือแกนกลางของตัวปฏิบัติการ Linux) นั้น สงวนลิขสิทธิ์โดย Linus Torvalds ส่วนโปรแกรมประกอบอื่นๆ ที่เขียนขึ้นโดยผู้ใดก็จะเป็นลิขสิทธิ์ของคนนั้น จะเห็นว่าตัว Linux จริงๆ แล้วนั้นมีลิขสิทธิ์ แต่ว่าเราสามารถใช้งาน Linux โดยไม่เสียค่าใช้จ่ายใดโดยปฏิบัติตามเงื่อนไขของ GNU Public License (GPL, บางท่านอาจเรียก Gopy Left) ซึ่งสนับสนุนให้มีการร่วมกันพัฒนาซอฟแวร์ เพื่อเป็นประโยชน์กับสาธารณชนต่อไป รายละเอียดของ GPL นี้ได้แนบท้ายมากับหนังสือเล่มนี้แล้ว
          
              
           ด้วยเหตุนี้ Linux จึงมีผู้ใช้กันมาก ทั้งในแวดวงการศึกษา วิจัย และ ธุรกิจ Linux มีข้อมูลทั้งทาง world wide web และ Mailing list บนเครือข่ายอินเทอร์เน็ตจำนวนมาก ท่านสามารถหาคำปรึกษาและรายละเอียดจากผู้ใช้ Linux อีกหลายล้านคนทั่วโลก Linux จัดได้ว่าเป็นระบบ Unix ที่แพร่หลายมากที่สุดตัวหนึ่งในปัจจุบัน