Một câu trả lời cuối cho câu hỏi này, nhưng tôi có thể thêm những điểm sau đây nếu bạn chưa phát hiện ra chúng trong thời gian trung bình:
Có lẽ giải thích những gì EFI có nghĩa là để phát triển hệ điều hành
Thực ra, không nhiều lắm. Vâng có lẽ một chút. Được rồi, chúng ta hãy giải thích. UEFI cung cấp môi trường phần mềm cho giai đoạn tiền khởi động. Nó cũng cung cấp một số dịch vụ thời gian chạy cho hệ điều hành, tuy nhiên, hệ điều hành không phải là phần mềm UEFI, cuối cùng sẽ thúc đẩy hệ thống - các dịch vụ này cho phép bạn thực hiện các hoạt động liên quan đến cấu hình khởi động khác nhau - example. Mặt khác là nếu bạn chuẩn bị sử dụng bộ nạp khởi động phù hợp để nói multiboot 2 bạn không thực sự cần biết bất cứ điều gì về UEFI - bộ tải khởi động sẽ tải bạn theo thông số kỹ thuật multiboot, sau đó gọi ExitBootServices()
trong đó Các thuật ngữ UEFI phá hủy môi trường phần vững.
Có thể tạo hạt nhân Linux có nhánh EFI và do đó khởi động "không có" trình tải khởi động - this blog shows you how. Bạn có thể làm điều này cho hạt nhân của bạn - bạn chỉ cần tạo ra một hạt nhân PE/COFF khớp với bit phần vững.
và có thể cho tôi biết những gì thử nghiệm môi trường (tốt nhất là ảo) Tôi có thể chúng tôi
Nếu bạn có thể đủ khả năng VMWare Workstation, điều này sẽ giúp bạn ồ ạt. Cũng như có chứa một cuống gdb như vậy mà bạn có thể gỡ lỗi bất cứ phần nào của bất cứ điều gì, bạn cũng có thể chỉnh sửa các tập tin định nghĩa máy ảo (* .VMX) để chứa
firmware="efi"
và voila, VMWare sẽ khởi động một UEFI làm việc đầy đủ môi trường. Làm việc với Linux và Windows.
Bài đăng khác nhau trên internet đề cập đến các thiết lập QEMU và tất nhiên là VirtualBox. Tôi đã không bao giờ cá nhân thành công khởi động bất kỳ hệ thống hiện có trên nền tảng VirtualBox EFI, và tôi đã không cố gắng QEMU, mặc dù tôi tin rằng nó và giả lập khác nhau ra có lẽ làm việc.
Tôi cũng nên đầu tư thời gian vào lắp ráp ARM?
Điều đó tùy thuộc vào mục tiêu của bạn. Về vấn đề lắp ráp, tôi nghĩ bạn nên biết nó để viết một hệ điều hành. Tôi không nghĩ rằng nó quan trọng đối với nền tảng nào bạn viết - trên thực tế, tôi nghĩ viết cho nhiều người sẽ làm cho bạn đánh giá cao hơn về sự khác biệt giữa các máy.
Nói chung, tuy nhiên, tôi sẽ không cố gắng viết toàn bộ hệ điều hành trong hội đồng. Lý do nguyên tắc cho việc này là thời gian - tôi cho rằng đây là một dự án sở thích, vì vậy hãy nhận một số phần thưởng cho nỗ lực mở rộng của bạn sẽ vui hơn nhiều so với việc gỡ lỗi lắp ráp, đặc biệt là phần mềm mà bạn không quen thuộc. Bạn luôn có thể, khi bạn trở nên thông thạo hơn, hãy thay thế các bit lựa chọn bằng bộ lắp ráp, đặc biệt khi bạn có đủ phần còn lại của mã để kiểm tra nó.