- Ken Thompson วัย 82 ปี ย้อนความหลังถึง จุดกำเนิดในยุคแรกของระบบปฏิบัติการ Unix และวัฒนธรรมการทดลองอย่างเสรีที่ Bell Labs
- เขาอธิบายว่า หลังความล้มเหลวของโครงการ Multics เขาใช้คอมพิวเตอร์ที่เหลืออยู่เพื่อ สร้างโครงสร้างหลักของ Unix ขึ้นมาโดยบังเอิญ ได้อย่างไร
- ทีมพัฒนา Unix จัดหา PDP-11 มาได้และพัฒนาระบบปฏิบัติการต่อแบบไม่เป็นทางการ พร้อมก่อร่างเป็น “Unix Room” ที่เต็มไปด้วยอารมณ์ขันและมิตรภาพระหว่างเพื่อนร่วมงาน
- สภาพแวดล้อมที่เปิดกว้างของ Bell Labs กลายเป็นรากฐานของ การเติบโตของภาษา C และ Unix รวมถึง วัฒนธรรมการทำงานร่วมกันที่นำไปสู่การพัฒนา Go ในเวลาต่อมา
- Thompson เน้นว่า Unix คือ การทดลองเชิงชุมชนที่ปฏิบัติความเปิดกว้างมาตั้งแต่ก่อนยุคโอเพนซอร์ส และมองว่าจิตวิญญาณนั้นยังคงอยู่ในวัฒนธรรมเทคโนโลยีสมัยใหม่
การกำเนิดของ Unix และวัฒนธรรมการทดลองที่ Bell Labs
- Ken Thompson เล่าว่าเขาเคยเข้าร่วม โครงการ Multics ที่ Bell Labs ในช่วงกลางทศวรรษ 1960 แต่จดจำระบบนั้นได้ว่าเป็น “โครงการที่ใหญ่ ช้า แพง และถูกกำหนดให้ล้มเหลว”
- หลัง Multics ยุติลง เขาใช้คอมพิวเตอร์ขนาดใหญ่ที่เหลืออยู่สานต่อการทดลองของตัวเอง และพยายามปรับปรุง อุปกรณ์จัดเก็บข้อมูล CRAM และหน่วยความจำแบบดรัม
- ระหว่างการทดลองเพื่อเพิ่มความเร็วในการอ่านหน่วยความจำ เขากลับสร้าง ระบบที่มีรูปร่างเป็นระบบปฏิบัติการ ขึ้นมาโดยไม่รู้ตัว
- เขาระบุว่า แม้ Bell Labs จะสั่งให้ “หยุดทำวิจัยระบบปฏิบัติการ” เขาก็ยัง วางรากฐานของ Unix ต่อไปอย่างไม่เป็นทางการ
- Unix รุ่นแรกจึงถือกำเนิดขึ้นพร้อมองค์ประกอบสำคัญอย่างระบบไฟล์ ไดรเวอร์ดิสก์ และอุปกรณ์ I/O
ชุมชน Unix ยุคแรกและการมาถึงของ PDP-11
- ผู้ใช้กลุ่มแรกของ Unix ได้แก่ Dennis Ritchie, Doug McIlroy, Robert Morris, Brian Kernighan และคนอื่น ๆ โดยมีขนาดเล็กถึงขั้นที่ user ID ยังเป็นเลขหลักเดียว
- Thompson ออกแบบ ระบบไฟล์ ร่วมกับ Rudd Canaday บนกระดานดำ และใช้ระบบบันทึกเสียงโทรศัพท์ของ Bell Labs ในการจัดทำเอกสาร
- Joe Ossanna เลี่ยงขั้นตอนราชการอันยุ่งยากของ Bell Labs เพื่อจัดหาเครื่อง PDP-11 มาได้ ซึ่งกลายเป็นจุดเปลี่ยนของการพัฒนา Unix
- PDP-11 ที่ซื้อมาในนาม “เพื่อใช้กับงานประมวลผลคำ” แท้จริงแล้วกลับถูกใช้เป็นอุปกรณ์หลักในการพัฒนา Unix
- เมื่อเลขานุการในแผนกสิทธิบัตรเริ่มใช้ระบบ Unix ในการจัดทำเอกสาร ก็เกิด ฐานผู้ใช้งานภายนอกกลุ่มแรก ขึ้น
“Unix Room” และชุมชนเสรี
- PDP-11 ถูกติดตั้งในพื้นที่แห่งหนึ่งบนชั้น 6 ของ Bell Labs และไม่นานก็กลายเป็นศูนย์กลางของนักพัฒนาที่ถูกเรียกว่า ‘Unix Room’
- หลังเคลียร์พื้นที่ที่มีตู้ขายของเก่าและห้องเก็บของออก แล้วนำ PDP-11 เครื่องที่สองมาติดตั้ง ที่นี่ก็กลายเป็น ศูนย์กลางการพูดคุยเรื่องเครือข่ายและการจัดพิมพ์เอกสาร
- มันยังทำหน้าที่เป็น ฮับวิจัยนอกระบบอย่างไม่เป็นทางการ พร้อมระบบ PBX ของตัวเองที่ต่อสายโทรศัพท์ไว้ครบ
- Thompson ย้อนถึง “ช่วงเวลาที่พวกเขางัดกุญแจและเล่นแผลง ๆ ใน Unix Room”
- เขาเล่าถึงบรรยากาศการทดลองที่เต็มไปด้วย ทั้งอารมณ์ขันและความขบถ เช่น การขโมยที่ล็อกล้อจากรถที่จอดผิดกฎแล้วนำไปซ่อน
- ยังมีเกร็ดที่หัวหน้าฝ่ายความปลอดภัยเสนอว่า “ถ้าคืนที่ล็อกล้อมา ก็จะไม่ไปรบกวนพวกเลขานุการ” ก่อนเรื่องจะ จบลงด้วยการเจรจา
- Dennis Ritchie อธิบาย Unix ว่าเป็น “ระบบที่ทำให้เกิดชุมชนได้” และ ‘Unix Lunch’ ที่จัดเป็นประจำก็กลายเป็นพื้นที่แลกเปลี่ยนความคิด
ความเปิดกว้างของ Bell Labs และการเติบโตของ Unix
- Thompson มองว่า สภาพแวดล้อมการวิจัยที่ไร้แรงกดดันและมีอิสระสูง คือสิ่งที่พา Unix และภาษา C ไปสู่ความสำเร็จ
- Bell Labs เป็นสถานที่ที่ “ลองทำอะไรก็ได้” และผู้คนจากหลากหลายสาขาก็เข้ามาร่วมมือกัน
- นักภาษาศาสตร์ Lee McMahon มีส่วนช่วยพัฒนา Unix ด้วยการนำเข้า พจนานุกรมแบบเครื่องอ่านได้และฉบับอิเล็กทรอนิกส์ของ Federalist Papers
- เมื่อข้อความไม่สามารถใส่เข้าไปในตัวแก้ไข ed ได้ Thompson จึงพัฒนา เครื่องมือค้นหาแพตเทิร์น grep ขึ้นมา
- Unix ค่อย ๆ แพร่กระจายภายใน Bell Labs ไปสู่ทั้งงานธุรการและระบบสลับสายโทรศัพท์ จนกลายเป็น โครงสร้างพื้นฐานหลักของทั้งองค์กร
ปรัชญาความเปิดกว้างก่อนยุคโอเพนซอร์ส
- Thompson กล่าวว่า แม้ Richard Stallman จะเป็นผู้ต่อยอดปรัชญาโอเพนซอร์ส แต่ Unix ก็มีจิตวิญญาณแบบนั้นอยู่แล้ว
- ในเวลานั้น Unix มีฟังก์ชันป้องกันไฟล์ก็จริง แต่ในทางปฏิบัติ ซอร์สโค้ดทั้งหมดถูกเปิดให้ทุกคนแก้ไขได้
- ภายใต้กฎที่ไม่ได้เขียนไว้ว่า “ถ้าคุณแตะมัน มันก็เป็นของคุณ” จึงเกิด วัฒนธรรมการพัฒนาที่การสร้างร่วมและการทดลองเป็นเรื่องปกติในชีวิตประจำวัน
- เรื่องที่ทุกคนเข้าไปอ่านและคอมเมนต์ต้นฉบับนิยายที่เก็บอยู่ในไดเรกทอรีของเพื่อนร่วมงาน P. J. Plauger ถูกยกมาเป็น เกร็ดสัญลักษณ์ของความร่วมมือและความเปิดกว้าง
- วัฒนธรรมเช่นนี้เองที่ก่อให้เกิด รูปแบบการพัฒนาร่วมกันแบบ ‘เขียนบนกระดานดำด้วยกัน’
- ต่อมา แนวคิดบางส่วนจากโครงการ Plan 9 ของ Bell Labs ก็พัฒนาไปเป็น มาตรฐาน UTF-8 ซึ่งกลายเป็นรากฐานของเว็บสมัยใหม่
เส้นทางหลัง Bell Labs และภาษา Go
- Thompson กล่าวถึง การเปลี่ยนแปลงของวัฒนธรรมองค์กร ตอนที่เขาออกจาก Bell Labs หลังการแตกสลายของระบบ Bell ในปี 2000
- เขามองว่ามันกลายเป็นบรรยากาศที่ “ต้องคอยอธิบายเหตุผลว่ากำลังทำอะไรอยู่” จนเสรีภาพในการวิจัยหายไป
- หลังจากนั้น เขาไปทำงานที่บริษัทอุปกรณ์เครือข่าย Entrisphere อยู่ 6 ปี ก่อนจะ ย้ายไป Google
- ตอนนั้นหัวหน้าของเขาที่ Entrisphere ย้ายไป Google ก่อนและชักชวน Thompson ตามไป ขณะที่ Eric Schmidt ก็เป็นเพื่อนร่วมงานเก่าจากสมัย Bell Labs
- ที่ Google เขาเข้าร่วม การตรวจสอบความปลอดภัยของ Android ก่อนจะร่วมกับ Rob Pike ตั้งทีมพัฒนาภาษา Go
- เรื่องนี้ถูกมองว่าเป็นตัวอย่างที่ความสัมพันธ์ในการทำงานร่วมกันจากยุค Bell Labs นำไปสู่ การสร้างภาษาการเขียนโปรแกรมใหม่ในอีก 30 ปีต่อมา
บทสรุป: มรดกทางเทคโนโลยีที่เกิดจากความอยากรู้อยากเห็นและชุมชน
- ความทรงจำของ Ken Thompson แสดงให้เห็นว่า Unix ไม่ได้เป็นเพียงเทคโนโลยี แต่คือ ผลผลิตของการสำรวจอย่างเสรีและจิตวิญญาณของชุมชน
- สภาพแวดล้อมที่เปิดกว้างของ Bell Labs ทำหน้าที่เป็น ต้นแบบของวัฒนธรรมโอเพนซอร์สสมัยใหม่
- ประสบการณ์ของเขายังคงเป็นตัวอย่างที่เตือนว่า ความคิดสร้างสรรค์และการทำงานร่วมกันคือแรงขับหลักของนวัตกรรมทางเทคโนโลยี
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
หลายโปรเจกต์ซอฟต์แวร์ที่ประสบความสำเร็จต่างมีจิตวิญญาณร่วมกันคือ การทำงานร่วมกันอย่างสร้างสรรค์และความไว้วางใจในระดับสูง ซึ่งน่าประทับใจมาก
วัฒนธรรมแบบนี้เดินคนละทางกับแนวคิดแบบ MBA หรือสภาพแวดล้อมราชการแบบองค์กรใหญ่โดยสิ้นเชิง
ทำให้นึกถึงตัวอย่างอย่าง Unix, GNU, Linux, Python ยุคแรก ๆ และ Rockstar Games ในยุคแรก
ระบบราชการจะค่อย ๆ กัดกินทุกอย่าง ผู้จัดการก็สร้างกำแพงและบั่นทอนความไว้วางใจด้วยความลับและการปกปิด
คนใหม่ก็เข้าใจระบบได้ยาก ส่วนไอเดียใหม่ ๆ ก็ตายตั้งแต่ยังไม่เริ่ม
องค์กรใหญ่อาจยังหาเงินได้ แต่ถ้าอยาก สร้างความเปลี่ยนแปลง ความไว้วางใจเป็นสิ่งจำเป็น
บรรยากาศคล้ายกับ VC ยุคนี้ที่ทุ่มเงินกันเต็มที่
น่าสนใจที่ผู้ใช้ Unix รุ่นแรก ๆ กลับเป็นเลขาสิทธิบัตรหรือพนักงานธุรการ
เพราะเป็นระบบที่คนเริ่มใช้กันเองด้วยความชอบ จึงเกิด แรงกดดันจากการใช้งานจริง และมันส่งผลในทางที่ดี
ต่อให้ลองไอเดียเชิงทดลอง ก็ไม่สามารถทำให้ระบบที่ผู้ใช้จริงต้องใช้ทุกวันพังได้
เหมือนกับที่ Linux เริ่มต้นจาก “ก็แค่งานอดิเรก” Unix ยุคแรกก็เริ่มจาก การทดลองเพื่อสร้างเครื่องมือที่มีประโยชน์ มากกว่าจะเริ่มจากวิสัยทัศน์ยิ่งใหญ่
แน่นอนว่าสภาพแวดล้อมของ Bell Labs ก็เป็นข้อได้เปรียบสำคัญ
เรื่อง รองเท้าบู๊ตสำหรับเจ้าหน้าที่รักษาความปลอดภัยที่ถูกขโมย ก็น่าสนใจ
ที่น่าประทับใจคือมันถูกแก้ผ่าน การเจรจาโดยตรงกับเจ้าหน้าที่ความปลอดภัย ไม่ใช่ผ่านขั้นตอนทางการ
เกร็ดที่ Thompson ออกแบบระบบไฟล์ Unix กับ Rudd Canaday บนกระดานดำ และใช้ บริการโทรศัพท์รับคำบอกของ Bell Labs นั้นเจ๋งมาก
ทุกวันนี้คนทั่วไปก็ใช้บริการรู้จำเสียงได้ง่าย ๆ แต่ในยุคนั้นมันคงล้ำมากจริง ๆ
แน่นอนว่าเวลานั้นคงยังไม่ใช่ AI แต่เป็นเลขาที่คอยจดตามคำพูด ถึงอย่างนั้นเมื่อคิดถึงศักยภาพทางเทคนิคของ Bell Labs ก็รู้สึกว่าอาจไม่ใช่เรื่องเป็นไปไม่ได้เสียทีเดียว
พอเขียนแล้วจะอยากแก้ตลอด จนกลับกลายเป็นอุปสรรค
น่าสนใจที่เครื่องมือยุคแรกอย่าง
mesg,talkถูกออกแบบโดยคำนึงถึง การก่อรูปของชุมชนด้วยโครงสร้างที่เปิดอยู่ครึ่งหนึ่ง จึงสามารถเข้าไปในโฮมไดเรกทอรีของคนอื่นแล้วดูไฟล์ได้ด้วย
ITS ไม่มีข้อจำกัดด้านสิทธิ์และสนับสนุนการทำงานร่วมกัน แต่เซิร์ฟเวอร์ Unix ส่วนใหญ่มักล็อกโฮมไดเรกทอรีไว้ที่ 0700
ในคำบรรยายภาพที่ Ken กับ dmr ยืนอยู่ด้วยกัน มีข้อความว่า “เราอยากสร้างระบบที่ชุมชนสามารถก่อตัวขึ้นได้”
มันทำให้นึกถึงคำคมจาก The Lord of the Rings ที่อยู่ด้านบนของไฟล์ซอร์ส Perl
โค้ดที่เกี่ยวข้องดูได้ที่ ลิงก์ GitHub
ส่วนที่ Ken มีส่วนร่วมกับภาษา Go สามารถดูได้ทั้งหมดใน Git repository
ไม่สปอยล์อะไร แต่มีโค้ดที่สนุกไม่น้อย
สงสัยชื่อเพลง “Radio UNIX USA” ในอัลบั้มฮาร์ดคอร์พังก์ปี 1981 This is Boston not LA
เนื้อเพลงไม่ได้เกี่ยวอะไรกับ Unix เลย แต่เพราะวงมาจาก Boston ก็อาจมีความเชื่อมโยงกับ MIT อยู่บ้าง
และชื่อเพลงอาจเป็นการล้อกฎเรียกขานสถานีวิทยุในสหรัฐฯ ที่ใช้รหัส 4 ตัวอักษรด้วย
ถ้าอ่านบทความนี้แล้วสนใจ ขอแนะนำ 《Hackers》 ของ Steven Levy
หนังสือเล่าถึง ประวัติศาสตร์ของวัฒนธรรมแฮกเกอร์ ตั้งแต่ MIT AI Lab ไปจนถึง Homebrew Computer Club และโปรแกรมเมอร์เกมยุคแรก
ฉันเองก็อ่านตอนเด็กแล้วหลงใหลการเขียนโปรแกรม และทุกวันนี้ก็ยังรู้สึกถึงความสนุกแบบเดียวกันของการร่วมมือกันในสตาร์ตอัป
ลิงก์ Goodreads
《Unix: A History and a Memoir》 ของ Brian Kernighan ก็เป็นงานอ่านที่ยอดเยี่ยมเช่นกัน