3 पॉइंट द्वारा GN⁺ 2023-09-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह full-stack desktop OS प्रोजेक्ट है, जिसमें kernel, drivers, applications और desktop components साथ मिलकर बनाए जा रहे हैं; इसलिए इसका दायरा एक साधारण kernel experiment से कहीं बड़ा है
  • टेस्टिंग nightly build के Essence.tar.xz, VirtualBox के लिए Essence.ova, और QEMU run command के जरिए शुरू की जा सकती है
  • सार्वजनिक builds टेस्टिंग सुविधा के लिए सिर्फ emulator के रूप में दिए जाते हैं, और वास्तविक hardware के लिए build अभी उपलब्ध कराया जाना बाकी है
  • kernel में filesystem-independent cache manager, memory manager, TCP/IP networking stack, virtual filesystem, और window manager जैसे core elements शामिल हैं
  • desktop में custom UI library और software vector renderer, tabbed windows, और FreeType·Harfbuzz आधारित multilingual text rendering तक मौजूद है

चलाने और भागीदारी के रास्ते

टेस्टिंग और build

  • नवीनतम nightly build build-essence releases से प्राप्त किया जा सकता है
    • Essence.tar.xz डाउनलोड करके extract करें
    • VirtualBox में Essence.ova import करें
    • QEMU में नीचे दिया command चलाएं
      • qemu-kvm -drive file=drive,format=raw -m 2048 -smp 2 || qemu-system-x86_64 -enable-kvm -drive file=drive,format=raw -m 2048 -smp 2
  • वर्तमान में दिए जा रहे builds टेस्टिंग सुविधा के लिए सिर्फ emulator configuration हैं
  • Build और testing के तरीके help/Building.md में हैं

OS components

  • Kernel

    • Filesystem-independent cache manager
    • Shared memory, memory-mapped files, multithreaded paging zeroing, और working set balancing को support करने वाला memory manager
    • TCP/IP networking stack
    • कई priority levels और priority inversion को संभालने वाला scheduler
    • On-demand module loading
    • Virtual filesystem
    • Window manager
    • Audio mixer
      • यह rewrite किए जाने की स्थिति में है
    • वैकल्पिक POSIX subsystem
      • GCC और कुछ Busybox tools चला सकता है
  • Applications

    • File Manager
    • Text Editor
    • IRC Client
    • System Monitor
  • Ported components

    • Bochs
    • GCC और Binutils
    • FFmpeg
    • software rendering OpenGL के लिए Mesa
    • Musl
  • Drivers

    • Power management: ACPICA आधारित ACPI
    • Secondary storage devices: IDE, AHCI, NVMe
    • Graphics: BGA, SVGA
    • Read/write filesystem: EssenceFS
    • Read-only filesystems: Ext2, FAT, NTFS, ISO9660
    • Audio: HD Audio
    • NIC: 8254x
    • USB: XHCI, bulk storage devices, human interface devices
  • Desktop

    • Custom user interface library
    • जटिल animations को support करने वाला software vector renderer
    • Tabbed windows
    • FreeType और Harfbuzz आधारित multilingual text rendering और layout

1 टिप्पणियां

 
GN⁺ 2023-09-28
Hacker News की राय
  • शुरू में लगा कि यह custom window manager के साथ एक और Linux distribution होगा, लेकिन असल में यह अपना खुद का operating system निकला
    इसमें custom kernel तक है और सचमुच बिल्कुल नीचे से बनाया गया है। Operating system या browser को scratch से बनाने वाले project, भले ही आम तौर पर बड़े पैमाने पर इस्तेमाल न हों, फिर भी बहुत मूल्यवान होते हैं, और developers की सराहना करनी चाहिए

    • उस लिहाज से ElementaryOS जैसे distribution भी अच्छे लगते हैं। क्योंकि वे अपने distribution को सचमुच एक integrated environment जैसा महसूस कराने के लिए अपना software maintain, modify और create करते हैं
      दूसरे distributions भी बहुत मेहनत करते हैं, लेकिन KDE apps का किसी एक operating system की default apps की तरह अच्छी तरह घुल-मिल जाना खास तौर पर अच्छा लगता है। इसके उलट Windows में ऐसी एकरूपता लगभग नहीं है, पुराने तरीकों का मिश्रण है, इसलिए core apps की consistency कम है और यह धीरे-धीरे जोड़-तोड़ किए हुए Linux operating system जैसा दिखने लगा है। अगर Microsoft marketing team को Windows की दिशा तय करने देने के बजाय operating system को polish करने पर ध्यान देता, तो शायद यह बेहद शानदार product बनता
    • ऐसे सिर्फ बाहरी रूप से बदले गए Linux distributions इतने आम हैं कि शुरू में वैसा अंदाज़ा लगाना आसान है
      Essence को scratch से बनाया गया है, और इसका साफ-सुथरा लेकिन “Linux जैसा नहीं” UI काफी प्रभावशाली है। मौजूदा distribution के ऊपर बेहतर और friendly look चढ़ाने के मामलों के उलट, यह कहीं ज्यादा दुर्लभ दिशा लगती है और शायद ChromeOS के पीछे-पीछे चल भी सके
    • Oberon OS की थोड़ी याद आई: https://en.wikipedia.org/wiki/Oberon_(operating_system)
    • उल्टा, मैं यह सोचकर आलोचना करने के लिए क्लिक किया था कि यह फिर वही “scratch से बनाया” बताने वाला Linux होगा, लेकिन ऐसा नहीं था, यह मजेदार लगा
  • Landing page वाकई शानदार है। जो जानकारी जाननी थी, लगभग सब तुरंत बता देता है
    सुंदर screenshots, low-power hardware support, 30MB से कम storage और उससे भी कम RAM में boot करने की क्षमता, कोई background tasks नहीं, बढ़िया performance, MIT license के तहत code公開, और demo video तक मौजूद है। mainstream desktop operating systems जिन क्षेत्रों को संभाल नहीं पाते, उनमें इसके लोकप्रिय होने के कई use cases तुरंत ध्यान में आते हैं। developer toolchain और शुरुआत कैसे करें, इसके बारे में और जानने की उत्सुकता है, लेकिन Discord/Patreon links से यह कुछ हद तक cover होता दिखता है। touch interface जैसी capabilities को first-class support के रूप में पेश करे तो existing desktop operating systems से और बेहतर अलग पहचान बन सकती है, और UI की जरूरत वाले IoT devices भी कल्पना में आते हैं

    • सही है। 2000s-स्टाइल distro pages में बहुत जगहों पर screenshots को first screen से ऐसे छिपाकर रखा जाता था जैसे system दिखाने में शर्म आ रही हो
    • developer toolchain और experience को video में थोड़ा cover किया गया था। users के लिए अपना desktop theme करना काफी अच्छा तरीका लगा
    • यह feature combination embedded applications के लिए काफी दिलचस्प platform लगता है
      अगर window management API ठीक हो, तो embedded control system के तौर पर भी यह पूरी तरह उपयोगी हो सकता है। WASM में compile करने पर fake window system का इस्तेमाल करके काफी अच्छा web UI भी बनाया जा सकता है
  • अप्रैल 2022 के बाद से लगता है कि ज्यादातर काम रुक गया है: https://gitlab.com/nakst/essence/-/graphs/master?ref_type=he...

    • 2021 के बाद के commits bug fixes जैसे दिखते हैं। रुका हुआ होने के बजाय यह काफी हद तक complete state में भी हो सकता है
    • हमेशा की तरह, समझ नहीं आता कि इसे realistic product बनने का दिखावा करने की जरूरत क्यों है
      यह वैसा ही है जैसे मैं कहूं कि मैं खुद jumbo jet बनाऊंगा। कोई कमजोर biplane जैसा कुछ assemble तो कर सकता हूं, लेकिन engine या full-size fuselage नहीं बना सकता, mechanics या factory भी नहीं है, तो आखिर में कोई उस jet का इस्तेमाल नहीं करेगा
  • assembler boot block code के आखिरी हिस्से की structure पसंद आई
    times (0x1B4 - ($-$$)) nop, disk_identifier: times 10 db 0, चार partition_entry_*: times 16 db 0, dw 0xAA55 तक जाने वाला रूप elegant है। यह दिखाता है कि disk identifier और classic 4 MBR partitions boot code के साथ पहले 512 bytes के अंदर कैसे coexist करते हैं। structure यह मानता है कि boot block को disk पर copy करने के बाद कोई external program, जैसे fdisk, partition values set करेगा। मैंने बहुत boot block code देखा है, लेकिन ऐसी composition पहली बार देखी

    • limited operating system competition की वजह से हम जो elegance, simplicity और performance खो रहे हैं, उसकी याद आती है
    • तुरंत check करना पड़ा कि कहीं यह फिर Justine Tunney का मूर्खतापूर्ण हद तक genius project तो नहीं है
  • जिन लोगों को Linux की हर तरह की backward compatibility और server features की जरूरत नहीं है, और Microsoft या Apple से भी बचना चाहते हैं, उनके लिए ऐसे operating system की जगह बननी चाहिए
    ChromeOS जैसा, लेकिन इतना locked-down नहीं, ऐसा रूप चाहिए

    • अगर यह user-friendly permission-based security design के साथ हो, ताकि internet से download की गई app मेरी credentials और documents चोरी न कर सके, तो मैं सचमुच ऐसा देखना चाहूंगा
      आज लोगों की सबसे बड़ी समस्याओं में से यह एक है, फिर भी जहां तक मुझे पता है, operating system level पर नया approach आजमाने में कोई खास वास्तविक रुचि नहीं दिखती
    • मैं सालों से ऐसी चीज की कल्पना और निर्माण कर रहा हूं, लेकिन रोजमर्रा की जिंदगी हमेशा प्राथमिकता बन जाती है
      अगर operating system भर से संभव कोई business model हो, जो hardware sales पर निर्भर Apple-style model या ads पर निर्भर Android और अब तेजी से वैसा बनते Windows-style model जैसा न हो, तो बात बदल सकती है। शायद किसी दिन आर्थिक रूप से स्वतंत्र होने पर संभव हो
    • haiku-os.org इस्तेमाल करके देख सकते हैं
    • BSD परिवार या Plan 9 fork 9front के बारे में क्या ख्याल है?
    • ChromeOS में कभी भी आसानी से Linux environment जोड़ा जा सकता है
  • BIOS से desktop तक 0.7-second boot प्रभावशाली है

    • Intel ने कुछ साल पहले embedded platform पर power-on से पूरी तरह interactive UI तक 0.3-second Linux boot हासिल करने की presentation दी थी
      यह automotive use case था, और ऐसी स्थिति के लिए था जहां accessory power चालू होते ही infotainment या instrument cluster जैसी functions तुरंत उपलब्ध होनी चाहिए
  • यह जानने की उत्सुकता थी कि ऑपरेटिंग सिस्टम उच्च-गुणवत्ता वाली GUI कैसे ड्रॉ करता है
    bare-metal development में linear frame buffer के साथ साधारण graphics ड्रॉ किए हैं, लेकिन यह जानने की जिज्ञासा है कि ऐसे UI या Windows जैसी स्क्रीन पर UI components दिखाने वाली images कैसे बनती हैं। window border के लिए PNG files दिखाई नहीं देतीं, और theme के हिसाब से pixel colors set करने वाला code दिखता है। क्या ऑपरेटिंग सिस्टम के UI components आम तौर पर image editor में बनाकर tile करने के बजाय programmatically draw किए जाते हैं?

    • आजकल यह लगभग हमेशा vector graphics होता है। पहले simple bitmaps इस्तेमाल होते थे, और यह ऑपरेटिंग सिस्टम खास तौर पर vector graphics इस्तेमाल करता है
    • अगर शुरुआत से बनाया जा रहा हो, तो PNG files को decode करना पड़ता है, इसलिए वे उल्टा ज्यादा जटिल हो सकती हैं
      इसके उलट अगर drawing API हो, तो उससे मेल खाने वाले drawing commands को call करने के रूप में vector graphics encoding को map करना ज्यादा आसान होता है। साथ ही scaling की समस्या भी हल हो जाती है, और vector graphics assets आम तौर पर काफी कम जगह लेते हैं
    • ऊपर वाले link में भी साफ लिखा है कि user interface पूरी तरह vector-based है
      इसलिए इसे raster images इस्तेमाल करने के बजाय UI कैसे draw किया जाए, इसकी explanations के रूप में देखा जा सकता है
    • आजकल यह ज्यादातर hardware acceleration इस्तेमाल करने वाले OpenGL shaders पर आधारित होता है
    • अगर यह concept छूट गया हो, तो यह参考 हो सकता है: https://en.wikipedia.org/wiki/Vector_graphics
  • संबंधित लेख: Essence: Desktop operating system built from scratch - https://news.ycombinator.com/item?id=29950740 - जनवरी 2022, 290 comments

  • आम तौर पर नए ऑपरेटिंग सिस्टम की कोशिशें बहुत ज्यादा समुद्र उबालने जैसी अवास्तविक लगती हैं, लेकिन यह मुझे पसंद आया। इसमें तुरंत संभावना दिखती है
    एक tip के तौर पर, पहला, virtualization जल्दी जोड़ने से दूसरे ऑपरेटिंग सिस्टम और familiar apps चला सकेंगे। लंबी अवधि में Parallels Coherence जैसी seamless virtualization explore की जा सकती है, ताकि बाहरी apps उस host ऑपरेटिंग सिस्टम पर चल सकें, और यह नए ऑपरेटिंग सिस्टम को परेशान करने वाली “apps नहीं हैं” समस्या का short- और medium-term solution बन सकता है। दूसरा, hardware support का scope कुछ target platforms तक सीमित रखना अच्छा होगा, जैसे System76, Framework जैसी Linux-oriented laptop कंपनियां, Raspberry Pi आदि। तीसरा, Linux या BSD के drivers को compatible API के जरिए लाकर इस्तेमाल करने का तरीका देखने लायक है; इससे support के लिए बदनाम तौर पर मुश्किल Wi‑Fi cards जैसे devices से निपटा जा सकता है

  • Essence के लेखक nakst के homepage https://nakst.gitlab.io/ पर ऐसी line है
    nakst's webpage // This site works best with JavaScript disabled — बढ़िया इंसान हैं

    • आह, ये तो gdb frontend gf बनाने वाले व्यक्ति थे: https://github.com/nakst/gf
      दुनिया छोटी है