ประวัติความเป็นมาของลีนุกซ์ เมื่อพูดถึงลีนุกซ์คงจะต้องพูดเรื่องซอฟต์แวร์เสรี หรือ ซอฟต์แวร์โอเพนซอร์ส พราะลีนุกซ์ก็จัดอยู่ในซอฟต์แวร์ประเภทนี้ แนวความคิดเรื่องนี้มีที่มาอย่างไร ของฟรีและดี มีจริงหรือเปล่า
ซอฟต์แวร์เสรี
โครงการ GNU ได้เริ่มขึ้นเมื่อปี ค.ศ. 1984 เพื่อพัฒนาระบบปฏิบัติการที่เหมือนกับยูนิกซ์ (Unix-like)ที่สมบูรณ์ และเป็นซอฟต์แวร์เสรี เคอร์เนลของ GNU พัฒนาไม่สำเร็จ แต่มันก็ได้นำไปใช้ในเคอร์เนลของลีนุกซ์ ซึ่งใช้กันอยู่อย่างกว้างขวางในขณะนี้ อย่างไรก็ตาม ระบบเหล่านี้ มักจะถูกเรียกว่า ลีนุกซ์ ซึ่งจริงๆ แล้ว ถ้าจะเรียกให้ถูกต้อง มันควรจะเรียกว่า ระบบกนู/ลีนุกซ์ (GNU/Linux systems)
ต่อมา ในปี 1985 Richard Stallman ได้ก่อตั้ง Free Software Foundation
(FSF) เป็นองค์กรที่ไม่หวังผลกำไร มีจุดประสงค์เพื่อพัฒนาและส่งเสริมการใช้ซอฟต์แวร์ฟรี ซึ่งหมายถึง Freedom หรือซอฟต์แวร์เสรีนั่นเอง FSF เป็นผู้สนับสนุนหลัก ให้กับโครงการ GNU และที่สำคัญ FSF ได้ร่างลิขลิทธิ์ของซอฟต์แวร์เสรีนั่นก็คือ GPL (GNU Public License) ซึ่งใช้เป็นสัญญาอนุญาตสำหรับซอฟต์แวร์เสรีนั่นเอง ลักษณะของสัญญาอนุญาตจีพีแอลมีลักษณะ สรี (free) ที่หมายถึงเสรีภาพสำหรับผู้ใช้ซอฟต์แวร์สี่ประการดังนี้
- เสรีภาพในการใช้งาน ไม่ว่าใช้สำหรับจุดประสงค์ใด
- เสรีภาพในการศึกษาการทำงานของโปรแกรม และแก้ไขโค้ด การเข้าถึงซอร์ซโค้ดจำเป็นสำหรับเสรีภาพข้อนี้
- เสรีภาพในการจำหน่ายแจกจ่ายโปรแกรม
- เสรีภาพในการปรับปรุงและเปิดให้บุคคลทั่วไปใช้และพัฒนาต่อไป โดยมีเพียงเงื่อนไขว่า การนำไปใช้หรือนำไปพัฒนาต่อจำเป็นต้องใช้สัญญาอนุญาตเดียวกัน
ความเป็นมาของลีนุกซ์
ก่อนที่จะมีลีนุกซ์มีระบบปฏิบัติการที่เหมือนยูนิกซ์อยู่แล้วชื่อว่า Minix ซึ่งพัฒนาโดยนาย Andrew S. Tanenbaum ตั้งแต่ปี ค.ศ. 1987 ในขณะที่ซอร์ซโค้ดของ Minix ที่มีอยู่นั้นได้ถูกแก้ไข และปรับปรุงใหม่อยู่ในวงจำกัด นอกจากนั้น
Minix ยังได้ออกแบบมาสำหรับ CPU 16บิท ไม่เหมาะที่จะนำมาปรับใช้กับ CPU 32 บิท บนเครื่องพีซีที่ใช้ซีพียู Intel 386 ที่มีอยู่ในขณะนั้น ด้วยเหตุที่ Minix มีข้อจำกัดหลายอย่างจึงไม่ได้รับความนิยม ถูกนำมาใช้น้อยอยู่ในวงจำกัด ด้วยเหตุนี้ การทำเคอร์เนลฟรี จึงเป็นแรงบันดาลใจให้นาย Linus Torvalds ได้เริ่มโครงการของเขา ถึงแม้ว่าในขณะนั้นมีเคอร์เนล GNU และ 386BSD อยู่แล้วก็ตาม
ในปี ค.ศ. 1991 ขณะที่ Linus Torvalds กำลังศึกษาอยู่ที่มหาวิทยาลัย Helsinki ก็ได้เริ่มทำโครงการของเขาซึ่งต่อมาก็คือ Kernel นั่นเอง เขาเขียนโปรแกรมเฉพาะสำหรับฮาร์ดแวร์ที่เขาใช้ โดยที่ไม่ขึ้นกับระบบปฏิบัติการ เพราะ เขาต้องการที่จะใช้ฟังก์ชั่นของเครื่องคอมพิวเตอร์ใหม่ของเขาซึ่งเป็นซีพียูตระกูล 80386 การพัฒนาเสร็จบน Minix
โดยใช้ GNU Compiler ซึ่งเป็นคอมไพเลอร์หลักบนลีนุกซ์ในปัจจุบัน หลังจากที่พัฒนาเสร็จ Linus Torvalds ก็ได้ประกาศใน newsgroup “comp.os.minix.” เมื่อวันที่ 25 สิงหาคม ปี ค.ศ 1991 มีใจความดังนี้
ลีนุกซ์เป็นซอฟท์แวร์ที่มีลิขสิทธิ์ หรือมีสัญญาอนุญาต
ครั้งแรกที่ลีนุกซ์ออกมา Linus Torvalds ได้ประกาศลิขสิทธิ์เป็นของเขาเอง ซึ่งมีข้อห้ามเกี่ยวกิจกรรมเชิงพาณิชย์ ต่อมาในกลางเดือนธันวาคม ปี 1992 เขาได้ออกเวอร์ชัน 0.99 โดยใช้ลิขสิทธิ์ หรือสัญญาอนุญาต GNU General Public License (GNU GPL) ซึ่งมีโปรแกรมเมอร์ทั่วโลกช่วยกันพัฒนาเคอร์เนลของลีนุกซ์ โดยมี Linus Torvalds เป็นผู้ดูแล เพราะฉะนั้นใครที่เข้าใจผิดอยู่ว่าลีนุกซ์เป็นซอฟท์แวร์ไม่มีลิขสิทธิ์ โปรดเข้าใจเสียใหม่ด้วยครับ
ทําไมสัญลักษณ์ของลีนุกซ์ต้องเป็นนกเพนกวิน
นกเพนกวินเป็นลัญลักษณ์ หรือตัวนำโชคของลีนุกซ์ เรื่องนี้เป็นเรื่องที่ถกเถียงกันของคนจำนวนมากในต้นปี ค.ศ. 1996 ผ่านทาง linux-kernel mailing list ความคิดเรื่องตัวนำโชคมาจาก Alan Cox ระหว่างที่ยังตกลงกันไม่ได้ว่าจะใช้อะไรเป็นสัญลักษณ์ ก็มีคนทำขึ้นมาต่างๆนานา มีปลาฉลามก็มี นกอินทรีย์ก็มี ด้วยเหตุนี้ Linus Torvalds ได้บอกว่าส่วนตัวนั้นชอบนกเพนกวิน โดยเขาได้ส่ง mail ตอบกลับซึ่งมีรายละเอียดว่า นกเพนกวินอาจดูไม่แข็งแรง พอที่จะค้ำชูโลก แต่เมื่อคุณนึกถึงนกเพนกวิน คุณจะเห็นว่ามันน่ากอด และน่ารัก ดูแล้วเป็นที่สำราญใจ ดูแล้วมีความสุข ด้วยเหตุนี้ Linus จึงเลือกนกเพนกวินเป็นสัญลักษณ์หรือ ตัวนำโชคของระบบปฏิบัติการลีนุกซ์
ทำไมนกเพนกวินตัวนี้จึงชื่อว่า Tux คนที่เรียกนกเพนกวินตัวนี้ว่า “Tux”
เป็นคนแรกคือ James Hughes ซึ่งเขาอธิบายว่ามันมาจาก (T)orvalds (U)ni(X)
เคอร์เนลคืออะไร
อย่างที่กล่าวไปแล้วว่าส่วนที่นาย Linus Torvalds พัฒนาก็คือเคอร์เนล เคอร์เนล หรือ ตัวระบบปฏิบัติการหลัก ที่ติดต่อกับ CPU หน่วยความจำ และอุปกรณ์ต่างๆ ซึ่งภายในเคอร์เนลก็จะมีไดรเวอร์สำหรับอุปกรณ์ต่างๆ ที่เชื่อมต่อกับคอมพิวเตอร์
เช่น พอร์ตอนุกรม พอร์ตขนาน การ์ดพีซีไอ ต่างๆ เช่น การ์ดแลน รวมถึงฮาร์ดดิสก์ พอร์ต USB ฯลฯ รวมถึงการจัดการระบบไฟล์ ซึ่งถ้าไม่มีไดรเวอร์ (Driver) ก็จะทำให้ลีนุกซ์ไม่รู้จักอุปกรณ์เหล่านั้น ในการพัฒนาเคอร์เนลเวอร์ชันใหม่ๆ
ก็จะมีความสามารถใหม่ๆเพิ่มมากขึ้นเช่นในอดีตคอมพิวเตอร์ไม่มีพอร์ต USB พอมีพอร์ต USB ออกมาก็ต้องมีเคอร์เนลที่รองรับการใช้งานพอร์ต USB นั่นก็คือมีไดรเวอร์สำหรับพอร์ต USB ออกมาด้วย อีกตัวอย่างเคอร์เนลเวอร์ชัน
2.6.28 รองรับระบบไฟล์ ext4 ในขณะที่ 2.6.27 รองรับระบบไฟล์ ext3 เคอร์เนลของลีนุกซ์มีให้ดาวน์โหลดที่ http://kernel.org
หมายเลขเวอร์ชันของเคอร์เนล ในการนำเคอร์เนลมาใช้ต้องเลือกเอาเวอร์ชันที่เสถียรเท่านั้น เวอร์ชันที่กำลังพัฒนาหรืออยู่ระหว่างการทดสอบจะไม่นำมาใช้ แล้วจะรู้ได้อย่างไรว่าเคอร์เนลเวอร์ชันไหนอยู่ระหว่างพัฒนา เวอร์ชันไหนเสถียรแล้ว วิธีการตรวจสอบว่าเรากำลังใช้งานลีนุกซ์เคอร์เนลเวอร์ชันอะไรอยู่ ให้ใช้คำสั่ง uname -r ก็จะได้ผลออกมาเช่น 2.6.32-358.el6.x86_64 หรือ 3.2.0-4-amd64 แล้วแต่ว่าเป็นลีนุกซ์ค่ายไหน แต่ไม่ต้องห่วงครับลีนุกซ์ทุกค่ายจะนำเอาเคอร์เนลเวอร์ชันที่เสถียรแล้วเท่านั้น นำมาใช้งานมาดูกันครับว่าเวอร์ชันของเคอร์เนลมีความหมายอย่างไร
A.B.C หมายถึง major.minor.patch
เช่น 2.6.32-358.el6.x86_64
2 เป็นเวอร์ชันหลัก
6 เป็นเวอร์ชันรอง
32 เป็นหมายเลขการแก้ไขข้อผิดพลาด (bux fixes)\
บางอ้างอิง กำหนดหมายเลขที่สามคั่นด้วยเครื่องหมาย – เป็นหมายเลขไมโครซึ่งหมายถึง patchlevel เป็น – เป็นส่วนหนึ่งของหมายเลขเวอร์ชันด้วย เช่น ในที่นี้คือ 32-358
ส่วนตัวอักษรหลังหมายเลข Patch เช่น
.el6.x86_64
-amd64
-generic
-server
ส่วนใหญ่เป็นของลีนุกซ์ค่ายต่างๆ ที่เอาไว้สื่อให้รู้ว่าเป็นเคอร์เนลแบบไหน เป็นเคอร์เนลของ CPU ชนิดไหน 32 บิท หรือ 64 บิท เป็นเคอร์เนลของ server หรืออื่นๆ
ลีนุกซ์ดิสทริบิวชัน
อย่างที่ทราบนะครับว่า Torvalds เขาทำเฉพาะส่วนที่เป็นเคอร์เนลมีให้ดาวน์โหลดที่
http://kernel.org แต่ผู้ใช้งานทั่วไปไม่สามารถนำไปใช้งานได้ครับ เพราะการนำไปใช้งานจริงๆ ต้องมีส่วนประกอบอีกหลายๆอย่าง ถึงจะใช้งานลีนุกซ์ได้ ทำให้ผู้ใช้งานทั่วไปไม่สามารถที่นำลีนุกซ์ไปใช้งานได้ จะมีแต่พวกโปรแกรมเมอร์หรือกลุ่มที่เชี่ยวชาญเท่านั้นที่นำไปใช้งานได้ ด้วยเหตุนี้จึงมีคน กลุ่มคน หรือบริษัทคิดที่จะทำให้การติดตั้งลีนุกซ์ง่ายขึ้น ให้ผู้ใช้งานทั่วไปสามารถนำไปใช้งานได้ โดยการรวบรวมโปรแกรมต่างๆของลีนุกซ์ ไม่ว่าจะเป็น เคอร์เนล (อันนี้แน่นอนอยู่แล้ว) โปรแกรมสำหรับติดตั้งระบบ โปรแกรมสำหรับพาร์ติชันฮาร์ดดิสก์ ไลบรารี่ของระบบ คอมไพเลอร์ต่างๆ โปรแกรมสำหรับดูแลระบบ ระบบจัดการการติดตั้งแพ็กเก็จ โปรแกรมใช้งานทางด้านเซิร์ฟเวอร์ โปรแกรมใช้งานทางด้านเดสก์ทอปรวมเข้าด้วยกัน แล้วใส่ระบบการติดตั้งให้ใช้งานง่ายขึ้น ที่ขาดไม่ได้คือโปรแกรม Boot Loader ที่ช่วยให้เราสามารถบูทลีนุกซ์ได้ แล้วนำโปรแกรมทั้งหมดนี้มารวมเป็น CD หรือ DVD ให้คนทั่วไปได้ดาวน์โหลดนำไปใช้งาน แต่ละกลุ่มคน แต่ละบริษัทก็จะตั้งชื่อลีนุกซ์เป็นของตัวเองเช่น Red Hat, Slackware, SuSE, CentOS, Debian, Ubuntu ฯลฯ ซึ่งเราเรียกว่าดิสทริบิวชัน ซึ่งปัจจุบันมีมากกว่า 100 ดิสทริบิวชัน สามารถดูรายละเอียดได้จาก
http://distrowatch.com แต่ละดิสทริบิวชันก็มีข้อเด่นข้อด้อยต่างกันไป อย่างที่บอกไปแล้วนะครับว่าลีนุกซ์ดิสทริบิวชันต่างๆ นั้นมีหลายดิสทริบิวชัน แต่ก็มีเพียงไม่กี่ดิสทริบิวชันที่ได้รับความนิยม
ถ้าย้อนไปในอดีต ดิสทริบิวชันที่ได้รับความนิยมมากที่สุดคือ Red Hat Linux
Red Hat Linux ที่พัฒนาโดยบริษัท Red Hat โดยที่ Red Hat Linux 1.0 ออกมาเมื่อ 3 พฤศจิกายน 1994 ซึ่งเรียกว่า เป็น Red Hat Commercial Linux เป็นลีนุกซ์ดิสทริบิวชันแรกที่ใช้ RPM Package Manager ในการจัดการแพ็กเก็จ ที่ใช้งานได้ง่าย ทำให้ Red Hat เป็นที่นิยมและใช้งานกันอย่างแพร่หลาย
ตั้งแต่ปี 2003 เป็นต้นมาบริษัท Red Hat หยุดพัฒนา Red Hat Linux หันมาพัฒนา Red Hat Enterprise Linux (RHEL) สำหรับขาย ไม่มีตัวที่คอมไพล์แล้วให้ดาวน์โหลด แต่ด้วยภายใต้สัญญาอนุญาต GNU GPL แล้ว RHEL ก็ยังต้องเปิดเผยซอร์ซโค้ด คือมี ซอร์ชโค้ดให้ดาวน์โหลด ไปคอมไพล์เอาเอง สำหรับ Red Hat Linux เวอร์ชันฟรี หยุดพัฒนาที่เวอร์ชัน 9 เมื่อ 30 เมษายน 2004
แต่บริษัท Red Hat ก็ยังสนับสนุนการพัฒนาลีนุกซ์ตัวที่ฟรีต่อ แต่ใช้ชื่อว่า Fedora
รู้จัก CentOS
CentOS เป็นลีนุกซ์ที่พัฒนามาจาก Red Hat Enterprise Linux (RHEL) เนื่องจาก RHEL ไม่มีให้ดาวน์โหลดใช้งานได้ฟรี
ในการนำมาใช้งานเราต้องซื้อบริการของเขา ถ้าซื้อเราก็สามารถรับบริการต่างๆ ตามแพ็กเกจที่เราซื้อ รวมถึงสามารถอัพเดทได้ แต่อย่างไรก็ตาม RHEL ก็ยังคงอยู่ภายใต้ลิขสิทธิ์ของลีนุกซ์ นั่นก็คือ GNU General Public License ถึงแม้จะไม่มีให้ดาวน์โหลด แต่ต้องเปิดเผยซอร์ซโค้ด และให้ดาวน์โหลดซอร์ซโค้ด แต่ผู้ใช้งานทั่วไปอย่างเราๆ มีซอร์ซโค้ดวางให้ดาวน์โหลด ก็เอาไปใช้งานไม่ได้เพราะ RHEL ไม่เปิดเผยวิธีการคอมไพล์ ด้วยเหตุนี้ Lance Davis จึงได้นำซอร์ซโค้ดของ RHEL มาคอมไพล์ใหม่โดยตัดระบบการ update ของ RHEL ออก แล้วตั้งชื่อว่า CentOS ดังเว็บไซต์ http://www.centos.org
CentOS เป็นลีนุกซ์อีกดิสทริบิวชันหนึ่งที่ได้ยังได้รับความนิยมในบ้านเรา สำหรับส่วนตัวผู้เขียนเองก็ยังใช้ CentOS ในการทำ Server ให้กับหน่วยงานต่างๆ ด้วยเหตุผลว่า เข้ากันได้กับฮาร์ดแวร์เซิร์ฟเวอร์หลากหลายยี่ห้อ และคุ้นเคยที่จะใช้งาน
อ้างอิง :
- http://www.gnu.org/
- https://th.wikipedia.org/wiki/สัญญาอนุญาตสาธารณะทั่วไปของกนู
- http://en.wikipedia.org/wiki/History_of_Linux
- http://www.linuxscrew.com/2007/11/14/why-penguin-is-linux-logo/
- http://en.wikipedia.org/wiki/Kernel_(computing)
- http://en.wikipedia.org/wiki/Red_Hat_Linux