elma DOS - Apple DOS

elma DOS
elma DOS.png
Merhaba Dünya programı çalıştıran Apple bilgisayar
geliştirici elma bilgisayar
Yazılmış toplantı
işletim sistemi ailesi elma DOS
çalışma durumu Durdurulan
Kaynak modeli Kapalı kaynak
İlk sürüm 1978 ; 43 yıl önce ( 1978 )
En son sürüm 3.3 / 1980 ; 41 yıl önce ( 1980 )
çekirdek türü monolitik çekirdek
Lisans Apple Yazılım Lisans Sözleşmesi

Elma DOS ailesi olan disk işletim sistemleri için Apple II serisinin ait mikrobilgisayarlar erken 1983 O yerini edildi aracılığıyla sonlarında 1978 den ProDOS 1983 Elma DOS üç ana sürümlerini vardır: DOS 3.1 DOS 3.2 ve DOS 3.3; bu üç sürümün her birini ikinci bir küçük "hata düzeltme" sürümü izledi, ancak yalnızca Apple DOS 3.2 durumunda bu küçük sürüm kendi sürüm numarasını, Apple DOS 3.2.1'i aldı. En iyi bilinen ve en çok kullanılan sürüm, 1980 ve 1983 sürümlerinde Apple DOS 3.3'tür. Apple DOS 3.1'in piyasaya sürülmesinden önce, Apple kullanıcıları veri depolama ve alma için ses kasetlerine güvenmek zorundaydı .

Sürüm geçmişi

Ne zaman Apple Computer tanıtıldı Apple II , Nisan 1977'de, yeni bilgisayar disk sürücüsü veya vardı disk işletim sistemini (DOS). Apple'ın kurucu ortağı Steve Wozniak , o yılın sonlarında Disk II denetleyicisini tasarlamasına ve bir DOS yazabileceğine inanmasına rağmen, kurucu ortağı Steve Jobs görevi dışarıdan temin etmeye karar verdi. Kullanılarak kabul şirket Dijital Araştırma 'ın CP / M , ama Wozniak kullanımı daha kolay olan bir işletim sistemi aradı. 10 Nisan 1978'de Apple, bir DOS yazmak ve 35 gün içinde teslim etmek için Shepardson Microsystems ile 13.000 dolarlık bir sözleşme imzaladı . Apple ayrıntılı özellikler sağladı ve ilk Apple çalışanı Randy Wigginton , işletim sistemini delikli kartlar ve bir mini bilgisayarla yazan Shepardson'dan Paul Laughton ile yakın çalıştı .

Apple DOS 1 veya 2 yoktu. 0.1'den 2.8'e kadar olan sürümler, geliştirme sırasında seri olarak numaralandırılmış revizyonlardı ve 1'den 28'e kadar olan sürümler olarak da adlandırılabilirdi. Sürüm 2.8'in yeniden adlandırılan bir sorunu olan Apple DOS 3.0, hatalar nedeniyle hiçbir zaman genel olarak yayınlanmadı. . Apple, 3.2 sürümüne kadar resmi bir belge yayınlamadı.

Apple DOS 3.1 , Apple II'nin piyasaya sürülmesinden bir yıldan biraz daha uzun bir süre sonra, Haziran 1978'de halka açık olarak piyasaya sürüldü ve herhangi bir Apple bilgisayarı için ilk disk tabanlı işletim sistemi oldu. Daha sonra, MASTER CREATEApple DOS ana (önyüklenebilir) diskler oluşturmak için kullanılan yardımcı programı aracılığıyla bir sorunu ele alan bir hata düzeltme sürümü geldi : Yerleşik INITkomut, yalnızca en az aynı miktarda makinelerde önyüklenebilen diskler oluşturdu. onları yaratan kişi olarak hafızanın MASTER CREATEHerhangi bir bellek yapılandırmasıyla Apple'da önyüklenen, kendi kendine yer değiştiren bir DOS sürümü içerir.

Apple DOS 3.2 , Apple II'nin halefi olan Apple II Plus'ta yerleşik olarak bulunan bilgisayar önyükleme yöntemlerindeki değişiklikleri yansıtmak için 1979'da piyasaya sürüldü. Yeni bellenim, otomatik olarak bir disk denetleyicisi bulan ve sistem açıldığında ondan önyüklenen bir otomatik başlatma özelliği içeriyordu - ona "Autostart ROM " adını kazandırdı . DOS 3.2.1 daha sonra Temmuz 1979'da bazı küçük hata düzeltmeleriyle piyasaya sürüldü.

Apple DOS 3.3 , 1980'de piyasaya sürüldü. Sürüm 3.2'nin çeşitli işlevlerini geliştirirken, aynı zamanda mevcut disket depolama alanında büyük kazançlar sağlar ; disk denetleyicisindeki daha yeni P5A/P6A PROM'ları , verilerin daha yüksek bir yoğunlukta okunmasını ve yazılmasını sağladı, böylece 13 sektör (3.25 KiB ) yerine,  disk izi başına 16 sektör (4 KiB) veri depolanabilir, bu da kapasiteyi artırır. disk tarafı başına 113,75 KB'den 140 KB'ye - 16 KB'si dosya sistemi ek yükü ve bir DOS kopyası tarafından kullanılır , DOS 3.3 biçimli bir diskte, kullanıcı programları ve verileri için 124 KB kalır. Ancak DOS 3.3 geriye dönük uyumlu değildir ; DOS 3.2 disklerini okuyamaz veya yazamaz. Bu sorunu çözmek için Apple Computer, Apple DOS 3.2 dosyalarını ve programlarını sürüm 3.3 disklerine geçirmek için "MUFFIN" adlı bir yardımcı program yayınladı. Apple hiçbir zaman diğer yöne kopyalamak için bir yardımcı program sunmadı. Apple DOS 3.3 dosyalarını sürüm 3.2 disklerine geri taşımak için birisi bir "NIFFUM" yardımcı programı yazdı. Dosyaları her iki formattan (ve sonunda ProDOS ) kopyalayabilen ticari yardımcı programlar da (Copy II Plus gibi) vardır. Sürüm 3.3, bilgisayarda bir dil kartı ( RAM genişletme) veya bellenim kartı varsa, Integer BASIC ve Applesoft BASIC arasında geçiş yapma yeteneğini de geliştirir .

Teknik detaylar

Apple DOS 3.1 diskleri iz başına 13 sektör verisi kullanır, her sektör 256 B'dir. Disk tarafı başına 35 iz kullanır ve kullanıcı diski ters çevirmedikçe disketin yalnızca bir tarafına erişebilir . Bu, kullanıcıya yan başına toplam 113,75 KB depolama kapasitesi verir, bunun yaklaşık 10 KB'si DOS'un kendisini ve disk dizinini depolamak için kullanılır ve kullanıcı programları için yaklaşık 100 KB kalır.

İşletim sisteminin ilk katmanına "okuma/yazma izleme sektörü" anlamına gelen RWTS adı verilir. Bu katman, iz arama, sektör okuma ve yazma ve disk biçimlendirme için alt programlardan oluşur . Bunun üzerine Dosya Yöneticisi adı verilen bir API oluşturulmuştur ve dosyaları açma, kapatma, okuma, yazma, silme, kilitleme (yani yazma koruması), kilidini açma (yani yazma-etkinleştirme) ve yeniden adlandırma ve dosyaları doğrulama işlevleri uygular. bir dosyanın yapısal bütünlüğü. Ayrıca disketteki dosyaları listelemek için bir katalog işlevi ve bir diski DOS ile kullanım için biçimlendiren, ilk üç parçada DOS'un bir kopyasını depolayan ve bir başlangıç ​​programını (genellikle HELLO olarak adlandırılır) depolayan bir "init" işlevi vardır. ) bu diskten başlatıldığında otomatik olarak başlatılır. Dosya Yöneticisi API'sinin üzerinde, makinenin BASIC yorumlayıcısına bağlanan ve tüm disk komutlarını engelleyen ana DOS rutinleri uygulanır. Sağladığı BLOAD , BSAVE ve BRUN , depolanması, yükleme ve ikili yürütülebilir çalıştırmak için. BASIC programları için YÜKLE, ÇALIŞTIR ve KAYDET sağlanır ve BASIC ve DOS komutlarından oluşan metin tabanlı toplu iş dosyalarını çalıştırmak için bir EXEC sağlanır . Son olarak, bir katalog listesinde harflerle tanımlanan dört tür dosya vardır:

  • I – Tamsayılı BASIC programları (düz metin değil, kompakt bir biçimde saklanır)
  • A – Applesoft BASIC programları (ayrıca paketlenmiş, yerden tasarruf sağlayan bir biçimde saklanır)
  • B – İkili dosyalar , yürütülebilir makine dili programları veya veri dosyaları
  • T – ASCII metin dosyaları (veya düz metin, paketlenmemiş toplu iş dosyaları)

Dört ek dosya türü vardır; Hiçbiri tam olarak desteklenmeyen "R", "S" ve ek bir "A" ve "B". DOS bu türleri yalnızca katalog listeleri için tanır ve bu tür dosyaları değiştirmenin doğrudan bir yolu yoktur. "R" türü, yeri değiştirilebilen ikili yürütülebilir dosyalar için bir miktar kullanım buldu. Birkaç program veri dosyaları olarak "S" tipini destekler.

$03D0–03FF 16 bölgesindeki bir çağrı vektörü tablosu , programların sistem belleğine yüklendiği her yerde DOS'u bulmasını sağlar. DOS TEMEL girdiklerini Örneğin, CLI çalışmasını durdurur, bu $ 03D0 yeri arayarak yeniden başlatıldı edilebilir 16 (976 10 Sistem Monitörü'nden BASIC dönmek için dolayısıyla geleneksel "3D0G" ( "3D0 go") komutu -) .

Önyükleyici

Apple DOS'u yükleme işlemi, her biri, denetimi zincirdeki bir sonraki programa geçmeden önce yükleme işlemini birkaç adım ileriye taşıyan çok küçük bir dizi program içerir.

  • Başlangıçta, Apple II ROM, disk önyüklemesini hiç desteklemiyordu. Açılışta Sistem Monitörü istemini görüntüler. Hem Monitor hem de Integer BASIC, yazdırmayı belirlenmiş bir yuvadaki bir yazıcı sürücüsüne yönlendirmek için komutlara sahiptir, bu nedenle diskten önyüklemenin geleneksel yolu, bilgisayara tipik olarak yuva 6'ya takılan disk arabirim kartına "yazdırmaya" başlaması için komut vermekti. , 6 Control-P (ML monitöründen) veya PR#6 (BASIC'den) komutunu kullanarak. Monitör veya BASIC, bir sonraki komut istemi karakterini yayınladığında, bilgisayar, disk kartındaki ROM rutinlerini "yazdırmak" için çağırır ve ardından önyükleme sırasına devam eder. (Benzer uçlara giriş yeniden yönlendirmesi kullanılabilir.) Alternatif olarak, kullanıcı, ML monitöründen, denetleyicinin önyükleme kodunu doğrudan çağırmak için C600G yazarak yuva numarasını yazabilir.
  • Apple II Plus piyasaya sürüldüğünde, önyüklenebilir bir genişletme kartı ROM'u için her bir genişletme yuvasını (yuva 7'den yuva 1'e doğru aşağı doğru çalışarak) tarama ve otomatik olarak çağırma özelliğini içeriyordu.
  • Genişletme kartı ROM önyükleme kodu, okuma/yazma kolunu iz sıfıra hareket ettirerek ve o izin sektör sıfırından 256 bayt okumaya çalışarak denetleyicinin 1. sürücüsünden önyüklemeye çalışır. (Okunabilir disk yoksa, sürücü, sağlanana ve sürücü kapısı kapanana kadar süresiz olarak döner.)
  • Sektör sıfır, bilgisayara ROM önyükleme kodunun bir kısmını kullanarak (işlemde sektör 0'ı yeniden okuma) sıfır izinin 0'dan 9'a kadar olan sektörlerini belleğe okumasını söyleyen küçük bir program içerir.
  • RWTS kodunun tamamı dahil olmak üzere 0 izinin 1-9 sektörlerindeki program, daha sonra DOS'un geri kalanını içeren 1 ve 2 parçalarını yüklemeye devam eder. Bir sistem ana diskinde, bilgisayarın RAM yapılandırmasını belirlemek ve DOS'u Apple II'nin ana belleğinin ($BFFF 16 ) 48 KB sınırına kadar sistem belleğine mümkün olduğunca yükseğe taşımak için kod da bulunur .
  • DOS belleğe yüklendikten sonra, DOS program kodunda belirtildiği gibi bir başlangıç ​​programını yüklemeye ve yürütmeye çalışır. Bu genellikle HELLO (veya başka bir ad) adlı bir BASIC dil programıdır, ancak DOS, yürütülebilir bir ikili dosya gibi başka tür programları başlatmak için değiştirilebilir. Ekrandaki sağ köşeli parantezin ( ] ) görünümü , kullanıcıya bir Applesoft BASIC başlangıç ​​programının yüklenmekte olduğunun bir göstergesidir, büyük sembolü ( > ) ise bir Tamsayı BASIC programının yüklenmekte olduğunu gösterir. (Bunlar, bu noktada başlatılmakta olan ilgili BASIC sürümleri için istemlerdir.)
  • Başlangıç ​​programı daha sonra çalışmaya başlar.

Tamsayı BASIC ve Applesoft BASIC desteği

Orijinal Apple II, orijinal olarak Apple BASIC ve daha sonra Integer BASIC olarak bilinen ROM'daki BASIC yorumlayıcısını içeriyordu . Bu dildeki değişkenler yalnızca -32,768 ile +32.767 ( 16 bit ikili değerler) arasında değişen tam sayıları işleyebilir ; kayan nokta sayıları desteklenmez. Apple , kayan noktalı sayıları işleyebilen Applesoft BASIC'i geliştirmesi için Microsoft'u görevlendirdi . Applesoft BASIC, Tamsayılı BASIC programlarını çalıştıramaz, bu da bazı kullanıcıların programa yükseltmeye direnmesine neden olur.

DOS 3.3, Applesoft BASIC, Apple II Plus'taki ROM'da standart olduğunda piyasaya sürüldü, bu nedenle Apple, onu iki BASIC yorumlayıcısı arasında geçişi desteklemek için tasarladı. Tamsayı BASIC, Apple II'lerin dil kartındaki (varsa) RAM'e yüklenir ve BASIC'ten FP veya INT yazarak kullanıcı her iki sürüm arasında geçiş yapabilir.

Reddetmek

1980'den sonra, Apple çabalarını kötü niyetli Apple III bilgisayarı ve SOS işletim sistemi üzerinde yoğunlaştırdığı için Apple DOS bir durgunluk durumuna girdi . Her ikisi de hala DOS 3.3 olarak adlandırılan, ancak bazı hata düzeltmeleri ve yeni Apple IIe modeli için daha iyi desteği olan iki Apple DOS sürümü daha 1983'ün başlarında ve ortalarında piyasaya sürüldü.

Üçüncü taraf yamaları olmadan, Apple DOS yalnızca 5,25 inçlik Disk II sürücüsünde çalışan disketleri okuyabilir ve sabit disk sürücüleri, sanal RAM sürücüleri veya 3,5 inçlik disket sürücüleri gibi diğer ortamlara erişemez . Apple DOS disklerinin yapısı (özellikle tek bir sektörün parçasıyla sınırlı olan serbest sektör haritası), hemen hemen tüm bölümlerin büyük bir yeniden yazılması olmadan sürücü başına bir seferde 400 KB'den fazla kullanılabilir olması mümkün olmayacak şekildedir. kodun; Apple DOS'un tamamen ProDOS ile değiştirildiği 1983'te Apple'ın bu DOS yinelemesini terk etmesinin ana nedeni budur .

ProDOS, 5,25 inç diskler için DOS 3.3'ün 16 sektörlü düşük düzeyli biçimini korur, ancak 32 MB'a kadar aygıtlar için uygun olan yeni bir yüksek düzeyli biçim sunar  ; bu, o dönemin sabit diskleri ve 3,5 inçlik disketler için uygun olmasını sağlar. II Plus'tan sonraki tüm Apple bilgisayarları hem DOS 3.3 hem de ProDOS'u çalıştırabilir; Plus, ProDOS'u kullanmak için bir "Dil Kartı" bellek genişletmesi gerektirir; e ve sonraki modellerde yerleşik Dil Kartı donanımı bulunur ve bu nedenle ProDOS'u doğrudan çalıştırabilir. ProDOS, Apple DOS disklerinden dosya kopyalamak için yazılım içerir. Bununla birlikte, ProDOS'un iyileştirmelerine ihtiyaç duymayan (ve çok daha yüksek bellek ayak izinden hoşlanmayan) birçok kişi, 1983'ten çok sonra Apple DOS'u veya klonlarından birini kullanmaya devam etti . Apple'ın her bir diskette önyüklenebilir bir işletim sistemi depolama kuralı disk, kullanıcının sahip olduğu işletim sistemi ne olursa olsun ticari yazılımın kullanılabileceği anlamına gelir. DOS.MASTER adlı bir program , kullanıcıların daha büyük bir ProDOS biriminde birden çok sanal DOS 3.3 bölümlerine sahip olmalarını sağlar ve bu, bir sabit diskle birçok disket tabanlı DOS programının kullanılmasına olanak tanır.

ProDOS çıktıktan kısa bir süre sonra Apple, üçüncü şahıslardan DOS 3.3'ü yeniden dağıtma iznini geri çekti, ancak bir şirkete, Syndicomm'a DOS 3.3'ü yeniden satması için özel bir lisans verdi.

Ticari oyunlar genellikle Apple DOS kullanmadı, bunun yerine performans için olduğu kadar kopya koruma amaçları için kendi özel disk rutinlerine sahipti.

Performans geliştirmeleri

DOS'un RWTS rutini, uygun serpiştirme ile iki devirde bir parça okuyabilir veya yazabilir. RWTS rutini henüz okunan sektörün kodunu çözerken (veya yazılacak bir sonrakini kodlarken) dönen diskin bir sektörü okuma/yazma kafasının altından geçer ve bu kaçırılan sektör bir sonraki gerekliyse, DOS'un beklemesi gerekir. Sektörün yeniden ortaya çıkması için neredeyse tüm disk devrimi. Buna "devir atmak" denir ve disk sistemlerinde iyi anlaşılmış bir performans darboğazı olur. Bunu önlemek için, bir DOS diskindeki sektörler serpiştirilmiş bir sırada düzenlenmiştir:

0 7 e 6 d 5 c 4 b 3 a 2 9 1 8 f

Daha sonra ProDOS sektörleri şu sırayla düzenledi:

0 8 1 9 2 a 3 b 4 c 5 d 6 e 7 f

Sektör 0 okunurken ve kod çözülürken sektör 8 geçer, böylece ihtiyaç duyulması muhtemel bir sonraki sektör olan sektör 1 beklemeden kullanılabilir olacaktır. Sektör 7 okunurken, sektör 8 mevcut olmadan önce iki gereksiz sektör, f ve 0 geçer ve sektör 15'i okurken, sürücü her zaman aynı iz üzerinde sektör 0 için ekstra bir devir beklemek zorunda kalacaktır. Bununla birlikte, çoğu durumda gerçekten ihtiyaç duyulan sektör 0, bir sonraki daha yüksek yolda olacaktır ve bu iz, yeni okunan sektörün kodunu çözmek ve sektör 0 gelmeden önce kafayı hareket ettirmek için gereken zamana izin vermek için sonuncuya göre düzenlenebilir. etrafında. Ortalama olarak, diskin iki devrinde tam bir iz okunabilir.

Ne yazık ki, erken DOS Dosya Yöneticisi, bir dosyadan okunan veya bir dosyaya yazılan baytları bir disk arabelleği ve ana bellek arasında birer birer kopyalayarak bu verimliliği alt üst etti, daha fazla zaman gerektiriyor ve dosyaları okurken veya yazarken DOS'un sürekli devirleri savurmasına neden oluyordu. Diskleri değiştirilmiş sektör ara yapraklarıyla biçimlendirmek için programlar erkenden kullanılabilir hale geldi; bu diskler, verileri kopyalamak için sektörler arasında DOS'a daha fazla zaman vererek sorunu düzeltir.

Daha sonra, Apple dışındaki programcılar, bir dosyanın çoğu kesimi için fazladan kopya oluşturmamak için Dosya Yöneticisi rutinlerini yeniden yazdılar; RWTS'ye, tam bir sektör aktarılacağı zaman, bir disk arabelleğinden ziyade doğrudan ana belleğe veya ana bellekten sektörleri okuması veya yazması talimatı verildi. Bu işlevi sağlamak için erken bir "yama", Call-APPLE'da yayınlandı . LOAD komutundaki üç ila beş kat hızlanmalar tipikti.

Bu işlevsellik kısa süre sonra ek özelliklerle birlikte Pronto-DOS, Diversi-DOS, Hyper-DOS ve David-DOS gibi ticari ürünlerde ortaya çıktı, ancak hiçbir zaman resmi bir Apple DOS sürümünde kullanılmadı. Ancak benzer işlevsellik, Apple'ın halefi işletim sistemi ProDOS tarafından kullanıldı. Elma IIgs'nin e özgü işletim sistemi GS / OS sonunda daha da verimli kullandı dosya olmak okuma ihtiyacı duyulursa okuma kafasının altına geçen oldu herhangi sektörünü okurdum tekniği "scatter'i okuma".

Kaynak kodu sürümü

2013'te, Apple II'nin piyasaya sürülmesinden 35 yıl sonra, orijinal Apple DOS kaynak kodu Bilgisayar Tarihi Müzesi tarafından web sitesinde yayınlandı. Orijinal yazar Paul Laughton tarafından bağışlanmıştır.

Referanslar

daha fazla okuma

  • Değer, Don; Lechner, Pieter (1981), Apple DOS Altında , Kaliteli Yazılım, ISBN 0-912985-00-3

Dış bağlantılar