- Ở tuổi 82, Ken Thompson hồi tưởng lại những ngày đầu khai sinh hệ điều hành Unix và văn hóa thử nghiệm tự do tại Bell Labs
- Ông giải thích quá trình sau khi dự án Multics thất bại, tận dụng chiếc máy tính còn lại để tình cờ xây dựng nên cấu trúc cốt lõi của Unix
- Nhóm phát triển Unix đã giành được một chiếc PDP-11 và không chính thức phát triển tiếp hệ điều hành, đồng thời hình thành “Unix Room” đầy ắp sự hài hước và tình đồng đội
- Môi trường cởi mở ở Bell Labs đã trở thành nền tảng cho sự phát triển của ngôn ngữ C và Unix, cũng như văn hóa cộng tác sau này dẫn tới sự ra đời của Go
- Thompson nhấn mạnh Unix là một thử nghiệm cộng đồng thực hành tinh thần cởi mở từ trước khi có open source, và tinh thần đó vẫn còn in dấu trong văn hóa công nghệ hiện đại
Sự ra đời của Unix và văn hóa thử nghiệm ở Bell Labs
- Ken Thompson cho biết ông từng tham gia dự án Multics tại Bell Labs vào giữa thập niên 1960, nhưng nhớ lại rằng hệ thống này là “một dự án lớn, chậm, đắt đỏ và được định sẵn là thất bại”
- Sau khi Multics kết thúc, ông tiếp tục các thử nghiệm của mình bằng cách tận dụng chiếc máy tính lớn còn sót lại, đồng thời cố cải tiến thiết bị lưu trữ dữ liệu CRAM và bộ nhớ trống
- Trong quá trình thử nghiệm nhằm tăng tốc độ đọc bộ nhớ, ông đã vô tình tạo ra một hệ thống mang hình hài của một hệ điều hành
- Ông cho biết dù Bell Labs đã ra chỉ thị “ngừng nghiên cứu hệ điều hành”, ông vẫn không chính thức hoàn thiện nền móng của Unix
- Unix thời kỳ đầu ra đời với các thành phần cốt lõi như hệ thống tệp, trình điều khiển đĩa và các thiết bị I/O
Cộng đồng Unix ban đầu và sự xuất hiện của PDP-11
- Những người dùng đầu tiên của Unix gồm Dennis Ritchie, Doug McIlroy, Robert Morris, Brian Kernighan và một số ít người khác, quy mô nhỏ đến mức ID người dùng chỉ là các chữ số một chữ số
- Thompson cùng Rudd Canaday thiết kế hệ thống tệp trên bảng đen, rồi dùng hệ thống ghi âm điện thoại của Bell Labs để lập tài liệu
- Joe Ossanna đã lách các thủ tục quan liêu của Bell Labs để kiếm được máy tính PDP-11, tạo ra bước ngoặt cho quá trình phát triển Unix
- Chiếc PDP-11 được mua trên danh nghĩa “dùng cho xử lý văn bản” nhưng trên thực tế lại trở thành thiết bị chủ chốt cho việc phát triển Unix
- Khi các thư ký của bộ phận bằng sáng chế soạn thảo tài liệu trên hệ thống Unix, nhóm người dùng bên ngoài đầu tiên đã hình thành
“Unix Room” và một cộng đồng tự do
- PDP-11 được lắp đặt trong một không gian ở tầng 6 của Bell Labs, và nơi này nhanh chóng phát triển thành trung tâm của các lập trình viên, được gọi là ‘Unix Room’
- Sau khi dọn đi chiếc máy bán hàng cũ và kho chứa đồ, một chiếc PDP-11 thứ hai được bổ sung, biến nơi đây thành trung tâm thảo luận về mạng và sắp chữ tài liệu
- Nó còn hoạt động như một trung tâm nghiên cứu phi chính thức với cả hệ thống PBX riêng nối với đường dây điện thoại
- Thompson hồi tưởng về “thời kỳ phá khóa và bày trò trong Unix Room”
- Ông mô tả bầu không khí thử nghiệm nơi sự hài hước và tinh thần nổi loạn cùng tồn tại, như chuyện lấy trộm rồi giấu chiếc khóa bánh xe gắn do vi phạm đỗ xe
- Ông cũng kể giai thoại kết thúc bằng thương lượng, khi người phụ trách an ninh đề nghị rằng “nếu trả lại chiếc khóa, tôi sẽ không làm phiền các cô thư ký nữa”
- Dennis Ritchie từng mô tả Unix là “một hệ thống nơi cộng đồng có thể hình thành”, và ‘Unix Lunch’ diễn ra định kỳ trở thành không gian trao đổi ý tưởng
Tính cởi mở của Bell Labs và sự phát triển của Unix
- Thompson đánh giá môi trường nghiên cứu không áp lực và giàu tính tự chủ là yếu tố dẫn đến thành công của Unix và ngôn ngữ C
- Bell Labs có “bầu không khí nơi người ta có thể thử bất cứ điều gì”, với sự cộng tác của những người đến từ nhiều chuyên ngành khác nhau
- Nhà ngôn ngữ học Lee McMahon đã đóng góp cho Unix bằng cách thu thập từ điển đọc được bằng máy và bản điện tử của Federalist Papers
- Khi văn bản không thể đưa vào trình soạn thảo ed, Thompson đã phát triển công cụ tìm kiếm mẫu grep
- Unix dần lan rộng trong nội bộ Bell Labs, được dùng cho công việc hành chính và hệ thống chuyển mạch điện thoại, qua đó trở thành hạ tầng cốt lõi của toàn tổ chức
Triết lý cởi mở trước thời open source
- Thompson nhắc rằng Richard Stallman đã phát triển triết lý open source, nhưng Unix từ trước đó cũng đã mang tinh thần ấy
- Khi đó Unix có cơ chế bảo vệ tệp, nhưng trên thực tế toàn bộ mã nguồn đều ở trạng thái bất kỳ ai cũng có thể sửa đổi
- Dưới quy tắc ngầm “ai chạm vào thì nó là của người đó”, một văn hóa phát triển nơi sáng tạo chung và thử nghiệm trở thành chuyện thường ngày đã hình thành
- Câu chuyện mọi người đọc và để lại nhận xét cho bản thảo tiểu thuyết lưu trong thư mục của đồng nghiệp P. J. Plauger được giới thiệu như một giai thoại tiêu biểu cho sự cộng tác và cởi mở
- Chính văn hóa đó đã tạo nên phương thức phát triển cộng đồng kiểu ‘cùng viết trên bảng đen’
- Về sau, một số ý tưởng từ dự án Plan 9 của Bell Labs đã phát triển thành chuẩn UTF-8, trở thành nền tảng của web hiện đại
Hành trình sau Bell Labs và ngôn ngữ Go
- Thompson cho biết sau khi hệ thống Bell bị giải thể vào năm 2000, ông rời Bell Labs và nhắc tới văn hóa tổ chức đã thay đổi
- Ông cho rằng bầu không khí lúc đó đã trở thành “một nơi phải biện minh cho việc mình đang làm”, khiến tự do nghiên cứu biến mất
- Sau đó, ông làm việc 6 năm tại công ty thiết bị mạng Entrisphere rồi chuyển sang Google
- Sếp của ông tại Entrisphere khi ấy chuyển sang Google và mời Thompson theo cùng, còn Eric Schmidt là đồng nghiệp từ thời Bell Labs
- Tại Google, sau khi tham gia rà soát bảo mật Android, ông cùng Rob Pike lập nhóm phát triển ngôn ngữ Go
- Đây được xem là ví dụ cho việc mối quan hệ cộng tác từ thời Bell Labs, sau 30 năm, đã dẫn tới sự ra đời của một ngôn ngữ lập trình mới
Kết luận: di sản công nghệ được tạo nên bởi tò mò và cộng đồng
- Hồi tưởng của Ken Thompson cho thấy Unix không chỉ là một công nghệ mà còn là sản phẩm của tinh thần khám phá tự do và ý thức cộng đồng
- Môi trường cởi mở của Bell Labs đã đóng vai trò như nguyên mẫu của văn hóa open source hiện đại
- Trải nghiệm của ông là một lời nhắc rằng sáng tạo và hợp tác là động lực cốt lõi của đổi mới công nghệ
1 bình luận
Ý kiến Hacker News
Điều gây ấn tượng là tinh thần hợp tác sáng tạo và mức độ tin cậy cao mà nhiều dự án phần mềm thành công từng chia sẻ
Văn hóa này đi theo hướng hoàn toàn trái ngược với tư duy kiểu MBA hay môi trường quan liêu của các tập đoàn lớn
Nó gợi nhớ đến những trường hợp như Unix, GNU, Linux, Python thời kỳ đầu, và cả Rockstar Games thời kỳ đầu
Quan liêu cuối cùng sẽ nuốt chửng mọi thứ, còn các quản lý dựng lên những bức tường và bào mòn lòng tin bằng sự bí mật hóa
Người mới cũng khó mà hiểu được hệ thống, còn ý tưởng mới thì chết ngay từ khi chưa bắt đầu
Tổ chức lớn vẫn có thể kiếm tiền, nhưng nếu muốn tạo ra thay đổi thì niềm tin là điều bắt buộc
Bầu không khí đó khá giống cách các VC ngày nay rải tiền
Việc những người dùng Unix ban đầu lại là các thư ký phụ trách bằng sáng chế hay nhân viên hành chính là một chi tiết thú vị
Đây là một hệ thống mà mọi người tự nguyện thích rồi bắt đầu dùng, nên đã xuất hiện áp lực từ thực tế, và điều đó lại phát huy theo hướng lành mạnh
Dù có thử nghiệm các ý tưởng mới, họ cũng không thể phá hỏng một hệ thống mà người dùng thật đang sử dụng mỗi ngày
Giống như Linux bắt đầu chỉ như “một sở thích”, Unix thời kỳ đầu cũng khởi đầu từ những thử nghiệm để tạo ra công cụ hữu ích hơn là một tầm nhìn khổng lồ
Tất nhiên, môi trường Bell Labs là một lợi thế rất lớn
Vụ đôi ủng bảo vệ bị đánh cắp khá thú vị
Điều gây ấn tượng là nó được giải quyết không phải bằng quy trình chính thức mà bằng thương lượng trực tiếp với nhân viên an ninh
Giai thoại Thompson cùng Rudd Canaday thiết kế hệ thống tệp Unix trên bảng đen, rồi dùng dịch vụ điện thoại đọc chính tả của Bell Labs, thật tuyệt vời
Ngày nay người bình thường cũng dễ dàng dùng các dịch vụ nhận dạng giọng nói, nhưng vào thời đó đây hẳn là điều cực kỳ đột phá
Tất nhiên khi ấy có lẽ không phải AI mà là thư ký ghi chép lại, nhưng xét năng lực công nghệ của Bell Labs thì cũng không hẳn là điều hoàn toàn bất khả thi
Khi viết ra, tôi lại cứ muốn sửa liên tục nên thành ra phản tác dụng
Việc các công cụ thời kỳ đầu như mesg, talk được thiết kế với ý tưởng hình thành cộng đồng trong đầu là điều đáng chú ý
Nhờ cấu trúc nửa mở đó mà còn có thể vào thư mục home của người khác để xem tệp
ITS không hạn chế quyền hạn và khuyến khích cộng tác, còn phần lớn máy chủ Unix thì khóa thư mục home ở mức 0700
Trong chú thích của bức ảnh Ken và dmr đứng cùng nhau có câu rằng họ muốn tạo ra “một hệ thống nơi cộng đồng có thể hình thành”
Điều này gợi nhớ đến câu trích từ Chúa tể những chiếc nhẫn ở đầu tệp mã nguồn Perl
Có thể xem đoạn mã liên quan tại liên kết GitHub
Có thể xem toàn bộ phần Ken đóng góp cho ngôn ngữ Go trong kho lưu trữ Git
Không có gì để spoil, nhưng có khá nhiều đoạn mã thú vị
Tôi tò mò về tiêu đề ca khúc “Radio UNIX USA” trong album hardcore punk năm 1981 This is Boston not LA
Lời bài hát hoàn toàn không liên quan đến Unix, nhưng vì ban nhạc đến từ Boston nên có thể có liên hệ nào đó với MIT
Cũng có thể đây là tiêu đề nhại lại quy tắc ký hiệu gọi 4 chữ cái của các đài phát thanh Mỹ
Nếu thấy bài này thú vị, tôi đề xuất 《Hackers》 của Steven Levy
Cuốn sách nói về lịch sử văn hóa hacker, từ MIT AI Lab đến Homebrew Computer Club và các lập trình viên game thời kỳ đầu
Tôi cũng đọc nó khi còn nhỏ rồi say mê lập trình, và đến giờ vẫn cảm nhận được niềm vui hợp tác tương tự trong các startup
Liên kết Goodreads
《Unix: A History and a Memoir》 của Brian Kernighan cũng là một cuốn rất đáng đọc