- OS.js là một nền tảng JavaScript mã nguồn mở để tạo môi trường kiểu desktop bên trong trình duyệt
- Có tích hợp trình quản lý cửa sổ, cho phép tổ chức ứng dụng web theo cách giống như desktop
- Đồng thời cung cấp API ứng dụng và bộ công cụ GUI cho việc phát triển ứng dụng
- Các tính năng liên quan đến tệp được thiết kế để xử lý thông qua lớp trừu tượng hóa hệ thống tệp
- Có thể dùng như điểm khởi đầu để triển khai web desktop bằng cách gom quản lý cửa sổ, phát triển ứng dụng, GUI và xử lý tệp trên một nền tảng
Các thành phần web desktop mà OS.js cung cấp
- OS.js là nền tảng web desktop dựa trên JavaScript mã nguồn mở
-
Giao diện desktop
- Có tích hợp trình quản lý cửa sổ, hỗ trợ xây dựng giao diện người dùng kiểu desktop
-
Phát triển ứng dụng
- Cung cấp API ứng dụng và bộ công cụ GUI, đáp ứng các thành phần cơ bản cần thiết để phát triển ứng dụng cho web desktop
-
Xử lý tệp
- Có thể xử lý các chức năng liên quan đến tệp thông qua lớp trừu tượng hóa hệ thống tệp
1 bình luận
Ý kiến trên Hacker News
Nói ngoài lề, trong số các ý tưởng desktop trên web thì đến giờ tôi thích https://windows93.net/ nhất
Windows 96 cũng khá ổn
https://windows96.net/
Hệ điều hành Internet là một chủ đề ngách mà tôi thấy thú vị, nên tôi đã lập một danh sách trên website. Sắp tới tôi cũng sẽ thêm OS.js vào
Nếu muốn xem thì ở đây:
https://www.whoisthisjoker.com/jokerlinks/virtualoperatingsy...
[Sửa] Có vẻ Hacker News không hỗ trợ Markdown nên tôi chỉnh lại cho dễ đọc
Thật mỉa mai khi “nhật ký khởi động” hiện dòng Safari is teh new Internet Explorer. Safari là một trong hai trụ cột cuối cùng đối trọng với sự độc chiếm hoàn toàn của Chrome, trong khi Google đang cố nhồi nhét WEI vào
Web mở đang hấp hối, và tôi nghĩ những thông điệp như vậy đang góp phần vào cái chết đó
Theo hướng tương tự thì Windows RG (really good edition) là hay nhất: https://www.newgrounds.com/portal/view/27549
Tốt nhất đừng bấm vào biểu tượng hamster đó khi âm lượng loa đang để 100% :S
Buồn cười thật, nhất là với ai từng dùng Windows 95 thì chắc còn thú vị hơn
Gần đây thấy nhiều thứ kiểu này xuất hiện trên HN, nên tôi đã viết một bài blog [1] về hiện tượng desktop trên web đang được ưa chuộng trở lại. OS.js là một trong những dự án đời đầu mà tôi đã theo dõi từ vài năm trước, và nó được thiết kế cũng như viết tài liệu rất tốt
Giao diện luôn khiến tôi nhớ đến các bản phân phối dùng GNOME 2 hồi giữa những năm 2000; tôi thích điểm đó vì nó khác với phần lớn các desktop web hoài cổ vốn dùng theme Windows 9x
[1] https://system31.simone.computer/blog/desktops-zip
EyeOS đã làm kiểu này từ khoảng thời điểm giao giữa hai thiên niên kỷ rồi:
https://en.wikipedia.org/wiki/EyeOS
Bản phát hành đầu tiên của OS.js là vào khoảng năm 2015, muộn hơn hơn 10 năm
Buồn cười là thứ này nhanh và phản hồi tốt hơn trình quản lý cửa sổ desktop Windows thật của tôi. Đặc biệt là ở những chỗ như tốc độ mở ứng dụng
Thật lạ là Windows 11 lại chậm như vậy ngay cả trên phần cứng hiện đại. Kể cả với CPU đời mới và 16GB RAM, việc tải thứ gì đó vẫn mất khá lâu, và so với một chiếc MacBook Air cùng tầm giá thì rất ì ạch
Khó mà tưởng tượng mức chênh lệch này là do phần cứng. M2 đúng là nhanh, nhưng Intel thế hệ 12 cũng không chậm hơn nhiều đến thế, chỉ là ăn điện hơn thôi
Vậy thì nghĩa là vấn đề nằm ở phần mềm. Nghĩ đến việc họ đã có nhân dòng NT tốt đến thế nào thì thật buồn, rồi lại xây lên trên đó một hệ điều hành ngày càng tệ hơn. Việc thị phần desktop từ gần như 100% rơi xuống còn khoảng 60% hiện nay là do tự họ gây ra, và có vẻ chỉ còn là vấn đề thời gian trước khi đi theo con đường của AOL hay Yahoo
Để kiểm chứng câu này, tôi thử kéo trình duyệt Brave, và cả PC bị đơ 2 giây trên con 5900X 12 nhân/24 luồng
Có vẻ các khối Tetris không được căn theo lưới pixel của canvas, nên tạo ra khử răng cưa không cần thiết. Vì vậy viền khối cứ trông mờ mờ
Để sửa, có thể thêm một ứng dụng “khăn lau” cho người dùng kéo thả lên canvas Tetris, làm các khối dịch ngang 0,5 pixel
Tốt hơn nữa là chỉ dịch những khối chồng lên khăn lau :)
Trước lúc đó thì có thể dùng JavaScript để tự động tính offset đúng
Tôi cứ tưởng toàn bộ sẽ được render bằng canvas, nhưng hóa ra không phải. Nó dùng HTML, và chỉ dùng canvas ở những chỗ như Paint
Mọi người đánh giá thấp những thứ hay ho mà CSS cung cấp khi xây UI
Nếu làm tất cả bằng canvas, bạn phải tự triển khai lại những thứ như flexbox để căn giữa, căn chỉnh, co giãn và tạo animation cho chữ của icon, hộp, nút, v.v.
Đã có sẵn một layout engine được triển khai và tối ưu hóa cao trên hầu như mọi nền tảng rồi, vậy cứ ở lại với HTML không tốt hơn sao?
Thực tế chỉ HTML thôi cũng làm được hết. Môi trường desktop của tôi dùng HTML ngữ nghĩa khi có thể, và dùng CSS hiện đại như grid cho lưới icon
Tuy vậy một ngày nào đó tôi cũng đang cân nhắc viết lại hoàn toàn bằng WebAssembly với toàn bộ là canvas. Như vậy sẽ dễ port sang các nền tảng khác hơn nhiều, và có lẽ cũng tăng khả năng một ngày nào đó thoát khỏi trình duyệt
Đó cũng là phần đầu tiên tôi kiểm tra. Thấy cả thanh trượt nhập màu và input dạng range đều là HTML thì khá thích
Tôi từng làm một ý tưởng tương tự về truy cập Internet riêng tư vào hệ thống tệp. Nó ở đây: https://github.com/prettydiff/share-file-systems
Có thể xem demo quản lý cửa sổ và trạng thái trên trang cá nhân của tôi: https://prettydiff.com
Tức là chúng ta đã tạo thêm một hệ điều hành (compiler) bên trên Windows, vốn là hệ điều hành của chúng ta, bên trên trình duyệt web, vốn là hệ điều hành của chúng ta, bên trên OS.js
Không hiểu sao tôi lại muốn tạo hoặc dùng thử thứ kiểu này, nhưng đồng thời không nghĩ ra trường hợp sử dụng thực tế nào
Hãy nghĩ theo kiểu mua laptop mới mà không cần cài gì cả. Tất cả chương trình, tệp và thiết lập đều ở trên cloud, và chương trình có thể mở tệp trực tiếp từ kho lưu trữ cloud mà không cần tải xuống trước. Vì vậy không cần lưu tệp và tài liệu của người dùng trên thiết bị
Nếu thiết bị chỉ chạy một desktop như vậy, thì kiểu hệ điều hành Internet này có thể chạy tốt nhất trên thiết bị kiểu Chromebook chỉ có dung lượng tối thiểu cho dữ liệu hệ thống. Có thể khóa nó để chỉ chạy desktop Internet, lưu toàn bộ cấu hình trên cloud để khi đăng nhập là tự cấu hình. Khi đó chỉ cần có phần cứng là dùng được ngay, không phải đụng đến thiết lập, cài đặt hay driver
Nó sẽ không phù hợp với mọi người dùng và mọi tình huống, nhưng trong một số kịch bản thì có thể rất hữu ích
Trường hợp sử dụng là quay lại với terminal ngu. Nhiều doanh nghiệp vốn đã dùng remote desktop và VPN nhiều nhất có thể, nhưng cũng sẽ có nhiều doanh nghiệp muốn cấp thiết bị cho nhân viên và chạy toàn bộ hệ điều hành từ xa, biến thiết bị đó về cơ bản thành terminal
Khi đó 100% dữ liệu do nhân viên tạo ra vẫn nằm trong máy chủ và mạng của tổ chức. Điều đó không có nghĩa là trải nghiệm nhân viên sẽ tốt, nhưng rõ ràng là một trường hợp sử dụng
Làm tôi nhớ đến Buddy Pond https://buddypond.com/
Trên điện thoại thì không chơi được Tetris vì phải nhấn phím cách để bắt đầu
Một mặt, tôi nghĩ những thứ này rất ngầu. Vì sao họ làm? Chắc là vì họ có thể làm được
Mặt khác, tôi vẫn thắc mắc rốt cuộc vì sao lại làm