Tôi đang viết một hệ điều hành nguyên khối (Đó là một trò đùa để gọi nó là một hệ điều hành nhưng nó có rất ít, các nhà chức năng cấp trường). Khi tôi nói nguyên khối, ý tôi là, nó được biên dịch như một đốm màu nhị phân đơn và không hỗ trợ cho hệ thống tệp. Hiện tại tôi chỉ có một không gian người dùng đơn giản thô sơ, không có gì ngoài vòng lặp vô hạn.Thoát khỏi ứng dụng trong hệ điều hành mà không có sự phân tách bộ nhớ
Tôi đang lên kế hoạch làm cho hệ điều hành của mình hữu ích hơn và muốn có thể viết các ứng dụng của người dùng có thể chấm dứt giống như các ứng dụng thông thường trên hệ điều hành toàn diện.
Tôi không có glibc hoặc tương đương. Thư viện hiện tại của tôi trong không gian người dùng là mã mà tôi đã viết. Bây giờ vấn đề của tôi là làm thế nào để thêm một khuôn khổ cho các ứng dụng không gian người dùng, mà sẽ cho phép họ chấm dứt trong một điểm sửa chữa.
Tôi biết cách chương trình được biên dịch trên hệ thống thông thường và điều gì sẽ xảy ra khi chương trình chấm dứt. Tuy nhiên, trong trường hợp của tôi, tôi không có sang trọng để biên dịch các chương trình chống lại các thư viện và nếu một chương trình chấm dứt thì con trỏ chỉ của tôi chỉ đi trên một đường vòng hoang dã.
Hiện tại tôi đang làm cho tất cả các ứng dụng thực hiện "cuộc gọi trở lại" và tôi đang điền sẵn ngăn ứng dụng với địa chỉ sửa (trong khi khởi chạy). Có cách nào tốt hơn để xử lý sự cố không?
Cùng với câu trả lời, tôi sẽ rất vui khi nhận được sự rõ ràng về một số khái niệm hệ điều hành.
Tôi đang làm việc trên nền tảng giả lập x86 và biên dịch nhị phân tĩnh của mình. (Tôi có hỗ trợ bộ nhớ ảo)
Tôi chắc chắn phiên bản đầu tiên của Linux cũng là một trò đùa. Đừng quá nhanh lòng tự ti :-) – paxdiablo
Bạn đang hỏi về một vấn đề cụ thể với chồng ứng dụng hay bạn đang hỏi về điều gì đó khác? – jxh
Tôi đang hỏi về các giải pháp chấm dứt ứng dụng trong một địa chỉ cố định. Hiện tại tôi đã thực hiện một tuyến đường mà mọi ứng dụng đều có địa chỉ trả về cố định mà tôi điền vào ngăn xếp. Bây giờ, tôi đang tìm kiếm một giải pháp tốt hơn. –