ในตอนที่แล้วผมเล่าเรื่อง UNIX ไปแล้ว ในช่วงทศวรรษ 80s เครื่อง Workstation ทั้งหลายก็ผุดขึ้นมาเป็นดอกเห็ด UNIX ก็เบ่งบานทั้งในธุรกิจและในมหาวิทยาลัย
กำเนิดของ GNU
ในปี 1984 Richard Stallman เกิดหงุดหงิดที่ UNIX และโปรแกรมใน UNIX เริ่มเป็นสินค้ามากขึ้น ไม่เหมือนยุคแรกที่ UNIX เกิดในมหาวิทยาลัย เริ่มมี license และข้อกฎหมายเข้ามายุ่มย่ามกับการใช้ซอฟต์แวร์ Stallman อยากให้การใช้ซอฟต์แวร์นั้น Free (ในความหมายว่าเป็นอิสระ – Freedom ไม่ใช่กินเบียร์ฟรีไม่จ่ายตังค์ – Free beer)
ต้องเข้าใจว่าในตอนนั้นแม้ว่า BSD จะฟรีในแง่ไม่จ่ายตังค์ถ้าใช้ในมหาวิทยาลัย แต่ก็ยังต้องมีสัญญาอนุญาตใช้จาก AT&T อยู่ดี Stallman มองว่าเรื่องนี้ไม่เข้าท่า และนานไปจะมีปัญหาได้
ความคิดของ Stallman คือถ้าซอฟต์แวร์เป็นธุรกิจไปหมด ทุกคนก็จะหวงโค๊ด ไม่ยอมร่วมมือกันทำ ไม่ยอมแชร์ความรู้ซึ่งกันและกัน วงการก็จะไปไหนไม่รอด (ในช่วงนั้น Microsoft กำลังเติบโตขึ้นมาด้วยแนวคิดอีกขั้ว ทุกอย่างต้องขายเป็นเงินให้หมด)
Stallman ไม่ได้แค่หงุดหงิด แต่ลงมือทำ ตั้งโครงการ GNU ขึ้นมา (GNU เป็นคำล้อเลียนหมายความว่า – Not UNIX) คิดการณ์ใหญ่จะทำ UNIX เวอร์ชั่นฟรีออกมา มีโปรแกรมเมอร์เข้ามาร่วมมากมาย เลยตั้งเป็นมูลนิธิ (Free Software Foundation) ขึ้นมา และกำหนดสัญญาอนุญาตใช้แบบ GPL (GNU General Public License) ขึ้นมา ว่า Opensource ที่ GNU ทำขึ้น ใครเอาไปใช้ก็ใช้ได้อิสระ จะแก้ไขก็ได้ แต่โปรแกรมที่แก้ไข ต้องเปิดซอร์ซโค๊ด และใช้สัญญา GPL เหมือนกัน ซึ่งมีผลทำให้การพัฒนาซอฟต์แวร์ในยุคต่อมาเจริญขึ้นอย่างรวดเร็ว เพราะทุกคนแชร์ source code กัน จึงมีการพัฒนาต่อยอดที่รวดเร็ว
ทำไปทำมาหลายปี ล่วงเข้าศตวรรษ 2000s GNU ทำโปรแกรมที่ใช้ใน UNIX เสร็จไปเยอะแยะเต็มไปหมด แต่ส่วนของ Kernel ที่ตั้งชื่อว่า HURD ซึ่ง Stallman วาดฝันไว้ว่าจะเป็นแบบ Micro Kernel เทพสุดๆ แต่ก็ไม่ได้คืบหน้าอะไรมากนัก GNU ก็เลยมีแต่โปรแกรม ไม่มี Kernel ซักที ต้องเอากลับไปรันใน UNIX ที่แสนชิงชังเหมือนเดิม
กำเนิดของ Linux
ในขณะที่ Stallman ทำ GNU อยู่ ในปี 1991 ก็มีเจ้าหนุ่มน้อยนักศึกษาชาวฟินแลนด์ ชื่อ Linus Torvald ได้เครื่อง IBM PC ซึ่งใช้ CPU 80386 มา ซึ่งมันสุดยอดมากในเวลานั้น ไอ้หนุ่มนี่เกิดความคิดบ้าเลือดอยากเขียน Kernel ตอนนั้นมี Kernel ชื่อ Minix ซึ่งเขียนโดย Andrew Tanenbaum ซึ่งเป็นอาจารย์อยู่ในมหาวิทยาลัยในฮอลแลนด์ Andrew ใช้ Minix สอนนักศึกษาในมหาวิทยาลัย Linus จึงขออนุญาตเอามาทำให้มันเหมาะกับการใช้งานจริง (ทำงานเร็วขึ้น และเข้ากับ 80386 มากขึ้น)
แล้วในปี 1991 Linus ก็โพสใน Usenet ของ Minix ว่าตัวเองทำ OS ใหม่ได้แล้ว มีใครสนใจมาลองและช่วยกันทำต่อมั่ง ตอนนี้เวอร์ชั่น 0.02 ใช้ bash, gcc, gnu-make, gnu-sed, compress ที่อีตา Stallman ทำออกมาได้แล้ว… โปรแกรมเมอร์มือดีหลายคนก็โดดเข้าไปช่วย Linus ทันที
มาถึงการตั้งชื่อ เนื่องจากในโลกของ UNIX มันต้องมีชื่อลงท้ายด้วย X ก็เลยตั้งชื่อว่า Linux
ไอ้ชื่อนี่ก็เถียงกันมาตั้งแต่ 1991 ว่ามันควรจะอ่านว่าอะไร ถ้าเก๋าในวงการก็อ่านว่า ลิ-นิกซ์ ถ้าทั่วๆไปก็ ไล-นักซ์ หรือเด็กๆก็ ลิ-นุ๊กส์ เคยไปงาน meetup งานนึง คนพูดจะพูดเรื่องเขียนโปรแกรม แต่มัวเถียงกันว่าชื่อ Linux อ่านว่าอะไร จนไม่มีใครได้พูดในเรื่องที่เตรียมมา… ป่วยการครับ อยากอ่านอะไรก็อ่านไป ไม่ต้องแคร์กูรู
จากนั้น Linux ก็ก้าวขึ้นมาเป็นตัวเลือกของ UNIX เพราะเป็นยุคที่ x86 ของ Intel เฟื่องฟูพอดี และ UNIX ก็ลีลามาก จนถึงปัจจุบัน UNIX ที่เป็น version 7 ก็มีเพียงตัวเดียวคือ AIX ของ IBM ตัวอื่นก็ยังแช่อยู่ที่ UNIX version 4
MacOS พัฒนาบนพื้นฐานของ UNIX (และยังเป็น UNIX อย่างเป็นทางการอยู่) กลายเป็น UNIX ที่ได้รับความนิยมในทาง commercial
ส่วน Linux ก็เป็น UNIX-like สำหรับ Open source ไป
อีตา Stallman มักจะคอยบังคับว่า Linux เนี่ย Kernel ทำโดย Linus ก็จริง แต่ที่เหลือน่ะ เป็นของ GNU ทั้งนั้น ขอให้เรียกว่า GNU/Linux ไม่ใช่ Linux เฉยๆ คนส่วนใหญ่ก็อือๆ ตามแกไป แต่ไม่ค่อยมีคนเรียกเท่าไร
Linux Distro
ทีนี้โปรแกรมและการติดตั้ง Linux มันไม่ได้หมู สำหรับคนทั่วไป ก็เลยมีหลายหมู่คณะ ทำเป็น Distribution ของ Linux ขึ้น ประกอบเป็นไฟล์ หรือ CD ROM ที่จัด kernel รวมกับโปรแกรมไว้ให้ติดตั้งง่าย เช่น Debian, Ubuntu, Red Hat ฯลฯ (เรียกว่า Distro)
แต่ต้องเข้าใจว่า Linux Distro หลายตัวที่เป็น commercial มีโปรแกรมในนั้นหลายตัวที่เก่าแก่กว่า Linux Kernel หรือ GNU มากมาย ดังนั้น Linus ไม่ใช่คนให้กำเนิดทุกสิ่งอย่าง แต่ Linux คือ ecosystem ที่รวบรวมงานขึ้นเยี่ยมในด้านซอฟต์แวร์เข้าไว้ด้วยกัน
Distro ก็มีทั้ง Free (อิสระ), Free (ไม่จ่ายตังค์), และไม่ฟรี (จ่ายตังค์) แต่บางส่วนของบาง distro ก็ไม่ใช่ opensource…
ส่วนโลโก้ เป็นชุมชนเลือกกันขึ้นมา Jeff Ayers อธิบายว่าคนเลือกเพราะมันเหมือน Linus – ไอ้นกอ้วนที่บินไม่ขึ้น… fixation for flightless, fat waterfowl
ความสำเร็จของ Linux
Linux เกิดมาในปี 1991 อีกสองปีต่อมามีโครงการน่าสนใจเกิดขึ้นคือ Top500 (https://www.top500.org/) เป็นโครงการที่วัดความเร็วของซุปเปอร์คอมพิวเตอร์ เพื่อหาเครื่องคอมพิวเตอร์ที่เร็วที่สุด 500 เครื่อง โดยประกาศปีละ 2 ครั้ง
ในปี 2017 คอมพิวเตอร์ที่เร็วที่สุด 500 เครื่องเป็น UNIX เพียง 2 เครื่อง นอกนั้น Linux ฟาดเรียบ และในปีที่ผ่านมา 2019 ก็ไม่หลงเหลือ UNIX ใน Top500 อีกต่อไป ในขณะนี้ คอมพิวเตอร์ที่เร็วที่สุดในโลก 500 เครื่องล้วนแต่รันด้วย Linux ทั้งหมด
เครื่องที่เร็วที่สุดตอนนี้คือ Fugaku A64FX 48C ซึ่งเป็นคอมพิวเตอร์ขนาด 7.6 ล้านคอร์ ความเร็วอยู่ที่ 442,010 Tflop/sec ชนะ IBM ที่อยู่อันดับสองขาดลอย (148,600 Tflop/sec, 2.4 ล้านคอร์)
แต่ต้องเข้าใจว่า Linux distro ที่ใช้ในเครื่องยักษ์ใหญ่พวกนี้ ส่วนใหญ่จะเป็น RedHat Enterprise (ซึ่งไม่ฟรี)
สถิติที่น่าสนใจอีกอย่างคือ เว็บไซต์ที่มีคนเข้าเยอะที่สุดในโลก 1 ล้านเว็บไซต์ ใช้ server ที่รัน Linux ถึง 96.3%
และ Cloud Infrastructure ทั่วโลก 90% เป็น Linux
จะเห็นได้ว่า Linux นั้นได้รับความนิยมอย่างมากในฝั่ง server และชนะ UNIX ซึ่งเป็นต้นตอกำเนิดของ OS ตระกูลนี้ไปอย่างขาดลอย สาเหตุเพราะการเป็น Opensource ทำให้มีการพัฒนาที่ต่อยอดอย่างรวดเร็ว เป็นการพัฒนาร่วมกันของนักพัฒนาจำนวนมหาศาล
แต่อย่างไรก็ตาม Linux ไม่ประสบความสำเร็จในโลกของ Desktop Computer เลย เพราะในเครื่อง Desktop มีเพียง 1.63% เท่านั้นที่เป็น Linux วินโดว์สยังคงเป็น Operating system ยอดนิยมสำหรับโลกของ Desktop
ส่วนในโลกของโทรศัพท์มือถือนั้น Android ครองตลาดอยู่ 72.92% ก็ต้องถือว่าเป็นส่วนหนึ่งของ Linux เพราะ Android นั้นใช้ Linux Kernel ที่เหลือเกือบหมดเป็น iOS ซึ่ง Kernel พัฒนาจาก OSX ซึ่งถือเป็น UNIX variant