23 पॉइंट द्वारा kuroneko 2023-08-31 | 10 टिप्पणियां | WhatsApp पर शेयर करें
  • Rust का उपयोग करके एक Non-Unix OS बनाने की कोशिश।
  • अभी यह graphics output, dynamic allocation, concurrency, और keyboard/mouse को support करता है।
  • इसकी खास बात यह है कि इसे इस तरह design किया गया है कि सभी apps एक single function के रूप में काम कर सकें।
    • app को OS features शामिल करने वाला Context दिया जाता है, जिसके माध्यम से app चलता है, इसलिए सारी interaction Context के जरिए होती है।
    • इससे sandboxing, debugging आदि बहुत आसान हो जाते हैं, और memory persistence भी Context के जरिए होती है, इसलिए restart और sleep आसान होते हैं।
  • अभी apps के लिए design पूरी तरह तैयार नहीं है, इसलिए ऐसी समस्याएँ बाकी हैं कि सभी apps एक-दूसरे की memory देख सकते हैं।
  • permanent storage, GPU, network support आदि अभी लागू किए जाने बाकी हैं।

10 टिप्पणियां

 
honglu 2023-08-31

कॉन्सेप्ट तो काफ़ी sexy है। पूरी दुनिया ही Rust की हो गई है.. हाहाहा

 
botplaysdice 2023-08-31

"ऐप्स एक-दूसरे की मेमोरी देख सकते हैं"... :)

 
ahwjdekf 2023-08-31

हाँ, यह बहुत मज़ेदार है।

 
xguru 2023-08-31

VirGL - QEMU VM में इस्तेमाल किया जा सकने वाला Virtual 3D GPU

VirGL सपोर्ट होने के कारण इसे QEMU में इंस्टॉल करके टेस्ट किया जा सकता है.

 
kuroneko 2023-08-31

Rust OS पर Rust प्रोग्राम चलाने वाला भविष्य...? पूरी दुनिया ही Rust है।

 
heycalmdown 2023-08-31

अगर कमेंट्स में HN थ्रेड हो, तो अच्छा होगा अगर neo उसे अपने-आप summarize कर दे lol neo के बिना तो जीना मुश्किल है

 
kuroneko 2023-08-31

अब से मैं AI summary भी साथ लाने की कोशिश करूंगा। दिलचस्प बात यह है कि लगता है यह हर व्यक्ति के दावे के आधार पर summary देता है।

  • danhau: वे इस पर सवाल उठाते हैं कि क्या cooperative scheduling सचमुच वैसे ही fail होने वाली है जैसा दूसरे लोग दावा करते हैं, और इस बात पर चिंता जताते हैं कि ऐप्स पहले से ही cooperative हैं। उन्हें चिंता है कि denial-of-service attack ऐसे सिस्टम को आसानी से रोक सकता है।
  • aseipp: वे danhau से सहमत हैं और कहते हैं कि cooperative scheduling साधारण errors को सिस्टम के लिए घातक बना सकती है, इसलिए यह arbitrary program execution के लिए समस्या हो सकती है।
  • gnulinux: वे सुझाव देते हैं कि मामला इतना निरपेक्ष नहीं है, और कहते हैं कि cooperative apps की अनुमति देते हुए भी infinite loop की वजह से सिस्टम रुकने से बचाने के तरीके हो सकते हैं। उदाहरण के लिए timeout या loop detection जैसी चीजें हो सकती हैं।
  • DSMan195276: वे तर्क देते हैं कि मामला पूरी तरह वैसा नहीं है, क्योंकि cooperative programs यह मानकर चलते हैं कि उन्हें preempt नहीं किया जाएगा। वे कहते हैं कि preemption का स्तर थोड़ा भी कम हो जाए तो programs लिखने का तरीका बदलना पड़ेगा।
  • getpokedagain: वे कहते हैं कि हर operating system को unpredictable multi-user apps चलाने की ज़रूरत नहीं होती, और embedded devices या game consoles जैसे constrained systems में cooperative model काम कर सकता है।
  • Symmetry: वे कहते हैं कि modern CPU में कई threads होते हैं, इसलिए अगर OS कुछ threads के excessive use पर नज़र रखते हुए control वापस पा सके, तो Fomos का model पूरी तरह ठप हुए बिना काम कर सकता है।
  • cmrdporcupine: वे कहते हैं कि specialized use cases में सीधे खाली core पर work assign करने वाले model का फायदा हो सकता है, लेकिन concurrency handling की complexity शायद time-slicing लागू करने की तुलना में बहुत ज़्यादा सरल न हो।
  • JoeAltmaier: वे कहते हैं कि एक thread में while(true) loop दूसरे threads को प्रभावित न भी करे, तब भी battery drain और तापमान बढ़ना ऐसे resource issues हैं जिन्हें संभालना ज़रूरी है।
  • keyle: वे इस project और इसके minimalist approach को लेकर उत्साहित हैं, और file system जैसे आगे के विकास की उम्मीद करते हैं जो DOOM चलाने जैसी पारंपरिक अपेक्षाओं को पूरा करे।
  • mepian: वे स्पष्ट करते हैं कि Smalltalk methods स्वतंत्र functions नहीं बल्कि objects के बीच calls होते हैं, और यह भी बताते हैं कि कुछ शुरुआती Lisp OS ने object system से पहले functions का उपयोग किया था।
 
xguru 2023-08-31

अच्छी बात है? कि यही पोस्ट Neo ने संभाल ली है हाहाहा

Fomos: Rust से बनाया गया एक प्रायोगिक operating system

 
xguru 2023-08-31

समस्या यह है कि मैं भी उस लिंक को देखकर साथ-साथ उसका सारांश बना रहा था T_T

कुल 3 अलग-अलग सारांश वर्ज़न देखकर आप तुलना कर सकते हैं haha

  • मैं एक Non-Unix OS बनाना चाहता था
  • Exo-Kernel दिलचस्प है, लेकिन उसका ज़्यादातर हिस्सा सिर्फ़ सिद्धांत तक सीमित है, इसलिए इस पैटर्न को समझने में यह मदद करता है
  • फ़ीचर्स
    • ग्राफ़िक्स आउटपुट, dynamic allocation, सभी ऐप्स async loop में चलते हैं
    • Virtio mouse/keyboard (drivers भी async tasks हैं)
    • cooperative scheduling (ऐप्स जितना संभव हो नियंत्रण वापस छोड़ते हैं)
    • बूट के बाद context switch नहीं होता
    • Virgl™ लगभग supported है
  • अनोखी बातें
    • ऐप का signature pub extern "C" fn _start(ctx: &mut Context) -> i32
    • ऐप्स को standard library की ज़रूरत नहीं होती, और OS के सभी functions Context के ज़रिए ऐप को दिए जाते हैं
    • Fomos में ऐप दरअसल सिर्फ़ एक function है। यही सबसे बड़ा फ़र्क है। Unix/Windows OS की executable files, function की तुलना में, काफ़ी ज़्यादा जटिल होती हैं।
 
roxie 2023-09-04

यहाँ thumbs down नहीं है, तो आपका karma माइनस में कैसे गया?