Maestro, kernel và hệ điều hành giống Unix được viết từ đầu bằng Rust

uy nghiêm

Ảnh chụp màn hình Maestro

Rust đã đủ nổi tiếng đến mức nó đã trở thành một trong những ngôn ngữ được chọn để tích hợp làm ngôn ngữ thứ cấp trong Linux, cũng như trong các hệ điều hành khác, chẳng hạn như trường hợp của Android, vốn đã có một phần mã trong Rust, Windows cũng vậy. đã đưa ra sự chấp thuận, trong số những người khác.

Rust đã được chứng minh là một ngôn ngữ mạnh mẽ và đã tạo được sự tin tưởng như vậy Một số hệ điều hành thậm chí đã được tạo bằng ngôn ngữ lập trình này và chỉ đề cập đến một số hệ điều hành mà chúng tôi có: oxi hóa khử, Chúng tôi cũng có Kernels được viết từ đầu như Kerla hoặc Kernel được sử dụng trong vệ tinh mà Trung Quốc vừa phóng.

Lý do đề cập đến điều này là vì gần đây tôi tình cờ thấy một tin tức khiến tôi chú ý và đó là Một dự án đã được trình bày trong đó Kernel viết bằng Rust được phát triển và tương thích một phần với Linux.

Tên của dự án này là "Giáo viên" và như đã đề cập, là một hạt nhân giống Unix được viết bằng Rust triển khai một tập hợp con các lệnh gọi hệ thống từ nhân Linux đủ để tạo ra môi trường làm việc tiêu chuẩn. Như vậy, dự án "Maestro" không phải là điều gì mới mẻ, vì nhà phát triển đã đề cập rằng dự án này ra đời vào năm 2018, nhưng vào thời điểm đó nó được viết bằng C và do những lợi ích cũng như đặc điểm khác biệt của Rust nên dự án đã được viết lại từ số không.

Trên trang dự án Những lý do cho sự thay đổi được mô tả:

Vào thời điểm đó, tôi quyết định chuyển sang Rust (dự án đầu tiên của tôi bằng ngôn ngữ này), điều này mang lại một số lợi thế:

  • Khởi động lại dự án từ đầu, sử dụng những bài học rút ra từ những sai lầm trước đó.
  • Hãy sáng tạo hơn một chút so với việc chỉ viết một hạt nhân giống Linux bằng C. Suy cho cùng, lúc đó bạn chỉ cần sử dụng Linux.
  • Sử dụng tính bảo mật của ngôn ngữ Rust để tận dụng một số khó khăn khi lập trình kernel. Việc sử dụng hệ thống ghi Rust cho phép bạn chuyển một số trách nhiệm về an toàn bộ nhớ từ lập trình viên sang trình biên dịch.

Trong quá trình phát triển kernel, việc gỡ lỗi rất khó khăn vì một số lý do:

  • Tài liệu thường khó tìm và việc triển khai BIOS có thể có lỗi (thường xuyên hơn bạn nghĩ).
  • Khi khởi động, kernel có toàn quyền truy cập vào bộ nhớ và có thể ghi vào nơi không nên ghi (ví dụ: mã riêng của nó).
  • Khắc phục sự cố rò rỉ bộ nhớ không phải là điều dễ dàng. Không thể sử dụng các công cụ như valgrind.
  • gdb có thể được sử dụng với QEMU và VMWare, nhưng kernel có thể hoạt động khác khi chạy trên trình mô phỏng hoặc máy ảo khác. Ngoài ra, những trình giả lập đó có thể không hỗ trợ gdb (ví dụ: VirtualBox).
  • Một số tính năng bị thiếu trong hỗ trợ gdb trong QEMU hoặc VMWare và đôi khi gdb thậm chí có thể gặp sự cố

Liên quan đến đặc điểm của dự án, nổi bật là Kernel là nguyên khối và hiện chỉ được hỗ trợ trên hệ thống x86 ở chế độ 32 bit. Cơ sở mã hạt nhân bao gồm khoảng 49 nghìn dòng, có thể thực thi được cả trên phần cứng thực và trong môi trường ảo hóa, chẳng hạn như QEMU hoặc VirtualBox.

Trong sự phát triển hiện nay của «Maestro», 31% đã được thực hiện (135 trên 437) các cuộc gọi hệ thống Linux. Đây là đủ để tải môi trường bảng điều khiển dựa trên Bash và thư viện C tiêu chuẩn Musl. Ngoài ra, môi trường dựa trên Maestro có thể chạy một số tiện ích từ bộ lõi GNU và gói cơ bản từ bất kỳ hệ thống Unix nào. Hiện tại, công việc đang được thực hiện để triển khai ngăn xếp mạng và công việc cũng đang được thực hiện để phát triển máy chủ X11, trình quản lý gói, bộ tải khởi động, trình cài đặt và các tiện ích cần thiết khác để xây dựng hệ điều hành.

Entre las Các tính năng sẵn có của Maestro nổi bật sau đây::

  • Bộ điều khiển cho bàn phím và thiết bị đầu cuối PS/2 với chế độ văn bản và hỗ trợ một phần cho chuỗi ANSI.
  • Hệ thống cấp phát bộ nhớ có hỗ trợ bộ nhớ ảo.
  • Lập lịch tác vụ dựa trên thuật toán quay vòng có hỗ trợ tín hiệu POSIX.
  • Định nghĩa thiết bị PCI.
  • Bộ điều khiển IDE/PATA.
  • Hệ thống tập tin Ext2.
  • Hỗ trợ hệ thống tệp ảo /tmp và /proc.
  • Khả năng gắn kết các phân vùng đĩa FS, MBR và GPT.
  • hỗ trợ initramfs.
  • Bộ điều khiển RTC để hẹn giờ và thời gian chính xác.
  • Hỗ trợ tải các mô-đun hạt nhân.
  • Khả năng chạy các tập tin thực thi ở định dạng ELF.

muốn tìm hiểu thêm một chút về dự án, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.  Đối với những người quan tâm đến mã dự án, họ nên biết rằng đó là phân phối theo giấy phép MIT.