5 điểm bởi GN⁺ 2023-08-27 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

 
GN⁺ 2023-08-27
Ý 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 :)

  • 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

    • Nếu ai đó thêm hỗ trợ bàn phím ảo để chơi Tetris trong đó trên điện thoại, thì ít nhất cũng có thể loại bỏ hết mọi lý do hợp lý