2 puan yazan GN⁺ 2025-02-21 | 1 yorum | WhatsApp'ta paylaş
  • DMR teybindeki s1/s2 üzerinde adli analiz yapılarak çalışabilir bir UNIX sistemi oluşturuldu; s1, çekirdeği içeren UNIX INIT DECtape, s2 ise dağıtım dosyalarının çoğunu barındırıyor
  • s1 çekirdeği, bugüne kadar doğrulanmış makine tarafından okunabilir en eski UNIX çekirdeği; V1 ile V2 arasında yer alıyor ve hem V1 hem de V2 a.out dosyalarını çalıştırabiliyor
  • Kullanıcı core boyutu V2’deki gibi 16 KiB’ye (8K word) çıkarılmış, ancak syscall table V1 ve unix-jun72 çekirdeğiyle aynı olduğundan V2 syscall’ları dahil değil
  • Önyükleme koşulları hassas olduğundan yalnızca aap’nin PDP-11/20 emülatörü çekirdeği başlatmayı başardı; SIMH ve Ersatz-11 login prompt’tan önce duruyor
  • Yayımlanan RF disk imajı yalnızca s1/s2 dosyalarını içeriyor, aap emülatöründe önyüklenebiliyor ve init(7)’nin davranışına göre /usr büyük olasılıkla RF üzerinde bulunuyordu

s1/s2 teyplerinden geri yüklenen UNIX V2 “Beta”

  • DMR teypleri üzerinde yapılan adli analiz sonucunda, s1/s2 teyplerinden çalışan bir sistem oluşturulabildi
    • DMR tapes, analiz edilen teyp grubudur
    • s1 tape, çekirdeği içeren UNIX INIT DECtape’tir
    • s2 tape, dağıtım dosyalarının çoğunu içerir
  • s1 çekirdeği, bugüne kadar doğrulanmış en eski makine tarafından okunabilir UNIX çekirdeği olup V1 ile V2 arasında konumlanır
    • Değiştirilmemiş unix-jun72 çekirdeği yalnızca V1 a.out destekler
    • s1 çekirdeği, varsayılan olarak hem V1 hem de V2 a.out dosyalarını çalıştırabilir
    • Kullanıcı core boyutu 8 KiB’den (4K word) 16 KiB’ye (8K word) çıkarılmıştır
  • syscall table, V1 ve unix-jun72 çekirdeğiyle aynıdır
    • V2 syscall’larını içermez
    • syscall açısından V1’e yakındır; core boyutu ve V2 binary çalıştırma açısından V2 özellikleri taşıdığı için “V2 beta” olarak değerlendirilmektedir
  • Sistemde ed, cc, a.out çalıştırılabilir
    • Örnek oturumda bir hello world! programı yazılıp derlenmiş ve çalıştırılmıştır

Önyükleme kısıtları ve RF disk imajı

  • Önyüklenebilir ortam sınırlıdır
    • Yalnızca aap’nin PDP-11/20 emulator çekirdeği başlatmayı başarmıştır
    • SIMH ve Ersatz-11, login prompt’a ulaşmadan önce durur
  • Orijinal kurulum süreci, s1’den önyükleme yapıp ardından s2’den dosyaları geri yükleme biçimindedir
    • aap emülatörü TC11’i desteklemediği için s1/s2 teyplerinden doğrudan kurulum yapmak zordur
  • Gerçek yapılandırma, RF disk imajını dolaylı yoldan oluşturma yöntemiyle gerçekleştirilmiştir
    • s1 tape’teki dosyalar çıkarılıp boş bir RF diske yerleştirilmiştir
    • unix-jun72 çekirdeği kurulduktan sonra SIMH’de RF üzerinden önyükleme yapılmıştır
    • s2’deki kalan dosyalar çıkarılmıştır
    • Son aşamada unix-jun72 çekirdeği bir hex editor ile s1 çekirdeğiyle değiştirilmiştir
  • Oluşturulan RF imajı yalnızca s1/s2’den gelen dosyaları içerir
    • Research-UNIX-V2-Beta üzerinden indirilebilir
    • s1s2unix_rf.img için doğrudan indirme bağlantısı sağlanmıştır
    • Bu imaj aap emülatöründe önyüklenir, ancak SIMH’de önyüklenmez
  • init(7) programı RK’yi /usr üzerine mount etmez
    • Bu davranış, /usr’ın RF üzerinde saklandığını düşündürür

1 yorum

 
GN⁺ 2025-02-21
Hacker News yorumları
  • Brian Kernighan’ın bir konuşmasında duyduğum bir şaka aklıma geldi. Ken Thompson’ın 3 haftada bir metin editörü, B derleyicisi ve giriş/çıkış dosya yönetimi iskeleti yaptığı, bunun da sonunda UNIX’e dönüştüğü anlatılıyordu.
    Şakanın özü, bugünlerde bizim o zamana göre biraz daha az verimli olduğumuzdu.

    • Ken kesinlikle en üst düzey bir programcı ve böyle biri 3 hafta boyunca odaklanabilirse gerçekten çok şey yapabilir.
      Hatırladığım kadarıyla eşi çocukları alıp İngiltere’ye gitmişti, böylece Ken istediğini yapmakta özgürdü. Elbette ilk UNIX’i yazmadan önce de zaten çok deneyimliydi.
      Aklında bir proje olan bir programcı için denenmeye değer. 3 hafta boyunca kulübe gibi bir yerde işten ve aileden uzaklaşıp, gerekli kitapları ve belgeleri yanına alıp interneti kesmek. Mümkünse tuşlu telefon kullanıp ne kadar ilerleyebileceğini görmek.
      Ancak bu, üzerinde zaten yeterince düşünülmüş ve biraz kodu da yazılmış bir proje olmalı. Biraz daha düşününce, dış kütüphanelere neredeyse hiç bağımlı olmayan düşük seviyeli bir proje böyle bir deney için en uygunu. Üçüncü taraf kütüphane yığınlarına yaslanan bir projede internet yokken sorun çıkarsa kolayca tıkanırsın; Ken de uygun bir proje seçmiş sayılır.
    • Röportaj burada: https://www.youtube.com/watch?v=EY6q5dv_B-o
      Bir saatlik ve Thompson birçok eğlenceli hikâye anlatıyor. Kernighan da Thompson’ın konuşmasına alan açma rolünü harika yerine getiriyor.
    • Bunun güncel bir versiyonu olarak, Ken Thompson’ın Rob Pike ve Robert Griesemer ile birlikte C / C++ derlemesinin bitmesini beklerken Go’yu tasarladığı şakası var.
    • İlk UNIX geliştiricilerinin bu düzeyde bir üretkenliğe nasıl ulaştığını merak ediyorum.
      9’dan 5’e çalışır gibi mi yaptılar, yoksa hayatlarının diğer kısımlarını bir kenara bırakıp bitirmek için goblin moduna mı girdiler bilmek isterdim.
    • Bir projenin özelliklerinin ilk %80’i gerçekten hızlı ilerleyebilir. Özellikle ilginçse ve motivasyon yüksekse daha da öyle.
      Ama kalan %20 uzun bir kuyruk gibi uzar ve çoğu zaman motivasyonu kıran muazzam bir eziyete dönüşür.
  • Spock’ın bile hayran kalacağı kadar ilginç. Mac’te PDP-11 emülatörü derlemeyi öğrenmek isterim.

    • Emülatörü derlemek epey kolay. simh’e bak. Taşınabilirliği iyi, neredeyse hemen çalışacaktır.
      Sonra 2.11BSD dağıtımını kurmayı denemek iyi olur. Belgeleri iyi ve erken dönem Unix’in birçok karmaşasından sonra çıkmış bir şey. Ardından RT-11 ile oynamak da çok eğlenceliydi; hatta birkaç küçük uygulama da yazdım.
    • https://opensimh.org/
      Apple Silicon’da da iyi çalışıyor.
    • Metal dedektörüyle dini bir kalıntı bulmuşsun gibi bir his.
    • Fazla kolay! NAND kapılarıyla kendim bir tane yapacağım.
  • Gerçekten harika.
    İnsanların gerçek işlerde ed kullandığını ilk kez görüyorum.
    Ayrıca başka kimlerin ed ile uğraşmak zorunda kaldığını da merak ediyorum. Yakın zamanda vi olmayan çok eski bir sisteme bağlanmam gerektiği için kendi editörümü yaptım; eski sistemler için editöre ihtiyacı olan varsa iletişime geçebilir. Çok süslü değil.
    Bu yazılımı yapan insanların ve araştırmacıların çalışması şaşırtıcı; gerçek mühendislere saygı duyuyorum.

    • 1960’larda Honeywell zaman paylaşımlı sisteminde Teletype ASR-33 üzerinden ed benzeri bir editör kullandığımı hatırlıyorum.
      Ayrıntıları hatırlamıyorum ama yeni dosya oluştururken make ile çalıştırıyorduk. make love yazınca editöre girmeden önce not war çıktısı veriyordu.
    • ed değil ama kesinlikle ondan etkilenmiş bir şey olarak, MS-DOS 3.3’teki edlin ile daktilo okulu sınavına girecek kadar yaşlıyım.
      Ondan sonra bir daha kullanmadım; birkaç yıl sonra Xenix kullanabilir hale geldiğimde de ed kullanmadım. vi çok daha aklı başında bir alternatifti.
    • Ağustosta telefonumdaki Termux’ta ed kullanarak http://canonical.org/~kragen/sw/dev3/justhash.c dosyasını yazdım.
      Biri Android ekran klavyesinin vi için çok berbat olduğundan telefonda ed kullandığını söylemişti; gerçekten doğru olduğu için denedim. Telefonda ed, vi’dan biraz daha kötüydü ama ikisi farklı şekillerde kötü.
      HeliBoard’a göre klavyeden ed komutları girmek vi’dan çok daha kolaydı; ama birkaç kez vi’da kafa karıştırmayacak tampon durumları yüzünden kafam karıştı. Pratikle daha iyi olabilir ama sonunda vi’a geri döndüm.
    • 90’ların ortasında bir AT&T 3B2’m vardı; üzerinde sadece ed vardı ve DEC VT-102 terminaliyle kullanıyordum.
      ed çalışıyor ama modern ölçütlere göre eğlenceli değil. Yine de teletype çıktısıyla karşılaştırıldığında ekranda kullanmak muazzam gelmiş olmalı.
      Bu arada yaklaşık 1 MIP’lik 3B2, aynı anda yaklaşık 20 kullanıcıyı kaldırabiliyordu.
    • İlk danışmanlık işlerimden biri Coherent sistemi için bir ed öğreticisi yazmaktı.
      ed’i sık kullanırım; hatta dün de kullandım. Çünkü ekranı temizlemeden bir şey düzenlemem gerekiyordu.
      Ondan önce de diskte saklanan kart imajları için bir editör yapmıştım; çok ilkel bir şeydi.
  • Ara sıra tuhs posta listesini karıştırmayı seviyorum. Ken Thompson, Rob Pike gibi adları ve daha az bilinse de erken dönem UNIX ile bilişim dünyasının içinde yer almış birçok ismi görmek harika.

  • Yazılım arkeolojisi gibi

    • SaaS çağından hoşlanmamamın birçok nedeninden biri de böyle bir şeyin bir daha asla yaşanmayacak olması. 2075'te birinin araştırma ya da nostalji için eski bir Notion'ı veya Figma'yı başlatması söz konusu olmayacak.
      Sosyal medyada üretilip tüketilen kültür ya da internet kültürünün birçok başka görünümü gibi tamamen geçici ve tek kullanımlık. Tarihi de yok, geleceği de yok.
      SaaS yalnızca kapalı olmakla kalmıyor; çoğu durumda fiilen, kelimenin tam anlamıyla tek bir kuruluma bağlı oluyor. Arşivleyip başka bir yerde başlatmak mümkün olabilir, ama özgün ekip olmadan yıllar sonra bunu yapmak, modern bir PC'deki emülatörde 1972 Unix'i başlatmaktan çok daha büyük bir iş olur.
      O Unix'in bir kılavuzu vardı ve birden fazla dağıtım ortamına kurulup çalışacak şekilde tasarlanmıştı. SaaS ise daha çok yalnızca yazarı tarafından dağıtılabilen bir karmaya benziyor; bu mutlaka niyetten değil, onu böyle yapmaya zorlayan evrimsel güçler olmadığı için.
      İçeride başka SaaS'lerle de sık sık iç içe geçtiğinden, tescilli yazılımın yerinde düzenlendiği tek bir küresel bilgisayar gibi bulutun tüm durumunu arşivleyip geri yüklemek gerekebilir.
    • Kulağa geldiği kadar havalı bir şey değil
  • Şu dosya izinlerinin ne anlama geldiğine dair kaynak verebilecek biri var mı? Kabaca tahmin edebiliyorum ama arasam da Unix v2 izinleri hakkında bir şey bulamadım.
    ls çıktısı tanıdık görünüyor, ama sdrwrw kısmı yabancı.

    • E-posta listesi dizisinde birinin çıkardığı kılavuz sayfasına bağlantı verilmiş.
      https://gitlab.com/segaloco/v1man/-/blob/master/man1/stat.1?...
      sdrwrw içinde ilk sütun s veya l olup small ya da large anlamına geliyor. İkinci sütun d, x, u, -; sırasıyla dizin, çalıştırılabilir, setuid, yok anlamında. Geri kalanlar sahip ve sahip olmayanlar için okuma/yazma bitleri.
  • hello world 1328 bayt mı? Şişmiş!

    • Eskiden şaka olsun diye tüm ikili dosyalara uzun bir şiir koyan derleyiciyi hatırlattı. Magic number'ı duymuşsunuzdur; bunda ise magic sone varmış demek.
      Erken dönem Rust derleyicisiydi diye düşünüyordum ama ilgili kaynak bulamadım. Go da olabilir.
      Düzenleme: Buldum. 'rust-lang/rust#13871: "hello world" contains Lovecraft quotes' https://github.com/rust-lang/rust/issues/13871
    • Benim https://github.com/pts/minilibc686 projem i386'da printf ile hello world'ü 1 KiB'nin altında yapabiliyor. write ile hello world 170 baytın altında.
    • Unix'imi ayarlama zamanı!
  • Harika. Şu zaman portalına girip alternatif bir gerçeklikte yaşayabilir miyim?

    • Kurşunlu benzinin kullanıldığı, sigara dumanının her yerde olağan sayıldığı, asbestin akla gelebilecek her şeyde kullanıldığı dönem mi? Büyüleyici bir on yıl ama yaşam kalitesi büyük olasılıkla o zamandan beri muazzam arttı.
    • Mümkün. Gerçek bir VT terminali satın alman yeterli. Örneğin https://www.ebay.com/itm/176698465415?_skw=vt+terminal&itmme... gibi.
      Bilgisayara bağlamak için bir adaptör edinip istediğin *nix'i simh üzerinde çalıştırırsın. Kaynak olarak https://jstn.tumblr.com/post/8692501831 öneririm.
      Çalışır hâle getirdikten sonra host makineyi masanın arkasına ya da görünmeyen bir yere itersen 1980'deymiş gibi yaşayabilirsin.
  • RF teybi kurtarmayı denersen, yalnızca basit metin dosyalarına bakmak bile DOS'un veya .iso dosyalarının kullanmadığı tampon alanını ortaya çıkarır.
    2.11 BSD dağıtımında da varsayılan döşeme ve pencere yöneticisi native OS'e kurulmalı. Bu yüzden KDE ya da X11 pencere yöneticisi kullanırsın.