- यह 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 तक मौजूद है
चलाने और भागीदारी के रास्ते
- Essence एक operating system प्रोजेक्ट है, और अक्टूबर 2021 के आधार पर वास्तविक hardware पर चलने वाला video demo उपलब्ध है
- चर्चा channels Discord server और forum में बंटे हुए हैं
- Discord: https://discord.gg/skeP9ZGDK8
- Forum: https://essence.handmade.network/forums
- Development support Patreon के जरिए मिल सकता है, और Essence 2021 Icculus Microgrant प्राप्त करने वाला प्रोजेक्ट है
- Patreon: https://www.patreon.com/nakst
- Icculus Microgrant: https://icculus.org/microgrant/
टेस्टिंग और build
- नवीनतम nightly build build-essence releases से प्राप्त किया जा सकता है
Essence.tar.xzडाउनलोड करके extract करें- VirtualBox में
Essence.ovaimport करें - 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 टिप्पणियां
Hacker News की राय
शुरू में लगा कि यह custom window manager के साथ एक और Linux distribution होगा, लेकिन असल में यह अपना खुद का operating system निकला
इसमें custom kernel तक है और सचमुच बिल्कुल नीचे से बनाया गया है। Operating system या browser को scratch से बनाने वाले project, भले ही आम तौर पर बड़े पैमाने पर इस्तेमाल न हों, फिर भी बहुत मूल्यवान होते हैं, और developers की सराहना करनी चाहिए
दूसरे distributions भी बहुत मेहनत करते हैं, लेकिन KDE apps का किसी एक operating system की default apps की तरह अच्छी तरह घुल-मिल जाना खास तौर पर अच्छा लगता है। इसके उलट Windows में ऐसी एकरूपता लगभग नहीं है, पुराने तरीकों का मिश्रण है, इसलिए core apps की consistency कम है और यह धीरे-धीरे जोड़-तोड़ किए हुए Linux operating system जैसा दिखने लगा है। अगर Microsoft marketing team को Windows की दिशा तय करने देने के बजाय operating system को polish करने पर ध्यान देता, तो शायद यह बेहद शानदार product बनता
Essence को scratch से बनाया गया है, और इसका साफ-सुथरा लेकिन “Linux जैसा नहीं” UI काफी प्रभावशाली है। मौजूदा distribution के ऊपर बेहतर और friendly look चढ़ाने के मामलों के उलट, यह कहीं ज्यादा दुर्लभ दिशा लगती है और शायद ChromeOS के पीछे-पीछे चल भी सके
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 भी कल्पना में आते हैं
अगर window management API ठीक हो, तो embedded control system के तौर पर भी यह पूरी तरह उपयोगी हो सकता है। WASM में compile करने पर fake window system का इस्तेमाल करके काफी अच्छा web UI भी बनाया जा सकता है
अप्रैल 2022 के बाद से लगता है कि ज्यादातर काम रुक गया है: https://gitlab.com/nakst/essence/-/graphs/master?ref_type=he...
यह वैसा ही है जैसे मैं कहूं कि मैं खुद 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 पहली बार देखीजिन लोगों को Linux की हर तरह की backward compatibility और server features की जरूरत नहीं है, और Microsoft या Apple से भी बचना चाहते हैं, उनके लिए ऐसे operating system की जगह बननी चाहिए
ChromeOS जैसा, लेकिन इतना locked-down नहीं, ऐसा रूप चाहिए
आज लोगों की सबसे बड़ी समस्याओं में से यह एक है, फिर भी जहां तक मुझे पता है, operating system level पर नया approach आजमाने में कोई खास वास्तविक रुचि नहीं दिखती
अगर operating system भर से संभव कोई business model हो, जो hardware sales पर निर्भर Apple-style model या ads पर निर्भर Android और अब तेजी से वैसा बनते Windows-style model जैसा न हो, तो बात बदल सकती है। शायद किसी दिन आर्थिक रूप से स्वतंत्र होने पर संभव हो
BIOS से desktop तक 0.7-second boot प्रभावशाली है
यह 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 किए जाते हैं?
इसके उलट अगर drawing API हो, तो उससे मेल खाने वाले drawing commands को call करने के रूप में vector graphics encoding को map करना ज्यादा आसान होता है। साथ ही scaling की समस्या भी हल हो जाती है, और vector graphics assets आम तौर पर काफी कम जगह लेते हैं
इसलिए इसे raster images इस्तेमाल करने के बजाय UI कैसे draw किया जाए, इसकी explanations के रूप में देखा जा सकता है
संबंधित लेख: 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— बढ़िया इंसान हैंदुनिया छोटी है