Interfejs użytkownika | |
Architektura |
komputery Atari z procesorami Motorola 68k, ColdFire |
---|---|
Pierwsze wydanie | |
Aktualna wersja |
4.04 |
Jądro | |
Środowisko pracy | |
Licencja |
komercyjna |
TOS – wielozadaniowy system operacyjny przeznaczony dla komputerów Atari ST, Atari TT, Atari Falcon oraz ich klonów. "TOS" jest skrótem od "The Operating System" lub "Tramiel Operating System" (od nazwiska ówczesnego właściciela firmy Atari Jacka Tramiela).
TOS opiera się w głównej mierze na systemie GEM firmy Digital Research, jest jednak od niego znacznie bardziej rozwinięty.
Podczas konstruowania komputera Atari ST, firma Atari poszukiwała systemu operacyjnego, który mógłby zostać na nim zaimplementowany. Rozważano napisanie systemu własnymi siłami, lecz odrzucono tę opcję jako zbyt ryzykowną. Microsoft zaoferował Windows, lecz z powodu długiego czasu dostarczenia gotowego systemu (2 lata) tę propozycję odrzucono. Ostatecznie wybrano GEM firmy Digital Research. Ponieważ oryginalnie GEM został napisany dla procesorów 8086 a Digital Research nie była zainteresowana jego przepisaniem na 68000, port został wykonany przez programistów Atari. Pierwotnie GEM miał pracować w środowisku systemu CP/M-68K jednak wersja ta była bardzo niestabilna i w efekcie wybrano inny produkt GEMDOS.
Pierwsza wersja TOSopodobnego systemu została zaprezentowana wraz a komputerem Atari 520 ST na targach CES w 1985 r. Zaprezentowana wówczas wersja opierała się jeszcze na CP/M-68K.
TOS, pierwotnie powstał jako system monolityczny. Istniało logiczne rozróżnienie pomiędzy jego elementami, lecz wewnętrznie były one bardzo silnie zintegrowane. Dopiero pojawienie się MiNTa i MultiTOS spowodowało, że niektóre elementy niemal całkowicie wydzieliły się (szczególnie AES oraz Desktop), lecz nastąpiło to dopiero pod sam koniec rozwoju systemu i wersje te nie były oficjalnie rozpowszechniane.
Pierwsza wersja dostarczona klientom (1.0) znajdowała się na dyskietce. Wszystkie następne dostarczane były w modułach ROM zainstalowanych w komputerach.
Wersja 1.0 i wszystkie następne aż do wersji 2.x wyglądały podobnie i miały podobne ograniczenia. Posiadały statyczne bufory pozwalające na otwarcie naraz do czterech okien modalnych, ograniczona z góry była również maksymalna ilość plików w katalogu oraz plików otwartych w tym samym czasie. Kolejne wersje wprowadzały nieznaczne usprawnienia oraz poprawki błędów. Jedynymi większymi zmianami były wprowadzano przez wersję 1.04 możliwość uruchamiania programów podczas startu przez Desktop (a więc po inicjalizacji AESu) oraz wprowadzona przez wersję 1.6 obsługa układów Atari STE.
Wraz z wydaniem wersji 2.x (dla MEGA STE) oraz równocześnie 3.x (dla Atari TT) dokonała się zmiana jakościowa. TOS uzyskał możliwość bootowania z dysku twardego IDE. Rozszerzono maksymalna liczbę okien modalnych (do 7 w 2.x i bez ograniczeń w 3.x). Desktop zyskał możliwość ładowania ikon z dysku.
Wersje 4.x były przeznaczone dla komputera Atari Falcon i oprócz obsługi układów w nim zawartych (DSP, Videl,...) wprowadziła trójwymiarowe, kolorowe okna modalne, obsługę kolorowych ikon.
W planowanej dla Atari Falcon040 nowej wersji 5.0 zawarto wielozadaniową odmianę AESu o numerze 4.0 oraz funkcję ikonifikacji okien (na wzór MultiTOSu). Dostępne są wersje beta oznaczone jako 4.92, jak również sam AES 4 jako element MultiTOSu.
W 1998 r. Milan GmbH zakupiło licencję do źródeł TOSu i dla swojego komputera Milan przygotowało wersję oznaczoną 4.05 zawierającą między innymi warstwę obsługi dla kart PCI.
Projekt Atari Coldifre Project przygotowuje wersję TOSu przystosowaną do procesorów ColdFire.
Pierwsza wersja TOSu była dostępna w formie plikowej na dyskietce 3,5 cala. Wszystkie następne wersje Atari były zawarte w pamięci ROM komputera. Wersje od 1.0 do 1.04 umieszczone były na modułach o pojemności 192 KB, od 1.6 do 2.06 na modułach o pojemności 256 KB, późniejsze wersje były dostępne na modułach o pojemności 512 KB.
W przypadku najnowszych klonów oraz kart turbo zmodyfikowany TOS znajduje się w pamięci FlashROM co umożliwia łatwe uaktualnienia.
TOS był oferowany w kilku wersjach językowych. Do wersji 4 aby zmienić wersję językową należało wymienić zestaw kości ROM. Od wersji 4 zawiera od razu siedem wersji językowych.
Każda wersja TOSu zawiera w sobie GEMDOS i odmianę GEMu o określonej wersji.
Numer wersji TOSu | Data wydania | GEMDOS | AES | Komputery | Rozmiar ROM | Wersje językowe | Uwagi | |
0.99 | 1985-20-11 | ST | angielska, amerykańska |
Pierwsza wersja, wydana na dyskietce. W pamięci ROM znajdował się jedynie BOOT STRAP | ||||
1.0 | 1985-20-11, 1986-02-06 | 0.13 | 1.20 | ST | 192 KB | angielska, amerykańska[a], francuska, niemiecka, szwajcarska[b] | Wydano dwie wersje. Pierwsza na dyskietce, druga w ROM | |
1.02 | 1987-22-04 | 0.13 | 1.20 | ST, MEGA ST | 192 KB | angielska, amerykańska[a], francuska, niemiecka, szwedzka | W Wielkiej Brytanii błędnie oznaczony jako 1.09. Znany także jako Blitter TOS | |
1.04 | 1989-06-04 | 0.15 | 1.40 | ST, STacy, MEGA ST | 192 KB | angielska, amerykańska[a], francuska, holenderska, hiszpańska, niemiecka, szwajcarska[b], szwedzka | Znany także jako Rainbow TOS | |
1.6 | 1989-07-29 | 0.15 | 1.40 | STE | 256 KB | angielska, amerykańska[a], francuska, hiszpańska, niemiecka | Szybko zastąpiona przez wersję 1.62 z powodu błędów. Nie działa na ST. | |
1.62 | 1990-01-01 | 0.17 | 1.40 | STE | 256 KB | angielska, amerykańska[a], francuska, niemiecka, szwedzka | Nie działa na ST. | |
1.9 | 0.17 | 1.40 | STE | 256 KB | Wersja testowa | |||
2.02 | ? | 0.19 | ? | STE | 256 KB | ? | wraz z wersją 2.0 wprowadzona została obsługa dysków IDE, pamięci FAST-RAM | |
2.05 | 1990-12-05 | 0.19 | 3.10 | MEGA STE | 256 KB | angielska, amerykańska[a], francuska, niemiecka, włoska, szwedzka | ||
2.06 | 1991-14-11 | 0.20 | 3.20 | MEGA STE, Atari STBook | 256 KB | angielska, amerykańska[a], francuska, niemiecka, polska[c], szwajcarska[b], szwedzka | Wersja dla STBOOK zawierała dodatkowo oprogramowanie sieciowe | |
2.07 | 1991-02-29 | 0.20 | 3.20 | Atari Sparrow | 256 KB | amerykańska[a] | Wersja TOSu dla prototypu Falcona | |
2.08 | 1992-03-10 | ? | 3.20 | Atari STPAD | 512 KB | amerykańska[a] | Obsługuje ekran dotykowy w STPADzie, nigdy nie rozpowszechniany | |
3.01 | 1990-03-01 | 0.19 | 3.00 | Atari TT | 512 KB | amerykańska[a] | Dla wczesnych wersji TT ze stacją dysków 720 KB | |
3.05 | 1990-05-12 | 0.19 | 3.10 | Atari TT | 512 KB | amerykańska[a] | Dla wczesnych wersji TT ze stacją dysków 1,44 MB | |
3.06 | 1991-24-09 | 0.20 | 3.20 | Atari TT | 512 KB | angielska, niemiecka | Wersjia finalna dla TT | |
4.01 | 1992-10-02 | 0.30 | 3.31 | Atari Falcon | 512 KB | angielska, amerykańska[a], francuska, hiszpańska, niemiecka, włoska, szwajcarska[b] | błędy w obsłudze DSP, błędy w obsłudze wielu partycji na jednym dysku (możliwa utrata danych, zalecana aktualizacja do 4.04) | |
4.02 | 1993-01-26 | 0.30 | 3.40 | Atari Falcon | 512 KB | angielska, amerykańska[a], francuska, hiszpańska, niemiecka, włoska, szwajcarska[b] | błędy w obsłudze wielu partycji na jednym dysku (możliwa utrata danych, zalecana aktualizacja do 4.04) | |
4.04 | 1993-08-03 | 0.30 | 3.40 | Atari Falcon | 512 KB | angielska, amerykańska[a], francuska, hiszpańska, niemiecka, włoska, szwajcarska[b] | ||
4.92 | 1993-22-06 | 0.30 | 4.10 | Atari Falcon | 512 KB | angielska, amerykańska[a], francuska, hiszpańska, niemiecka, włoska, szwajcarska[b] | Nieoficjalnie rozprowadzana wersja beta TOSa 5.0 z multiAESem | |
4.97 | ? | ? | ? | ? | 512 KB | ? |
TOS mógł być modyfikowany przy pomocy różnego specjalnie do tego przeznaczonego oprogramowania. Takie programy jak WINX dodawały pewne funkcje jak również pozwalały na modyfikację ustawień. Możliwe było zarówno modyfikowanie TOSu uprzednio relokowanego do obszaru RAM jak i również zapisanie tych zmian i wgranie do modułu ROM, następnie zastąpienie oryginalnego TOSu dostarczonego razem z komputerem. We wszystkich modelach układy ROM były montowane na podstawkach aby umożliwić łatwą wymianę.
Dla każdej z wersji powstały też zestawy modyfikujące oraz poprawiające błędy o nazwie TOSPATCH. Było to po części wynikiem powstawania różnego rodzaju rozszerzeń, głównie kart procesorowych jak również automatycznego zawarcia oficjalnych łatek poprawiających oficjalne błędy.
Pierwszą wersją TOSu z poprawkami był KAOS – oparty na poprawkach do wersji 1.4.
W okolicach 1992–1993 r., Atari zaczęło rozglądać się za możliwością wprowadzenia wielozadaniowości z wywłaszczeniem do TOSu. W tym celu zaadaptowało projekt MiNT i na jego bazie powstał MultiTOS. Zostało wydane kilka wersji, lecz niestety zanim projekt uzyskał niezbędną stabilność został zarzucony w związku z rezygnacja Atari z segmentu rynku komputerów domowych. Szczęśliwie, źródła systemu zostały wcześniej udostępnione na zasadzie bezpłatnej licencji i są do dziś rozwijane w projekcie FreeMiNT.
Pierwsza wersja TOSu była dostarczona na dyskietce i wczytywana podczas startu komputera. Następne były dostarczone w pamięci ROM, początkowo o wielkości 192 KB, później 256 KB a ostatecznie 512 KB.
TOS składa się z następujących elementów:
Wszystkie one znajdowały się w pamięci ROM.
Dodatkowo, z czasem stało się możliwe doładowanie z dysku następujących elementów:
Do komputerów Atari wyposażonych w TOS dołączane były specjalne dyskietki. Ilość dyskietek i ich zawartość zmieniała się w zależności od wersji systemu i komputera.
Po uruchomieniu, TOS podejmuje następujące kroki:
Od tego momentu system jest w pełni funkcjonalny i gotowy do użycia.
TOS oferuje ograniczoną wielozadaniowość z kooperacją. Równocześnie może działać do siedmiu programów, z czego jeden główny i sześć tzw. akcesoriów, które w założeniu muszą być załadowane przy starcie systemu (wyjątkiem jest tu program chameleon umożliwiający doczytywanie dowolnych akcesorów w dowolnej chwili).
TOS używa własnego formatu tablicy partycji. Znajduje się ona w 1 sektorze dysku. Ciekawą cechą TOSowej tablicy partycji jest to, że do określenia typu partycji używa się trzyliterowych oznaczeń.
Oznaczenia partycji rozpoznawane przez TOS:
Inne oznaczenia partycji stosowane na komputerach Atari, lecz nie obsługiwane bezpośrednio przez TOS:
Jeżeli sterownik dysku (lub inny program) zapewnia możliwość odczytu tablicy partycji PC, to widoczne są one pod identyfikatorami złożonymi ze znaku $ oraz hexadecymalnego kodu opisującego typ partycji uzupełnionego o wiodące zero jeżeli liczba miałaby być jednocyfrowa, np. $0F, $83.
Jedynymi systemami niezgodnymi z TOSem potrafiącymi odczytać jego tablicę partycji są Linux i NetBSD.
TOS posiada własny system plików nazywany dzisiaj TOSfs. Jest on zbliżony do FAT na tyle, że systemy czytające FAT byłyby w stanie odczytać TOSfs.
Nazwy plików obsługiwane są w systemie 8+3.
Maksymalna obsługiwana wielkość systemu plików to:
TOSy od 4.01 nieoficjalnie obsługują wielkość systemu plików do 2 GB, nie jest to jednak udokumentowane i nie wszystkie funkcje systemu operacyjnego obsługują tę wielkość.
Od wersji 1.04, TOS obsługuje system plików FAT12 na dyskietkach. Nie ogranicza się w tym jedynie do standardowych formatów 720 KB i 1,44 MB, lecz pozwala na dowolne ustawienie parametrów, co umożliwia lepsze wykorzystanie pojemności dyskietki.
Istnieje możliwość rozszerzenia funkcji TOSu przez dodanie programów takich jak BIGDOS. Możliwe jest też formatowanie dysków w pełni zgodne z systemem FAT tak, że taki dysk rozpoznawany jest poprawnie przez systemy obsługujące FAT.
TOS standardowo rozpoznaje nazwy plików zakończone rozszerzeniami PRG, TOS i TTP jako programy wykonywalne (np. podczas wyszukiwania programów z katalogu AUTO do uruchomienia). GEM rozpoznaje pliki ACC jako pliki akcesoriów. Dodatkowo Desktop wprowadza rozszerzenia APP i GTP (można je zmienić w pliku DESKTOP.INF).
Oprócz tego, istotne są także pliki z następującymi rozszerzeniami:
Z czasem zostało przyjęte, że rozszerzenia ACX i PRX oznaczają programy wyłączone (podczas uruchamiania programów z katalogu AUTO oraz ładowania akcesoriów).
Wywołania systemowego TOSu dokonuje się przez wywołanie instrukcji TRAP procesora, odkładając wcześniej na stosie parametry wywołania i numer funkcji. Po powrocie z funkcji należy samodzielnie skorygować wskaźnik stosu.
Przykładowe wywołanie funkcji $00 TERM, kończącej wykonanie programu:
CLR.W –(SP) TRAP #1
Przykładowe wywołanie funkcji $48 MALLOC, sprawdzającej ilość wolnej pamięci:
MOVE.L #-1, –(SP) MOVE.W #$48, –(SP) TRAP #1 ADDQ #6,SP
Funkcje TOSu mogą modyfikować rejestry A0 i D0 procesora, w D0 zwracany jest wynik wykonania funkcji.
Ponieważ TOS nie ma żadnej oficjalnej metody na dodawanie do niego ładowalnych modułów bądź funkcjonalności, przyjętym sposobem na ich instalowanie w systemie jest przejmowanie wektorów przerwań TRAP oraz pewnych wektorów leżących w pierwszym kilobajcie pamięci.
W celu uniknięcia niedogodności związanych z możliwą próbą przejęcia jednego wektora przez wiele programów, zalecane jest używanie protokołu XBRA.
Niektóre wersje TOS zawierają znane błędy:
Z powodu umieszczenia całego systemu operacyjnego w pamięci ROM wszystkie bufory danych są statyczne, dlatego do ich zmiany potrzebne są programy zmieniające ich wielkość (należy je uruchamiać zaraz po starcie systemu, najlepiej z katalogu AUTO.
Ponadto dostępne są następujące poprawki:
Firmy i osoby trzecie rozwijały niezależnie oprogramowanie rozszerzające i zastępujące poszczególne części TOSu, takie jak:
Oprócz tego powstało darmowe oprogramowanie zastępujące fragmenty lub całość TOS: