นักพัฒนาความสัมพันธ์

เรื่องเก่าโอเพนซอร์ส: ทำไม Linux จึงสำเร็จ?

2018-10-03
ความสัมพันธ์นักพัฒนา
th

Linux เคอร์เนลระบบปฏิบัติการคล้าย Unix ที่เริ่มต้นในปี 1991 โดย Linus Torvalds ได้กลายเป็นศูนย์กลางของโลกโอเพนซอร์ส ผู้คนต่างถามว่าทำไม Linux จึงสำเร็จ ในขณะที่โปรเจกต์ที่คล้ายกันมากมาย รวมถึง GNU HURD และ BSD ล้มเหลว?

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

อย่างไรก็ตาม ก่อนอื่นต้องชี้แจง: เมื่อผมพูดว่า Linux เป็นความสำเร็จที่ยิ่งใหญ่ ผมหมายถึงเมื่อเทียบกับเคอร์เนลระบบปฏิบัติการคล้าย Unix อื่นๆ บางอย่างเป็นโอเพนซอร์ส บางอย่างไม่ใช่ และพวกมันเติบโตในช่วงเวลาที่ Linux เกิด GNU HURD เคอร์เนลเสรีที่เริ่มต้นในเดือนพฤษภาคม 1991 เป็นหนึ่งในนั้น อื่นๆ รวมถึง Unix ที่คนส่วนใหญ่ไม่เคยได้ยินชื่อ เช่น Unix รุ่นต่างๆ ที่พัฒนาโดยมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ Xenix ระบบ Unix ที่นำโดย Microsoft รวมถึง Unix เวอร์ชันวิชาการ เช่น Minix และ Unix ดั้งเดิมที่พัฒนาภายใต้การสนับสนุนของ AT&T ในช่วงหลายทศวรรษก่อน มันมีความสำคัญอย่างยิ่งต่อการพัฒนาด้านการคำนวณในวงการวิชาการและธุรกิจ แต่ในทศวรรษ 1990 มันได้หายไปจากสายตาของผู้คนเกือบทั้งหมด

อ่านเพิ่มเติม

นอกจากนี้ ต้องชี้แจงว่า ผมพูดถึงเคอร์เนล ไม่ใช่ระบบปฏิบัติการที่สมบูรณ์ ในระดับใหญ่ ความสำเร็จของเคอร์เนล Linux เกิดจากโปรเจกต์ GNU ทั้งหมด โปรเจกต์ GNU นี้สร้างเครื่องมือสำคัญมากมาย รวมถึงคอมไพเลอร์ ดีบักเกอร์ และการใช้งาน BASH shell ซึ่งจำเป็นสำหรับการสร้างระบบปฏิบัติการคล้าย Unix แต่นักพัฒนาของ GNU ไม่เคยพัฒนาเวอร์ชันที่ใช้งานได้ของเคอร์เนล HURD (แม้พวกเขายังพยายามอย่างต่อเนื่อง) ในทางกลับกัน Linux นำเสนอเคอร์เนลที่เชื่อมโยงส่วนต่างๆ ของ GNU เข้าด้วยกันอย่างแน่นแฟ้น แม้นั่นเกินเป้าหมายเดิมของ GNU

ดังนั้น จึงคุ้มค่าที่จะถามว่าทำไม Linux เคอร์เนลที่เริ่มต้นโดย Linus Torvalds โปรแกรมเมอร์ไม่มีชื่อเสียงจากฟินแลนด์ในปี 1991 — ปีเดียวกับ HURD — สามารถผ่านการทดสอบและเติบโตได้? ในสภาพแวดล้อมในขณะนั้น เคอร์เนลคล้าย Unix หลายตัวที่มีการสนับสนุนทางธุรกิจที่แข็งแกร่ง และนำโดยแฮกเกอร์ที่มีชื่อเสียงในขณะนั้น ไม่สามารถพัฒนาต่อได้ เพื่ออธิบายคำถามนี้ ผมได้หาคำอธิบายบางอย่างที่เกี่ยวข้อง ผมได้ศึกษาประวัติศาสตร์ของซอฟต์แวร์เสรีและโลกโอเพนซอร์ส และข้อดีข้อเสียของคำอธิบายต่างๆ

Linux ใช้วิธีการพัฒนาแบบกระจายศูนย์

จุดนี้มาจากบทความของ Eric S. Raymond “มหาวิหารและตลาด” และข้อมูลที่เกี่ยวข้อง ข้อมูลเหล่านี้ยืนยันสถานการณ์หนึ่ง: เมื่อผู้มีส่วนร่วมจำนวนมากทำงานร่วมกันอย่างต่อเนื่องในโครงสร้างองค์กรแบบกระจายศูนย์ ประสิทธิภาพการพัฒนาซอฟต์แวร์จะดีที่สุด การพัฒนาของ Linux พิสูจน์สิ่งนี้ ในทางกลับกัน เช่น GNU HURD ใช้วิธีการจัดการพัฒนาโค้ดที่รวมศูนย์มากกว่า ผลลัพธ์ตามที่ Raymond กล่าว ชัดเจนว่าในช่วงสิบปีไม่สามารถสร้างระบบปฏิบัติการที่สมบูรณ์ได้สำเร็จ

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

Linux เป็นแบบปฏิบัติ ในขณะที่ GNU เป็นแบบอุดมการณ์

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

อย่างไรก็ตาม คำอธิบายนี้ยังมีจุดที่ไม่น่าเชื่อถือบางอย่าง โดยเฉพาะ แม้ Torvalds เองยึดมั่นในหลักการปฏิบัตินิยม แต่ไม่ว่าก่อนหรือตอนนี้ ไม่ใช่สมาชิกทุกคนที่เข้าร่วมโปรเจกต์ของเขาจะยึดมั่นในหลักการนี้เหมือนเขา แม้กระนั้น Linux ก็ยังประสบความสำเร็จ

และถ้าปฏิบัตินิยมเป็นกุญแจสำคัญของการพัฒนาต่อเนื่องของ Linux แล้วต้องถามอีกครั้งว่า: ทำไม GNU นอกจากไม่สามารถพัฒนาเคอร์เนลแล้ว ยังสามารถพัฒนาเครื่องมือที่มีประโยชน์มากมายได้สำเร็จ? ถ้าการมีความเชื่อทางการเมืองที่แน่วแน่เกี่ยวกับซอฟต์แวร์เป็นอุปสรรคบนเส้นทางสู่ความสำเร็จของโปรเจกต์ แล้ว GNU ควรจะเป็นผู้ล้มเหลวอย่างสิ้นเชิง ไม่ใช่เป็นผู้บุกเบิกที่พัฒนาแพ็กเกจซอฟต์แวร์ที่ยอดเยี่ยมมากมายที่ยังเป็นรากฐานที่แข็งแกร่งของโลก IT ในปัจจุบัน

สุดท้าย (แต่ไม่ใช่น้อยที่สุด) Unix รุ่นต่างๆ ที่เกิดในปลายทศวรรษ 1980 และต้นทศวรรษ 1990 โดยเฉพาะสาขา BSD บางสาขา ล้วนเป็นผลิตภัณฑ์ของปฏิบัตินิยม นักพัฒนาของพวกเขามุ่งมั่นพัฒนา Unix รุ่นต่างๆ ที่สามารถแบ่งปันได้อย่างเสรี ไม่ใช่ถูกจำกัดด้วยใบอนุญาตเชิงพาณิชย์ที่แพง แต่พวกเขาไม่ได้จำกัดอยู่แค่อุดมการณ์ในการเขียนโปรแกรมหรือการแบ่งปันโค้ด Torvalds ก็เช่นกัน ดังนั้นจึงยากที่จะบอกว่าความสำเร็จของ Linux และความล้มเหลวของโปรเจกต์ Unix อื่นๆ เป็นเพราะอุดมการณ์

การออกแบบระบบปฏิบัติการ

เมื่อพูดถึงความสำเร็จของ Linux ไม่สามารถมองข้ามความแตกต่างทางเทคนิคมากมายระหว่าง Linux และ Unix รุ่นอื่นๆ Richard Stallman ผู้ก่อตั้งโปรเจกต์ GNU อธิบายในอีเมลถึงผมว่าทำไมความคืบหน้าของ HURD ล่าช้าเรื่อยๆ: “GNU Hurd จริงๆ ไม่ใช่ความสำเร็จในทางปฏิบัติ ส่วนหนึ่งเพราะการออกแบบพื้นฐานทำให้มันเหมือนโปรเจกต์วิจัย (ผมเลือกการออกแบบนี้ เพราะคิดว่าเป็นทางลัดในการใช้งานเคอร์เนลได้เร็ว)”

ในแง่ที่ Torvalds เขียนโค้ด Linux ทั้งหมดด้วยตัวคนเดียว Linux ก็แตกต่างจาก Unix รุ่นอื่นๆ เมื่อเขาเผยแพร่ Linux ครั้งแรกในเดือนสิงหาคม 1991 จุดประสงค์หนึ่งของเขาคือมี Unix ของตัวเอง โดยไม่ต้องใช้โค้ดของคนอื่น คุณลักษณะนี้ทำให้ Linux แตกต่างจาก Unix รุ่นส่วนใหญ่ในช่วงเวลาเดียวกัน ซึ่งโดยทั่วไปได้รับโค้ดพื้นฐานจาก AT&T Unix หรือ BSD ของเบิร์กลีย์

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

ชุมชนที่อยู่เบื้องหลัง Linux ให้การสนับสนุนที่แข็งแกร่ง

Stallman ยังเขียนว่า “เหตุผลหลัก” ของความสำเร็จของ Linux คือ “Torvalds ทำให้ Linux เป็นซอฟต์แวร์เสรี ดังนั้นจึงมีการสนับสนุนจากชุมชนมากกว่า Hurd หลั่งไหลเข้ามาในการพัฒนาของ Linux” แต่นี่ไม่ใช่คำอธิบายที่สมบูรณ์แบบสำหรับวิถีการเติบโตของ Linux เพราะมันไม่สามารถอธิบายได้ว่าทำไมนักพัฒนาซอฟต์แวร์เสรีจึงติดตาม Torvalds แทนที่จะเป็น HURD หรือ Unix อื่นๆ แต่มันยังชี้ให้เห็นว่าการเปลี่ยนแปลงนี้เป็นส่วนใหญ่ของความนิยมของ Linux

สำหรับการที่ชุมชนซอฟต์แวร์เสรีตัดสินใจสนับสนุน Linux มีเหตุผลที่ครอบคลุมกว่าที่สามารถอธิบายได้ว่าทำไมนักพัฒนาจึงทำเช่นนั้น ในตอนแรก Linux เป็นเพียงโปรเจกต์เล็กๆ ที่ไม่มีใครรู้จัก ด้วยมาตรฐานใดๆ มันดูไม่สำคัญเมื่อเทียบกับความพยายามอื่นๆ ในช่วงเวลาเดียวกันที่จะสร้าง Unix ที่เสรีกว่า เช่น NET BSD และ 386/BSD เช่นเดียวกัน ในตอนแรกไม่ชัดเจนว่า Linux สอดคล้องกับเป้าหมายของขบวนการซอฟต์แวร์เสรีหรือไม่ เมื่อเริ่มสร้าง Torvalds เผยแพร่ Linux ภายใต้ใบอนุญาตที่ป้องกันไม่ให้ Linux ถูกใช้ในเชิงพาณิชย์ ส่วนที่เขาเปลี่ยนมาใช้ GNU General Public License เพื่อปกป้องความเปิดกว้างของซอร์สโค้ดในภายหลังนั้นเป็นเรื่องที่เกิดขึ้นทีหลัง

ดังนั้น นี่คือคำอธิบายที่ผมหาได้เกี่ยวกับความสำเร็จของ Linux ในฐานะระบบปฏิบัติการโอเพนซอร์ส สามารถยืนยันได้ว่าความสำเร็จของ Linux ในบางด้าน (แต่เช่น Linux เวอร์ชันเดสก์ท็อปไม่เคยกลายเป็นสิ่งที่ผู้สนับสนุนหวัง) เป็นความสำเร็จที่วัดได้ โดยรวม Linux ได้กลายเป็นรากฐานของโลกคอมพิวเตอร์ในรูปแบบที่แตกต่างจากระบบปฏิบัติการคล้าย Unix อื่นๆ ทั้งหมด บางที OS X และ iOS ของ Apple ที่มาจาก BSD อาจใกล้เคียงที่สุด แต่พวกมันไม่ได้มีบทบาทสำคัญเหมือน Linux ในการมีอิทธิพลต่ออินเทอร์เน็ต

คุณมีความคิดอื่นเกี่ยวกับทำไม Linux จึงเป็นอย่างที่เป็นตอนนี้ หรือทำไมคู่แข่งในโลก Unix ของมันกลายเป็นไม่มีใครรู้จักเกือบทั้งหมด? ถ้ามี ผมยินดีที่จะได้ยินความคิดของคุณ (แน่นอน รุ่นต่างๆ ของ BSD ยังมีผู้ติดตาม และ Unix เชิงพาณิชย์บางตัวยังสำคัญสำหรับRed Hat (RHT) ที่ให้การสนับสนุนผู้ใช้ของพวกเขา แต่ Unix เหล่านี้ไม่มีตัวไหนสามารถพิชิตทุกสาขาตั้งแต่เว็บเซิร์ฟเวอร์ไปจนถึงสมาร์ทโฟนได้เหมือน Linux)

โปรดระบุแหล่งที่มา: ความสัมพันธ์นักพัฒนา »


Similar Posts

Content icon
Content