OS/8 - OS/8

OS/8
geliştirici Dijital Ekipman Şirketi
çalışma durumu Durdurulan
Kaynak modeli Kapalı kaynak
İlk sürüm 1971 ; 50 yıl önce ( 1971 )
Platformlar PDP-8
Varsayılan kullanıcı arayüzü Kısa Komut Dili (CCL)
( Komut satırı arayüzü )
Lisans tescilli
Öncesinde PS/8

OS / 8 birincil oldu işletim sistemi üzerinde kullanılan Digital Equipment Corporation, 'ın PDP-8 mini bilgisayar .

OS/8 öncesi daha önceki PDP-8 işletim sistemleri vardı:

  • RL Monitör, MS/8 olarak da anılır .
  • P?S/8, yalnızca 4K bellek gerektirir.
  • PDP-8 4K Disk Monitör Sistemi
  • PS/8 ("Programlama Sistemi/8"), 8K gerektirir. 1971'de OS/8 olan şey budur.

Diğer/ilgili DEC işletim sistemleri şunlardı: OS/78 , OS/278, OS/12. İkincisi, OS/8'in neredeyse aynı versiyonudur ve Digital'in PDP-12 bilgisayarıyla birlikte kullanılmıştır .

SIMH aracılığıyla taklit edilebilen, ticari olmayan amaçlar için dijital olarak yayınlanan OS/8 görüntüleri .

genel bakış

OS/8, üzerinde çalıştığı PDP-8 bilgisayarlarıyla karmaşıklık ve ölçek bakımından orantılı olan basit bir işletim ortamı sağladı. G/Ç, yoklamalı (kesme odaklı olmayan) teknikleri kullanan bir dizi sağlanan sürücü aracılığıyla desteklendi. Aygıt sürücülerinin, 128 adet 12 bit sözcükten oluşan yalnızca bir veya iki bellek sayfasını işgal edebildikleri ve 0 alanında herhangi bir sayfada çalıştırılabildikleri için akıllıca yazılması gerekiyordu. Bu genellikle, küçük negatif sabitler için OPR komutu (7XXX).

OS/8'in bellekte yerleşik "ayak izi" yalnızca 256 kelimeydi; Alan 0'ın en üstünde 128 kelime ve Alan 1'in en üstünde 128 kelime. İşletim sisteminin geri kalanı (USR, "Kullanıcı Hizmeti Rutinleri") şeffaf bir şekilde belleğe girip çıktı (kullanıcının programıyla ilgili olarak) ihyaç olduğu gibi.

Kısa Komut Dili

OS/8'in ilk sürümlerinde çok az temel komut içeren çok temel bir komut satırı yorumlayıcısı vardı : GET, SAVE, RUN, ASSIGN, DEASSIGN ve ODT . Sürüm 3 ile birlikte , çok daha fazla komut uygulayan CCL ( Özlü Komut Dili ) adlı daha karmaşık bir katman eklediler . OS/8'in CCL'si, Digital'in TOPS-10 çalıştıran PDP-10 sistemlerinde bulunan CCL'den sonra doğrudan modellendi . Aslında, OS/8 yazılım sisteminin çoğu, TOPS-10 işletim ortamını olabildiğince yakından taklit etmek için kasıtlı olarak tasarlanmıştır. (CCL komut dili daha sonra RT-11 , RSX-11 ve RSTS/E çalıştıran PDP-11 bilgisayarlarda kullanıldı ve her üç mimaride de benzer bir kullanıcı işletim ortamı sağladı: PDP-8s, PDP-10s ve PDP-11s .)

Temel işletim sistemi ve CCL, çoğu modern komut dillerinde, hatta MS-DOS , Windows veya Unix benzeri işletim sistemlerinde bile bulunmayan, oldukça karmaşık birçok komut uygulamıştır .

Örneğin, COMPILE komutu belirli bir kaynak dosya için doğru derleyiciyi otomatik olarak bulur ve derleme/birleştirme/bağlama döngüsünü başlatır.

ASSIGN ve DEASSIGN komutları, bir programda fiziksel adlar (MS-DOS'ta gerektiği gibi) yerine mantıksal aygıt adlarının kullanılmasına izin verdi. Örneğin, programınız FLOP:AAA.TXT aygıtına yazabilir ve önce bir "FLOP ASSIGN: RXA2:" yaptıysanız, dosya RXA2 fiziksel aygıtında (ikinci disket sürücüsü) oluşturulur. VAX / VMS ve Commodore Amiga'nın işletim sistemi AmigaOS (ve Tripos çevresinde oluşturulmuş diğer işletim sistemleri ) bu çok esnek özelliği önemli ölçüde kullandı.

SET komutu, sistem ikili kodundaki konumları yamalamanın kaba yöntemiyle de olsa, birçok sistem seçeneğini ayarlama yeteneğine sahipti. Bunlardan biri, OS-78 altında bir komut, SET SYS OS8 idi ve OS-78'in parçası olmayan MONITOR komutlarını yeniden etkinleştirdi.

BUILD komutu , genellikle işletim sistemini yeniden başlatmaya gerek kalmadan aygıt sürücüleri ekleyerek işletim sistemini anında yeniden yapılandırabilir .

İşletim sistemi bir sabit diskten önyükleme yapabilir ve komut istemini yarım saniyeden kısa sürede sunabilir .

OS/8 Dosya Sistemi

OS/8, aşağıdakiler de dahil olmak üzere çeşitli yığın depolama aygıtlarında basit, düz bir dosya sistemini destekledi :

Dosya adları PDP-8 "F" bir temsil FFFFFF.XX şeklini aldı büyük harf , alfanümerik dosya ve "X" karakteri büyük harf, uzantı (dosya tipi) alfasayısal karakteri temsil eder.

  • .PA : Assembly dili
  • .SV : kaydedilmiş çekirdek görüntüler (yürütülebilir programlar)
  • .FT : Fortran kaynak dosyaları
  • .DA : Veri dosyaları

Herhangi bir dosyanın içeriği, tek bir "kapsam" içinde bitişik olarak saklandı. PIP, dosya sistemini sıkıştırma ("sıkma") seçeneği içeriyordu, böylece tüm ayrılmamış alan diskin sonunda tek bir alana taşınmıştı. Bu, SQuish CCL komutu tarafından çağrılabilir , tıpkı MUNG'nin bir TECO makrosunu çalıştırmak için kullanılabilmesi gibi .

OS/8 birimlerinin çok sınırlı bir maksimum depolama boyutu vardı (256 12 bit sözcükten oluşan 4096 blok) ve RK05 (2.4MB) hareketli kafa diski bu boyutu aştı: "1.6 milyon sözcük depolama alanı." Bu nedenle, RK05 kartuşları iki bölüme ayrıldı. Örneğin, bir sistemdeki ilk RK05, hem RKA0: (SY:) hem de RKB0: olarak bilinir. Bu ayrımın genellikle "üst yüzey" ve "alt yüzey" anlamına geldiği düşünülürdü, ancak bu yanlıştı; aslında "dış silindirler" ve "iç silindirler" idi.

ASCII dosyaları

ASCII dosyaları, 12 bitlik kelime çifti başına 3 adet 8 bit karakter olarak saklandı: 1 ve 2 numaralı kelimelerin sağındaki Karakter 1 ve 2, üçüncü karakterin 0-3 ve 4-7 bitleri en soldaki bitlerde saklanıyor. kelime çifti.

  • KELİME 1: c0 c1 c2 c3 | a0 a1 a2 a3 a4 a5 a6 a7
  • KELİME 2: c4 c5 c6 c7 | b0 b1 b2 b3 b4 b5 b6 b7
    ASCII dosyaları bir CTRL/Z (ASCII 232) ile biter.

OS/8 tarih formatı

OS/8, PDP-8'in 12 bitlik sözcüklerini aşağıdakilere göre depolamak için ayırdı:

  • ay için 4 bit
  • içindeki tarih için 5 bit
  • Yıl için 3 bit.

Y3B! COS-310 geliştirildiğinde bu fark edildi.

OS/8 CUSP'ler (Yardımcı Programlar)

OS/8 ile birlikte sağlanan CUSP'ler (Yaygın Kullanılan Sistem Programları, yani yardımcı programlar) şunları içerir:

  • BUILD (yapılandırılmış bir OS/8 sistemini yığın depolamaya yükleme programı)
  • DIR (dizin listeleme programı)
  • EDIT (Çizgi odaklı bir editör)
  • MACREL (PAL'den farklı olarak makroları uygulayan yer değiştiren bir montajcı. DEC'in Küçük Sistemler Grubu'ndan Stanley Rabinowitz tarafından yazıldı. Stan'in ofisinde "MACREL BİR BALIKTIR" yazan bir balığın ASCII çizimi resmi vardı)
  • FLAP (RALF'den türetilen mutlak bir montajcı)
  • FORTRAN -II.
  • FOTP (Dosya Yönelimli Transfer Programı, PIP'ye alternatif)
  • PAL (birleştirici)
  • PIP (Dosyaları kopyalamak için kullanılan Çevre Birimi Değişim Programı)
  • PIP10 (PDP-10 DECtapes'ten dosya kopyalamak için kullanılan bir PIP sürümü)
  • RALF (FPP için başka bir yer değiştirme montajcısı)
  • TECO (Metin Editörü ve Düzeltici, çok daha gelişmiş bir editör). MUNG komutu TECO makrolarını çalıştırdı.
  • Komut satırı yorumlayıcısı olan CCL, kaynak biçimde sağlanmıştır ve kullanıcı tarafından genişletilebilir.

Programlama dilleri

TEMEL

Seçenekler olarak tek kullanıcılı bir BASIC ve BASIC'in iki çok kullanıcılı sürümü mevcuttu.

Tek kullanıcılı BASIC, dilin tam işlevselliğini sağlamak için birkaç bindirme kullandı; OS/8 bir DECtape'den başlatıldığında, BASIC'in banttan okunması gerektiğinden bindirmeleri değiştirmek için her gerektiğinde çok belirgin bir gecikme meydana geldi.

BASIC'in (EDU20 ve EDU25) çok kullanıcılı sürümleri, yalnızca blok değiştirilebilir aygıtları (DECtape veya disk) destekleyip desteklemediklerine göre farklılık gösteriyordu. Maliyet kısıtlamaları nedeniyle, birçok PDP-8, tek yığın depolama G/Ç cihazı olarak kağıt şerit okuyucuları deldi. EDU20 kağıt banttan yüklenir ve makinede varsa kağıt bant yazıcısına çıktı verebilir, oysa EDU25 bir dosya sisteminin yapısını anlar, DECtape veya diskten yüklenebilir ve DECtape veya diskte dosyalar oluşturabilir. Her ikisi de, bağlı terminaller arasında sıralı bir işlem yapan ilkel bir görev zamanlayıcı kullanarak aynı anda birden fazla BASIC programını çalıştırabilir. Bellek her zaman çok dardı çünkü PDP-8, birkaç yıl sonra ortaya çıkan RAM teknolojisine kıyasla son derece pahalı olan çekirdek belleği kullanıyordu. EDU20, yalnızca 8K'lık 12 bitlik bir sözcükle, daha fazla bellek önerilmesine rağmen aynı anda 4 terminali destekleyebilir. Kod bir disk aygıt sürücüsü ve bir dosya sistemi işleyicisi içerdiğinden, EDU25 ek bir 4K bellek bankası (en az 12K için) gerektiriyordu. Çalışırken, EDU20 ve EDU25, herhangi bir OS/8 sistem çağrısı kullanmayan bağımsız programlardı. OS/8 komut yorumlayıcısından çağrıldıktan hemen sonra, OS/8'in yerleşik bölümünün tamamının üzerine yazarlardı - tüm 256 kelime. Başlatıldığında, EDU25 belleğin içeriğini DECtape'e veya diske kaydeder ve çıkıldığında geri yükler. Ancak EDU20, blok değiştirilebilir herhangi bir cihaz olmadan donanım yapılandırmalarını hedef aldığı için bunu yapamadı.

FORTRAN

Ücretsiz olarak kullanılabilen bir FORTRAN II derleyicisine ek olarak , ek ücret karşılığında oldukça eksiksiz bir FORTRAN IV derleyicisi de vardı. Bu derleyici, temelde ayrı bir CPU olan ve yalnızca PDP-8 CPU ile belleği paylaşan isteğe bağlı FPP-8 kayan nokta işlemcisi için kod üretti. FPP-8 seçeneğini yüklediyseniz, FORTRAN çalışma zamanı kodu bunu algılar ve ana program kodunu çalıştırmak için FPP-8'i kullanır ve PDP-8 CPU bir G/Ç işlemcisi olarak çalışır. FPP-8'e sahip değilseniz, çalışma zamanı kodu bunun yerine PDP-8 CPU'da çalışan bir FPP-8 yorumlayıcısını çağırır, böylece program çalışmaya devam eder, ancak önemli ölçüde azaltılmış hızda.

Sürüm 1'deki bu FORTRAN IV derleyicisinde, DO döngülerinin yanlış sayılması gibi ilginç bir hata vardı: DO döngüleri 1,2,3,5,6,7,… (4'ü atlayarak) sayardı. Bunu düzeltmek için hızlı bir yama yayınlandı.

Ayrıca bakınız

Referanslar

Dış bağlantılar