Có phải là một ý tưởng tốt để tạo ra một hệ điều hành được viết bằng ngôn ngữ kịch bản không?
Ví dụ, làm thế nào về việc tạo một hệ điều hành bằng Python?
Có phải là một ý tưởng tốt để tạo ra một hệ điều hành được viết bằng ngôn ngữ kịch bản không?
Ví dụ, làm thế nào về việc tạo một hệ điều hành bằng Python?
Câu trả lời:
Đó không chỉ là một ý tưởng tồi. Đó là khá nhiều không thể.
Làm thế nào để bạn thực hiện IO với một ngôn ngữ mà các cơ sở IO phụ thuộc hoàn toàn vào hệ điều hành máy chủ?
Làm thế nào bạn có thể thực hiện lập kế hoạch nguyên thủy mà không có bất kỳ nguyên thủy ngắt hữu ích?
Làm thế nào bạn có thể viết trình điều khiển thiết bị bằng ngôn ngữ không thể giải quyết một byte cụ thể?
Chỉnh sửa: - Chỉ để làm rõ một chút. Bạn không thể viết HĐH "thực" tương tác trực tiếp với máy bằng ngôn ngữ "scripting". Tuy nhiên, bạn có thể viết một "máy ảo" có thể sử dụng được nếu ngôn ngữ ghi chép đủ linh hoạt. Đối với việc triển khai thể hiện của Donald Knuths MIX (s) lý thuyết máy và một Sinclair ZX80 giả lập tốt, đủ để chạy pacman đã được viết bằng JavaScript.
Trước khi bạn quyết định làm thế nào , bạn cần chỉ định những gì . HĐH mới này sẽ làm gì? Nó sẽ chạy ở đâu? Tại sao bất cứ ai sẽ bận tâm để sử dụng nó? vv Điều tiếp theo là xác định phẩm chất của HĐH. Tốc độ, bảo mật, phân luồng, quản lý bộ nhớ, đa tác vụ, định dạng tệp, hỗ trợ ngôn ngữ, bộ xử lý được hỗ trợ, v.v.
Từ việc trả lời các câu hỏi trên và xem xét nhiều phẩm chất của HĐH, bạn có thể xác định nên sử dụng công cụ nào để đạt được mục tiêu của mình.
Bây giờ, bạn có thực sự muốn làm tất cả điều đó?
Tôi giả sử rằng Python đã được sử dụng một phần trong việc viết các phần của Linux - Xem: Ngôn ngữ nào là Windows, Mac OS X và Linux được viết bằng ngôn ngữ nào?
Tôi biết đây không phải là một câu trả lời thích hợp, nhưng dự án này cho thấy một hệ điều hành đang hoạt động với một kernel được viết bằng JavaScript:
https://github.com/charliesome/jsos/
Các trình điều khiển cho VGA và bàn phím cũng được viết bằng JavaScript bằng cách sử dụng các ngắt. Tôi đã phát triển một triển khai OpenGL 1.1 cho chính nó một thời gian trước đây và nó hoạt động khá độc đáo.
Không, nó thậm chí không thể (độc quyền)
Tại sao? Hãy xem xét những điều sau đây:
Một ngôn ngữ kịch bản là gì?
Hãy đưa ra hai giả định sau đây về định nghĩa của "ngôn ngữ kịch bản":
Hệ thống vận hành là gì?
Giả sử rằng mục tiêu chính của Hệ điều hành có thể được đơn giản hóa như sau:
Theo những định nghĩa này, về mặt logic, ngôn ngữ script không thể là một hệ điều hành. Tại sao?
Có thể viết một lượng mã tối thiểu bằng ngôn ngữ "thô" như C, nhưng theo định nghĩa, ngôn ngữ được biên dịch thô sẽ luôn cần thiết. Một khi điều này được thực hiện, các phần khác của HĐH có thể được thực hiện bằng ngôn ngữ kịch bản, nhưng ngôn ngữ kịch bản không bao giờ có thể được sử dụng một mình.
Tôi phải duy trì rằng về nguyên tắc, có thể viết một hệ điều hành bằng python. Bạn sẽ phải tạo một trình biên dịch ngôn ngữ từ cấp thấp đến thấp, cũng như thêm các mô-đun vào thư viện tiêu chuẩn cung cấp quyền truy cập vào các phần cấp thấp của máy tính của bạn. Nhưng nếu hai mảnh đó được đặt đúng chỗ thì có thể.
Tuy nhiên,