HN chia sẻ: Hệ điều hành hobby do chính tôi viết cuối cùng đã chạy được trên IBM ThinkPad cổ điển
(github.com/joexbayer)- RetrOS-32 là một dự án hệ điều hành hobby 32-bit dựa trên kiến trúc i386
- Cung cấp các tính năng đồ họa, đa nhiệm, mạng và đã được thử nghiệm trên phần cứng thực
- Được viết bằng C, C++, Assembly và hỗ trợ biên dịch đa nền tảng thông qua Docker
- Có thể thiết lập hệ thống người dùng, chạy giả lập QEMU và khởi động trên thiết bị thực
- Dự án có các tính năng kernel hoàn thiện tốt cùng network stack và đang tiếp tục được bổ sung tính năng
Giới thiệu dự án RetrOS-32bit
- Là dự án phát triển hệ điều hành hobby 32-bit dựa trên kiến trúc i386
- Hỗ trợ môi trường đồ họa, đa nhiệm và các tính năng mạng
- Ngày bắt đầu dự án: 12 tháng 5, 2022
Thông tin đăng nhập mặc định
- Tài khoản người dùng mặc định: system, admin, guest
- Mật khẩu của admin là
admin, guest không có mật khẩu - Có thể tạo người dùng mới bằng lệnh
admin create <tên_người_dùng> <mật_khẩu>
Ngôn ngữ và công cụ phát triển chính
- C, Assembly: kernel, tiện ích, hệ thống build
- C++: ứng dụng không gian người dùng
- Make: tự động hóa build
- Docker: cung cấp môi trường biên dịch đa nền tảng
Phần cứng đã được thử nghiệm
- Lenovo x240
- Asus Eee PC series
- Dell Optiplex 780
- Samsung N150 Plus
- Samsung NP-NC10
- IBM Thinkpad a21p
Bắt đầu (Getting Started)
Công cụ cần thiết (Prerequisites)
- Docker: biên dịch đa nền tảng
- QEMU: giả lập máy ảo
- Môi trường Linux/WSL:
build-essential,gcc-multilib,grub2,xorriso,xxd - MacOS: cần dùng Docker (hạn chế khi build x86 32-bit)
Cách cài đặt (Installation)
- Clone kho lưu trữ Git
- Khởi tạo Git submodule
- Tạo file image bằng các lệnh
make compile,make img - Chạy trình giả lập QEMU bằng lệnh
make qemu
Trên MacOS và Windows, nên dùng Docker
Cách sử dụng (Usage)
- Tải file
.imglên trang copy.sh v86 để chạy - Có thể chạy trực tiếp bằng QEMU:
make qemuhoặcqemu-system-i386 <tên_image> - Trên thiết bị thực, có thể ghi ISO dựa trên GRUB ra USB/CD để khởi động
Cấu trúc dự án (tóm tắt ngắn)
apps: ứng dụng không gian người dùngbin: file nhị phânboot: mã nguồn bootloaderdrivers: driver kernelfs: mã hệ thống tệpgraphics: mã xử lý đồ họainclude: file headerkernel: mã nguồn chính của kernellib: thư việnnet: mã mạngrootfs: hệ thống tệp gốctests: mã kiểm thửtools: công cụ build và tiện ích
Lộ trình phát triển (Roadmap)
- Đã hoàn thành bootloader tùy chỉnh và khởi động tương thích GRUB
- Đã triển khai lập lịch preemptive đa luồng và tách biệt không gian kernel/user
- Network stack: đã hoàn thành Ethernet, IP, ARP, UDP, TCP, DHCP, DNS
- Hệ thống đồ họa: đã triển khai window manager, widget, render framebuffer kép
- Hệ thống tệp: tương tự Ext2, hỗ trợ FAT16, có thể đọc/ghi
- Kế hoạch tiếp theo: bổ sung hỗ trợ web server, FTP, IRC, SSH, Telnet, HTTP, HTML
1 bình luận
Ý kiến Hacker News