4 पॉइंट द्वारा GN⁺ 2025-04-15 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • JSLinux ब्राउज़र के अंदर Linux और अन्य operating systems को सीधे चलाकर देखने के लिए VM की एक सूची देता है, जिसमें CPU, UI, VFsync, और config file तक साथ में देखी जा सकती है
  • चलाने योग्य आइटम x86_64, x86, riscv64 में विभाजित हैं, और इनमें Alpine Linux, Buildroot, Fedora 33, Windows 2000, FreeDOS शामिल हैं
  • x86_64 Alpine Linux 3.23.2 console में AVX-512 और APX support शामिल है, और x86 Alpine Linux 3.12.0 के console और X Window version अलग-अलग उपलब्ध हैं
  • graphical या X Window environment Windows 2000, FreeDOS, Alpine Linux, Buildroot, और Fedora 33 में उपलब्ध है, और कुछ X Window menu right mouse button से खुलते हैं
  • riscv64 Fedora 33 आइटम पर boot time अधिक लंबा है की चेतावनी है, और Windows 2000 के लिए VFsync access के बिना अलग disclaimer लिंक दिया गया है

ब्राउज़र में चलने योग्य VM सूची

  • JSLinux ब्राउज़र में Linux या अन्य operating systems चलाने के लिए emulated systems की सूची प्रदान करता है
  • हर आइटम में CPU, operating system, user interface, VFsync access की उपलब्धता, start link, config file, और remarks शामिल हैं
  • तालिका में VFsync access की उपलब्धता और TEMU से संबंधित config links साथ में दिखाए गए हैं

CPU और operating system के अनुसार चलाने योग्य आइटम

2 टिप्पणियां

 
GN⁺ 2025-04-15
Hacker News की राय
  • Fabrice self-sufficient software बनाने में सचमुच बहुत अच्छे हैं, और कई बार उनके बनाए हुए काम अपनी अलग जिंदगी जीने लगते हैं
    कम चर्चित उदाहरण के तौर पर, JSLinux का terminal emulator कई बार fork हुआ और अब xterm.js के नाम से जाना जाता है; यह वेब में embed किए जा सकने वाले terminal emulators की मुख्यधारा बन गया
    अब मैं JSLinux का असली successor बना रहा हूं, जिसमें kernel और user space को native तौर पर Wasm में compile किया गया है, इसलिए यह काफी तेज है, और terminal emulation के लिए जाहिर है xterm.js इस्तेमाल कर रहा है
    अगर आपको ऐसे bug-भरे demos पसंद हैं जिन्हें शायद अभी share नहीं करना चाहिए, तो https://linux.tombl.dev देखने लायक है, लेकिन फिलहाल इसमें सिर्फ busybox shell है, इसलिए ls की जगह echo * की आदत होनी चाहिए

    • Fabrice के बारे में अक्सर कहा जाता है कि वे ऐसे side projects बनाते हैं जिन्हें दूसरे लोग पूरी जिंदगी maintain कर सकते हैं
      QEMU, ffmpeg, LTE से जुड़ा काम, QuickJS के बारे में तो पता था, लेकिन यह नहीं पता था कि xterm.js भी उन्हीं से शुरू हुआ था
    • कोई भी command चलाने पर नीचे जैसा attempted to munmap और kernel warning आती है
      WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000, Comm: sh Not tainted 6.1.132 जैसी stack trace दिखती है और vmlinux-NLTKI6YG.wasm तथा worker-MHWHWELT.js की तरफ जाती है
    • यादें ताजा हो गईं। काफी समय से नहीं देखा था, लेकिन यह देखकर अच्छा लगा कि 12 साल पहले मेरे fork का fork अब भी अच्छे से चल रहा है
      लगता है इसका ज्यादातर हिस्सा फिर से लिखा गया है, और शायद बेहतर ही हुआ होगा
      https://github.com/xtermjs/xterm.js
      https://github.com/chjj/term.js
    • शानदार। अगर यह JSLinux से ज्यादा power efficient है और iOS पर भी चल सकता है, तो A-Shell या iSH का अच्छा विकल्प बन सकता है
      MacBook पर कोशिश की, लेकिन keyboard input register नहीं हुआ
    • क्या कोई command काम कर रही है? ps, cat, vi, ed सब crash हो रहे हैं
      busybox embedding के बारे में ज्यादा नहीं पता, इसलिए समझ नहीं आ रहा कि क्या करना चाहिए
  • Fabrice कमाल के हैं। इस व्यक्ति ने जितनी चीजें बनाई हैं, उनकी मात्रा सचमुच अविश्वसनीय है
    अगर मैंने उनके बनाए हुए में से सिर्फ एक चीज भी बनाई होती, जैसे ffmpeg, QEMU, या tinyc में से सिर्फ एक, तो जिंदगी भर उस पर गर्व करता, लेकिन वे बस लगातार कोई और शानदार चीज hack करते रहते हैं

    • क्यों न बस पता लगाया जाए कि उन्हें क्या चाहिए और वह दे दिया जाए। बदले में शायद वे हमारी टूटी हुई चीजों को ठीक से फिर से लिख दें
      फोन, operating systems, desktop environments, देश, app stores वगैरह सब
    • मुझे यह व्यक्ति पसंद है। उनका QEMU इतना व्यापक रूप से इस्तेमाल होता है कि दुनिया भर में Android development का आधा हिस्सा उनकी वजह से आसान हुआ है, और उसका असर और बढ़ रहा है
    • DOS इस्तेमाल करने वालों को परिचित लग सकने वाला LZEXE भी इसी व्यक्ति ने लिखा था
    • उत्सुकता है कि वे किस चीज पर काम करना है, यह कैसे चुनते हैं। पता नहीं वे बस अपनी रुचि के पीछे चलते हैं या नहीं
  • browser में चलने वाली virtual machines बहुत ज्यादा नहीं हैं
    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/ बहुत से hardware और operating systems support करता है (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/ भी हैं

  • बेहद productive developers की चरम मिसालों को देखें तो “function या file कभी भी x lines से ज़्यादा नहीं होनी चाहिए” जैसी कट्टर धारणाओं से दिलचस्प contrast बनता है
    quickjs.c 50 हज़ार lines की है और इसमें सैकड़ों lines वाली functions भी हैं
    https://github.com/bellard/quickjs/blob/master/quickjs.c
    बेशक, हालात के हिसाब से अलग approach सही हो सकता है

    • जवाब आसान है। Bellard 50 हज़ार lines का context पूरा याद रख सकते हैं, लेकिन ज़्यादातर लोग नहीं रख पाते
      मेरी working memory भी काफ़ी बड़ी है, इसलिए मुझे बाद में समझ आया कि file और function size को लेकर मेरी limits दूसरों से कहीं ज़्यादा ऊँची हैं
      ऐसी कट्टर rules तब ज़रूरी होती हैं जब कई लोगों को वही file पढ़नी और लिखनी होती है
    • मैं उसी codebase पर काम कर रहा हूँ, और हमने इसे QuickJS-ng के रूप में fork किया है
      शुरुआत में यह intimidate करता है, लेकिन सही editor इस्तेमाल करें तो काम करना हैरानी से आसान है। हालांकि कई editors इतनी बड़ी files में अटकने लगते हैं
      file बहुत बड़ी है, लेकिन कुछ हद तक meaning के हिसाब से sorted है, इसलिए जैसे नया iterator method जोड़ते समय related code पास-पास मिलता है और काम आसान हो जाता है
    • क्योंकि साथ काम करने वाले लोग Fabrice नहीं हैं। यह समझाने से आसान है कि rule कब तोड़ना safe है, सीधे कहना कि “X बिल्कुल मत करो”
      यह इस्तेमाल की जा रही language पर भी निर्भर करता है। उदाहरण के लिए JVM bytecode instructions की संख्या किसी threshold से ऊपर जाने पर किसी function को inline नहीं कर सकता
    • एक अच्छा उदाहरण .NET का garbage collector है, जो 54 हज़ार lines वाली एक single C++ file है
    • कई tightly coupled functions जिनके बारे में reason करना मुश्किल हो, उनसे बेहतर कभी-कभी एक लंबा function होता है जो एक काम अच्छी तरह करता है
      dogma को जस का तस लागू करने वाला programmer नुकसानदेह हो सकता है
  • Kohei Tokunaga इस lineage की अगली generation बना रहे हैं
    https://ktock.github.io/container2wasm-demo/
    Emscripten के fetch आधारित browser networking या POSIX-compatible WebSocket proxy का इस्तेमाल करता है
    https://ktock.github.io/container2wasm-demo/amd64-debian-was...

  • 20 साल बाद Windows 2000 इस्तेमाल करके देखा। पता है nostalgia नज़र धुंधला कर सकता है, लेकिन उस UI पर मैं तुरंत वापस जाना चाहूँगा
    clutter-free taskbar और बेकार recommendations व ads से भरे बिना simple Start menu को इस्तेमाल करना सचमुच मज़ेदार था

    • मैं Windows 2000 दोबारा इस्तेमाल करना बिल्कुल नहीं चाहूँगा, लेकिन ऐसा Windows version देखना दिलचस्प है जिसमें UI consistent था
      आज तो चार generations के GUI toolkits मिले-जुले हैं, कोई UI एक style में है तो दूसरा बिल्कुल अलग style में—पूरा खिचड़ी जैसा
    • संबंधित लेख:
      “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 install करने की कोशिश की, लेकिन installed Firefox में SSL error की वजह से ISO download वाले step से भी आगे नहीं बढ़ पाया। अफ़सोस
    • कम-से-कम 2010 से Xfce इस्तेमाल करने की वजह यही है। यह अब भी उसी तरह काम करता है
      मुझे लगता है open source मूल रूप से users के हितों से aligned होता है और इसमें enshittification रोकने की व्यवस्था होती है
  • क्या किसी को पता है Fabrice Bellard पैसे कैसे कमाते हैं? इस व्यक्ति का open source output सचमुच हैरान करने वाला है
    यह तुलना करना भी मुश्किल है कि उसी स्तर का कोई और है या नहीं। लगता है VMware ने उन्हें hire करने की कोशिश की होगी, या Google ने video codec, V8, Chromium rendering, ffmpeg के लिए उन्हें लाने की कोशिश की होगी

  • France से काफ़ी बहुत talented, creative और productive software artists या individual contributors निकलते दिखते हैं
    यह कोई French factor है, Écoles जैसी education system की वजह है, या कुछ और—पता नहीं, लेकिन noticeable है

    • Bootlin एक French company है और major open source contributor है। उनके साथ काम किया है और recommend करता हूँ
      French tech की reputation पहले पुराने Renault cars की quality जैसी थी, लेकिन असल में मैंने ऐसा नहीं देखा। Renault और Citroen में भी उल्टा प्रभावित हुआ
      इसके उलट German software engineers के साथ काम करना मुश्किल रहा, क्योंकि “अगर हमने नहीं बनाया तो नहीं चलेगा” वाला attitude बहुत मजबूत था। यह सिर्फ़ मेरा generalization है
      European tech ecosystem की problem simple है। हम sell करना नहीं जानते और resource efficiency के लिए optimize करते हैं। “competitive salary” का मतलब अक्सर यह हो जाता है कि किसी भी हालत में market rate से ज़्यादा नहीं देंगे
      America growth के लिए optimize करता है, और growth के जरिए cost amortize करने के लिए higher salary accept करता है
      आख़िर में, जहाँ से मैं आता हूँ वहाँ कई लोग immigration की वजह से France के खराब होने का मज़ाक उड़ाते हैं। यह एक नजरिया हो सकता है, लेकिन यह भी सच है कि France ने अपनी colonies से brain drain खींचकर बहुत capable और productive लोगों को हासिल किया
      मेरे master’s advisor भी Côte d’Ivoire से थे, और Bootlin में भी मैंने non-Francophone names वाले top-level engineers के साथ काम किया
    • क्या Fabrice Bellard से compare किए जा सकने वाले लोगों के नाम बता सकते हैं?
  • https://barebox.org/webdemo पर JSLinux का इस्तेमाल करके, संभावित users को असली hardware पर flash किए बिना भी bootloader shell की सुविधा देखने दी जा रही है
    यहाँ बताए गए कई forks देखकर अच्छा लगा, और देखना पड़ेगा कि इनमें से कौन bareDOOM सबसे अच्छे से चलाता है, और क्या किसी में sound काम करता है

  • JSLinux, Endor(https://endor.dev) बनाते समय प्रेरणा बना था, और उनका QEMU work भी कई Wasm-related browser projects की नींव बन रहा है

    • क्या virtual machines, containers, और Wasm native approach कैसे implement होते हैं, इस पर कोई public detailed material है?
 
ndrgrd 2025-04-16

CORS सेटिंग गलत है, इसलिए लिंक में https://www.bellard.org/jslinux/ की बजाय https://bellard.org/jslinux/ पर जाना होगा, तभी यह सही तरह से काम करता है।