23 điểm bởi kuroneko 2023-08-31 | 10 bình luận | Chia sẻ qua WhatsApp
  • Một nỗ lực tạo ra hệ điều hành non-Unix bằng Rust.
  • Hiện tại đã hỗ trợ xuất đồ họa, cấp phát động, thực thi đồng thời và bàn phím/chuột.
  • Điểm đặc biệt là được thiết kế để mọi ứng dụng đều có thể hoạt động như một hàm đơn lẻ.
    • Ứng dụng chạy bằng cách nhận Context chứa các chức năng của hệ điều hành, nên mọi tương tác đều diễn ra thông qua Context.
    • Nhờ vậy, việc sandboxing, gỡ lỗi, v.v. trở nên rất dễ; đồng thời việc duy trì bộ nhớ cũng được thực hiện qua Context, nên việc khởi động lại và chế độ ngủ cũng dễ dàng.
  • Thiết kế cho ứng dụng vẫn chưa hoàn thiện, nên vẫn còn các vấn đề như mọi ứng dụng đều có thể nhìn thấy bộ nhớ của nhau.
  • Các tính năng như lưu trữ bền vững, GPU và hỗ trợ mạng vẫn chưa được triển khai.

10 bình luận

 
honglu 2023-08-31

Ý tưởng này khá là sexy đấy. Cả thế giới đều là Rust.. hahaha

 
botplaysdice 2023-08-31

"Ứng dụng có thể nhìn thấy bộ nhớ của nhau"... :)

 
ahwjdekf 2023-08-31

Ừ, buồn cười thật đấy

 
xguru 2023-08-31

VirGL - GPU 3D ảo có thể dùng trong máy ảo QEMU

Có hỗ trợ VirGL nên có thể cài đặt và thử nghiệm trên QEMU.

 
kuroneko 2023-08-31

Tương lai nơi các chương trình Rust chạy trên một hệ điều hành Rust...? Cả thế giới đều là Rust nhỉ.

 
heycalmdown 2023-08-31

Nếu trong bình luận có thread HN thì sẽ tuyệt nếu neo tự động tóm tắt nhỉ haha, không có neo thì không sống nổi

 
kuroneko 2023-08-31

Từ lần sau tôi sẽ mang cả phần tóm tắt AI theo cùng. Có vẻ khá lạ là nó tóm tắt theo từng luận điểm do con người đưa ra?

  • danhau: đặt câu hỏi liệu cơ chế lập lịch hợp tác có thực sự sẽ thất bại như những gì người khác khẳng định hay không, đồng thời lo ngại về điểm là các ứng dụng vốn đã phải hợp tác. Anh ấy lo rằng tấn công từ chối dịch vụ có thể dễ dàng làm gián đoạn kiểu hệ thống này.
  • aseipp: đồng ý với danhau và nói rằng lập lịch hợp tác có thể khiến những lỗi đơn giản trở nên chí mạng với hệ thống, nên có thể gây vấn đề cho việc chạy chương trình tùy ý.
  • gnulinux: cho rằng không nhất thiết mọi thứ đều như vậy, và nói có thể có cách cho phép ứng dụng hợp tác mà vẫn ngăn hệ thống bị treo do vòng lặp vô hạn, chẳng hạn như timeout hoặc phát hiện vòng lặp.
  • DSMan195276: lập luận rằng không phải mọi thứ đều như vậy, vì chương trình hợp tác giả định rằng chúng sẽ không bị chiếm quyền; anh ấy nói rằng ngay cả khi chỉ giảm mức độ chiếm quyền thì cách viết chương trình cũng phải thay đổi.
  • getpokedagain: nói rằng không phải mọi hệ điều hành đều cần chạy các ứng dụng đa người dùng khó đoán trước, và trong những hệ thống bị giới hạn như thiết bị nhúng hoặc máy chơi game console, mô hình hợp tác có thể hoạt động.
  • Symmetry: nói rằng CPU hiện đại có nhiều luồng, nên nếu OS có thể tiếp tục vận hành trong khi phát hiện việc lạm dụng quá mức ở một số luồng thì mô hình của Fomos vẫn có thể hoạt động mà không bị đình trệ hoàn toàn.
  • cmrdporcupine: nhắc đến việc các trường hợp sử dụng chuyên biệt có lợi thế khi dùng mô hình gán công việc trực tiếp cho các lõi trống, nhưng độ phức tạp của xử lý đồng thời có thể không được đơn giản hóa nhiều so với việc triển khai time-slicing.
  • JoeAltmaier: nói rằng vòng lặp while(true) trên một luồng có thể không ảnh hưởng đến các luồng khác, nhưng việc hao pin/nhiệt độ tăng vẫn cho thấy đây là vấn đề tài nguyên cần được quản lý.
  • keyle: rất hào hứng với dự án này và cách tiếp cận tối giản, đồng thời mong chờ thêm nhiều phát triển hơn như hệ thống tệp đáp ứng yêu cầu truyền thống là chạy được DOOM.
  • mepian: làm rõ rằng các phương thức Smalltalk được gọi giữa các đối tượng chứ không phải là các hàm độc lập, và giải thích rằng một số OS Lisp thời kỳ đầu cũng dùng hàm trước khi có hệ thống đối tượng.
 
xguru 2023-08-31

May là bài này cũng đã được Neo xử lý rồi nhỉ haha

Fomos: Hệ điều hành thử nghiệm được xây dựng bằng Rust

 
xguru 2023-08-31

Vấn đề là tôi cũng đang xem chính cái link đó và tóm tắt cùng luôn hu hu

Mời xem và so sánh tận 3 phiên bản tóm tắt khác nhau nhé ha

  • Muốn thử tạo một OS non-Unix
  • Exo-Kernel khá thú vị nhưng phần lớn vẫn chỉ ở mức lý thuyết, nên điều này giúp hiểu được mẫu thiết kế đó
  • Các tính năng
    • Xuất đồ họa, cấp phát động, mọi ứng dụng chạy trong vòng lặp bất đồng bộ
    • Chuột/bàn phím Virtio (các driver cũng là tác vụ bất đồng bộ)
    • Lập lịch cộng tác (ứng dụng tự nguyện nhường quyền điều khiển nhiều nhất có thể)
    • Không có chuyển ngữ cảnh sau khi khởi động
    • Gần như hỗ trợ Virgl™
  • Điểm độc đáo
    • Chữ ký của ứng dụng pub extern "C" fn _start(ctx: &mut Context) -> i32
    • Ứng dụng không cần thư viện chuẩn, mọi chức năng của OS đều được truyền cho ứng dụng thông qua Context
    • Trên Fomos, ứng dụng chỉ là một function duy nhất. Đây mới là phần lớn nhất. File thực thi trên Unix/Windows OS phức tạp hơn rất nhiều so với một hàm.
 
roxie 2023-09-04

Không có nút thumbs down, vậy làm sao karma của bạn lại thành số âm được?