Polmax Sp. z o.o; 53-015 Wrocław; Karkonoska 59; tel/fax: (71) 339-9571
Tematy:
Dodatkowo:
Zobacz również:
nasze ośrodki

port jachtowy
Masz ciekawe informacje o systemie DOS, znasz super programy pod DOS powiedz nam o nich
Historia systemu DOS

Historia systemu DOS

Autorem materiałów jest Paweł Boguś.

Zawartość

  • Na początku był CP/M
  • PC-DOS 1.x (IBM PC)
  • PC-DOS 2.x (IBM PC-XT)
  • PC-DOS 3.x (IBM PC-AT)
  • PC-DOS 3.3 i 4.x (IBM PS/2 i następcy)
  • MS-DOS 5.0 i następne
  • Zakończenie

  • Chronologiczne zestawienie wersji systemu


    Na początku był CP/M

    W maju 1979 firma Seattle Computer Products skonstruowała kartę w architekturze S-100 z nowym, 16-bitowym procesorem Intel 8086. Prowadzone były rozmowy z Digital Research Inc. na temat wykorzystania tworzonego właśnie CP/M-86 w nowym sprzęcie, jednakże prace w DRI przeciągały się. Ponadto SCP posiadało zaledwie dwie karty z procesorem 8086 i nie chciało lub nie mogło udostępnić DRI żadnej z nich do prac rozwojowych i testowania nowego systemu. Jedną z pierwszych kart otrzymała natomiast do prac nad BASIC'em dla procesora 8086 firma Microsoft, znana m.in. z BASIC'a dla komputera MITS Altair. Około dwóch tygodni później, w pierwszym tygodniu czerwca 1979, na National Computer Conference w New York zademonstrowana została pierwsza wersja Stand-Alone Disk BASIC (BASIC ze zintegrowanymi podstawowymi procedurami I/O) dla procesora 8086.

    QDOS - Quick'n'Dirty Operating System

    Sprzedaż kart ruszyła w listopadzie 1979. Jako jedyne oprogramowanie dołączany był Stand-Alone Disk BASIC Microsoftu. Czas płynął, a SCP nadal czekała na nową wersję systemu CP/M opracowywaną przez (Intergalactic) Digital Research Inc. Niestety, DRI nie spieszyła się z zakończeniem prac nad CP/M-86 i na wiosnę 1980 systemu nadal jeszcze nie było. W kwietniu 1980 SCP zdecydowała nie czekać dłużej i stworzyć własny system operacyjny. Został on napisany przez Tima Pattersona naprędce (w sześć...osiem tygodni), ale działał nadspodziewanie sprawnie. W sierpniu 1980 roku SPC rozpoczęła sprzedawać nowy QDOS v0.10 (Quick'n'Dirty Operating System), a we wrześniu zademonstrowała go MS'owi. Później Patterson został zaangażowany przez MS i przez mniej więcej rok pracował w MS nad DOSem, po czym wrócił do SCP.


    UWAGA: Aby ułatwić życie sobie i innym programistom i móc w miarę swobodnie przetłumaczyć oprogramowanie CP/M na potrzeby nowego systemu, Patterson zachował podstawowe struktury i zasady organizacji systemu CP/M oraz naśladował sposób ładowania i wykonywania programów. Dodał tablicę rozmieszczenia/alokacji plików (FAT - File Allocation Table), którą Gates i Allen używali w AltairBASIC i kilka innych ulepszeń.

    Podobno Tim Patterson powiedział kiedyś: "So I took a CP/M manual that I'd gotten from the Retail Computer Store five dollars in 1976 or something, and used that as the basis for what would be the application program interface, the API for my operating system. And so using these ideas that came from different places I started in April and it was about half time for four months before I had my first working version."

    Wczesne wersje DOSa bardzo wiele "zawdzięczają" systemowi CP/M. W rzeczywistości takie rzeczy jak np. format plików .COM w CP/M i DOS czy też podstawowe wywołania/funkcje systemowe (system calls) są tak podobne, że programiści bez najmniejszego problemu "przesiedli" się z CP/M na DOS'a. Serce CP/M składało się z interpretera poleceń o nazwie CCP (Console Command Processor) i dwóch podstawowych plików systemowych BDOS i BIOS odpowiedzialnych odpowiednio za operacje dyskowe na plikach oraz operacje I/O. Ta organizacja została przeniesiona niemal identycznie do PC-DOS (w postaci trójki plików: COMMAND.COM, IBMDOS.COM i IBMBIO.COM) i MS-DOS (COMMAND.COM, MSDOS.SYS, IO.SYS).


    System dla IBM PC

    Mniej więcej w październiku 1980 IBM rozpoczął poszukiwania systemu operacyjnego, który mógłby natychmiast zostać użyty w nowym projekcie - IBM PC. IBM rozglądał się, ze względu na brak czasu i wymogi rynku, za gotowym rozwiązaniem. Początkowo zamierzał zastosować ówczesny standard - system CP/M firmy Digital Research Inc. Okazało się jednak, że DRI nie był zainteresowany współpracą z IBM. Wersje wydarzeń, które rozegrały się pomiędzy DRI a IBM są różne.

    Microsoft MS-DOS 1.0 (86-DOS)

    Zniechęcony do DRI IBM zwrócił się do Microsoft'u (z którym dotychczas rozmawiał jedynie o językach programowania dla nowego komputera). MS nie miał systemu operacyjnego dla procesora 8086, ale już w od października 1980 prowadził rozmowy z Seattle Computer Products na temat wykupienia praw do QDOSa dla swojego klienta (SCP nie wiedziało wtedy, że chodzi o IBM). W grudniu 1980 SCP opracował 86-DOS v0.30 (QDOS przemianowany na 86-DOS), a MS wykupił prawa do systemu na zasadzie non-exclusiv (bez prawa wyłączności). 86-DOS v0.3 składał się z około 4000 linii kodu w asemblerze. Został on szybko wygładzony i jako MS-DOS 1.0 (Microsoft Disk Operating System) zaprezentowany IBM i przekazany do testowania. W lutym 1981 system został uruchomiony na prototypie IBM PC i w listopadzie ostatecznie zaakceptowany jako podstawowy system operacyjny dla nowych komputerów.

    PC-DOS 1.x (IBM PC)

    Microsoft zakupił za około 50 000$ wszystkie prawa do 86-DOS w lipcu 1981 (86-DOS 1.0, wypuszczony przez SCP w kwietniu 1981). Zaoferował go IBM wraz z pakietem języków programowania (BASIC, FORTRAN, Pascal, COBOL i 8086 Assembler). Oferta została przyjęta. 12 sierpnia 1981 IBM przedstawił światu swoje najmłodsze dziecko: IBM PC oraz jego system operacyjny: IBM Personal Computer DOS 1.0 (IBM 5150 PC Personal Computer, posiadał procesor Intel 8088 o częstotliwości 4.77 MHz, 64kB RAM, 40kB ROM, jeden napęd dysków elastycznych 5.25" i wraz z dyskowym systemem operacyjnym kosztował $3 000). IBM poddał system operacyjny daleko idącemu procedurze sprawdzającej, w wyniku której znaleziono ponad 300 błędów (bugs) i zdecydował się napisać dużą część systemu od początku (--> wersja PC-DOS 2.0). Początkowo system sprzedawany był przez dystrybutorów w systemie OEM pod różnymi nazwami (Compaq-DOS, Z-DOS, Software Bus86). Przy wprowadzeniu wersji 2.0 MS przekonał wszystkich, oprócz IBM, do używania nazwy "MS-DOS".

    Ciekawostka: wbrew pozorom nazwa towarowa "PC-DOS" nie jest własnością IBM lecz Digital Equipment (DEC), a IBM używa określenia "The IBM Personal Computer DOS".

    Wersje systemu

    Pierwsza wersja DOS'a była skromna i surowa. Polecenia TIME i DATE w wersji PC-DOS 1.0 były raczej oddzielnymi małymi programami niż częścią COMMAND.COM. Listing zawartości katalogu podawał co prawda datę utworzenia lub modyfikacji pliku, pomijał jednak godzinę. Polecenie MODE nie potrafiło ustawić parametrów protokołu i prędkości połączenia ani też zmusić portu równoległego komputera do współpracy z typowymi drukarkami. Przy pomocy komendy COPY nie można było połączyć kilku małych plików w jeden większy. Komunikaty ekranowe było skąpe i enigmatyczne. Wersja PC-DOS 1.00 obsługiwała jedynie jednostronne, 8 sektorowe dyskietki o pojemności 160 kB. Wg MS wersja 1.0 mieściła się na pojedynczej dyskietce 160kB i zawierała: COMMAND.COM - interpreter plików wsadowych oraz poleceń: DIR, REN, DEL, COPY, TYPE, PAUSE, CHKDSK, DATE, TIME, FORMAT, SYS, ponadto EDLIN (ascetyczny edytor tekstu pracujący w trybie edycji pojedynczych linii), DEBUG (prawdziwa perełka: mini-assembler/debuger, wg innych źródeł dodany dopiero w wersji 2.0), FILCOM (program do porównywania plików).

    PC-DOS 1.1 z maja 1982 roku (opracowany w MS i przekazany IBM) poprawiał te wszystkie braki lub przynajmniej czynił je mnie uciążliwymi. Problemem nadal były ograniczenia odziedziczone po CP/M. I chociaż IBM wprowadził obsługę dyskietek dwustronnych, 8-sektorowych o pojemności 320 kB, użytkownicy oczekiwali na więcej.

    Pierwsza wersja sprzedawana przez Microsoft nosiła oznaczenie MS-DOS 1.25, została wydana w lipcu 1982 i odpowiadała IBM PC-DOS 1.1. MS sprzedawał MS-DOS początkowo wyłącznie w systemie OEM, dopiero od wersji 3.2 także indywidualnym odbiorcom. Pomimo iż wersje DOS'a MS i IBM były bardzo podobne, nie były ze sobą w pełni kompatybilne/zgodne (nie można było przenosić pomiędzy nimi programów).

    Kilka uwag technicznych o systemie

    Nawet najlepszy komputer nie jest wiele wart bez odpowiedniego oprogramowania i IBM dobrze zdawał sobie z tego sprawę. Sam IBM nie oferował zbyt wiele programów użytkowych. Były to EasyWriter - pełen bug'ów, słaby edytor tekstów, wersja VisiCalc dla DOSa (wersja dla Apple była prawdziwym hitem), kilka języków programowania Microsoftu i kilka innych mniej znaczących pakietów. Najpopularniejsze wówczas programy: WordStar i dBase II pracowały tylko w środowisku CP/M. Jednym z najpilniejszych priorytetów IBM było zapewnienie łatwości przenoszenia oprogramowania z CP/M do DOSa, a jedyny skuteczny i szybki sposób na realizację tego zamierzenia był bardzo prosty: oba systemy musiały być podobne! Stąd właśnie wiele elementów systemu znanych użytkownikowi jak np. sposób nazywania plików (do 8 liter właściwej nazwy, kropka, 3 literowe rozszerzenie), prompt "A>", skromne komunikaty systemowe lub zgoła ich brak (jak np. "kamienna cisza" po usunięciu pliku) wywodzą się bezpośrednio z CP/M. To samo dotyczy głębiej ukrytych struktur systemu jak np. File Control Blocks (FCB's), Program Segment Prefix czy organizacja ładowania pliku do pamięci. DOS naprawiał kilka niedostatków CP/M, kilka poleceń zmieniono na bardziej logiczne. Programiści mogli traktować operacje I/O związane z drukarką czy ekranem w ten sam sposób jak operacje na plikach. Organizacja zapisu na dysku w DOS'ie była skuteczniejsza, pozwalała na zapisywanie dłuższych plików. Było to wynikiem zastosowania przez Pattersona tablicy rozmieszczenia/alokacji plików (FAT - file allocation table) po raz pierwszy użytej przez Billa Gatesa w AltairBASIC. Śledziła ona położenie fragmentów pliku na dysku i umożliwiała "złożenie go w całość" w razie potrzeby odczytu. Pozwalała również odczytywać i zapisywać więcej niż jeden plik jednocześnie, co znacznie przyspieszyło operacje dyskowe. W DOSie można było uruchamiać duże pliki EXE, które w przeciwieństwie do wywodzących się z CP/M plików COM nie posiadały ograniczenia wielkości do 64kB. Ponadto DOS mógł pozostawić nieaktywny program w pamięci, a użytkownik mógł go uaktywnić w razie potrzeby. Dużą popularność zyskała możliwość pisania i wykonywania skryptów, tzw. batch files. W sytuacjach awaryjnych DOS był trochę bardziej przyjazny, poza tym obsługa błędów była bardziej dopracowana niż w CP/M. DOS automatycznie odczytywał zawartość nowego dysku (w CP/M użytkownik musiał "ręcznie" nakazać to systemowi) oraz zapisywał datę utworzenia lub ostatniej modyfikacji pliku.

    COMMAND.COM podczas uruchamiania programu użytkowego zwalniał część pamięci (co miało spore znaczenie w czasach, gdy systemy standardowo były wyposażane w 64kB RAM'u) a po zakończeniu działania programu doładowywał brakującą (tzw. transient part) część z dysku. W związku z tym, użytkownik zawsze musiał mieć pod ręką dysk systemowy. Wkrótce jednak ilość pamięci w komputerach powiększyła się 10-krotnie i oszczędność uzyskiwana przez taką organizacje COMMAND.COM był mało znacząca. Jednym z większych ograniczeń pierwszej edycji DOSa była obsługa jedynie napędów jednostronnych 160kB, mimo że dyski posiadały dwie strony zdolne do zapisu danych. Usunięcie tego ograniczenie oraz kilku innych usterek miało miejsce w wersji 1.1 wprowadzonej przez IBM w maju 1982 roku.

    Dalsze losy CP/M

    Pomimo zaadaptowania CP/M-86 w 1982 roku dla IBM PC, wyposażenia go w większą ilość ciekawych funkcji i narzędzi oraz lepszej wydajności, zaczął on jednak znikać ze sceny systemów operacyjnych. IBM, zagrożony procesem ze strony DRI o naruszenie praw autorskich (gdyż DOS zawierał wiele elementów "żywcem" przejętych z CP/M) pozostawiał klientowi wybór systemu (oferowane były IBM Personal Computer DOS 1.0, UCSD P-System stanowiący rodzaj systemu operacyjnego ze zintegrowanym Pascalem oraz DRI CP/M-86), ale ze względu na różnice cenowe wybór wypadał dość jednostronnie (CP/M-86 kosztował $240(wg niektórych źródeł aż $495!?), a PC-DOS $40-60).

    Pomimo pewnych przeciwności DRI z CP/M-86 mógłby utrzymać swoją dominującą pozycję na rynku systemów operacyjnych dla komputerów klasy PC gdyby nie dwie rzeczy, po pierwsze za CP/M-86 trzeba było sporo dopłacić (PC-DOS był natomiast, jako OEM, praktycznie wliczany w cenę systemu i był niejako "za darmo", a poza tym kosztował jedynie $39,95), po drugie wielu programistów uważało przeniesienie oprogramowania CP/M na platformę DOS za łatwiejsze niż przystosowanie go do nowego CP/M-86.

    PC-DOS 2.x (IBM PC-XT)

    W marcu 1983 IBM wprowadził swój IBM PC-XT, ulepszoną wersję IBM PC oraz nową, napisaną praktycznie od podstaw, wersję DOSa - 2.0.

    Nowy system zarządzania plikami i katalogami

    Nowy twardy dysk określany przez IBM jako "stały" (fixed disk) miał pojemność 10MB i mógł pomieścić równowartość 31 dwustronnych dyskietek. Niestety, tak duża pojemność powodowała problemy. Dotychczas (DOS 1.x) informacje o plikach przechowywanych na dyskietkach były zapisywane przez system w katalogu głównym dyskietki (dyskietka jednostronna miała miejsce na 64 takie wpisy (root entries), dwustronna na 112). Efektywne wykorzystanie możliwości twardego dysku zależało w dużej mierze od znalezienia nowego sposobu zarządzania plikami i katalogami. CP/M radził sobie z dużymi dyskami poprzez ich podział na mniejsze jednostki (user areas), co nie było rozwiązaniem zbyt efektywnym ani wygodnym. Skuteczne rozwiązanie posiadał za to UNIX, który potrafił zarządzać dużymi woluminami w sposób elegancki i prosty. MS wykupił licencję na UNIXa i oferował jego wersję nazwaną XENIX. Sercem systemu UNIX/XENIX była hierarchicznie zorganizowana, drzewiasta struktura katalogów, która dawała użytkownikowi pełną swobodę w kształtowaniu i wykorzystaniu dostępnej przestrzeni dyskowej. MS zaadaptował tą strukturę jako rdzeń zupełnie nowej inkarnacji DOS'a.


    UWAGA: Popełnił jednak małą gafę. UNIX w celu identyfikacji poziomu podkatalogu używa slasha "/" (ukośnika), który pełni rolę "gałęzi" na drzewie katalogów. Problem polegał na tym, że wcześniejsze wersje DOSa używały slasha jako znaku sygnalizującego parametr przekazywany do programu lub polecenia systemowego (np. FORMAT /s). MS w systemie DOS zastąpił go backslashem "\" (lewym ukośnikiem? :-) co spowodowało irytację całych pokoleń użytkowników UNIXa i DOSa, a szczególną irytację i zamieszanie wywołało w krajach stosujących inny niż amerykański, narodowy układ klawiatury, który często nie zawierał w ogóle znaku backslash lub też przypisywał mu inny klawisz niż standard US.

    Instalowalne sterowniki urządzeń

    IBM i MS znalazły sposób na poradzenie sobie z gwałtownie rosnącą ilością urządzeń wypuszczanych na rynek przez producentów. Jednym z podstawowych zadań DOS'a było zapewnienie komunikacji pomiędzy PC a wszelkimi możliwymi urządzeniami zewnętrznymi. DOS 1.x stosował predefiniowaną, wewnętrzną tablicę zawierającą charakterystyki dopuszczalnych urządzeń. W obecnej sytuacji tablica ta byłaby niewygodna, mało elastyczna i przede wszystkim o wiele za długa. MS zaimplementował w nowej wersji systemu obsługę instalowalnych sterowników urządzeń (installable device driver programs), które dostarczał producent urządzenia. Po zainstalowaniu umożliwiały one komunikację urządzenia z systemem. Użytkownicy mogli określać, które sterowniki mają być ładowane przy starcie systemu i wykorzystywane w trakcie jego pracy za pośrednictwem specjalnego pliku konfiguracyjnego (CONFIG.SYS). Plik ten pozwalał również np. określić, jak wiele pamięci system ma przeznaczyć na bufory operacji dyskowych, ile plików może być otwartych jednocześnie i jak często DOS powinien sprawdzać czy użytkownik nie nacisnął klawisza "Ctrl-Break". Umożliwiał również używanie innego interpretera poleceń niż COMMAND.COM lub też przechowywanie go w innym niż standardowe miejscu (tzn. nie w katalogu głównym dysku startowego, czyli przeważnie "C:\").

    Zmiana sposobu dostępu do plików

    Jedną z najważniejszych zmian w DOS 2.0 był wewnętrzny sposób postępowania z plikami. W celu zachowania kompatybilności/zgodności z CP/M, DOS 1.x przechowywał istotne informacje o otwartych plikach za pomocą File Control Blocks (FCB). Rozwiązanie to miało swoje ograniczenia i w miarę, jak programy stawały się coraz bardziej złożone, zachodziła często potrzeba bezpośredniego manipulowania danymi zawartymi w FCB, co było kłopotliwe i potencjalnie niebezpieczne. Ponadto FCB nie obsługiwały nazw podkatalogów (nie było w nich miejsca na ścieżkę dostępu). Począwszy od wersji 2.0 wprowadzone zostały tzw. file handles jako alternatywny sposób dostępu do plików na dysku. Po podaniu systemowi położenia danego pliku w strukturze katalogów możliwy był dostęp do tego pliku przy pomocy, składającego się z dwóch znaków "skrótu" określanego właśnie jako handle (w tłumaczeniu: punkt zaczepienia, uchwyt). Standardowo DOS zawierał pięć specjalnych handles (w wersji 3.2 było ich sześć: NUL - urządzenie puste, "czarna dziura", CON - konsola, czyli klawiatura i ekran, PRN - drukarka, COM# - złącze szeregowe o numerze #, AUX - złącze szeregowe nr 2, LPT# - złącze równoległe o numerze # (LPT1=PRN) później doszło jeszcze CLOCK$ - zegar systemowy), które umożliwiały sterowanie kanałami wejścia i wyjścia. Normalnie klawiatura i ekran traktowane są przez DOS jako urządzenie wejścia/wyjścia o nazwie CON (konsola). Od wersji 2.0 użytkownik mógł "przekierować" strumienie danych ze standardowych wejść lub wyjść np. z lub do pliku czy też z lub na inne urządzenie. Umożliwiało to również "przepuszczanie" (pipe) strumieni danych poprzez tzw. filtry i tworzenie tzw. potoków (strumień wyjściowy jednego programu staje się bezpośrednio strumieniem wejściowym następnego programu itd.). Pozwalało to w stosunkowo prosty sposób dokonać na całych plikach lub ich grupach takich operacji jak np. zmiany małych liter na duże, usuwanie z tekstu zbędnych/określonych znaków czy też sortowanie list lub rekordów w porządku alfabetycznym. Możliwe było "spinanie" czy też "łączenie" ze sobą wyjść i wejść kilku programów i/lub urządzeń aby wykonać sekwencje pewnych operacji w jednym potoku zamiast każdą z nich oddzielnie. Przykładowe filtry dostarczone z DOS 2.0 były całkiem użyteczne. Pozwalały np. wyszukiwać pliki zawierające lub nie zawierające określonego tekstu (FIND), szybko sortować w porządku alfabetycznym wszelkie listy zawierające znak carriage return na końcu linii (SORT), wstrzymywać wyświetlanie w celu umożliwienia przeczytania przewijającego/pojawiającego się po ekranie tekstu (MORE).

    Szczątkowe przetwarzanie/praca w tle

    DOS 2.0 wprowadził szczątkowe przetwarzanie w tle (rudimentary background processing). DOS w założeniu był systemem jednozadaniowym, ale twórcy wersji 2.0 z polecenia PRINT stworzyli spooler, który potrafił drukować plik podczas gdy użytkownik kontynuował pracę. Spooler w zasadzie nie były nowym wynalazkiem, ten jednak stanowił nową jakość. Typowe spoolery alokowały z reguły dużą ilość pamięci operacyjnej i przekierowywały pliki wysyłane na drukarkę do stworzonego w ten sposób bufora, następnie czekały na "spokojny" moment i wysyłały plik na drukarkę. Komenda PRINT w nowej wersji DOS'a odczytywała plik z dysku, przez co nie obciążała tak mocno pamięci systemu. Program monitorował pracę użytkownika, sprawdzał jego aktywność ok. 18 razy na sekundę. Jeżeli w momencie sprawdzania nic się akurat nie działo, wysyłał kilka znaków na drukarkę. Komputer pracuje na tyle szybko, że takie techniki "dzielenie czasu" (time slicing) sprawiają wrażenie wykonywania dwóch czynności jednocześnie, ponieważ przełączanie pomiędzy zadaniami następuje bardzo szybko, w sposób normalnie niezauważalny. A gdyby tak się jednak zdarzyło, że system pracowałby wyjątkowo intensywnie, wówczas użytkownik ma możliwość wpłynięcia na częstotliwość prób przerwania tej pracy przez spooler.

    Nowe polecenia i programy

    MS wprowadził w tej wersji systemu sterownik ANSI.SYS rozszerzający możliwości sterowania ekranem i klawiaturą przez użytkownika. Dodane zostały oczekiwane przez wielu nowe polecenia. Trudno w to uwierzyć, ale w 1.x nie było możliwości wyczyszczenia zawartości ekranu, dopiero w 2.0 pojawiła się komenda CLS. Również w tej wersji zadebiutowały polecenia ECHO, IF, FOR, SHIFT i GOTO.

    Ze zrozumiałych względów dopiero teraz pojawiły się polecenia i programy narzędziowe dające użytkownikowi możliwość zarządzania twardym dyskiem, chociaż niektóre z nich, jak np. polecenie TREE, które powinno wyświetlać całą strukturę katalogów, nie funkcjonowało jak należy. Może jako rekompensatę, IBM dodał do systemu prawdziwą perełkę - mini-assembler DEBUG, który szybko zyskał wielu przyjaciół wśród bardziej zaawansowanych użytkowników.

    Inne usprawnienia

    IBM PC-XT posiadał zwiększoną o trzy (do łącznie ośmiu) liczbę gniazd/złącz rozszerzeń (internal expansion slots). Ponadto DOS zwiększył ilość 512-bajtowych sektorów na ścieżce z ośmiu do dziewięciu, co przy 40 ścieżkach na stronę dawało przyrost pojemności dyskietki o 40 kB (z 320kB na 360kB). Pozwalał także nadawać dyskom etykiety (LABEL), dawał użytkownikowi dostęp do specjalnego obszaru pamięci tzw. środowiska (enviroment), w którym przechowywane były istotne ustawienia systemowe, lepiej gospodarował pamięcią i zawierał ponad 20 nowych poleceń. Z tak dużą ilością zmian i usprawnień można spokojnie mówić o zupełnie nowym systemie (z zupełnie nowymi usterkami rzecz oczywista).

    Najbardziej istotnymi były zmiany w strukturze systemu (zwłaszcza w metodach zarządzania pamięcią i plikami), które powodują, że dopiero wersję 2.00 można uznać za pierwotną wersję systemu DOS.

    Dalsze wersje 2.x

    W październiku 1983 (PC-DOS) oraz w styczniu/marcu 1984 (MS-DOS) pojawiła się wersja 2.10 przeznaczona dla komputera IBM PC Junior (IBM PCjr - projekt zakończony niepowodzeniem. Posiadał kolorowy monitor i oraz trzygłosowy syntezator dźwięku mogący odtwarzać akordy, jednak był całkowicie niekompatybilny z czymkolwiek i do tego wyposażony w bardzo zawodny twardy dysk (system musiał zmniejszać prędkość dysku aby zapewnić stabilną pracę)) oraz dla modelu przenośnego IBM PC Convertible. Usunięto w niej wiele błędów z wersji 2.00 i zoptymalizowano obsługę napędów dysków elastycznych.

    Firma Microsoft oferowała także wersje 2.11, 2.25 i 2.85. Wersja 2.11 była podstawą systemów operacyjnych wielu mikrokomputerów z mikroprocesorem i8086/i8088, budowanych przez firmy: Hewlett-Packard, Compaq, Tandy i Texas Instruments. W wersjach 2.05, 2.11, 2.2 i 2.25 MS dodał obsługę międzynarodowych formatów czasu, daty, waluty i klawiatur.

    PC-DOS 3.x (IBM AT)

    Komputery IBM PC i PC-XT nie były prawdziwymi 16-bitowymi maszynami. Intel 8088 pracował co prawda wewnętrznie na 16-bitach, jednakże z otoczeniem komunikował się poprzez 8-bitowy system bus. Stało się to w pewnym momencie wąskim gardłem systemu. Pierwszym prawdziwym systemem 16-bitowym był IBM PC-AT. W porównaniu do swoich poprzedników była to prawdziwa rakieta. W jego wnętrzu pracował procesor Intel 80286 kompatybilny/zgodny programowo z całym dotychczasowym oprogramowaniem. Wraz z PC-AT ukazała się nowa wersja DOS 3.0. Zarówno PC jak i PC-XT pracowały z częstotliwością 4.77 MHz, a średni czas dostępu do twardego dysku, w zależności od modelu, wynosił od 80 do 115 ms. Oficjalnie częstotliwość taktowania zegara procesora 80286 w pierwszych modelach PC-AT wynosiła 6 MHz, ale użytkownicy szybko odkryli, że wymieniając warty $4, umieszczony na podstawce kwarcowy generator (quartz crystal) mogą przyspieszyć zegar do 8 a nawet 9 MHz bez jakichkolwiek skutków ubocznych (wtedy nazywało to się tampering, dzisiaj overclocking ;-) .IBM, znany z ultrakonserwatywnych specyfikacji i celowego obniżania wydajności, po odkryciu tych praktyk napisał program blokujący możliwość manipulacji, który został umieszczony w pamięci systemowej ROM.

    Wszystkie dyski twarde PC-AT posiadały średni czas dostępu 40ms lub niższy. Pechowo pierwsza duża seria AT miała zainstalowane wyjątkowo awaryjne dyski CMI.

    Wersje PC-DOS 3.00, 3.10 i 3.20

    W sierpniu 1984 powstała wersja PC-DOS 3.00 przeznaczona dla modelu IBM PC/AT z mikroprocesorem 80286. Zmieniono wielkość elementów tablicy rozmieszczenia plików (FAT) na 16-bitowe, w związku z wyposażeniem komputera w dysk twardy o pojemności 20MB. System został także uzupełniony o obsługę dysków miękkich 5,25" o pojemności 1,2MB, obsługę dysku twardego o pojemności do 20 MB, RAM-dysk. Zmodyfikowano polecenia SORT, FORMAT, BACKUP, RESTORE, GRAPHICS i DATE oraz dodano nowe polecenia: ATTRIB, COUNTRY, GRAFTABL, LABEL, SELECT, SHARE i KEYBxx.

    W marcu 1985 (listopadzie 1984 MS) powstała wersja 3.10, która została uzupełniona o obsługę sieci lokalnej LAN (Local Area Network) i współużytkowanie plików (file sharing). Zmieniono polecenia LABEL i TREE oraz dodano JOIN i SUBST.

    W styczniu 1986 ukazała się wersja 3.20, w której dodano obsługę napędów 3,5" dysków miękkich o pojemności 720Kb, zabezpieczenie przed przypadkowym formatowaniem dysku twardego, możliwość kontroli urządzeń niestandardowych i logicznych. Zmodyfikowano w związku z tym polecenia: FORMAT, DISKCOPY, DISKCOMP, COMMAND, ATTRIB. Nowe polecenia to: REPLACE, XCOPY i APPEND.

    PC-DOS 3.3 i 4.x (IBM PS/2 i następcy)

    W kwietniu 1987 - wraz z wprowadzeniem przez IBM nowej serii mikrokomputerów IBM PS/2 (Personal System2), pojawiła się wersja PC-DOS 3.30 systemu DOS. Została ona dostosowana do obsługi instalowanych w komputerach PS/2 dysków miękkich 3,5" o pojemnościach 720KB i 1,44MB. W przeciwieństwie do poprzednich wersji, przy podziale dysku na strefy (partycje), dla systemu DOS można utworzyć do 24 dysków logicznych. Umożliwiało to łatwe instalowanie dysków twardych o pojemnościach większych niż 32MB. Wprowadzono nową instrukcję plików wsadowych CALL oraz polecenia FASTOPEN (umożliwiające szybsza obsługę plików), COMP(ARE) (porównywanie zawartości dwóch plików) i SELECT. Nowe instrukcje CHCP i NLSFUNC są związane z wprowadzona możliwością wymiany tablic kodów znaków. Zmieniono zasadę obsługi klawiatur narodowych, rezygnując z rodziny programów KEYBxx i wprowadzając jeden program KEYB korzystający z tablic kodów znaków zawartych w pliku KEYBOARD.SYS. W wersji 3.30 znajduje się również kilka nowych instalowanych programów obsługi urządzeń (np. DISPLAY.SYS, PRINTER.SYS) oraz program SYMDEB, umożliwiający korzystanie z wartości symbolicznych przy uruchamianiu programów. Zmieniono nieco polecenia FDISK, APPEND, ATTRIB, BACKUP.

    Upgrade z wersji 3.3 do 4.0 powstał całkowicie w IBM i przy (o ironio) współpracy DRI i był następnie licencjonowany do Microsoft'u. Na początku lat 90 IBM ogłosił wstrzymanie dalszych prac na DOS'em i zajął się rozwojem systemu OS/2(?). Dalszymi losami systemu kierował od tego momentu w zasadzie wyłącznie Microsoft.

    W lipcu 1988 wprowadzono wersję MS-DOS 4.00, która miała trzy istotne nowe właściwości. Pierwsza to sterowany za pomocą sytemu menu interfejs użytkownika MS-DOS Shell, podobny do interfejsu Presentation Manager stosowanego w systemie OS/2. Druga właściwość to 32-bitowe (obok 16-bitowych) numery sektorów, usuwające ograniczone wielkości dysku logicznego do 32MB. Trzecią cechą jest wprowadzenie do systemu operacyjnego mechanizmów korzystania z pamięci stronicowanej EMS (expanded memory). Zrealizowano to za pomocą programu XMA2EMS.SYS obsługującego karty pamięci stronicowanej - takie jak 2MB Expanded Memory Adapter lub PS/2 80286 Expanded Memory Adapter/A - oraz programu XMAEM.SYS emulującego pamięć stronicowaną na komputerach z procesorem 80386. Wprowadzono także nowe polecenia konfiguracyjne: INSTALL, REM i SWITCHES oraz polecenie MEM wyświetlające bieżące wykorzystanie pamięci operacyjnej, a także rozszerzono i zmodyfikowano wiele innych poleceń. Dodano m.in. VDISK.SYS i DEBUG.COM.

    W listopadzie/grudniu 1988 wprowadzono wersję MS-DOS 4.01. Zmieniono i rozbudowano mechanizmy zarządzania pamięcią operacyjną przez wprowadzenie instalowanych programów obsługi pamięci HIMEM.SYS i EMM386.SYS. Tak zmodyfikowany DOS stal się podstawą wersji 5.00.

    MS-DOS 5.0 i następne

    W maju 1990 ukazał się konkurencyjny DR-DOS 5.0

    Czerwiec 1991 - po wielu testach i długim okresie przygotowań pojawiła się wersja MS-DOS 5.00. Różni się ona znacznie od poprzedników. Istotne uzupełnienia to :

    1. Dodano możliwość ładowania części systemu operacyjnego do obszaru pamięci wysokiej HMA (High Memory Area). Programy użytkowe mogą więc korzystać z większej pamięci operacyjnej w konwencjonalnym obszarze adresowania 0-640 kB. Dotyczy to komputerów z procesorami 80286, 80386, i486 i nowszych.
    2. Dodano możliwość ładowania programów obsługi urządzeń (tzw. sterowników - device drivers) i programów użytkowych do pamięci operacyjne w obszarze powyżej 640 kB.
    3. Wprowadzono możliwość obsługi więcej niż dwóch dysków twardych. Dyski logiczne mogą mieć wielkość powyżej 32 MB.
    4. Dodano możliwość obsługi dyskietek o pojemności 2.88 MB
    5. Wprowadzono graficzny interfejs użytkownika - program DOS-SHELL, umożliwiający korzystanie z graficznego przedstawienia struktury katalogów, obejrzenie katalogów równocześnie na dwóch dyskach lub dwóch katalogów, wykonywanie podstawowych poleceń systemu przez wybranie ich z menu. Korzystanie z myszy przy wyborze dysków, katalogów, plików lub funkcji systemu umożliwia łatwiejszą, szybszą i bardziej intuicyjną pracę oraz przełączanie pomiędzy programami.
    6. W programie DOS-SHELL wprowadzono opcję HELP, wspomagającą użytkownika w dowolnej chwili. Objaśnienia są również dołączone do wszystkich poleceń systemowych (opcja /?).
    7. Dodano nowe polecenia UNFORMAT i UNDELETE umożliwiające odzyskanie przypadkowo skasowanych lub uszkodzonych plików.
    8. Wiele poleceń zmodyfikowano, np. wzbogacono możliwości polecenia DIR. Dodano polecenia konfiguracyjne konieczne do ładowania systemu i programów do pamięci powyżej 640 kB.
    9. Do systemu dołączono prosty edytor ekranowy EDIT.COM z możliwością wyświetlania na bieżąco informacji pomocniczych.
    10. Dołączono dodatkowy program DOSKEY, umożliwiający wywołanie wcześniej wywoływanych poleceń oraz definiowanie makropoleceń zawierających sekwencje szczególnie często używanych ciągów poleceń.
    11. W skład systemu włączono program interpretatora języka Basic o nazwie QBASIC, o znacznie większych możliwościach niż wcześniej dołączane wersje interpretatora.

    We wrześniu 1991 ukazał się DR-DOS 6.0 za $100, zawierający wiele nowych elementów nieobecnych w PC/MS-DOS.

    Sierpień 1993 - MS udostępnia wersję MS-DOS 6.0 - dodano programy MEMMAKER (optymalizacja wykorzystania pamięci), DOUBLESPACE (kompresja twardego dysku), ulepszony SMARTDRIVE (cache CD-ROM'u), INTERLINK (do przesyłania danych pomiędzy dwoma komputerami po złączu szeregowym lub równoległym - tzw. nullmodem) możliwość uruchomienia menu konfiguracyjnego w pliku CONFIG.SYS oraz przetwarzania AUTOEXE.BAT krok po kroku, skaner antywirusowy, DEFRAG korzysta z EMS/XMS (defragmentacja twardego dysku). W ciągu pierwszych 40 dni sprzedano 1 milion kopii (retail).

    W listopadzie 1993 - wersja MS-DOS 6.20 z ulepszonym programem DOUBLESPACE, SCANFIX (rozszerzona wersja chkdsk), DISKCOPY wreszcie używa twardego dysku do buforowania kopiowania dyskietek (likwiduje to konieczność częstego zmieniania dyskietki w napędzie), drobne zmiany w MEM, DIR, CHKDSK, FORMAT (kropka po trzech cyfrach w dużych liczbach) oraz w MOVE, COPY, XCOPY (pytanie przed nadpisaniem pliku).

    W marcu 1994 - wersja MS-DOS 6.21 bez DOUBLESPACE

    W kwietniu 1994 - PC-DOS 6.3 oraz wersja MS-DOS 6.22 z nowym programem kompresji dysku: DRIVESPACE

    W kwietniu 1995 - IBM wydaje PC DOS 7 ze zintegrowaną kompresją dysku firmy Stac Electronics (STACKER).

    W sierpniu 1995 - wersja MS-DOS 7.0 jako część składowa Windows95 (emulacja DOS'a w środowisku Windows95).

    W sierpniu 1996 - wersja MS-DOS 7.1 jako część składowa Windows95OSR2.

    Zakończenie

    MS-DOS i PC-DOS chodziły nie tylko na klonach IBM PC. Istniała karta rozszerzenia dla Apple II, która umożliwiała uruchamianie (niektórych tzw. well behaved) programów dosowskich. Podobnego typu karty oferowano także dla Commodore Amiga 2000, Apple MacIntosh II oraz IMB RT PC. Pozwalały one uruchamiać środowisko DOS. ATARI ST posiadał emulator DOS nazwany PC-Ditto i był w stanie uruchomić w pełni funkcjonalną, dowolna wersje DOSa. System OS/2 zawierał w sobie tzw. DOS Compatibility Box gdzie można było uruchamiać wiadome oprogramowanie. QNX, niektóre wersje UNIXa i Linuxa mogą uruchomić emulatory DOSa jako jeden z procesów.

    Dużą wadą systemu DOS wynikającą z budowy komputerów typu IBM PC jest ograniczenie pamięci operacyjnej do 640kB. Mogło się ono wydawać nieistotne w czasie powstawania systemu, później jednak stało się poważną przeszkodą w wykorzystywaniu możliwości komputerów. Złagodzono to w wersjach 5.00 i wyższych, wprowadzając tryb wirtualny 8086 oraz stronicowanie.

    Chronologiczne zestawienie wersji systemu

    08.1980QDOS 0.1napisany przez Tima Pattersona w Seattle Computer Products
    10.1980 Microsoft rozmawia z SPC o wykupieniu praw do systemu
    12.198086-DOS 0.3napisany w Seattle Computer Products (poprawiona, przemianowana wersja QDOS'a), MS wykupuje prawa do systemu na zasadach non-exclusiv
    02.1981MS-DOS 1.0uruchomiony na prototypie IBM PC
    04.198186-DOS 1.0powstaje w Seattle Computer Products
    07.198186-DOS 1.0MS wykupuje wszystkie prawa do systemu od SCP za $50 000
    08.1981PC-DOS 1.00wprowadzony wraz z IBM PC (odpowiada 86-DOS):
    • obsługa jednostronnych, 8-sektorowych napędów dysków elastycznych 160kB;
    • zawiera: COMMAND.COM - interpreter plików wsadowych oraz poleceń: DIR, REN, DEL, COPY, TYPE, PAUSE, CHKDSK, DATE, TIME, FORMAT, SYS, ponadto EDLIN (ascetyczny edytor tekstu), DEBUG (assembler/debuger ?), FILCOM (program do porównywania plików);
    • wewnętrzna wersja 1.05 poprawione kilka błędów
    06.1982PC-DOS 1.10poprawione usterki (1.05), dodana obsługa dwustronnych, 8-sektorowych napędów dysków elastycznych 320kB
    07.1982MS-DOS 1.25odpowiada PC-DOS 1.10, pierwszy DOS wypuszczony nie przez IBM
    03.1983PC-DOS 2.0wprowadzony wraz z IBM PC-XT, usprawnienia:
    • hierarchiczna struktura katalogów i podkatalogów na wzór UNIX'a,
    • koncepcje standardowego urządzenia I/O, strumienia danych (z możliwością przekierowyania jego wejścia/wyjścia), przetwarzania potokowego - również wzorowane na UNIX'ie,
    • instalowalne sterowniki urządzeń,
    • poprawione zarządzanie pamięcią operacyjną,
    • nowy sposób realizacji dostępu systemu do plików poprzez handle (ze względów na kompatybilność pozostawiono również dotychczasowe FCB),
    • polecenie PRINT działające w tle i realizujące wydruk kolejki plików (spooler),
    • sterownik ekranu i klawiatury ANSI.SYS,
    • nowe polecenia systemowe: BACKUP, CD, MD, PATH, RD, RESTORE, TREE, GOTO, IF, ECHO, CLS, FOR, SHIF, LABEL(?),
    • mini-assembler DEBUG,
    • ulepszony interpretator BASICa,
    • obsługa twardych dysków (do 10MB),
    • obsługa dwustronnych, 9-sektorowych napędów dysków elastycznych 360kB
    05.1983MS-DOS 2.01po raz pierwszy z obsługą formatów międzynarodowych
    10.1983PC-DOS 2.10wersja dla IBM PCjr, poprawione kilka błędów
    12.1983MS-DOS 2.11krzyżówka PC-DOS 2.10 i MS-DOS 2.01
    08.1984PC-DOS 3.0wprowadzone wraz z IBM PC-AT, usprawnienia:
    • 16-bitowy FAT,
    • możliwość uruchamiania programów przez podanie ścieżki dostępu,
    • obsługa dysku stałego o pojemności 20 MB,
    • obsługa napędów 5.25" 1.2MB,
    • możliwość symulacji dysku w pamięci operacyjnej (RAMDISK),
    • tzw. polecenia narodowe (COUNTRY, KEYBxx i SELECT),
    • nowe polecenia: ATTRIB, GRAFTABL, LABEL i SHARE,
    • kilka dodatkowych programów narzędziowych,
    • obsługa sieci IBM.
    11.1984MS-DOS 3.05pierwsza wersja 3.x spoza IBM
    03.1985PC-DOS 3.10poprawione błędy, dodana generalna obsługa sieci LAN i współużytkowania plików, nowe polecenia: JOIN i SUBST, zmienione polecenia: LABEL i TREE.
    10.1985MS-DOS 2.25rozszerzona obsługa języków narodowych
    01.1986PC-DOS 3.20
    • obsługa napędów 3.5" 720kB,
    • obsługa laptopów IBM PC Convertible,
    • zabezpieczenie przed przypadkowym formatowaniem dysku stałego,
    • możliwość kontroli urządzeń niestandardowych i logicznych,
    • polecenia systemowe REPLACE i XCOPY,
    • ulepszone polecenia: COMMAND, ATTRIB, FORMAT, GRAPHICS, SELECT, SHELL,
    • wersje znacjonalizowane MS- i PC-DOS
    04.1986MS-DOS 4.00multitasking (tylko w Europie), szybko wycofany
    04.1987PC-DOS 3.30wprowadzony wraz z modelem IBM PS/2, usprawnienia:
    • obsługa napędów 3.5" 1.44MB,
    • obsługa kilku partycji (do 24 dysków logicznych),
    • przełączanie stron kodowych (CHCP, NLSFUNS),
    • usprawniona obsługa języków narodowych (KEYB, KEYBOARD.SYS, zrezygnowano z KEYBxx),
    • nowe polecenia systemowe: APPEND, CALL, FASTOPEN,
    • programy sterujące: DISPLAY.SYS i PRINTER.SYS,
    • zmodyfikowane polecenia: ATTRIB, BACKUP, DATE, TIME, FDISK, RESTORE, XCOPY,
    • obsługa zegara CMOS w AT
    11.1987MS-DOS 3.31obsługa partycji DOS większych niż 32MB
    08.1988PC-DOS 4.00usprawnienia:
    • obsługa dysków większych niż 32MB,
    • obsługa EMS (Expanded Memory), realizowana przez programy XMA2EMS.SYS i XMAEM.SYS,
    • możliwość korzystania z pamięci EMS przez polecenia BUFFERS i FASTOPEN, programy VDISK.SYS i DEBUG.COM,
    • rozszerzona obsługa sieci,
    • zarzucona obsługa PCjr,
    • graficzne środowisko systemu - DOSSHELL,
    • nowe polecenia: MEM, INSTALL, SWITCHES,
    • zmodyfikowane polecenia: APPEND, CHKDSK, ERASE, FASTOPEN, FDISK, FORMAT, GRAPHICS, MODE, REM, REPLACE SELECT, SYS.
    12.1988MS-DOS 4.01zmienione i rozbudowane mechanizmy zarządzania pamięcią (HIMEM.SYS i EMM386.SYS?),kilka poprawionych błędów
    06.1991MS-DOS 5.00usprawnienia:
    • obsługa XMS (Extended Memory) i HMA (High Memory Area) poprzez sterownik HIMEM.SYS i EMM386.EXE,
    • możliwość ładowania sterowników (device drivers) i programów rezydentnych (TSR - Terminated (and) Stay Resident) do UMB (Upper Memory Blocks) - obszaru powyżej 640kB,
    • obsługa do 8 twardych dysków,
    • dysk logiczny może być większy niż 32MB,
    • język interpretator QBASIC,
    • pełnoekranowy edytor tekstu EDIT,
    • system informacji pomocniczych HELP i opcja "/?" w każdym poleceniu,
    • program DOSKEY,
    • zwiększenie bezpieczeństwa systemu (UNFORMAT, UNDELETE, MIRRIR),
    • zmiany w poleceniu DIR,
    • obsługa napędów 2.88MB
    03(08?).1993MS-DOS 6.00usprawnienia:
    • kompresja dysku (DOUBLESPACE),
    • wybór konfiguracji przy starcie,
    • optymalizacja wykorzystania pamięci (MEMMAKER),
    • przerobiony program SMARTDRIVE (cache także CD-ROM'u),
    • przesyłanie danych złączem szeregowym/równoległym (INTERLINK),
    • podczas ładowania pojawia się napis "Starting MS-DOS"
    09.1993MS-DOS 6.20nowy DOUBLESPACE, SCANFIX (nowa wersja CHKDSK), zmiany w DISKCOPY (używa bufora na twardym dysku, co redukuje ilość zmian dyskietek w napędzie), drobne zmiany w: MEM, DIR, CHKDSK, FORMAT (format wyświetlanych informacji) oraz MOVE, COPY, XCOPY (ostrzeżenie przed nadpisaniem pliku)
    03.1994MS-DOS 6.21bez DOUBLESPACE
    05.1994MS-DOS 6.22nowa kompresja dysku (DRIVESPACE)
    08.1995MS-DOS 7.00element Windows 95
    08.1996MS-DOS 7.10element Windows 95OSR2


© Polmax.
Autorem materiałów jest Paweł Boguś.