VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

Năm 1976, John Lions giảng kernel Unix cho sinh viên. Giấy phép AT&T biến sách thành bản photocopy kinh điển.

16/10/2026 · VietTechies · Biên tập

Hai tập sách gốc, “A Commentary on the UNIX Operating System” của John Lions và “UNIX Operating System Source Code Level Six”, đặt trên một mặt bàn trắng, bên cạnh dòng chữ “John Lions” và “The Unix kernel, explained”, cùng một chồng trang photocopy mờ dần.


Tháng 5 năm 1976, John Lions, giảng viên tin học tại Đại học New South Wales (UNSW) ở Sydney, soạn một bộ tài liệu về Unix cho sinh viên môn hệ điều hành của mình. Theo lời UNSW, bộ tài liệu ấy ra đời “chỉ để hỗ trợ sinh viên”, nhưng đến năm 1979, chủ sở hữu Unix là AT&T đã cấm dùng những tài liệu như vậy trong lớp học.

Đến năm 1977, bộ tài liệu đã được đóng thành hai tập: một tập in mã nguồn nhân hệ điều hành (kernel) của Unix phiên bản thứ sáu, dài khoảng 9.000 đến 10.000 dòng; tập còn lại là phần bình giải cách kernel ấy hoạt động. Sau lệnh cấm, bộ sách lưu hành dưới dạng bản photocopy, cho đến khi chủ sở hữu sau này của mã nguồn cho phép phát hành một ấn bản vào năm 1996. Các bản photocopy ấy chứa một dòng chú thích (comment) thuộc hàng được nhớ đến nhiều nhất của Unix: “You are not expected to understand this” (tạm dịch: “Không ai trông đợi bạn hiểu được đoạn này”).

Một hệ điều hành đang chạy thật trở thành giáo trình

UNSW có được mã nguồn Unix vào năm 1975, sau khi Ken Robinson của trường viết thư xin. Phiên bản thứ sáu (Sixth Edition), thường được gọi là V6, khi đó là phiên bản hiện hành, và kernel của V6 đủ gọn để in ra rồi giải thích từng dòng. Lions đã làm đúng như thế. Một tập in lại code kernel, có đánh số từng dòng; tập kia lần lượt giảng giải phần mã ấy, nhờ đó sinh viên có thể học một hệ điều hành thật, đang chạy trên những cỗ máy thật, chứ không phải một mô hình đơn giản hóa.

Bộ sách đến được những nơi cách Sydney rất xa. Andrew Tanenbaum, một nhà khoa học máy tính ở Amsterdam, sau này viết rằng khi ấy ông đang “dạy một môn về hệ điều hành và dùng cuốn sách của John Lions về UNIX Version 6”. Bell Labs, nơi Unix được viết ra, cũng để ý tới bộ sách. Bài chân dung Lions mà tạp chí Salon đăng năm 1999 trích lời Dennis Ritchie, người cùng Ken Thompson tạo ra Unix, nói về bộ sách: “Chúng tôi rất ấn tượng trước chất lượng của công trình, và chỉ riêng việc nó tồn tại cũng đủ khiến chúng tôi vô cùng hãnh diện.”

Năm 1978, theo phần giới thiệu tác giả (“About the author”) trong ấn bản năm 1996 của bộ sách, Doug McIlroy của Bell Labs đã gọi điện cho Lions, nói rằng phòng thí nghiệm muốn đứng ra lo việc phân phối bộ tài liệu. Salon cho biết thêm rằng về nguyên tắc thì ngay từ đầu chỉ những bên có giấy phép dùng Unix phiên bản thứ sáu mới được tiếp cận bộ sách.

Giấy phép của AT&T đẩy bộ sách ra khỏi lớp học

Unix phiên bản thứ bảy (Seventh Edition) được phát hành năm 1979. Theo Salon, “giấy phép của bản thứ bảy và các bản sau đó đều ghi rõ là cấm kiểu giảng dạy mà Lions vẫn làm”. UNSW thì kể thẳng thừng hơn: AT&T đã thấy không thoải mái khi code Unix bị mổ xẻ công khai đến vậy, và “đã cấm dùng trong lớp học vào năm 1979”.

Không phải ai ở AT&T cũng muốn có lệnh cấm này. Theo Ritchie, đã có “ít nhiều giằng co” giữa nhóm nghiên cứu — những người “thấy được lợi ích của việc để hệ thống nằm sẵn trong tầm tay” — và Nhóm Hỗ trợ Unix (Unix Support Group, USG), đội Unix nội bộ của AT&T. Ông kể rằng dù vào thập niên 1970, Unix chưa phải là một sản phẩm thương mại, “USG và các luật sư vẫn thận trọng”. Lời kết của ông ngắn gọn: “Dù sao đi nữa, chúng tôi ở bên nghiên cứu đã thua trong cuộc tranh luận này.”

Với Andrew Tanenbaum ở Amsterdam, lệnh cấm đã khiến môn học của ông đổi hướng. Tanenbaum kể lại rằng khi AT&T quyết định cấm dạy về cơ chế bên trong của Unix, ông đã chọn tự viết một phiên bản Unix của riêng mình, “hoàn toàn không có code hay ràng buộc nào của AT&T”, để có thể dùng nó làm tài liệu giảng dạy. Hệ thống ấy trở thành MINIX.

Bộ sách sống sót qua lệnh cấm nhờ những bản photocopy

Lệnh cấm không làm bộ sách biến mất. Theo nhận xét của Salon, Unix phiên bản thứ bảy ra mắt “vào khoảng thời gian máy photocopy bắt đầu có giá phải chăng”, và bộ sách của Lions “được bí mật sao chép rồi truyền tay nhau”. Như Salon viết: “Những bản photocopy thế hệ thứ tư, thứ năm đã trở thành báu vật.” UNSW kể rằng nhu cầu ngầm về bộ sách kéo dài suốt hai thập kỷ.

Chuyện đằng sau dòng comment “You are not expected to understand this”

Dòng comment này nằm trong phần mã của kernel lo việc chuyển đổi tiến trình. Ritchie nhận xét rằng câu này thường bị trích dẫn như “một lời chê bai về số lượng hoặc chất lượng của các dòng chú thích” trong code Unix do Bell Labs viết. Theo Ritchie, câu ấy được viết ra “với tinh thần ‘Phần này sẽ không có trong đề thi’”. Ông cũng thừa nhận: “Vấn đề thật sự là chính chúng tôi cũng không hiểu chuyện gì đang diễn ra.”

Đoạn mã có dòng comment ấy dựa vào việc chuyển sang một khung ngăn xếp (stack frame) đã lưu từ trước, rồi chạy phần lệnh trả về của một hàm khác, không phải của hàm đã lưu trạng thái đó. Cách làm này chạy được trên máy tính mini PDP-11, vì trình biên dịch (compiler) trên máy này luôn dùng cùng một cơ chế lưu ngữ cảnh. Rắc rối nảy sinh khi Ritchie và đồng nghiệp Steve Johnson chuyển kernel sang một máy tính Interdata, vì compiler của máy này sinh ra phần lệnh trả về khác nhau tùy theo việc một hàm đã lưu những thanh ghi nào. Hai người mất khoảng một tuần tìm cách gỡ rắc rối này, rồi mới đi đến kết luận rằng chính cơ chế chuyển đổi tiến trình của kernel đã sai. Họ viết lại cơ chế ấy, còn dòng comment thì vẫn nằm nguyên trong code của phiên bản thứ sáu mà Lions đã in.

Bộ sách được phép xuất bản năm 1996 như thế nào

Đến giữa thập niên 1990, mã nguồn Unix đời cũ đã thuộc về công ty Santa Cruz Operation (SCO). Với sự giúp sức của nhà nghiên cứu lịch sử Unix Peter Salus và tác giả Berny Goodheart, Ritchie thúc giục SCO cho phép xuất bản bộ sách. Ông vốn đã quen Mike Tilson, một lãnh đạo của SCO, và nhớ lại rằng Tilson đã tự tay soạn lá thư “cấp phép”, “để bên pháp lý khỏi phải làm việc này!”

Năm 1996, nhà xuất bản Peer-to-Peer Communications gộp cả hai tập vào một cuốn và phát hành với tên Lions’ Commentary on UNIX 6th Edition, with Source Code. Ken Thompson và Ritchie viết lời tựa. Theo UNSW, cuốn sách về sau bán được khoảng 15.000 bản.

Nơi phương pháp của Lions vẫn được tiếp nối

Lions qua đời ngày 5 tháng 12 năm 1998, ở tuổi 61. Năm 2002, UNSW khánh thành Vườn Lions (Lions Garden) bên ngoài tòa nhà Khoa học Máy tính của trường, và năm 2006, một nhóm cựu sinh viên lập ra vị trí giáo sư hệ điều hành mang tên John Lions (John Lions Chair of Operating Systems).

Cách tiếp cận của Lions tồn tại lâu hơn cuộc tranh chấp giấy phép. Năm 2002, khi Viện Công nghệ Massachusetts (MIT) mở một môn học về hệ điều hành, sinh viên học lần lượt từng phần của Unix phiên bản thứ sáu “bằng bản bình giải nổi tiếng của John Lions”, theo lời MIT. Năm 2006, môn học thay V6 bằng xv6, một hệ điều hành mới dùng để giảng dạy, phỏng theo V6 nhưng được viết bằng ANSI C — phiên bản chuẩn hóa của ngôn ngữ C — cho các máy Intel x86 đa bộ xử lý.

Một cuốn sách giảng giải rõ ràng về code thật vẫn tiếp tục tìm được người đọc, bất kể giấy phép của AT&T nói gì. Bộ tài liệu được soạn ở Sydney “chỉ để hỗ trợ sinh viên” đã đến được lớp học của Tanenbaum ở Amsterdam, sống sót dưới dạng bản photocopy của những bản photocopy, và 26 năm sau khi Lions viết ra, đã có mặt trong đề cương môn học tại MIT.

Bài liên quan

Đọc bằng ngôn ngữ khác: English

Nguồn