4 คะแนน โดย GN⁺ 2025-04-15 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • JSLinux เป็นรายการ VM ที่ให้ลองรัน Linux และระบบปฏิบัติการอื่น ๆ ได้ทันทีภายในเบราว์เซอร์ พร้อมดู CPU, UI, VFsync และไฟล์ตั้งค่าได้ในที่เดียว
  • รายการที่รันได้แบ่งเป็น x86_64, x86, riscv64 และมี Alpine Linux, Buildroot, Fedora 33, Windows 2000, FreeDOS รวมอยู่ด้วย
  • คอนโซล x86_64 Alpine Linux 3.23.2 รองรับ AVX-512 และ APX ส่วน x86 Alpine Linux 3.12.0 มีแยกทั้งเวอร์ชันคอนโซลและ X Window
  • สภาพแวดล้อมแบบกราฟิกหรือ X Window มีให้ใน Windows 2000, FreeDOS, Alpine Linux, Buildroot และ Fedora 33 โดยเมนู X Window บางรายการเปิดด้วย ปุ่มเมาส์ขวา
  • รายการ riscv64 Fedora 33 มีคำเตือนว่า ใช้เวลาบูตนานกว่า และ Windows 2000 มีลิงก์คำประกาศปฏิเสธความรับผิดแยกต่างหากโดยไม่มีการเข้าถึง VFsync

รายการ VM ที่รันได้ในเบราว์เซอร์

  • JSLinux แสดงรายการระบบจำลองที่ใช้รัน Linux หรือระบบปฏิบัติการอื่น ๆ ในเบราว์เซอร์
  • แต่ละรายการประกอบด้วย CPU, ระบบปฏิบัติการ, ส่วนติดต่อผู้ใช้, การเข้าถึง VFsync, ลิงก์เริ่มต้นใช้งาน, ไฟล์ตั้งค่า และหมายเหตุ
  • ในตารางมีการแสดงสถานะการเข้าถึง VFsync และลิงก์ตั้งค่าที่เกี่ยวข้องกับ TEMU

รายการแยกตาม CPU และระบบปฏิบัติการ

2 ความคิดเห็น

 
GN⁺ 2025-04-15
ความเห็นจาก Hacker News
  • Fabrice สร้าง ซอฟต์แวร์แบบพึ่งพาตัวเองได้ครบชุด ได้เก่งมาก และผลงานเหล่านั้นก็มักมีชีวิตของตัวเองต่อไปได้
    ตัวอย่างที่ไม่ค่อยมีคนรู้คือเทอร์มินัลอีมูเลเตอร์ของ JSLinux ถูก fork อยู่หลายครั้ง จนตอนนี้เป็นที่รู้จักในชื่อ xterm.js และกลายเป็นเทอร์มินัลอีมูเลเตอร์กระแสหลักที่ฝังลงในเว็บได้
    ตอนนี้ผมกำลังทำผู้สืบทอดตัวจริงของ JSLinux โดยคอมไพล์เคอร์เนลและ user space เป็น Wasm แบบเนทีฟ ทำให้เร็วขึ้นมาก และแน่นอนว่าใช้ xterm.js สำหรับการจำลองเทอร์มินัล
    ถ้าชอบเดโมที่บั๊กเยอะจนเหมือนยังไม่ควรแชร์ ลองดู https://linux.tombl.dev ได้ แต่ตอนนี้มีแค่ busybox shell ดังนั้นต้องคุ้นกับการใช้ echo * แทน ls

    • มักพูดกันว่า Fabrice สร้าง โปรเจกต์ข้างเคียงที่คนอื่นจะดูแลต่อไปได้ทั้งชีวิต
      ผมรู้จัก QEMU, ffmpeg, งานเกี่ยวกับ LTE และ QuickJS อยู่แล้ว แต่ไม่รู้ว่า xterm.js ก็เริ่มมาจากเขาด้วย
    • ไม่ว่าจะรันคำสั่งอะไร ก็จะมี attempted to munmap กับคำเตือนของเคอร์เนลแบบด้านล่าง
      มี stack trace เช่น WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000, Comm: sh Not tainted 6.1.132 แล้วโยงไปทาง vmlinux-NLTKI6YG.wasm กับ worker-MHWHWELT.js
    • ทำให้นึกถึงความหลัง ไม่ได้ดูมาสักพักแล้ว ดีใจที่เห็นว่า fork ของ fork ของผมเมื่อ 12 ปีก่อนยังอยู่ดี
      ดูเหมือนส่วนใหญ่จะถูกเขียนใหม่ และน่าจะดีขึ้นกว่าเดิม
      https://github.com/xtermjs/xterm.js
      https://github.com/chjj/term.js
    • เจ๋งดี ถ้า ประหยัดพลังงาน กว่า JSLinux และรันบน iOS ได้ ก็อาจเป็นทางเลือกที่ดีแทน A-Shell หรือ iSH
      ลองบน MacBook แล้ว แต่การป้อนข้อมูลจากคีย์บอร์ดไม่ถูกจับ
    • มีคำสั่งไหนที่ใช้งานได้บ้างไหม? ps, cat, vi, ed ล่มทั้งหมด
      ผมไม่ค่อยรู้เรื่องการฝัง busybox เลยไม่รู้ว่าควรทำอะไร
  • Fabrice สุดยอดมาก ปริมาณสิ่งที่คนนี้สร้างขึ้นมานั้นเหลือเชื่อจริง ๆ
    ถ้าผมสร้างได้แค่อย่างเดียวจากสิ่งที่เขาสร้าง เช่นแค่ ffmpeg, QEMU หรือ tinyc อย่างใดอย่างหนึ่ง ก็คงอวดได้ทั้งชีวิตแล้ว แต่เขาก็ยังคงแฮ็กของเจ๋ง ๆ อย่างอื่นต่อไปเรื่อย ๆ

    • ทำไมไม่ลองหาดูว่าเขาต้องการอะไร แล้วเอาให้เขาไปเลยล่ะ แบบนั้นเขาอาจตอบแทนด้วยการเขียนสิ่งพัง ๆ ที่เรามีอยู่ใหม่ให้ถูกต้องก็ได้
      ทั้งโทรศัพท์มือถือ ระบบปฏิบัติการ เดสก์ท็อปเอนไวรอนเมนต์ ประเทศ แอปสโตร์ และอื่น ๆ ทั้งหมด
    • ผมชอบคนนี้ QEMU ของเขาถูกใช้อย่างแพร่หลายมาก จนทำให้ การพัฒนา Android ครึ่งหนึ่งของโลกง่ายขึ้นเพราะเขา และผลกระทบนี้ก็ยิ่งใหญ่ขึ้นเรื่อย ๆ
    • LZEXE ที่คนเคยใช้ DOS อาจคุ้นเคย ก็เขียนโดยคนเดียวกันนี้
    • สงสัยว่าเขาเลือกว่าจะทำอะไรอย่างไร แค่ไล่ตามสิ่งที่สนใจก็ไม่รู้
  • เครื่องเสมือน ที่รันในเบราว์เซอร์มีไม่มากนัก
    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/ รองรับฮาร์ดแวร์และระบบปฏิบัติการจำนวนมาก (https://github.com/jeffpar/pcjs)
    ฝั่ง Mac OS ก็มี 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/ ด้วย

  • เมื่อมองไปที่สุดขั้วของนักพัฒนาที่มีประสิทธิภาพสูงมาก ๆ จะเห็นความต่างที่น่าสนใจกับหลักแบบเคร่งครัดอย่าง “ฟังก์ชันหรือไฟล์ห้ามเกิน x บรรทัดเด็ดขาด”
    quickjs.c มี 50,000 บรรทัด และมีฟังก์ชันที่ยาวหลายร้อยบรรทัดด้วย
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    แน่นอนว่าแนวทางที่เหมาะสมย่อมต่างกันไปตามสถานการณ์

    • คำตอบง่ายมาก Bellard สามารถจำ บริบท 50,000 บรรทัด ได้ทั้งหมด แต่คนส่วนใหญ่ทำไม่ได้
      ผมเองก็มี working memory ค่อนข้างใหญ่ เลยเพิ่งมารู้ทีหลังว่าขีดจำกัดเรื่องขนาดไฟล์และฟังก์ชันของผมนั้นสูงกว่าคนอื่นมาก
      หลักเคร่ง ๆ แบบนั้นจำเป็นเมื่อมีหลายคนต้องอ่านและเขียนไฟล์เดียวกัน
    • ผมกำลังทำงานกับ codebase นั้นอยู่ และเรา fork เป็น QuickJS-ng
      ตอนแรกดูน่าเกรงขาม แต่ถ้าใช้ editor ที่เหมาะ ก็ทำงานได้ง่ายกว่าที่คิด เพียงแต่ editor หลายตัวจะอืดกับไฟล์ใหญ่ขนาดนี้
      ไฟล์ใหญ่มากก็จริง แต่จัดเรียงตามความหมายในระดับหนึ่ง เช่นเวลาจะเพิ่มเมธอด iterator ใหม่ โค้ดที่เกี่ยวข้องจะอยู่ใกล้กัน ทำให้งานง่ายขึ้น
    • เพราะคนที่ทำงานด้วยไม่ใช่ Fabrice การบอกว่า “อย่าทำ X เลย” ง่ายกว่าการอธิบายว่าเมื่อไรจึงจะปลอดภัยที่จะละเมิดกฎ
      ยังขึ้นกับภาษาที่ใช้ด้วย เช่น JVM อาจไม่ inline ฟังก์ชันที่มีจำนวนคำสั่ง bytecode เกิน threshold บางค่า
    • ตัวอย่างที่ดีคือ garbage collector ของ .NET เป็นไฟล์ C++ ไฟล์เดียวขนาด 54,000 บรรทัด
    • บางครั้งฟังก์ชันยาว ๆ ฟังก์ชันเดียวที่ทำเรื่องหนึ่งได้ดี ก็อาจดีกว่าฟังก์ชันหลายตัวที่ผูกกันแน่นและใช้เหตุผลตามได้ยาก
      โปรแกรมเมอร์ที่เอาหลักเคร่ง ๆ ไปใช้ตรง ๆ อาจเป็นอันตรายได้
  • Kohei Tokunaga กำลังสร้างเจเนอเรชันถัดไปของสายนี้อยู่
    https://ktock.github.io/container2wasm-demo/
    ใช้เครือข่ายบนเบราว์เซอร์แบบใช้ fetch ของ Emscripten หรือ WebSocket proxy ที่เข้ากันได้กับ POSIX
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • ได้ลองจับ Windows 2000 เป็นครั้งแรกในรอบ 20 ปี ผมรู้ว่าความคิดถึงอาจทำให้มองไม่ชัด แต่ถ้าเป็น UI แบบนั้น ผมอยากกลับไปใช้ทันที
    แถบงานที่ไม่รก และเมนู Start เรียบง่ายที่ไม่ได้เต็มไปด้วยคำแนะนำไร้ประโยชน์กับโฆษณา เป็นอะไรที่น่าใช้มากจริง ๆ

    • ผมไม่ได้อยากกลับไปใช้ Windows 2000 เลยแม้แต่น้อย แต่การได้เห็น Windows เวอร์ชันที่ UI สอดคล้องกันนั้นน่าสนใจ
      ตอนนี้มันเป็นของผสมปนเปจาก GUI toolkit สี่รุ่น บาง UI เป็นสไตล์หนึ่ง อีก UI ก็เป็นอีกสไตล์หนึ่ง
    • บทความที่เกี่ยวข้อง:
      “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
    • ผมพยายามจะติดตั้ง Visual Basic 6 ลงไปด้วย แต่ Firefox ที่ติดตั้งอยู่เจอ ข้อผิดพลาด SSL จนข้ามขั้นตอนดาวน์โหลด ISO ไปไม่ได้ด้วยซ้ำ เสียดาย
    • นี่แหละคือเหตุผลที่ผมใช้ Xfce มาตั้งแต่อย่างน้อยปี 2010 มันยังทำงานแบบเดิมอยู่
      ผมรู้สึกว่าโอเพนซอร์สมีผลประโยชน์สอดคล้องกับผู้ใช้โดยเนื้อแท้ และมีกลไกที่ช่วยกัน enshittification
  • มีใครรู้ไหมว่า Fabrice Bellard หาเงินอย่างไร ผลงานโอเพนซอร์ส ของคนคนนี้น่าทึ่งจริง ๆ
    ยากแม้แต่จะเทียบว่ามีใครอยู่ระดับใกล้เคียงกันไหม ผมเดาว่า VMware คงเคยพยายามจ้างเขา หรือ Google คงอยากดึงเขาไปทำด้าน video codec, V8, Chromium rendering, ffmpeg

  • ดูเหมือนว่าฝรั่งเศสจะมี ศิลปินซอฟต์แวร์ หรือผู้มีส่วนร่วมรายบุคคลที่มีพรสวรรค์ สร้างสรรค์ และผลิตผลงานได้สูงมากอยู่ไม่น้อย
    ไม่รู้ว่าเป็นปัจจัยแบบฝรั่งเศส ระบบการศึกษาอย่าง Écoles หรือเหตุผลอื่น แต่เด่นชัดทีเดียว

    • Bootlin เป็นบริษัทฝรั่งเศสและเป็นผู้มีส่วนร่วมสำคัญในโอเพนซอร์ส ผมเคยทำงานด้วยและขอแนะนำ
      เทคโนโลยีฝรั่งเศสเคยมีชื่อเสียงประมาณคุณภาพรถเก่า Renault แต่ในความเป็นจริงผมไม่ได้มองแบบนั้นเลย กลับประทับใจกับ Renault และ Citroen ด้วยซ้ำ
      ในทางกลับกัน การทำงานกับวิศวกรซอฟต์แวร์ชาวเยอรมันเป็นเรื่องยาก เพราะมีทัศนคติ “ถ้าไม่ใช่ของที่เราสร้างเองก็ไม่เอา” แรงมาก ทั้งหมดนี้เป็นการเหมารวมของผมเอง
      ปัญหาของระบบนิเวศเทคโนโลยียุโรปนั้นง่ายมาก เราขายของไม่เก่ง และปรับให้เหมาะกับ ประสิทธิภาพการใช้ทรัพยากร คำว่า “เงินเดือนที่แข่งขันได้” มักหมายความว่าไม่ว่าอย่างไรก็จะไม่จ่ายเกินราคาตลาด
      สหรัฐฯ ปรับเพื่อการเติบโต และยอมรับเงินเดือนที่สูงกว่า โดยหวังจะตัดค่าใช้จ่ายนั้นด้วยการเติบโต
      สุดท้าย ในที่ที่ผมมาจาก มักมีคนเยาะเย้ยว่าฝรั่งเศสพังเพราะผู้อพยพ มุมมองแบบนั้นอาจมีอยู่ แต่ก็เป็นความจริงเช่นกันว่าฝรั่งเศสดึง brain drain จากอาณานิคมเข้ามา และได้คนที่มีความสามารถสูงและสร้างผลงานได้มาก
      อาจารย์ที่ปรึกษาปริญญาโทของผมก็มาจากโกตดิวัวร์ และที่ Bootlin ผมก็ได้ทำงานกับวิศวกรระดับสุดยอดที่ไม่ได้มีชื่อแบบโลกภาษาฝรั่งเศส
    • พอจะยกชื่อคนที่เทียบกับ Fabrice Bellard ได้ไหม?
  • ที่ https://barebox.org/webdemo ใช้ JSLinux เพื่อให้ผู้ใช้ที่อาจสนใจได้เห็นความสะดวกของ เชลล์บูตโหลดเดอร์ โดยไม่ต้องแฟลชลงฮาร์ดแวร์จริง
    ดีใจที่เห็นฟอร์กหลายตัวที่กล่าวถึงตรงนี้ และคงต้องลองดูว่าตัวไหนรัน bareDOOM ได้ดีที่สุด รวมถึงมีตัวไหนที่เสียงทำงานได้หรือไม่

  • JSLinux เป็นแรงบันดาลใจตอนสร้าง Endor (https://endor.dev) และงาน QEMU ของเขาก็เป็นรากฐานให้กับ โปรเจกต์เบราว์เซอร์ที่เกี่ยวกับ Wasm จำนวนมากด้วย

    • มีข้อมูลรายละเอียดที่เปิดเผยไหมว่าแนวทาง virtual machine, container และ Wasm native ถูกนำไปใช้งานอย่างไร?
 
ndrgrd 2025-04-16

ตั้งค่า CORS ผิด เลยต้องเข้า https://bellard.org/jslinux/ แทน https://www.bellard.org/jslinux/ ในลิงก์ ถึงจะใช้งานได้ตามปกติครับ