4 điểm bởi GN⁺ 2025-04-15 | 2 bình luận | Chia sẻ qua WhatsApp
  • JSLinux là danh sách các máy ảo có thể chạy Linux và các hệ điều hành khác ngay trong trình duyệt, đồng thời có thể xem cả CPU, giao diện người dùng, VFsync và tệp cấu hình
  • Các mục chạy được chia theo x86_64, x86, riscv64, bao gồm Alpine Linux, Buildroot, Fedora 33, Windows 2000 và FreeDOS
  • Bản console Alpine Linux 3.23.2 x86_64 bao gồm hỗ trợ AVX-512APX, còn Alpine Linux 3.12.0 x86 có phiên bản console và X Window riêng biệt
  • Môi trường đồ họa hoặc X Window được cung cấp cho Windows 2000, FreeDOS, Alpine Linux, Buildroot và Fedora 33; một số menu X Window được mở bằng nút chuột phải
  • Mục Fedora 33 riscv64 có cảnh báo thời gian khởi động lâu hơn, còn Windows 2000 có liên kết tới tuyên bố miễn trừ trách nhiệm riêng và không có quyền truy cập VFsync

Danh sách VM có thể chạy trong trình duyệt

  • JSLinux cung cấp danh sách các hệ thống mô phỏng có thể chạy Linux hoặc các hệ điều hành khác trong trình duyệt
  • Mỗi mục gồm CPU, hệ điều hành, giao diện người dùng, khả năng truy cập VFsync, liên kết khởi động, tệp cấu hình và ghi chú
  • Bảng cũng hiển thị quyền truy cập VFsync và liên kết cấu hình liên quan đến TEMU

Các mục chạy theo CPU và hệ điều hành

2 bình luận

 
GN⁺ 2025-04-15
Ý kiến trên Hacker News
  • Fabrice thật sự rất giỏi tạo ra phần mềm tự cung tự cấp, và nhiều khi thành quả của ông có sức sống riêng
    Một ví dụ ít được biết đến hơn là trình giả lập terminal của JSLinux đã được fork vài lần và nay được biết đến với tên xterm.js, trở thành trình giả lập terminal nhúng được trên web thuộc dòng chủ đạo
    Giờ tôi đang làm một người kế nhiệm thực sự cho JSLinux: biên dịch kernel và user space trực tiếp sang Wasm nên nhanh hơn nhiều, và tất nhiên dùng xterm.js cho phần giả lập terminal
    Nếu thích các bản demo đầy lỗi đến mức có lẽ chưa nên chia sẻ, bạn có thể xem https://linux.tombl.dev, nhưng hiện tại chỉ có shell busybox nên phải quen dùng echo * thay vì ls

    • Người ta hay nói Fabrice tạo ra các dự án phụ đáng để người khác bảo trì cả đời
      Tôi biết QEMU, ffmpeg, các công việc liên quan đến LTE và QuickJS, nhưng không biết xterm.js cũng bắt nguồn từ ông ấy
    • Chạy lệnh nào cũng hiện attempted to munmap và cảnh báo kernel như bên dưới
      Hiện stack trace kiểu WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000, Comm: sh Not tainted 6.1.132, rồi dẫn tới vmlinux-NLTKI6YG.wasmworker-MHWHWELT.js
    • Gợi lại kỷ niệm. Lâu rồi tôi không xem, thật vui khi thấy fork của fork từ 12 năm trước của mình vẫn còn sống khỏe
      Trông có vẻ phần lớn đã được viết lại, và có lẽ đã tốt hơn
      https://github.com/xtermjs/xterm.js
      https://github.com/chjj/term.js
    • Tuyệt. Nếu hiệu quả năng lượng tốt hơn JSLinux và chạy được trên iOS thì có thể trở thành lựa chọn thay thế tốt cho A-Shell hoặc iSH
      Tôi đã thử trên MacBook nhưng thao tác nhập từ bàn phím không được ghi nhận
    • Có lệnh nào chạy được không? ps, cat, vi, ed đều crash
      Tôi không rành phần nhúng busybox nên không biết phải làm gì
  • Fabrice thật đáng nể. Khối lượng những thứ người này đã làm ra thật sự khó tin
    Nếu tôi chỉ làm được một trong những thứ ông ấy đã tạo ra, chẳng hạn chỉ riêng ffmpeg, QEMU hoặc tinyc thôi, tôi đã khoe cả đời rồi; còn ông ấy thì cứ tiếp tục hack những thứ hay ho khác

    • Hay là cứ tìm ra ông ấy muốn gì rồi đưa cho ông ấy. Khi đó để đáp lại, có lẽ ông ấy sẽ viết lại cho đàng hoàng những thứ hỏng hóc mà chúng ta đang có
      Điện thoại, hệ điều hành, môi trường desktop, quốc gia, app store, v.v.
    • Tôi thích người này. QEMU của ông ấy được dùng rộng rãi đến mức một nửa việc phát triển Android trên toàn thế giới đã trở nên dễ dàng hơn nhờ ông ấy, và ảnh hưởng đó vẫn đang lớn hơn
    • LZEXE, thứ có thể quen thuộc với những ai từng dùng DOS, cũng do cùng người này viết
    • Tôi tò mò không biết ông ấy chọn thứ để làm như thế nào. Không rõ có phải chỉ đi theo hứng thú hay không
  • Không có nhiều máy ảo chạy trong trình duyệt
    https://copy.sh/v86/
    https://webvm.io/
    https://bellard.org/jslinux/
    https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce)
    https://www.pcjs.org/ hỗ trợ nhiều phần cứng và hệ điều hành (https://github.com/jeffpar/pcjs)
    Về phía Mac OS còn có https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo..., https://jamesfriend.com.au/pce-js/pce-js-apps/

  • Khi nhìn vào thái cực của những lập trình viên cực kỳ năng suất, nó tạo ra một sự tương phản thú vị với các giáo điều kiểu “hàm hay tệp tuyệt đối không được vượt quá x dòng”
    quickjs.c dài 50 nghìn dòng và cũng có những hàm dài hàng trăm dòng
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    Tất nhiên, tùy tình huống mà cách tiếp cận khác nhau mới là đúng

    • Câu trả lời đơn giản thôi. Bellard có thể nhớ toàn bộ ngữ cảnh 50 nghìn dòng, nhưng đa số thì không
      Tôi cũng có bộ nhớ làm việc khá lớn, nên mãi sau mới nhận ra giới hạn kích thước tệp/hàm của mình cao hơn người khác rất nhiều
      Những giáo điều như vậy là cần thiết khi nhiều người phải cùng đọc và ghi vào cùng một tệp
    • Tôi đang làm việc trên codebase đó, và chúng tôi đã fork nó thành QuickJS-ng
      Ban đầu khá choáng ngợp, nhưng nếu dùng đúng trình soạn thảo thì bất ngờ là khá dễ làm việc. Có điều nhiều trình soạn thảo bị ì ạch với những tệp lớn như thế này
      Tệp rất lớn, nhưng được sắp xếp theo ngữ nghĩa ở một mức độ nào đó, nên chẳng hạn khi thêm một phương thức iterator mới, mã liên quan nằm gần nhau nên dễ làm việc
    • Vì những người làm việc cùng không phải là Fabrice. Nói “đừng làm X bao giờ” dễ hơn giải thích khi nào phá vỡ quy tắc là an toàn
      Còn tùy ngôn ngữ sử dụng nữa. Ví dụ JVM có thể không inline những hàm có số lệnh bytecode vượt quá một ngưỡng nhất định
    • Một ví dụ hay là garbage collector của .NET là một tệp C++ đơn dài 54 nghìn dòng
    • Đôi khi một hàm dài làm tốt một việc còn hơn nhiều hàm bị liên kết chặt chẽ và khó suy luận
      Lập trình viên áp dụng giáo điều một cách máy móc có thể gây hại
  • Kohei Tokunaga đang tạo ra thế hệ tiếp theo của dòng này
    https://ktock.github.io/container2wasm-demo/
    Nó dùng networking trong trình duyệt dựa trên fetch của Emscripten hoặc proxy WebSocket tương thích POSIX
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • Sau 20 năm tôi đã thử chạm lại vào Windows 2000. Tôi biết hoài niệm có thể làm mờ mắt, nhưng với UI đó thì tôi muốn quay lại ngay
    Thanh tác vụ gọn gàng, menu Start đơn giản không đầy những đề xuất và quảng cáo vô dụng thật sự rất dễ chịu

    • Tôi hoàn toàn không muốn dùng lại Windows 2000, nhưng thật thú vị khi thấy một phiên bản Windows có UI nhất quán
      Giờ thì bốn thế hệ GUI toolkit bị trộn lẫn, UI này một kiểu, UI kia lại kiểu khác, thành một mớ hổ lốn
    • Bài liên quan:
      “Windows 2000 Server named peak Microsoft. Readers say it's all been downhill since Clippy”
      https://www.theregister.com/2025/04/11/windows_2000_best_mic...
      https://news.ycombinator.com/item?id=43653421
    • Tôi đã thử cài Visual Basic 6 lên đó, nhưng Firefox đã cài sẵn gặp lỗi SSL, nên còn không vượt qua được bước tải ISO. Tiếc thật
    • Đây chính là lý do tôi dùng Xfce ít nhất từ năm 2010. Nó vẫn hoạt động theo cùng một cách
      Tôi cảm thấy mã nguồn mở về bản chất có lợi ích phù hợp với người dùng và có cơ chế ngăn enshittification
  • Có ai biết Fabrice Bellard kiếm tiền bằng cách nào không? Sản phẩm mã nguồn mở của người này thật sự đáng kinh ngạc
    Cũng khó so sánh liệu có ai cùng tầm hay không. Tôi nghĩ VMware hẳn đã từng muốn tuyển ông ấy, hoặc Google muốn đưa ông ấy về mảng codec video, V8, rendering Chromium, ffmpeg

  • Có vẻ ở Pháp xuất hiện khá nhiều nghệ sĩ phần mềm hoặc cá nhân đóng góp rất tài năng, sáng tạo và năng suất
    Tôi không biết đó là yếu tố kiểu Pháp, do hệ thống giáo dục như Écoles, hay vì lý do nào khác, nhưng rất đáng chú ý

    • Bootlin là công ty Pháp và là một nhà đóng góp mã nguồn mở lớn. Tôi đã làm việc cùng và khuyên dùng
      Công nghệ Pháp từng có tiếng xấu kiểu chất lượng xe Renault cũ, nhưng thực tế tôi không thấy vậy. Với Renault và Citroen tôi còn khá ấn tượng
      Ngược lại, làm việc với các kỹ sư phần mềm Đức thì khó khăn, vì thái độ “không phải do chúng ta làm ra thì không được” rất mạnh. Dù sao đó chỉ là sự khái quát hóa của tôi
      Vấn đề của hệ sinh thái công nghệ châu Âu rất đơn giản. Chúng tôi kém bán hàng và tối ưu cho hiệu quả tài nguyên. “Mức lương cạnh tranh” thường có nghĩa là trong mọi trường hợp cũng không trả cao hơn giá thị trường
      Mỹ tối ưu cho tăng trưởng, và sẵn sàng chấp nhận lương cao hơn để khấu hao chi phí bằng tăng trưởng
      Cuối cùng, ở nơi tôi đến, nhiều người chế giễu rằng nước Pháp đã bị nhập cư làm hỏng. Có thể có góc nhìn như vậy, nhưng cũng đúng là Pháp đã thu hút dòng chảy chất xám từ các thuộc địa và có được rất nhiều người cực kỳ có năng lực, năng suất
      Giáo sư hướng dẫn thạc sĩ của tôi cũng đến từ Côte d’Ivoire, và ở Bootlin tôi cũng đã làm việc với những kỹ sư hàng đầu có tên không thuộc khối Pháp ngữ
    • Có thể nêu tên những người có thể so sánh với Fabrice Bellard không?
  • Tại https://barebox.org/webdemo, họ đang dùng JSLinux để cho người dùng tiềm năng thấy sự tiện lợi của shell bootloader mà không cần flash lên phần cứng thật
    Rất vui khi thấy nhiều fork được nhắc đến ở đây; chắc phải kiểm tra xem bên nào chạy bareDOOM tốt nhất, và liệu có bên nào âm thanh hoạt động không

  • JSLinux đã truyền cảm hứng khi tạo ra Endor(https://endor.dev), và công việc QEMU của ông ấy cũng đang trở thành nền tảng cho nhiều dự án trình duyệt liên quan đến Wasm

    • Có tài liệu chi tiết công khai nào về cách triển khai máy ảo, container và cách tiếp cận Wasm native không?
 
ndrgrd 2025-04-16

Có vẻ như cấu hình CORS bị sai, nên phải vào https://bellard.org/jslinux/ thay vì https://www.bellard.org/jslinux/ trong liên kết thì mới hoạt động bình thường.