Đối với dự án năm cuối cùng của tôi trong ảnh ghép, tôi đã phát triển một hệ điều hành x86 nhỏ với trình quản lý bộ nhớ ảo, hệ thống tệp ảo và đa nhiệm hoàn toàn ưu tiên. Tôi đã làm cho nó mã nguồn mở và mã được rất nhiều nhận xét, kiểm tra trang giả mạo nguồn của nó tại địa chỉ:
https://github.com/stephenfewer/NoNameOS
Từ kinh nghiệm của tôi, tôi có thể giới thiệu như sau:
Bạn sẽ nhu cầu ngôn ngữ lắp ráp x86 cho các phần khác nhau, điều này không thể tránh khỏi, nhưng có thể được giữ ở mức tối thiểu. Khá nhanh, bạn sẽ chạy mã C, đây là một lựa chọn đã được chứng minh cho sự phát triển hệ điều hành. Một khi bạn có một số loại quản lý bộ nhớ có sẵn, bạn có thể đi vào C++ nếu bạn thích (bạn cần một số loại quản lý bộ nhớ cho những thứ như mới và xóa).
Bất kể bạn chọn ngôn ngữ nào, bạn vẫn cần lắp ráp & C để mang hệ thống khởi động từ đó BIOS để bạn vào bất kỳ biểu mẫu có thể sử dụng nào.
Cuối cùng, ngôn ngữ chính bạn chọn sẽ tùy thuộc vào loại hệ điều hành bạn muốn phát triển.
Môi trường phát triển của tôi là cổng Windows của các công cụ phát triển GNU DJGPP cùng với bộ hợp nhất NASM. Đối với IDE của tôi, tôi đã sử dụng Eclipse của IBM với plugin CDT, cung cấp môi trường phát triển C/C++ trong Eclipse.
Để thử nghiệm, tôi khuyên bạn nên BOCHS, trình giả lập PC x86 nguồn mở. Nó cho phép bạn khởi động hệ điều hành của bạn một cách nhanh chóng, rất tuyệt vời để kiểm tra và có thể được tích hợp vào nhật thực để bạn có thể xây dựng và chạy hệ điều hành của bạn chỉ với một nút bấm. Tôi cũng khuyên bạn nên sử dụng cả VMWare và PC vật lý đôi khi bạn có thể nhận một số lỗi nhỏ như vậy.
P.S. Phát triển hệ điều hành thực sự thú vị nhưng rất chuyên sâu, tôi đã lấy phần tốt nhất trong 12 tháng. Lời khuyên của tôi là lên kế hoạch tốt và thiết kế của bạn là chìa khóa! thưởng thức :)
Điều gì sẽ là ngôn ngữ tốt nhất để sử dụng không? trong kiến trúc X86, ngôn ngữ lắp ráp x86 và C được chọn tốt nhất! – AminM
Bỏ phiếu để đóng quá rộng. Xem thêm: http://stackoverflow.com/questions/254149/how-do-you-write-a-basic-operating-system?rq=1u –