3 điểm bởi GN⁺ 2024-01-04 | 1 bình luận | Chia sẻ qua WhatsApp
  • Maestro là một nhân và hệ điều hành kiểu Unix được viết lại từ đầu bằng ngôn ngữ Rust.
  • Ban đầu dự án được triển khai bằng ngôn ngữ C, nhưng khi việc giữ cho codebase sạch sẽ trở nên khó khăn, dự án đã chuyển sang Rust.
  • Rust giúp khởi động lại dự án từ đầu theo hướng đổi mới hơn so với việc viết một nhân tương tự Linux bằng C, đồng thời tận dụng tính an toàn của Rust để giảm bớt độ khó của lập trình nhân.

Trạng thái hiện tại của dự án

  • Maestro hiện là một nhân monolithic chỉ hỗ trợ kiến trúc x86 (32-bit).
  • Tại thời điểm viết bài, khoảng 135 system call đã được triển khai ở mức tương đối, tương ứng với khoảng 31% system call của Linux.
  • Ngoài nhân, hệ điều hành còn có các thành phần như hệ thống khởi động và trình quản lý daemon Solfège, bộ lệnh tiện ích hệ thống maestro-utils, và trình quản lý gói blimp.
  • Phần mềm bên thứ ba như musl (thư viện chuẩn C), bash, một số lệnh GNU coreutils, và neofetch (phiên bản đã vá) đã được kiểm thử là hoạt động trên hệ điều hành này.

Hãy tự mình thử nghiệm!

  • Hệ điều hành vẫn đang ở giai đoạn phát triển rất sớm và rất không ổn định, vì vậy không nên cài đặt trên máy có dữ liệu quan trọng.
  • Hệ điều hành chủ yếu được kiểm thử trên QEMU, VMWare và VirtualBox.
  • Có hai cách để cài đặt hệ điều hành: tải tệp .iso dựng sẵn hoặc tự build ISO.
  • Các gói đã cài đặt được lưu trong RAM (initramsfs) thay vì trên đĩa, vì vậy cần có đủ RAM (từ 1GB trở lên).

Về blog này

  • Mục đích của blog này không phải là viết hướng dẫn về cách tạo một hệ điều hành, mà là khám phá các chủ đề nâng cao hơn, chia sẻ cách giải quyết vấn đề, và tìm hiểu cách máy tính, hệ điều hành, Internet hoạt động.
  • Đặc biệt khuyến nghị osdev.org và blog của Philipp Oppermann.

Những gì sẽ đến tiếp theo

  • Codebase cần được dọn dẹp và tối ưu hiệu năng.
  • Việc sửa memory leak và tối ưu hiệu năng có thể sẽ là chủ đề của các bài blog tiếp theo.
  • Mục tiêu tiếp theo là làm cho trình quản lý gói hoạt động hoàn chỉnh trên hệ điều hành.
  • Cần bổ sung hỗ trợ mạng và hỗ trợ thư viện dùng chung.

Cách hỗ trợ

  • Bạn có thể giữ liên lạc bằng cách gắn sao cho kho lưu trữ Github, đăng ký nhận bản tin, theo dõi RSS feed và tham gia Discord.

Ý kiến của GN⁺

  • Dự án Maestro là một hệ điều hành kiểu Unix được viết bằng Rust, đáng chú ý ở chỗ theo đuổi tính an toàn và sự đổi mới trong phát triển nhân.
  • Dự án này mang lại cơ hội thú vị cho các nhà phát triển muốn đóng góp cho cộng đồng mã nguồn mở, đồng thời có thể giúp hiểu rõ hơn về sự tương tác giữa phần cứng và phần mềm thực tế.
  • Đây có thể là tài liệu học tập hữu ích cho các kỹ sư phần mềm mới vào nghề muốn trực tiếp trải nghiệm ưu điểm và giới hạn của lập trình hệ thống bằng Rust.

1 bình luận

 
GN⁺ 2024-01-04
Ý kiến trên Hacker News
  • Cảm ơn sự ủng hộ dành cho dự án

    • Dự án này đã tốn rất nhiều công sức và có ý nghĩa rất lớn với nhà phát triển.
    • Hiện tại website rất chậm hoặc bị sập. Có lượng truy cập lớn ngoài dự kiến và nghi ngờ đang bị tấn công DoS.
    • Khi về nhà, tác giả sẽ cố gắng cải thiện trang web. Hiện tại vì công việc nên chưa thể dành nhiều sự chú ý cho việc này.
    • Xin lỗi vì sự bất tiện, nhưng rất vui vì dự án đã được mọi người đánh giá cao.
  • Ý kiến về một dự án nhỏ rất ấn tượng

    • Thật ngạc nhiên khi có thể khởi động được đến mức này mà còn chưa triển khai nổi cả một phần ba số system call của Linux.
    • Có thể đoán rằng những system call chưa được triển khai sẽ còn phức tạp hơn.
    • Ví dụ, tầng TTY hiện mới chỉ ở mức cơ bản. Việc triển khai nó một cách đúng đắn sẽ cần rất nhiều công sức.
    • Vì vậy, đừng kỳ vọng Maestro sẽ chạy được ứng dụng Linux trong vòng 3 năm tới.
  • Ý kiến về bảo mật/kiểm thử xâm nhập

    • Vì dự án được phát triển bằng Rust, người này muốn thấy các bài kiểm thử bảo mật để xem hacker có thể tìm ra lỗ hổng hay không.
  • Nhắc đến dự án Kerla

    • Cũng từng có Kerla, một monolithic kernel viết bằng Rust với mục tiêu tương thích ABI Linux, nhưng đã không còn hoạt động trong vài năm qua.
  • Ý kiến về nhược điểm của việc dùng ngôn ngữ C và độ khó của phát triển OS

    • Phần lớn nhược điểm và khó khăn nằm ở việc debug.
    • Người này thắc mắc rằng việc chuyển sang Rust có loại bỏ được một số lớp lỗi bộ nhớ nhất định, nhưng debug vẫn còn khó như cũ hay không, hoặc sau khi chuyển sang thì cần debug ít hơn nên mọi thứ trở nên dễ hơn.
  • Nhắc đến việc dự án Kerla đã dừng lại

    • Có nhắc rằng Kerla, một dự án đã từng được thử, nay đã bị dừng lại.
  • Ý kiến về độ phức tạp của máy tính

    • Máy tính là một trong những công cụ phức tạp nhất mà nhân loại từng tạo ra.
  • Lời khuyên về việc trả nợ kỹ thuật

    • Khi bắt đầu như một dự án ở trường, do hạn chế thời gian nên đôi lúc phải làm tắt, nhưng giờ là lúc để trả nợ kỹ thuật, và người này khuyên nên giữ vững tư duy đó.
  • Sự quan tâm đến Gource

    • Người này thấy công cụ Gource mà tác giả dùng để tạo video về các đóng góp là cực kỳ thú vị. Trước đây cũng từng nghĩ đến một ý tưởng tương tự, nhưng có vẻ chẳng có ý tưởng nào là hoàn toàn nguyên bản.
  • Sự quan tâm đến việc xây dựng kernel

    • Người này rất thích ý tưởng xây dựng kernel cho mục đích học tập. Họ muốn biết tác giả đã sử dụng những tài liệu nào để hiểu về kernel/OS nói chung.