cách để tạo hệ điều hành của riêng tôi bằng cách sử dụng C++. Tôi đã được tạo bộ nạp khởi động (sử dụng nasm, qemu) nhưng tôi chưa biết thêm một hạt nhân vào bộ nạp khởi động này.Viết hệ điều hành trong C++
Trả lời
Đây là ton of information mà cuối cùng bạn sẽ cần, Câu hỏi thường gặp về lập trình hệ điều hành đáng sợ.
Bạn có thể cân nhắc xem MINIX là hệ điều hành nhỏ cho hệ thống x86. Nó ban đầu được thiết kế như một dự án giảng dạy và đã phát triển thành một cái gì đó được dự định là hữu ích trong thế giới thực.
bạn có thể xem mã nguồn của minix 3. nó là một os rất đơn giản, được tạo ra với mục đích hiểu cách hoạt động của hệ điều hành.
bạn cũng có thể nghiên cứu tất cả sách tanenbaum về os. tất cả chúng đều rất hoàn chỉnh và tôi nhớ rằng một cuốn sách có nguồn minix hoàn chỉnh kèm theo và đã nhận xét
Ngoài ra, thêm This book bởi Tanenbaum, nơi ông giải thích chi tiết triển khai minix.
+1: Tôi có cuốn sách đó và sẽ đề xuất tương tự. Ngay cả khi bạn không kết thúc bằng cách sử dụng các khái niệm tương tự như Tanenbaum, ít nhất bạn sẽ biết những khái niệm đó là gì! –
cuốn sách tuyệt vời ... thú vị đọc;) – t0mm13b
Tôi không quen với chi tiết, nhưng theo kiến thức của tôi BeOS được viết bằng C++. Nguồn phải là freeley có sẵn cũng như các tài liệu hướng dẫn.
Đối với hạt nhân bạn có thể xem http://newos.org/ (viết một cựu nhân viên Be * và * đang được sử dụng bởi http://haiku-os.org/ cho Bản sao của họ). –
Nếu bạn gặp bất kỳ sự cố nào, hãy thử http://forums.osdever.net của chúng tôi – Brenden
Hãy cẩn thận, C++ là khá nặng đối với hạt nhân hệ điều hành.
- Có các dịch vụ như trường hợp ngoại lệ mà bạn sẽ phải hỗ trợ với thư viện thời gian chạy.
- Nó sẽ không cảm thấy như C++ cho đến khi bạn thêm một đống.
- Hạt nhân rất nhạy cảm với nơi các đối tượng được phân bổ; mô hình một heap thường được sử dụng trong C++ không thực sự phù hợp.
- API ghép nối với cấu trúc dữ liệu là một ý tưởng tồi. BeOS có vấn đề với điều này. Bạn cần phải ẩn kích thước của các cấu trúc bên trong của bạn từ người dùng, và điều đó có nghĩa là nhảy qua các vòng (Pimpl, hàm tạo riêng, các hàm ảo) khi các API là các hàm thành viên.
Có vẻ như bạn đã đi xa hơn hầu hết, vì vậy hãy đặt câu hỏi và có thể bạn sẽ kết thúc ở đâu đó tốt đẹp! : vD
Một hệ điều hành có thể sử dụng có thể được phát triển ở đầu L4, ngay cả bởi một sinh viên trong một học kỳ cùng với các khóa học khác (nhưng với tất cả các vấn đề trình điều khiển đã được giải quyết). Nếu tìm thấy đây là một cuộc phiêu lưu tuyệt vời, và L4 microkernel cũng là loại tiên tiến.
- 1. Viết một hệ điều hành với UEFI
- 2. Hệ điều hành trong Ada
- 3. Tại sao một số phần của hệ điều hành phải được viết trong assembly?
- 4. jQuery - phát hiện hệ điều hành và phiên bản hệ điều hành
- 5. Xác định hệ điều hành trong .vimrc
- 6. Phát hiện hệ điều hành trong Clojure
- 7. Phát hiện hệ điều hành trong Ruby
- 8. malloc trong hệ thống nhúng không có hệ điều hành
- 9. Phát hiện hệ điều hành
- 10. Xác định hệ điều hành trong thời gian chạy
- 11. Phát triển một hệ điều hành
- 12. Hệ điều hành Android và postgreSQL
- 13. điều hành sizeof() trong C
- 14. Javascript viết tắt ternary nhà điều hành
- 15. C# Phạm vi điều hành
- 16. Python/Ruby là hệ điều hành di động
- 17. Dịch vụ nền hệ điều hành Firefox
- 18. Có thể viết hệ điều hành cho điện thoại di động không?
- 19. WeakReferences không được giải phóng trong hệ điều hành nhúng
- 20. C#: Điều Hành Conditional
- 21. Sách Kiến trúc Hệ điều hành Windows
- 22. một hệ điều hành tickless là gì?
- 23. Hệ điều hành biên dịch thời gian
- 24. Sách Android trên hệ điều hành
- 25. C# mô đun điều hành
- 26. Viết ứng dụng trong C cho vi điều khiển
- 27. Python trên Hệ điều hành thời gian thực (RTOS)
- 28. Câu hỏi khởi động hệ điều hành cơ bản
- 29. ++ i chênh lệch điều hành trong C# và C++
- 30. Ai thực hiện hệ điều hành giao tiếp trong java?
Tôi nghĩ đây thực sự là một câu hỏi hay, mang tính xây dựng. – Renra
Có lẽ nó rộng với bản chất của nó nhưng nó chắc chắn đã cho tôi gợi ý tốt để khám phá – Renra
Không có câu hỏi câm, chỉ có người ngu ngốc. – SasQ