1 điểm bởi GN⁺ 2024-07-15 | 1 bình luận | Chia sẻ qua WhatsApp

Fusion OS

Fusion là một hệ điều hành sở thích cho x86-64 được triển khai bằng Nim. Quá trình phát triển đang được ghi chép tại https://0xc0ffee.netlify.app.

Ảnh chụp màn hình

  • Trình nạp khởi động UEFI
  • GUI ( Lưu ý: ảnh chụp màn hình này được lấy từ nhánh graphics hiện vẫn đang trong quá trình hoàn thiện.)
  • Khởi động kernel Fusion

Tính năng

Các tính năng hiện đã được triển khai:

  • Trình nạp khởi động UEFI
  • Trình quản lý bộ nhớ vật lý
  • Trình quản lý bộ nhớ ảo
  • Không gian địa chỉ đơn
  • Chế độ người dùng
  • Đa nhiệm ưu tiên
  • System call
  • Trình nạp ELF
  • Ngắt bộ định thời

Các tính năng được lên kế hoạch:

  • Demand paging
  • Giao tiếp liên tiến trình
  • I/O đĩa
  • Hệ thống tệp
  • Nhập liệu bàn phím/chuột
  • Shell
  • GUI
  • Mạng

Build

Để build Fusion, cần cài đặt các phụ thuộc sau:

  • Nim
  • LLVM (clang và lld)
  • Just

Build Fusion bằng lệnh sau:

just build

Chạy

Hiện tại Fusion chạy trên QEMU, vì vậy trước tiên cần cài đặt QEMU. Chạy Fusion bằng lệnh sau:

just run

Giấy phép

MIT

Tóm tắt của GN⁺

Fusion OS là một hệ điều hành sở thích cho x86-64 được triển khai bằng Nim, hữu ích với những ai muốn tìm hiểu quá trình phát triển hệ điều hành. Hiện tại, các tính năng cơ bản như trình nạp khởi động UEFI, trình quản lý bộ nhớ vật lý và ảo, chế độ người dùng đã được triển khai. Trong tương lai, nhiều tính năng như demand paging, giao tiếp liên tiến trình, hệ thống tệp sẽ được bổ sung. Có thể dễ dàng thử nghiệm qua QEMU nên phù hợp cho phát triển và học tập. Các dự án tương tự gồm có xv6, OSDev.

1 bình luận

 
GN⁺ 2024-07-15
Ý kiến Hacker News
  • Tác giả đây. Tôi sẵn sàng trả lời câu hỏi
  • Blog/tài liệu của bạn rất xuất sắc. Blog và tài liệu rất tuyệt. Sự cân bằng giữa trình bày và giải thích là hoàn hảo
  • Hay đấy, tôi rất thích thấy những thứ như thế này. Tôi thích được thấy các dự án như thế này. Tôi đã tham gia hệ sinh thái Nim một cách ngắt quãng trong vài năm. Thật vui khi thấy dự án nhỏ này tiếp tục được phát triển
  • Thú vị đấy! Việc có thể đọc các mô-đun ELF một cách dễ dàng khá là hay. Một ngày nào đó tôi muốn viết một RTOS bằng Nim. Tôi thích viết chương trình nhúng bằng Nim, và làm một RTOS nghe cũng sẽ rất vui
  • Nim là gì, và mục tiêu thiết kế tổng thể của Fusion là gì? Tôi hy vọng đây không phải là câu hỏi quá cơ bản; tôi hoàn toàn không có kiến thức nền về chủ đề này nên mong ai đó giải thích giúp
  • Nhật ký phát triển của tác giả Fusion: Chia sẻ liên kết tới nhật ký phát triển của tác giả Fusion
  • So với TempleOS thì thế nào? Tôi tò mò nó khác gì khi so với TempleOS. Nghe có vẻ giống nhau ở điểm đều dùng không gian địa chỉ đơn
  • Vấn đề của Nim khiến nhiều người ngại dùng Nim là không phân biệt chữ hoa chữ thường và kiểu viết. Đây là một vấn đề của Nim
    • Ví dụ: Is_land == island == IsLaND == is-land
    • Điều này gây vấn đề trong môi trường nhóm hoặc các dự án thực tế
    • Tôi tò mò tình hình hiện tại tiến triển ra sao. Lần cuối tôi kiểm tra, nhà phát triển chính đã quyết định không hành động trái với cuộc bỏ phiếu phổ biến trên GitHub
    • Ngoài ra, dự án Fusion OS và tài liệu của nó rất tuyệt vời