Serenity OS के Andreas Kling के साथ साक्षात्कार (2022)
हॉबी ऑपरेटिंग सिस्टम्स के लिए उत्साह इस बहस को बढ़ा रहा है कि एक “from scratch” OS Unix-style designs से अलग क्या कर सकता है—transactional filesystems और unified event subscription APIs से लेकर database-backed या object-centric storage तक। टिप्पणीकार kernels, bootloaders, और low-level programming शुरू करने के लिए संसाधनों और अनुभवों का आदान-प्रदान करते हैं, और इस hands-on learning की तुलना Linux या अन्य मौजूदा systems को अनुकूलित करने से करते हैं। इन तकनीकी विचारों के नीचे nostalgia-driven projects और उन प्रयासों के बीच तनाव है जो सचमुच OS architecture, performance, और user experience को नए सिरे से सोचने का लक्ष्य रखते हैं.
नए / टॉय OSes के लिए प्रेरणाएँ
- कई टिप्पणीकार “toy” या प्रयोगात्मक OSes बनाने के लिए प्रेरित महसूस करते हैं ताकि उन विचारों को खोजा जा सके जो मौजूदा kernels (विशेषकर Linux) में अच्छी तरह फिट नहीं बैठते।
- प्रेरणाओं में शैक्षिक मूल्य, निम्न-स्तरीय काम का प्रत्यक्ष आनंद, और मौजूदा abstractions (POSIX, “everything is a file,” byte-stream pipes) से असंतोष शामिल है।
- कुछ लोग इसके बजाय मौजूदा kernels/distros पर काम आधारित करना पसंद करेंगे और मुख्यतः userland APIs और UX में नवाचार करेंगे।
Filesystem, Databases, and Transactions
- databases और crash-safety के लिए अधिक उपयुक्त filesystem semantics में गहरी रुचि:
fsyncoverhead और data corruption से बचने के लिए write barriers या transactional I/O।- अधिकांश apps के लिए raw file I/O के बजाय kernel-level structured persistence।
- DB बनाम filesystem पर बहस:
- कुछ का तर्क है कि बड़े databases को raw devices या dedicated partitions का उपयोग करना चाहिए; अन्य ध्यान दिलाते हैं कि यह ऐप्स के भीतर सर्वव्यापी “small DBs” के लिए मददगार नहीं है।
- filesystems को वास्तविक databases के ऊपर लागू करने के प्रस्ताव (rich metadata, tags, triggers, fast search); WinFS और विभिन्न mainframe / AS/400 models जैसे पिछले प्रयासों का उल्लेख किया गया है।
- अन्य लोग चेतावनी देते हैं कि पहले के transactional filesystems का प्रदर्शन बहुत खराब था और deadlocks होते थे, जिससे लगता है कि DB semantics सामान्य filesystems के लिए उपयुक्त नहीं हो सकते।
Unified Event and Subscription APIs
- किसी भी resource (files, devices, processes, etc.) के लिए “state प्राप्त करने और changes को subscribe करने” हेतु एक एकल, सुसंगत kernel API की इच्छा, आज के विषम मिश्रण (procfs polling, inotify, bespoke syscalls) के बजाय।
- TOCTOU races को लेकर चिंताएँ; विचारों में resources तक access reserve करना या snapshot-style event streams शामिल हैं।
- विरोध में यह कहा गया कि कुछ security products की तरह synchronous authorization और reservation mechanisms system को रोक सकते हैं; किसी भी design को user-visible slowdowns से बचना होगा।
- संबंधित सुझाव: Fuchsia-style signals, io_uring-like command queues (उनकी security pitfalls की समझ के साथ), transactional commit/rollback के साथ speculative execution।
Execution Model and Isolation
- एक विचार: सभी userspace को WebAssembly के रूप में ring 0 में चलाना, hardware isolation के बजाय software bounds checks का उपयोग करना; इससे TLB flushes/context switches से बचा जा सकता है लेकिन compute-heavy code के लिए संभवतः धीमा होगा।
- इस पर चर्चा कि यह native processes से कब बेहतर प्रदर्शन कर सकता है, और single address space साझा करने पर भी।
OS Development के लिए कठिनाई और On-Ramps
- सहमति: कुछ हद तक OS लिखना संभव है; कठिन हिस्सा इसे एक असंयोज्य mess बनने से बचाना और आधुनिक systems की sophistication तक पहुँचना है।
- सुझाए गए resources और रास्ते: OSDev wiki, bare-metal “hello world” tutorials, xv6, Raspberry Pi पर Rust tutorials, Linux From Scratch (system assembly के लिए, kernel design के लिए नहीं), सुरक्षित प्रयोग के लिए QEMU/Bochs।
- कुछ लोग सरल hardware या मौजूदा kernels से शुरू करने की वकालत करते हैं; अन्य greenfield designs को आगे बढ़ाते हैं।
Alternative OS Models and Inspirations
- Plan 9, BeOS, seL4, capability systems, Inferno, Haiku, Redox, Fuchsia, Nix/Guix, और language-as-OS विचारों (Smalltalk, Forth, Lisp-like systems) के संदर्भ।
- files को smart objects के रूप में पुनर्विचार करने, spatial/3D-first desktops, और stateless, Git-like system images के साथ transactional upgrades और rollbacks के प्रस्ताव।
Value, Nostalgia, and UX पर बहस
- उत्साही लोग hobby OSes को मूल्यवान learning और नए models को खोजने का एक तरीका मानते हैं।
- skeptics retro Win95-like projects को nostalgia-driven और कम सामाजिक मूल्य वाला मानते हैं, और तर्क देते हैं कि प्रयास अधिक forward-looking या impactful काम पर जाना चाहिए।
- desktop UX क्या 90s के बाद से वास्तव में बेहतर हुआ है, इस पर लगातार side debate; कुछ इसे regression मानते हैं, जबकि अन्य search-driven launchers, tiling/snapping, और सामान्य stability को वास्तविक gains के रूप में उजागर करते हैं।