Apple DOS - Apple DOS

Apple DOS
Apple DOS.png
Komputer Apple z programem Hello World
Deweloper komputer Apple
Napisane w montaż
Rodzina systemów operacyjnych Apple DOS
Stan pracy Wycofane
Model źródłowy Zamknięte źródło
Pierwsze wydanie 1978 ; 43 lata temu ( 1978 )
Najnowsze wydanie 3.3/80 ; 41 lat temu ( 1980 )
Typ jądra Jądro monolityczne
Licencja Umowa licencyjna oprogramowania Apple

Apple DOS jest rodziną systemów operacyjnych na dysku dla Apple II z mikrokomputerów od końca 1978 do początku 1983 roku został zastąpiony przez ProDOS w 1983. Apple DOS ma trzy główne wersje: DOS 3.1, DOS 3.2 i DOS 3.3; po każdym z tych trzech wydań następowało drugie, pomniejsze wydanie „naprawiające błędy”, ale tylko w przypadku Apple DOS 3.2 to wydanie drugorzędne otrzymało swój własny numer wersji, Apple DOS 3.2.1. Najbardziej znaną i najczęściej używaną wersją jest Apple DOS 3.3 w wydaniach z 1980 i 1983 roku. Przed wydaniem Apple DOS 3.1 użytkownicy Apple musieli polegać na kasetach magnetofonowych do przechowywania i wyszukiwania danych.

Historia wersji

Kiedy Apple Computer wprowadził Apple II w kwietniu 1977, nowy komputer nie miał dysku ani systemu operacyjnego dysku (DOS). Chociaż współzałożyciel Apple Steve Wozniak zaprojektował kontroler Disk II pod koniec tego roku i wierzył, że mógł napisać DOS, jego współzałożyciel Steve Jobs postanowił zlecić to zadanie. Firma uważane za pomocą Digital Research „s CP / M , ale Wozniak szukał systemu operacyjnego, który był łatwiejszy w obsłudze. 10 kwietnia 1978 roku Apple podpisał kontrakt na 13 000 dolarów z Shepardson Microsystems na napisanie systemu DOS i dostarczenie go w ciągu 35 dni. Apple dostarczyło szczegółowe specyfikacje, a wczesny pracownik Apple, Randy Wigginton, ściśle współpracował z Paulem Laughtonem z firmy Shepardson, który pisał system operacyjny z kartami perforowanymi i minikomputerem .

Nie było Apple DOS 1 ani 2. Wersje od 0.1 do 2.8 były seryjnie wyliczane podczas opracowywania, które równie dobrze mogłyby być nazwane kompilacjami od 1 do 28. Apple DOS 3.0, wydanie o zmienionej nazwie wersji 2.8, nigdy nie zostało opublikowane z powodu błędów . Apple nie opublikowało oficjalnej dokumentacji do wydania 3.2.

Apple DOS 3.1 został publicznie wydany w czerwcu 1978, nieco ponad rok po wprowadzeniu Apple II, stając się pierwszym systemem operacyjnym opartym na dyskach dla każdego komputera Apple. Wydanie z poprawką błędów pojawiło się później, rozwiązując problem za pomocą MASTER CREATEnarzędzia, które zostało użyte do tworzenia dysków głównych (startowych) Apple DOS: Wbudowane INITpolecenie tworzyło dyski, które mogły być uruchamiane tylko na maszynach z co najmniej taką samą ilością pamięci jako tej, która je stworzyła. MASTER CREATEzawiera samoczynnie przemieszczającą się wersję systemu DOS, która uruchamia się na urządzeniach Apple z dowolną konfiguracją pamięci.

Apple DOS 3.2 został wydany w 1979 roku, aby odzwierciedlić zmiany w metodach uruchamiania komputera, które zostały wbudowane w następcę Apple II, Apple II Plus. Nowe oprogramowanie układowe zawierało funkcję automatycznego uruchamiania, która automatycznie odnajdywała kontroler dysku i uruchamiała się z niego, gdy system był zasilany — zyskując mu nazwę „Autostart ROM ”. DOS 3.2.1 został wydany w lipcu 1979 roku z kilkoma drobnymi poprawkami.

Apple DOS 3.3 został wydany w 1980 roku. Ulepsza różne funkcje wersji 3.2, jednocześnie pozwalając na znaczne zwiększenie dostępnej pamięci dyskietek ; nowsze PROM-y P5A/P6A w kontrolerze dysku umożliwiły odczyt i zapis danych z większą gęstością, dzięki czemu zamiast 13 sektorów (3,25  KiB ) można zapisać 16 sektorów (4 KiB) danych na ścieżce dysku, zwiększając pojemność od 113,75 KB do 140 KB na stronę dysku – z czego 16 KB jest wykorzystywane przez obciążenie systemu plików i kopię systemu DOS, na dysku w formacie DOS 3.3, pozostawiając 124 KB na programy i dane użytkownika. DOS 3.3 nie jest jednak kompatybilny wstecz ; nie może czytać ani zapisywać dysków DOS 3.2. Aby rozwiązać ten problem, firma Apple Computer wydała narzędzie o nazwie „MUFFIN” do migracji plików i programów Apple DOS 3.2 na dyski w wersji 3.3. Apple nigdy nie oferował narzędzia do kopiowania w innym kierunku. Aby przenieść pliki Apple DOS 3.3 z powrotem na dyski w wersji 3.2, ktoś napisał narzędzie „NIFFUM”. Istnieją również komercyjne narzędzia (takie jak Copy II Plus), które mogą kopiować pliki zi do obu formatów (i ostatecznie także ProDOS ). Wersja 3.3 poprawia również możliwość przełączania się między Integer BASIC i Applesoft BASIC, jeśli komputer ma kartę językową ( rozszerzenie RAM ) lub kartę firmware.

Szczegóły techniczne

Dyski Apple DOS 3.1 używają 13 sektorów danych na ścieżkę, każdy sektor ma 256 B. Używa 35 ścieżek na stronę dysku i ma dostęp tylko do jednej strony dyskietki, chyba że użytkownik odwrócił dyskietkę . Daje to użytkownikowi całkowitą pojemność 113,75 KB na stronę, z czego około 10 KB służy do przechowywania samego systemu DOS i katalogu dysku, pozostawiając około 100 KB dla programów użytkownika.

Pierwsza warstwa systemu operacyjnego nazywa się RWTS, co oznacza „sektor ścieżki odczytu/zapisu”. Ta warstwa składa się z podprogramów wyszukiwania ścieżek, odczytu i zapisu sektorów oraz formatowania dysku. API o nazwie File Manager został zbudowany na szczycie tego, a funkcje przyrządy do otwierania, zamykania, czytać, pisać, usunąć blokadę (czyli ochrony przed zapisem) pliki odblokowujące (tj zezwolenia zapisu), a zmiana nazwy, a do sprawdzenia strukturalna integralność pliku. Dostępna jest również funkcja katalogu, do wyświetlania plików na dyskietce oraz funkcja "init", która formatuje dysk do użytku z DOS, przechowuje kopię DOS na pierwszych trzech ścieżkach i przechowuje program startowy (zwykle nazywany HELLO ), który jest automatycznie uruchamiany po uruchomieniu tego dysku. Oprócz API Menedżera plików zaimplementowane są główne procedury DOS, które łączą się z interpreterem BASIC maszyny i przechwytują wszystkie polecenia dysku. Zapewnia BLOAD , BSAVE i BRUN do przechowywania, ładowania i uruchamiania binarnych plików wykonywalnych. LOAD, RUN i SAVE są dostępne dla programów BASIC, a EXEC służy do uruchamiania tekstowych plików wsadowych składających się z poleceń BASIC i DOS. Wreszcie istnieją cztery typy plików, identyfikowane literami w wykazie katalogu:

  • I – Programy Integer BASIC (przechowywane w formacie kompaktowym, nie jako zwykły tekst)
  • A – programy Applesoft BASIC (również przechowywane w spakowanym, zajmującym mało miejsca formacie)
  • B – Pliki binarne , albo wykonywalne programy w języku maszynowym, albo pliki danych
  • T – pliki tekstowe ASCII (lub zwykły tekst, rozpakowane pliki wsadowe)

Istnieją cztery dodatkowe typy plików; „R”, „S” oraz dodatkowe „A” i „B”, z których żaden nie jest w pełni obsługiwany. DOS rozpoznaje te typy tylko dla wykazów katalogów i nie ma bezpośrednich sposobów manipulowania tymi typami plików. Typ "R" znalazł zastosowanie w relokowalnych binarnych plikach wykonywalnych. Kilka programów obsługuje typ „S” jako pliki danych.

Tablica wektorów wywołań w regionie $03D0–03FF 16 umożliwia programom odnalezienie DOS-u wszędzie tam, gdzie jest on załadowany do pamięci systemowej. Na przykład, jeśli DOS podpięty do BASIC CLI przestanie działać, można go ponownie zainicjować, wywołując lokalizację $03D0 16 (976 10 ) – stąd tradycyjne polecenie „3D0G” („3D0 go”), aby powrócić do BASIC z Monitora systemu .

Program rozruchowy

Proces ładowania systemu Apple DOS obejmuje szereg bardzo małych programów, z których każdy przenosi proces ładowania do przodu o kilka kroków przed przekazaniem kontroli do następnego programu w łańcuchu.

  • Pierwotnie ROM Apple II w ogóle nie obsługiwał uruchamiania z dysku. Po włączeniu wyświetli monit Monitora systemu. Zarówno Monitor, jak i Integer BASIC mają polecenia przekierowania drukowania do sterownika drukarki w wyznaczonym gnieździe, więc konwencjonalnym sposobem rozruchu z dysku było wtedy polecenie komputerowi rozpoczęcia „drukowania” do karty interfejsu dysku, zwykle instalowanej w gnieździe 6. , używając polecenia 6 Control-P (z monitora ML) lub PR#6 (z BASIC). Gdy monitor lub BASIC wysłał następny znak zachęty, komputer wywołał procedury ROM na karcie dysku, aby „wydrukowały” do niej, co następnie kontynuowałoby sekwencję rozruchową. (Można użyć przekierowania wejścia do podobnych końców.) Alternatywnie, z monitora ML, użytkownik może wpisać numer gniazda, wpisując C600G, aby bezpośrednio wywołać kod rozruchowy kontrolera.
  • Kiedy wprowadzono Apple II Plus, obejmował on możliwość skanowania każdego gniazda rozszerzeń (działającego w dół od gniazda 7 do gniazda 1) w celu uzyskania rozruchowej pamięci ROM karty rozszerzeń i automatycznego jej wywoływania.
  • Kod rozruchowy ROM karty rozszerzeń próbuje uruchomić się z dysku 1 kontrolera, przesuwając ramię odczytu/zapisu na ścieżkę zero i próbując odczytać 256 bajtów z sektora zerowego tej ścieżki. (Jeśli nie jest dostępny żaden czytelny dysk, dysk obraca się w nieskończoność, dopóki nie zostanie dostarczony, a drzwiczki dysku zostaną zamknięte).
  • Sektor zero zawiera mały program, który instruuje komputer, aby wczytał sektory od 0 do 9 ścieżki zero do pamięci za pomocą części kodu rozruchowego ROM (ponowne odczytanie sektora 0 w procesie).
  • Program w sektorach 1-9 ścieżki 0, w tym kompletny kod RWTS, następnie ładuje ścieżki 1 i 2, które zawierają resztę systemu DOS. Na dysku głównym systemu znajduje się również kod do określenia konfiguracji pamięci RAM komputera i przeniesienia systemu DOS tak wysoko do pamięci systemowej, jak to tylko możliwe, do limitu 48 KB pamięci głównej Apple II ($BFFF 16 ).
  • Po załadowaniu DOS do pamięci próbuje załadować i wykonać program startowy, jak wskazano w kodzie programu DOS. Jest to zwykle program w języku BASIC o nazwie HELLO (lub innej nazwie), ale DOS można zmodyfikować, aby uruchamiał inne typy programów podczas uruchamiania, takie jak wykonywalny plik binarny. Pojawienie się prawego nawiasu kwadratowego ( ] ) na ekranie wskazuje użytkownikowi, że ładuje się program startowy Applesoft BASIC, podczas gdy symbol „większy niż” ( > ) wskazuje, że ładuje się program Integer BASIC. (Są to monity dla odpowiednich wersji BASIC, które są obecnie inicjowane.)
  • Program startowy rozpoczyna wykonywanie.

Obsługa Integer BASIC i Applesoft BASIC

Oryginalny Apple II zawierał interpreter BASIC w pamięci ROM, znany pierwotnie jako Apple BASIC, a później jako Integer BASIC . Zmienne w tym języku obsługują tylko liczby całkowite z zakresu od -32 768 do +32767 ( 16-bitowe wartości binarne); liczby zmiennoprzecinkowe nie są obsługiwane. Apple zlecił Microsoftowi opracowanie Applesoft BASIC , zdolnego do obsługi liczb zmiennoprzecinkowych. Applesoft BASIC nie może uruchamiać programów Integer BASIC, co powoduje, że niektórzy użytkownicy nie chcą go zaktualizować.

DOS 3.3 został wydany, gdy Applesoft BASIC był standardem w pamięci ROM w Apple II Plus, więc Apple zaprojektował go do obsługi przełączania między dwoma interpreterami BASIC. Integer BASIC jest ładowany do pamięci RAM na karcie językowej Apple II (jeśli jest obecny) i wpisując FP lub INT z BASICa, użytkownik może przełączać się między obiema wersjami.

Spadek

Po 1980 roku Apple DOS wszedł w stan stagnacji, gdy Apple skoncentrowało swoje wysiłki na nieszczęsnym komputerze Apple III i jego systemie operacyjnym SOS . Dwie kolejne wersje Apple DOS, obie wciąż nazywane DOS 3.3, ale z pewnymi poprawkami błędów i lepszą obsługą nowego modelu Apple IIe , zostały wydane na początku i w połowie 1983 roku.

Bez poprawek innych firm system Apple DOS może odczytywać tylko dyskietki uruchomione na 5,25-calowym napędzie Disk II i nie ma dostępu do żadnych innych nośników, takich jak dyski twarde, wirtualne napędy RAM lub dyskietki 3,5-calowe. Struktura dysków Apple DOS (zwłaszcza mapa wolnych sektorów, która była ograniczona do części pojedynczego sektora) jest taka, że ​​nie jest możliwe jednoczesne posiadanie więcej niż 400 KB na dysk bez większego przepisania prawie wszystkich sekcji kodeksu; jest to główny powód, dla którego Apple porzucił tę iterację DOS w 1983 roku, kiedy Apple DOS został całkowicie zastąpiony przez ProDOS .

ProDOS zachowuje 16-sektorowy format niskiego poziomu DOS 3.3 dla dysków 5,25 cala, ale wprowadza nowy format wysokiego poziomu, który jest odpowiedni dla urządzeń do 32  MB ; to sprawia, że ​​nadaje się do dysków twardych z tamtej epoki i dyskietek 3,5-calowych. Wszystkie komputery Apple od wersji II Plus mogą działać zarówno w systemie DOS 3.3, jak i ProDOS, przy czym Plus wymaga rozszerzenia pamięci „Karta językowa” w celu korzystania z ProDOS; modele e i nowsze mają wbudowany sprzęt z kartą językową, dzięki czemu mogą działać bezpośrednio w ProDOS. ProDOS zawiera oprogramowanie do kopiowania plików z dysków Apple DOS. Jednak wiele osób, które nie potrzebowały ulepszeń ProDOS (i którym nie podobało się znacznie większe zużycie pamięci) nadal używało Apple DOS lub jednego z jego klonów długo po 1983 roku. Konwencja Apple dotycząca przechowywania rozruchowego systemu operacyjnego na każdej dyskietce dysk oznacza, że ​​oprogramowanie komercyjne może być używane bez względu na system operacyjny użytkownika. Program o nazwie DOS.MASTER umożliwia użytkownikom posiadanie wielu wirtualnych partycji DOS 3.3 na większym woluminie ProDOS, co pozwala na korzystanie z wielu programów DOS opartych na dyskietkach z dyskiem twardym.

Wkrótce po ukazaniu się ProDOS, Apple wycofał zgodę stron trzecich na redystrybucję DOS 3.3, ale przyznał jednej firmie, Syndicomm, wyłączną licencję na odsprzedaż DOS 3.3.

Komercyjne gry zwykle nie korzystały z Apple DOS, zamiast tego miały własne niestandardowe procedury dyskowe do celów ochrony przed kopiowaniem, a także wydajności.

Ulepszenia w wydajności

Procedura RWTS DOS może odczytywać lub zapisywać ścieżkę w dwóch obrotach z odpowiednim przeplotem. Sektor wirującego dysku przechodzi pod głowicą odczytu/zapisu, podczas gdy procedura RWTS dekoduje właśnie odczytany sektor (lub koduje następny do zapisania), a jeśli ten pominięty sektor jest następnym potrzebnym, DOS musi poczekać prawie cała rewolucja dysku, aby sektor powrócił. Nazywa się to „wystrzelaniem obrotów” i jest dobrze rozumianym wąskim gardłem wydajności w systemach dyskowych. Aby tego uniknąć, sektory na dysku DOS są ułożone w kolejności przeplatania:

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

Później ProDOS ułożył sektory w następującej kolejności:

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

Podczas odczytu i dekodowania sektora 0, sektor 8 przechodzi obok, tak że sektor 1, następny prawdopodobnie potrzebny sektor, będzie dostępny bez czekania. Podczas odczytu sektora 7, dwa niepotrzebne sektory, f i 0, przechodzą obok, zanim sektor 8 jest dostępny, a podczas odczytu sektora 15, napęd zawsze będzie musiał czekać na dodatkowy obrót dla sektora 0 na tej samej ścieżce. Jednak sektor 0 faktycznie potrzebny w większości przypadków będzie znajdował się na następnej wyższej ścieżce, a ścieżka ta może być ustawiona względem ostatniej, aby zapewnić potrzebny czas na zdekodowanie właśnie odczytanego sektora i przesunięcie głowicy przed pojawieniem się sektora 0 na około. Średnio pełny utwór można odczytać w dwóch obrotach dysku.

Niestety, wczesny menedżer plików DOS podważył tę wydajność, kopiując bajty odczytywane lub zapisywane do pliku pojedynczo między buforem dysku a pamięcią główną, co wymagało więcej czasu i powodowało, że DOS stale zwiększał obroty podczas odczytu lub zapisu plików. Programy stały się dostępne wcześnie do formatowania dysków ze zmodyfikowanymi przeplataniami sektorów; dyski te dają DOS więcej czasu między sektorami na skopiowanie danych, łagodząc problem.

Później programiści spoza Apple przepisali procedury Menedżera plików, aby uniknąć tworzenia dodatkowej kopii dla większości sektorów pliku; RWTS został poinstruowany, aby odczytywać lub zapisywać sektory bezpośrednio do lub z pamięci głównej, a nie z bufora dysku, gdy cały sektor miał być przesłany. Wczesna „poprawka” zapewniająca tę funkcjonalność została opublikowana w aplikacji Call-APPLE . Przyspieszenia w dowództwie LOAD od trzech do pięciu razy były typowe.

Funkcjonalność ta wkrótce pojawiła się w produktach komercyjnych, takich jak Pronto-DOS, Diversi-DOS, Hyper-DOS i David-DOS, wraz z dodatkowymi funkcjami, ale nigdy nie była używana w oficjalnym wydaniu Apple DOS. Podobną funkcjonalność wykorzystał jednak następca systemu operacyjnego Apple, ProDOS. Apple IIGS -specyficznych system operacyjny GS / OS ostatecznie zatrudnić jeszcze bardziej efektywne rozpraszanie „czytać” technikę, która będzie czytać dowolny sektor, który okazał się być przechodząc pod głowicy odczytującej gdyby była potrzebna dla pliku są odczytywane.

Wydanie kodu źródłowego

W 2013 roku, ponad 35 lat po debiucie Apple II , oryginalny kod źródłowy Apple DOS został opublikowany przez Computer History Museum na swojej stronie internetowej. Został podarowany przez oryginalnego autora, Paula Laughtona.

Bibliografia

Dalsza lektura

  • Warto, Don; Lechner, Pieter (1981), pod Apple DOS , Oprogramowanie jakościowe, ISBN 0-912985-00-3

Zewnętrzne linki