1 điểm bởi GN⁺ 2024-06-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Andrew S. Tanenbaum, giáo sư danh dự ngành khoa học máy tính tại VU Amsterdam, đã nhận ACM Software System Award nhờ MINIX, hệ điều hành có ảnh hưởng tới giáo dục hệ điều hành và thiết kế OS
  • MINIX 1.0 là một hệ điều hành UNIX dựa trên microkernel dành cho IBM PC, được tạo ra vào năm 1987 cùng với giáo trình Operating Systems: Design and Implementation
  • Phiên bản MINIX ban đầu có khoảng 12.000 dòng mã, bao gồm microkernel, trình quản lý bộ nhớ, hệ thống tệp và các tiện ích UNIX cốt lõi, và đã trở thành phần mềm mã nguồn mở tự do vào năm 2000
  • MINIX đã truyền cảm hứng cho Linux, trở thành nền tảng của MeikOS và còn chạy bên trong các vi mạch được sử dụng rộng rãi
  • ACM Software System Award được trao cho các hệ thống phần mềm để lại ảnh hưởng lâu dài; giải thưởng trị giá 35.000 USD và do IBM tài trợ

Được vinh danh nhờ MINIX

  • Andrew S. Tanenbaum, giáo sư danh dự ngành khoa học máy tính tại VU Amsterdam, đã nhận ACM Software System Award nhờ MINIX
  • MINIX đã được dùng để giảng dạy các nguyên lý hệ điều hành cho nhiều thế hệ sinh viên và cũng ảnh hưởng tới thiết kế các hệ điều hành, bao gồm Linux

Khởi đầu và cấu thành của MINIX 1.0

  • Tanenbaum đã tạo ra MINIX 1.0 vào năm 1987 để đi cùng giáo trình Operating Systems: Design and Implementation
  • Đây là một hệ điều hành UNIX nhỏ gọn dựa trên microkernel dành cho IBM PC, vốn rất phổ biến vào thời điểm đó
  • MINIX ban đầu gồm khoảng 12.000 dòng mã và bao gồm các thành phần sau
    • microkernel
    • trình quản lý bộ nhớ
    • hệ thống tệp
    • các chương trình tiện ích UNIX cốt lõi
  • MINIX đã trở thành phần mềm mã nguồn mở tự do vào năm 2000

Ảnh hưởng để lại với Linux và các hệ thống khác

  • MINIX không chỉ hỗ trợ thành công của giáo trình Tanenbaum mà còn để lại ảnh hưởng rộng lớn hơn
  • Nó đã truyền cảm hứng cho Linux, và Linux sau đó phát triển thành một hệ điều hành mã nguồn mở thành công, vận hành máy chủ đám mây, điện thoại di động và các thiết bị Internet vạn vật
  • MINIX trở thành nền tảng cho hệ điều hành MeikOS dành cho máy tính dựa trên Meikotransputer
  • MINIX cũng chạy bên trong các vi mạch được sử dụng rộng rãi
  • Phiên bản tiếp theo là MINIX 3.0 hướng tới các máy tính có tài nguyên hạn chế, máy tính nhúng và các ứng dụng đòi hỏi độ tin cậy cao

Sự lan tỏa của thiết kế microkernel

  • Việc Tanenbaum ủng hộ thiết kế microkernel cũng đã ảnh hưởng tới nhiều thế hệ nhà thiết kế hệ điều hành, ngoài tác động trực tiếp từ chính MINIX

Tính chất của ACM Software System Award

  • ACM Software System Award được trao cho các tổ chức hoặc cá nhân đã phát triển những hệ thống phần mềm tạo ra ảnh hưởng lâu dài thông qua đóng góp mang tính khái niệm, mức độ chấp nhận thương mại, hoặc cả hai
  • Giải thưởng trị giá 35.000 USD
  • IBM là đơn vị tài trợ tài chính cho Software System Award

1 bình luận

 
GN⁺ 2024-06-23
Ý kiến trên Hacker News
  • Tôi sẽ không bao giờ quên chuyện này. Hình như là ở Stanford, tôi đang nghe bài nói chuyện của Reed Hastings, nhà sáng lập/CEO Netflix, và ông ấy đang giải thích cách mình nảy ra ý tưởng Netflix
    Một sinh viên hỏi: “Khi nào ông nhận ra rằng cần chuyển sang internet?”, ông ấy trả lời: “Điều đó đã nằm trong ý tưởng ngay từ đầu. Chúng tôi biết mạng sẽ trở thành như ngày nay. Trong sách giáo khoa khoa học máy tính có câu ‘đừng bao giờ đánh giá thấp băng thông của một xe tải chở đầy băng từ đang chạy trên xa lộ’. Chúng tôi nghĩ trước hết phải giao DVD cho đến khi mạng đạt tới mức chúng tôi mong muốn”
    Lúc đó tôi nghĩ “Ồ! Mình nhớ câu trích dẫn và hình minh họa đó”, nên tìm lại sách giáo khoa thì thấy nó đúng y như vậy trong sách giáo khoa về mạng của Tanenbaum. Bỏ qua giai thoại này, người này đã có ảnh hưởng rất lớn đến toàn ngành, chưa nói đến cuộc tranh luận về kernel

    • Có vài manh mối dẫn tới nguồn gốc tại https://en.m.wikipedia.org/wiki/Sneakernet
    • Hãy thử tưởng tượng cảnh đặt tên công ty là Netflix rồi nói “internet chỉ là một trào lưu nhất thời thôi”
  • Đây là một giải thưởng rất xứng đáng dành cho một nhà giáo dục xuất sắc, thật đáng chúc mừng. Tôi vẫn còn giữ cuốn sách giáo khoa về hệ thống phân tán của ông ấy mà ngày xưa từng đọc, và đến giờ vẫn nghĩ rằng giá như Minix thắng thế để mô hình microkernel đó trở thành nền tảng của hệ sinh thái FOSS *nix thì tốt biết mấy
    Dành cho những ai chưa biết, Andrew còn vận hành Electoral Vote [1], một blog khoa học bầu cử phân tích và dự đoán bầu cử Mỹ bằng mô hình thăm dò đại cử tri đoàn. Đây là một trong những trang về chính trị Mỹ khá tốt
    [1]:https://www.electoral-vote.com/evp2024/Info/welcome.html

    • electoral-vote.com giờ không còn chỉ là một blog khoa học bầu cử đơn thuần nữa. Andrew và đồng tác giả Christopher Bates mỗi sáng đều đăng bản tóm tắt rất rõ ràng về tin chính trị ngày hôm trước và tác động có thể có của chúng đối với chính trị Mỹ
      Chỉ cần đọc các bài hằng ngày dí dỏm mà không sa vào cảm tính đó thôi, bạn cũng có thể nắm thông tin khá tốt với tư cách một công dân Mỹ
  • Tôi từng học rất tệ môn kiến trúc máy tính, và có một bài giữa kỳ chỉ được 5%. Tôi đổi giáo trình khuyến nghị sang sách của Andrew, và ngoài việc đọc 2 tiếng mỗi ngày ra thì không làm gì khác, rồi được 100% ở bài cuối kỳ
    Đó thật sự là một cuốn sách dễ tiếp cận đến kinh ngạc :-)

    • Khoảng 20 năm trước, trong hai môn khoa học máy tính tôi cũng dùng sách của Tanenbaum. Đó là những giáo trình tuyệt vời, và tôi cũng thấy chúng khá dễ hiểu
    • Ồ, là cuốn nào vậy?
    • Tò mò chút, giáo trình được khuyến nghị ban đầu là gì?
  • Một giải thưởng rất xứng đáng cho một nhà giáo dục xuất sắc, người đã khiến khoa học máy tính trở nên dễ tiếp cận và thú vị
    Structured Computer Organization lẽ ra là một giáo trình, nhưng được viết hay đến mức tôi đọc một mạch từ đầu đến cuối như đọc truyện ly kỳ
    Chẳng hạn, chắc không nhiều người nói như vậy về Knuth. Tất nhiên điều đó không có ý hạ thấp việc Knuth vĩ đại theo cách riêng của ông ấy

  • Tôi cho rằng các sách của AST, đặc biệt là những cuốn trực tiếp nói về Minix, nằm cùng tầng triết lý với bài luận The Night Watch
    Rốt cuộc, bài luận đó nói về sự thoải mái đến từ việc quen thuộc với thực tế, chứ không phải sự vô tri do trừu tượng hóa; về sự không sợ hãi học được, chứ không phải bất lực
    Chúng ta hiếm khi phải gắn oscilloscope hay logic probe vào các chân của chip xử lý để nhìn các đường dữ liệu trong lúc chạy mã cấp kernel để debug, nhưng ai trong chúng ta cũng biết ít nhất một người làm chuyện đó một cách rất bình thản. Dù vậy, việc có thêm một chút kiến thức và sự quen thuộc gần hơn với silicon, một datasheet bộ xử lý đặt gần đó, hay cảm giác không xa lạ với các chế độ phân đoạn bộ nhớ, đều giúp ích rất nhiều cho lập trình viên phần mềm
    Đó là một bước nhảy mà ai cũng nên thử ít nhất một lần, vì nó có thể loại bỏ rào cản tinh thần ngăn ta hiểu mọi thứ thực sự vận hành như thế nào

  • Cũng không thể bỏ qua việc MINIX đang ẩn bên trong gần như mọi CPU Intel hiện đại như một phần của Management Engine. Sự thật ít được biết đến này khiến nó trở thành một trong những hệ điều hành được triển khai rộng rãi nhất

    • Tại sao họ lại dùng Minix chứ không phải thứ gì như L4 hay seL4?
      Tôi cũng tò mò không biết thực tế họ đã dùng phiên bản Minix nào. Minix v3.1 ra mắt cùng cuốn sách vào năm 2005, 3.2 vào năm 2012, và 3.3 vào năm 2014
    • Thỉnh thoảng tôi nghĩ không biết thế giới ngày nay sẽ khác thế nào nếu MINIX được phát hành theo một giấy phép FLOSS tương tự Linux
      Cuộc tranh luận giữa Linus Torvalds và Andrew Tanenbaum có thể đã là một bước ngoặt quan trọng trong lịch sử công nghệ, nhưng có vẻ MINIX đã bỏ lỡ một cơ hội rất lớn để vươn lên vị trí nổi bật hơn trong lịch sử
    • Có vẻ nhiều vi điều khiển ARM và system-on-chip đang chiếm ưu thế về số lượng, nên tôi tự hỏi điều này có thực sự đúng không
      Nếu giả định phần lớn chúng chạy một dạng Linux hoặc hệ điều hành thời gian thực nào đó, tôi lại thắc mắc giữa MINIX và Linux thì cái nào phổ biến rộng hơn
    • ACM nên yêu cầu AST tách mình khỏi sự thật này trước khi trao giải cho ông ấy
  • Tôi đã đọc Operating Systems: Design and Implementation vào năm 1988 hoặc 1989, và đó là một trải nghiệm sâu sắc, thú vị
    Khi ấy tôi chỉ mong có một hệ điều hành kiểu Unix nào đó được cung cấp “tự do”. Ở đây “tự do” là theo nghĩa trực giác, chứ không phải định nghĩa chính thức mà sau này tôi mới biết. Nó đã có thể là Minix

    • Đó là cuốn giáo trình hay nhất trong số những cuốn tôi phải đọc khi học lấy bằng vào thập niên 80. Mã nguồn Minix trong phần phụ lục là lần đầu tiên tôi tiếp xúc với một khối mã C lớn được viết tốt
    • Đó là một trong các giáo trình trong chương trình học của tôi, và tôi đã đọc nó rất thích thú
  • Computer Networks của ông từng là một trong những cuốn sách tôi thích nhất hồi học khoa học máy tính.
    Vài năm sau, tôi dạy một khóa về hệ thống phân tán ở trường kinh doanh và đã xây dựng tài liệu dựa trên cuốn sách đó. Nhìn lại bây giờ vẫn thấy nó còn rất giá trị.

    • Đó là giáo trình tôi thích nhất trong toàn bộ chương trình khoa học máy tính bậc đại học. Giờ nó vẫn nằm trên giá sách của tôi.
      Tôi chưa từng đào sâu vào networking, nhưng kiến thức rộng từ đó vẫn còn đọng lại và nhiều lần giúp ích. Có thể nói điểm này khiến tôi khác với các kỹ sư khác.
    • Dù đây là thread về Tanenbaum, cá nhân tôi thấy Data Communications and Networking của Forouzan giải thích tốt hơn và cũng đi sâu hơn vào chi tiết của từng tầng mạng.
      Tuy vậy, Modern Operating Systems là một cuốn xuất sắc, và khi tôi giới thiệu cho bạn bè thời đại học, họ cũng có phản hồi tương tự.
  • Ở thời điểm này, tôi hơi tiếc vì nghiên cứu hệ thống dường như gần như đã chững lại.
    Tôi từng nghĩ đến khoảng năm 2024 chúng ta sẽ dùng các hệ điều hành phân tán cho phép di chuyển tiến trình tự do giữa điện thoại, desktop, laptop và NAS mà không gặp mấy vấn đề.

    • Nghiên cứu và đổi mới vẫn còn rất nhiều, chỉ là chúng không nhất thiết xuất hiện dưới dạng những dự án phần mềm hoàn toàn mới. Chi phí tạo ra một hệ điều hành mới đơn giản là khổng lồ.
      Nếu muốn làm thứ gì đó không phải thiết bị chuyên dụng, nó phải tương thích với phần mềm hữu ích hiện có. Một chuyển đổi mô hình mới đòi hỏi phải thay đổi phần mềm hiện có sẽ có con đường thành công rất gian nan. Dù vậy, trong hệ điều hành vẫn có rất nhiều tiến bộ tiệm tiến.
      Ý tưởng về một hệ điều hành phân tán thực sự hẳn đã được nhiều người nghĩ tới. Tôi khá chắc rằng các hệ điều hành hiện tại cuối cùng sẽ tiến hóa theo hướng đó. Ta đã bắt đầu thấy các mảnh ghép ở chỗ này chỗ kia.
    • Nghe như bạn, giống tôi, vẫn luôn ghi nhớ quan điểm từ lâu của Rob Pike http://www.herpolhode.com/rob/utah2000.pdf
      Kể từ bài đó đã có nhiều chuyện xảy ra, nhưng tôi có cảm giác bất an rằng ông ấy đã đúng và chúng ta dường như đã ngừng nỗ lực thực sự mở rộng cũng như khám phá các khả năng. Tuy nhiên, điều này có thể liên quan nhiều hơn đến tình trạng của giới học thuật hơn là bản thân lĩnh vực.
      Trước khi cơn sốt thổi phồng ập tới, các ứng dụng GPGPU kèm machine learning cũng đâu nhận được hàng loạt lời mời hội nghị. Vì quyền lực học thuật và thực tế lạnh lùng của việc chạy theo kinh phí nghiên cứu, đáng tiếc là người ta đã không còn mấy hứng thú với nghiên cứu hệ thống.
    • Không phải nghiên cứu đã dừng lại, mà là do sự thống trị của các ông lớn công nghệ khiến động lực tạo ra thiết bị tiêu dùng giảm đi.
      Nếu ai đó cố triển khai những ý tưởng thú vị như vậy, họ sẽ bị đánh giá khắt khe vì phần còn lại của stack không cạnh tranh nổi với Pixel hay iPhone. Cứ nhìn Rabbit là thấy.
      Những gì bạn mô tả là chủ đề cốt lõi của nghiên cứu hệ thống hiện đại, và các nhà cung cấp cloud lớn đang triển khai toàn bộ những thứ kiểu này trong nội bộ.
    • Những thứ này nên được nhìn ở các vai trò liên quan đến hạ tầng. Ví dụ, khi rút tải một VM hay Kubernetes minion, live migration của VM và container diễn ra thường xuyên.
      Người tiêu dùng nhìn chung quan tâm nhiều hơn đến trải nghiệm người dùng. Phần mềm đồng bộ nội dung lên server để dùng trên mọi thiết bị nhẹ gánh hơn nhiều so với việc cố di chuyển tiến trình theo thời gian thực trên một mạng không ổn định.
    • Với tôi, những thứ kiểu này luôn nằm trong nhóm rất ngầu nhưng không rõ hữu dụng đến đâu.
      Rất nhiều nhà nghiên cứu hệ thống hoàn toàn ám ảnh với clustering, network transparency và hệ thống phân tán, xem chúng là đỉnh cao của hệ điều hành. Tôi không hiểu vì sao. Tôi hoàn toàn hiểu chúng rất ngầu, nhưng rốt cuộc vẫn không thấy vì sao việc một hệ thống server-laptop-điện thoại-network hoạt động như một hệ thống duy nhất lại quan trọng đến thế.
      Tôi nghĩ đã có nhiều công sức bị lãng phí để đuổi theo con rồng đó. Nghiên cứu những thứ thú vị là tốt, và trong quá trình đó chắc cũng tạo ra những thứ hữu ích, nên gọi là lãng phí có lẽ không chính xác. Nhưng tôi không cảm thấy đã có đủ lý do biện minh, và có lẽ nguồn lực ấy đã có thể được dùng tốt hơn.
      Một hướng thay thế là các công cụ đa hệ thống và mô hình lập trình cho phép quản lý nhiều hệ thống mà không cần làm chúng trông như một single image ở tầng thấp nhất; sau TCP/IP, hướng này không được giới học thuật ưu ái nhiều và chủ yếu được ngành công nghiệp phát triển.
  • Một sự thật thú vị nữa về Tanenbaum là ông chính là người đứng sau electoral-vote.com.
    Trước khi ai cũng có mô hình riêng và Nate Silver — hay phải gọi là Poblano nhỉ — càn quét vào năm 2008, đây là nơi phải đến nếu muốn hiểu cuộc bầu cử tổng thống Mỹ năm 2004 giữa Bush và Kerry. Nó đã giúp rất nhiều người hiểu về thăm dò dư luận và thống kê.

    • electoral-vote.com hiện vẫn hoạt động tích cực: https://www.electoral-vote.com/
      Có thể bạn đã biết, nhưng tôi muốn nhấn mạnh cho những ai chưa biết.
      Giáo sư Tanenbaum hiện còn có một đồng tác giả là Giáo sư Bates. Bates là giáo sư lịch sử tại UCLA/Cal Poly. Trang này đăng bài hằng ngày; trước đây chỉ đăng vào ngày thường, và chỉ trong mùa bầu cử.