JSLinux
(bellard.org)- 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-512 và APX, 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
-
x86_64
- Alpine Linux 3.23.2 Console
- Có thể truy cập VFsync
- Tệp cấu hình: alpine-x86_64.cfg
- Bao gồm hỗ trợ AVX-512 và APX
- Alpine Linux 3.23.2 Console
-
x86
- Alpine Linux 3.12.0 Console
- Có thể truy cập VFsync
- Tệp cấu hình: alpine-x86.cfg
- Alpine Linux 3.12.0 X Window
- Có thể truy cập VFsync
- Tệp cấu hình: alpine-x86-xwin.cfg
- Dùng nút chuột phải cho menu
- Windows 2000 Graphical
- Không có quyền truy cập VFsync
- Tệp cấu hình: win2k.cfg
- Có liên kết tới tuyên bố miễn trừ trách nhiệm
- FreeDOS VGA Text
- Không có quyền truy cập VFsync
- Tệp cấu hình: freedos.cfg
- Alpine Linux 3.12.0 Console
-
riscv64
- Buildroot Linux Console
- Có thể truy cập VFsync
- Tệp cấu hình: buildroot-riscv64.cfg
- Buildroot Linux X Window
- Có thể truy cập VFsync
- Tệp cấu hình: buildroot-riscv64-xwin.cfg
- Dùng nút chuột phải cho menu
- Fedora 33 Linux Console
- Có thể truy cập VFsync
- Tệp cấu hình: fedora33-riscv.cfg
- Có cảnh báo thời gian khởi động lâu hơn
- Fedora 33 Linux X Window
- Có thể truy cập VFsync
- Tệp cấu hình: fedora33-riscv-xwin.cfg
- Có cảnh báo thời gian khởi động lâu hơn và dùng nút chuột phải cho menu
- Buildroot Linux Console
2 bình luận
Ý 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ìlsTô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
attempted to munmapvà cảnh báo kernel như bên dướiHiệ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ớivmlinux-NLTKI6YG.wasmvàworker-MHWHWELT.jsTrô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
Tôi đã thử trên MacBook nhưng thao tác nhập từ bàn phím không được ghi nhận
ps,cat,vi,edđều crashTô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
Điện thoại, hệ điều hành, môi trường desktop, quốc gia, app store, v.v.
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/
https://amiga.oszx.co/
https://www.file-hunter.com/AMIGA/
https://www.file-hunter.com/MSX/ là MSX thông qua WebMSX
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.cdài 50 nghìn dòng và cũng có những hàm dài hàng trăm dònghttps://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
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
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
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
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
fetchcủa Emscripten hoặc proxy WebSocket tương thích POSIXhttps://ktock.github.io/container2wasm-demo/amd64-debian-was...
https://github.com/container2wasm/container2wasm?tab=readme-...
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
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
“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 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ú ý
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ữ
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ó 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.