1972 का UNIX V2 “Beta” पुनर्जीवित
(tuhs.org)- DMR tapes के s1/s2 का forensic analysis करके चलने योग्य UNIX सिस्टम तैयार किया गया; s1 kernel वाला UNIX INIT DECtape है और s2 में distribution files का अधिकांश हिस्सा है
- s1 kernel अब तक पुष्टि किया गया सबसे शुरुआती machine-readable UNIX kernel है, जो V1 और V2 के बीच का है और V1/V2 दोनों a.out चला सकता है
- user core size V2 की तरह 16 KiB(8K words) तक बढ़ा, लेकिन syscall table V1 और unix-jun72 kernel जैसा ही है, इसलिए इसमें V2 syscall शामिल नहीं हैं
- boot conditions कठिन हैं; केवल aap के PDP-11/20 emulator ने kernel boot करने में सफलता पाई, जबकि SIMH और Ersatz-11 login prompt से पहले रुक जाते हैं
- जारी की गई RF disk image में केवल s1/s2 files शामिल हैं, यह aap emulator में boot हो सकती है, और init(7) के व्यवहार से लगता है कि
/usrRF पर था
s1/s2 tapes से restore किया गया UNIX V2 “Beta”
- DMR tapes के forensic analysis के परिणामस्वरूप, s1/s2 tapes से काम करने वाला सिस्टम बनाया जा सका
- DMR tapes वे tapes का bundle है जिसका analysis किया गया
- s1 tape kernel रखने वाला UNIX INIT DECtape है
- s2 tape में distribution files का अधिकांश हिस्सा शामिल है
- s1 kernel अब तक पुष्टि किया गया सबसे शुरुआती machine-readable UNIX kernel है, जो V1 और V2 के बीच स्थित है
- बिना संशोधित unix-jun72 kernel केवल V1 a.out को support करता है
- s1 kernel V1 और V2 a.out दोनों को default रूप से चला सकता है
- user core size 8 KiB(4K words) से बढ़कर 16 KiB(8K words) हो गया
- syscall table V1 और unix-jun72 kernel जैसा ही है
- इसमें V2 syscall शामिल नहीं हैं
- syscall के लिहाज से यह V1 के करीब है, और core size व V2 binaries चलाने के लिहाज से इसमें V2 की विशेषताएं हैं, इसलिए इसे “V2 beta” माना जाता है
- सिस्टम में
ed,cc,a.outचलाना संभव है- example session में
hello world!program लिखा, compile किया और चलाया गया
- example session में
Boot constraints और RF disk image
- boot करने योग्य environment सीमित है
- केवल aap का PDP-11/20 emulator kernel boot करने में सफल रहा
- SIMH और Ersatz-11 login prompt तक पहुंचने से पहले रुक जाते हैं
- मूल installation process s1 से boot करने और फिर s2 से files restore करने का था
- aap emulator TC11 को support नहीं करता, इसलिए s1/s2 tapes से सीधे install करना मुश्किल है
- वास्तविक setup RF disk image को परोक्ष तरीके से बनाकर किया गया
- s1 tape की files extract करके खाली RF disk पर रखी गईं
- unix-jun72 kernel install करने के बाद SIMH में RF से boot किया गया
- s2 की बाकी files extract की गईं
- अंत में hex editor से unix-jun72 kernel को s1 kernel से replace किया गया
- बनाई गई RF image में केवल s1/s2 से आई files शामिल हैं
- इसे Research-UNIX-V2-Beta से प्राप्त किया जा सकता है
- s1s2unix_rf.img का direct download link दिया गया है
- यह image aap emulator में boot होती है, लेकिन SIMH में boot नहीं होती
- init(7) program RK को
/usrपर mount नहीं करता- यह व्यवहार संकेत देता है कि
/usrRF पर stored था
- यह व्यवहार संकेत देता है कि
1 टिप्पणियां
Hacker News की राय
Brian Kernighan के एक लेक्चर में सुना मज़ाक याद आता है। बात यह थी कि Ken Thompson ने सिर्फ 3 हफ्तों में text editor, B compiler और input/output file management का ढांचा बना दिया था, और वही आखिरकार UNIX बन गया
मज़ाक का सार यह था कि आजकल हम उस समय की तुलना में थोड़े कम efficient हैं
मुझे याद है कि उनकी पत्नी बच्चों को लेकर England चली गई थीं, इसलिए Ken अपनी मर्ज़ी से जो चाहें कर सकते थे। बेशक, पहला UNIX लिखने से पहले ही उनके पास काफी अनुभव भी था
जिस programmer के दिमाग में कोई project हो, उसके लिए यह एक बार आज़माने लायक है। 3 हफ्तों के लिए काम और परिवार से दूर किसी cabin जैसी जगह पर चले जाएँ, ज़रूरी किताबें और documents साथ लें और internet काट दें। हो सके तो feature phone इस्तेमाल करें, और देखें कि आप कितनी दूर तक जा पाते हैं
हालांकि project ऐसा होना चाहिए जिसके बारे में पहले से काफी सोच रखा हो और थोड़ा code भी लिख रखा हो। और सोचने पर लगता है कि external libraries पर बहुत कम निर्भर low-level project इस तरह के experiment के लिए सबसे सही रहेगा। अगर project third-party libraries के ढेर पर टिका हो, तो internet के बिना problem आने पर अटकना आसान है; Ken ने भी एक उपयुक्त project ही चुना था
यह एक घंटे का है और Thompson कई दिलचस्प किस्से बताते हैं। Kernighan यह काम बहुत अच्छे से करते हैं कि Thompson को बोलने देते हैं
जानना चाहता हूँ कि वे 9 से 5 वाली नौकरी की तरह काम करते थे, या फिर life के बाकी हिस्सों को किनारे रखकर इसे खत्म करने के लिए goblin mode में चले गए थे
लेकिन बचा हुआ 20% लंबी tail की तरह खिंचता रहता है, और अक्सर भारी मेहनत बनकर enthusiasm खत्म कर देता है
Spock भी दंग रह जाए, इतना रोचक है। Mac पर PDP-11 emulator compile करना सीखना चाहूँगा
उसके बाद 2.11BSD distribution install करने की कोशिश करना अच्छा रहेगा। इसकी documentation अच्छी है और यह शुरुआती Unix की बहुत सारी अफरातफरी गुजर जाने के बाद आया था। बाद में RT-11 के साथ खेलना भी बहुत मज़ेदार था, और मैंने सच में कुछ छोटी apps भी लिखीं
Apple Silicon पर भी अच्छे से चलता है
वाकई बढ़िया
लोगों को असली काम में ed इस्तेमाल करते पहली बार देखा
यह भी जिज्ञासा है कि और किसे ed से निपटना पड़ा था। हाल ही में मुझे एक बहुत पुराने system में login करना पड़ा जिसमें vi नहीं था, इसलिए मैंने खुद editor बनाया; अगर किसी को ancient systems के लिए editor चाहिए तो संपर्क कर सकता है। बहुत fancy नहीं है
इस software को बनाने वाले लोगों और researchers का काम हैरान करने वाला है, और असली engineers को सम्मान
details याद नहीं हैं, लेकिन नई file बनाते समय इसे
makeसे चलाते थे।make lovetype करने पर editor में जाने से पहलेnot warprint करता थाउसके बाद फिर कभी इस्तेमाल नहीं किया, और कुछ साल बाद जब Xenix इस्तेमाल कर पाया तब भी ed नहीं चलाया। vi कहीं ज़्यादा sane alternative था
किसी ने कहा था कि Android screen keyboard vi के लिए इतना भयानक है कि वह phone पर ed इस्तेमाल करता है, और बात सच लगी इसलिए मैंने आज़माया। phone पर ed, vi से थोड़ा ज्यादा खराब था, लेकिन दोनों अलग-अलग तरीकों से खराब हैं
HeliBoard के हिसाब से keyboard पर ed commands type करना vi से बहुत आसान था, लेकिन कुछ बार buffer state को लेकर confusion हुआ, जहाँ vi में confusion नहीं होता। practice से शायद बेहतर हो सकता था, लेकिन आखिरकार मैं vi पर लौट गया
ed चलता तो है, लेकिन modern standards से मज़ेदार नहीं है। फिर भी teletype output की तुलना में screen पर इस्तेमाल करना बहुत बड़ा बदलाव रहा होगा
साथ में, लगभग 1 MIP वाला 3B2 करीब 20 simultaneous users संभाल सकता था
मैं ed अक्सर इस्तेमाल करता हूँ, सच कहूँ तो कल भी किया। वजह यह थी कि screen clear किए बिना कुछ edit करना था
उससे पहले मैंने disk पर stored card images के लिए editor भी बनाया था, जो बहुत primitive था
मुझे कभी-कभी tuhs mailing list देखना पसंद है। Ken Thompson, Rob Pike जैसे नामों के साथ-साथ ऐसे कई कम-ज्ञात नाम देखना अच्छा लगता है, जो शुरुआती UNIX और computing scene में शामिल थे
यह software archaeology जैसा लगता है
social media पर बनने और consume होने वाली culture, या internet culture के कई दूसरे रूपों की तरह, यह पूरी तरह क्षणिक और disposable है। न कोई इतिहास, न कोई भविष्य
SaaS सिर्फ़ closed होने तक सीमित नहीं है; असल में अक्सर यह लगभग सचमुच एक ही installation से बंधा होता है। आप उसे archive करके कहीं और boot कर सकते होंगे, लेकिन मूल team के बिना सालों बाद ऐसा करना, modern PC के emulator में 1972 Unix boot करने से कहीं बड़ा काम होगा
उस Unix के पास manuals थे, और उसे कई distribution environments में install और run होने के लिए design किया गया था। SaaS ज़्यादा एक ऐसे गड़बड़झाले जैसा है जिसे सिर्फ़ उसके authors deploy कर सकते हैं—ज़रूरी नहीं कि यह इरादतन हो, बल्कि इसलिए कि उसे ऐसा बनाने के लिए कोई evolutionary pressure नहीं है
कई बार यह internally दूसरे SaaS के साथ भी उलझा होता है, इसलिए शायद आपको पूरे cloud की state को archive और restore करना पड़े, मानो proprietary software को वहीं live एक global computer पर edit किया जा रहा हो
क्या कोई बता सकता है कि उन file permissions का मतलब क्या है, या कोई reference दे सकता है? मोटा-मोटी अंदाज़ा है, लेकिन खोजने पर भी Unix v2 permissions के बारे में कुछ नहीं मिला
lsoutput परिचित लगती है, बसsdrwrwवाला हिस्सा नया हैhttps://gitlab.com/segaloco/v1man/-/blob/master/man1/stat.1?...
sdrwrwमें पहला columnsयाlहोता है, जिसका मतलब small या large है। दूसरा columnd,x,u,-होता है, जिसका मतलब directory, executable, setuid, या none है। बाकी owner और non-owner के read/write bits हैंhello world 1328 bytes का? bloated हो गया!
मुझे लगा था कि यह शुरुआती Rust compiler था, पर उससे जुड़ा material नहीं मिला। शायद Go रहा हो
edit: मिल गया। 'rust-lang/rust#13871: "hello world" contains Lovecraft quotes' https://github.com/rust-lang/rust/issues/13871
printfके साथ hello world को 1 KiB से कम में कर सकता है।writeके साथ hello world 170 bytes से कम हैशानदार। क्या हम उस time portal में जाकर alternate reality में रह सकते हैं?
computer से जोड़ने के लिए adapter लें, और जो *nix चाहिए उसे simh में चलाएँ। reference के तौर पर https://jstn.tumblr.com/post/8692501831 recommend करूँगा
इसे काम करने लायक बना लेने के बाद host machine को desk के पीछे या नज़र से दूर कहीं सरका दें, फिर आप 1980 जैसा जी सकते हैं
RF tapes को recover करके देखें, तो केवल plain text files देखने पर भी DOS या
.isofiles द्वारा इस्तेमाल न की गई buffer space दिखती है2.11 BSD distribution में भी basic tiling और window manager को native OS पर install करना पड़ता है। इसलिए KDE हो या X11 window manager, वही इस्तेमाल करना पड़ता है