Wstęp do informatyki i architektury komputerów
Transkrypt
Wstęp do informatyki i architektury komputerów
O czym będziemy mówić Wstęp do informatyki i architektury komputerów Wiesław Pawłowski Wstęp do informatyki i architektury komputerów 1 ● czym jest/czym zajmuje się informatyka? ● nieco historii – „od liczydła do iPod'a” ● architektura komputerów ● systemy operacyjne ● języki programowania ● narzędzia programistyczne ● ... Wstęp do informatyki i architektury komputerów Czym jest informatyka ? Czym jest informatyka ? ● ● ● ● pojęcie informatyki jest tak obszerne, a jej zastosowania tak różnorodne, że trudno o zwięzłą odpowiedź w bardzo dużym stopniu zależeć ona będzie od tego, kogo zapytamy... jako przyszli „zawodowcy” przyjrzymy się zagadnieniu „od podstaw” Wstęp do informatyki i architektury komputerów 2 3 nauką o komputerach (??) – nie obejmuje (bardzo ważnych) prac teoretycznych, które nie używają prawdziwych komputerów, a jedynie ich formalnych modeli – spora część codziennej pracy informatyków odbywa się przy pomocy kartki i ołówka (tak, tak!!!) – informatyka pojawiła się wcześniej niż same komputery – informatyka mówi o komputerach w stopniu nie większym niż astronomia o teleskopach, czy chemia o probówkach – nie chodzi o narzędzie, ale o to jak i do czego możemy je użyć Wstęp do informatyki i architektury komputerów 4 Czym jest informatyka ? ● nauką o programowaniu (??) – ● Czym zajmuje się informatyka ? ● programowanie jest ważną, ale nie najważniejszą częścią informatyki nauką o użytkowaniu i zastosowaniach komputerów i programów (??) – – nauka użytkowania komputerów i oprogramowania ma się tak do informatyki jak kurs prawa jazdy do inżynierii motoryzacyjnej ● – problemami przechowywania, przesyłania, przetwarzania i interpretowania informacji – systematycznym badaniem, analizą i projektowaniem procesów algorytmicznych jako inżynieria – informatyka odpowiedzialna jest za projektowanie i konstruowanie oprogramowania Wstęp do informatyki i architektury komputerów jako nauka 5 implementacją i zastosowaniami procesów algorytmicznych Wstęp do informatyki i architektury komputerów 6 Algorytm - co to takiego ? algorytm - przepis postępowania prowadzący do rozwiązania określonego zadania; zbiór poleceń dotyczących pewnych obiektów (danych) — ze wskazaniem kolejności, w jakiej mają być wykonane; wykonawcą jest układ, który na sygnały reprezentujące polecenia reaguje ich realizowaniem — może nim być człowiek lub urządzenie automatyczne, np. komputer.[...] U podstaw informatyki leży pojęcie algorytmu [Encyklopedia PWN] Wstęp do informatyki i architektury komputerów 7 Wstęp do informatyki i architektury komputerów 8 Algorytm – najważniejsze cechy ● ● ● ● Przykłady precyzyjnie i jednoznacznie zdefiniowany ciąg czynności (operacji) ● ciąg operacji musi być skończony ● problem: znajdź i wydrukuj setną w kolejności liczbę pierwszą algorytm (??): każda z operacji wchodzących w jego skład musi być „obliczalna” (dać się wykonać) 1. sporządź listę wszystkich liczb pierwszych algorytm musi dawać wynik w skończonej liczbie kroków (zastosowań operacji) 3. wydrukuj setny element listy 2. uporządkuj je w kolejności rosnącej czy jest to algorytm? NIE – operacje 1 oraz 2 nie są efektywnie obliczalne! Wstęp do informatyki i architektury komputerów 9 Wstęp do informatyki i architektury komputerów Przykłady ● ● 10 Przykłady algorytmów problem: mycie włosów ● algorytm (??): – 1. zwilż włosy wodą ● 2. użyj szamponu 4. powtórz czynności 2-4 ● czy jest to algorytm? 11 algorytmy dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych Król Edward VIII, lata 30-te XX w. – NIE – mycie włosów nigdy nie dobiegnie końca algorytm obliczania NWD Muhammad al-Khwarizmi, IX w. n.e. – 3. spłucz włosy wodą Wstęp do informatyki i architektury komputerów Euklides, 400-300 r. p.n.e. algorytm wiązania krawata „windsor” Wstęp do informatyki i architektury komputerów 12 Problemy algorytmiczne Poprawne dane wejściowe Specyfikacja poprawnych danych wejściowych + Czy wszystko da się obliczyć? ● – ? Definicja oczekiwanych wyników jako funkcji danych wejściowych Problem algorytmiczny Algorytm – Spodziewany wynik ● 13 opis ciągu czynności A („program”) ● dane wejściowe D pytanie (wynik) czy „wykonanie” A dla danych D zakończy się w skończonej liczbie kroków? Problem „decyzyjny”: czy istnieje algorytm testujący własność stopu dla dowolnych A i D? Wstęp do informatyki i architektury komputerów Załóżmy, że istnieje algorytm S, który dla dowolnego programu A i danych D zwraca: – 1 jeżeli A zatrzymuje się dla danych D, oraz – 0 w przeciwnym razie. 14 Własność stopu c.d. T(P) := if S(P,P)=1 then pętla else stop fi ● Załóżmy, że S(T,T)=1 wówczas... S(T,T) = 0 Niech T(P) := if S(P,P)=1 then pętla else stop fi ● ● Rozwiązanie Czy wszystko da się obliczyć? ● dane wejściowe ● Wstęp do informatyki i architektury komputerów ● „Własność stopu” ● Jaką wartość zwróci S(T,T)? Załóżmy więc, że S(T,T)=0 wówczas... S(T,T) = 1 ! W obu przypadkach – sprzeczność z założeniem! Wstęp do informatyki i architektury komputerów 15 Wstęp do informatyki i architektury komputerów 16 Weryfikacja programów jest nierozstrzygalna Nie wszystko da się obliczyć ● – ● 1. Program A 2. Problem algorytmiczny P Wniosek: Nie istnieje algorytm pozwalający rozstrzygać własność stopu Weryfikator programów Istnieje wiele problemów nierozstrzygalnych (nieobliczalnych) tzn. takich, dla których nie istnieją rozwiązujące je algorytmy Tak, jeśli program A rozwiązuje problem P Wstęp do informatyki i architektury komputerów 17 Program ... Program Wstęp do informatyki i architektury komputerów 18 Twierdzenie [Rice, 1953]: Problem ... Wstęp do informatyki i architektury komputerów Obliczenia są ... nieobliczalne Problemy, algorytmy i programy Algorytm Nie, jeśli program A nie rozwiązuje problemu P Jeśli własność W Algorytm Program ... – nie jest własnością wszystkich programów – nie zależy od składni (jest własnością algorytmu) wówczas W jest nierozstrzygalna. Program 19 Wstęp do informatyki i architektury komputerów 20 Obliczalność problemów algorytmicznych Złożoność (czasowa) algorytmów ● problem weryfikacji, własność stopu, ... sortowanie, test pierwszości liczby, ... Problemy nieobliczalne ● Problemy obliczalne Wstęp do informatyki i architektury komputerów 21 Złożoność algorytmów - przykłady – O(log N) : wyszukiwanie w zbiorze uporządkowanym – O(N) : proste wyszukiwanie – O(N log N) : „sprytne” sortowanie – O(N2) : proste sortowanie – O(2N) : problem „wież Hanoi” Wstęp do informatyki i architektury komputerów Złożoność algorytmu – jak rośnie koszt wykonania wraz ze wzrostem rozmiaru danych. Złożoność w „notacji O” – O(1) – stała (niezależna od wielkości danych) – O(log N) – logarytmiczna („sub-liniowa”) – O(N) – liniowa – O(N log N) „prawie liniowa” – O(Nk) – wielomianowa – O(CN) - wykładnicza Wstęp do informatyki i architektury komputerów 22 Problem wież Hanoi 23 Wstęp do informatyki i architektury komputerów 24 Problem wież Hanoi Problem wież Hanoi Wstęp do informatyki i architektury komputerów 25 Złożoność algorytmu a czas jego wykonania 10 N 2 N5 2N NN 1/10000 s 1/10 s 1/1000 s 2.8 h 20 50 100 1/400 s 1/100 s 1/25 s 3.2 s 5.2 min 2.8 h 3.7 dni 1s 3.3 biliona lat 35.7 lat 70-cyfrowa liczba stuleci 185cyfrowa liczba stuleci Wzrost wielomianowy i wykładniczy 1E+280 1E+266 1E+252 1E+238 1E+224 1E+210 1E+196 1E+182 1E+168 1E+154 1E+140 1E+126 1E+112 1E+98 1E+84 1E+70 1E+56 1E+42 1E+28 1E+14 1 45-cyfrowa liczba stuleci 445cyfrowa liczba stuleci 5N N^3 N^5 N^10 1.2^N 2^N N^N 2 4 8 16 Liczba mikrosekud w ciągu dnia Założenie: nasz komputer wykonuje 1 milion operacji na sekundę Wstęp do informatyki i architektury komputerów 26 200 1/2500 s ponad 400 bilionów stuleci Wstęp do informatyki i architektury komputerów 27 Wstęp do informatyki i architektury komputerów 32 64 128 256 512 1024 2048 Liczba mikrosekund od Wielkiego Wybuchu 28 Czy można lepiej? ● ● Złożoność algorytmu i złożoność problemu Przykład: dwa algorytmy sortowania – sortowanie „bąbelkowe” : O(N2) – sortowanie „przez scalanie” : O(N log N) ● Pytanie: – ● Czy istnieje algorytm sortujący o złożoności niższej niż O(N log N) ? Wstęp do informatyki i architektury komputerów 29 ● ● Określa, że problem możemy rozwiązać „co najmniej tak dobrze” Być może istnieje lepsze rozwiązanie ... ● Obniżane przez znalezienie lepszego algorytmu – ● ● ● np. „dla problemu X najlepszy znany algorytm miał złożoność O(N3), a mój nowy ma złożoność O(N2) !!!” Wstęp do informatyki i architektury komputerów – oszacowanie górne : zdefiniowane przez algorytm – oszacowanie dolne : ustalane na podstawie dowodu matematycznego 30 Oszacowanie dolne złożoności problemu Zdefiniowane przez algorytm ● Złożoność problemu Wstęp do informatyki i architektury komputerów Oszacowanie górne złożoności problemu ● Złożoność algorytmu – ustalana na podstawie jego analizy Określone przez dowód matematyczny Stwierdza, że problemu „nie da się rozwiązać lepiej” Być może nie znajdziemy tak dobrego rozwiązania ... Podwyższone przez znalezienie „lepszego dowodu” – 31 np. „dla problemu X najmocniejszy znany dowód mówił o złożoności O(N), a mój nowy - o złożoności O(N2) !!!” Wstęp do informatyki i architektury komputerów 32 Oszacowanie dolne i oszacowanie górne Oszacowanie górne Problemy otwarte Obniżane przez lepszy algorytm Oszacowanie górne Obniżane przez lepszy algorytm „Luka algorytmiczna” (o. górne ≠ o. dolne) Oszacowanie dolne Wstęp do informatyki i architektury komputerów Podwyższane przez lepszy dowód Oszacowanie dolne 33 Wstęp do informatyki i architektury komputerów Problemy zamknięte 34 Ograniczenie górne = ograniczenie dolne ● Oszacowanie górne ● ● Oszacowanie dolne Wstęp do informatyki i architektury komputerów Podwyższane przez lepszy dowód 35 Przykłady problemów zamkniętych: – wyszukiwanie w liście uporządkowanej – sortowanie – problem „wież Hanoi” Lepsze algorytmy wciąż możliwe Różnica w złożoności niewykrywalna za pomocą „dużego O” - ewentualny zysk w „kosztach stałych” Wstęp do informatyki i architektury komputerów 36 Algorytmy i komputery Informatyka a „maszyny liczące” ● algorytm pomysł algorytmu programowanie ● program wykonanie przez komputer ludzie od najdawniejszych czasów ułatwiali sobie życie poprzez konstruowanie różnego rodzaju maszyn liczących bez pojawienia się „prawdziwych komputerów” dynamiczny rozwój informatyki jaki obserwujemy dzisiaj nie byłby możliwy kompilacja jak i kiedy wynaleziono komputery ? „kod wykonywalny” Wstęp do informatyki i architektury komputerów Wstęp do informatyki i architektury komputerów 37 Pierwsze „maszyny liczące” ● 38 Pierwsze „maszyny liczące” c.d. abakus (liczydło) ● Suwak logarytmiczny – Babilon – Grecja – Rzym – Chiny Wilhelm Schickard (1623) – Japonia Blaise Pascal (1642) – Majowie Gottfried von Leibniz (1673) – ... William Oughtred (1622) suwak logarytmiczny Oughtreda ● liczydło rzymskie Kalkulatory mechaniczne liczydło chińskie zrekonstruowany kalkulator Schickarda Wstęp do informatyki i architektury komputerów 39 Wstęp do informatyki i architektury komputerów 40 Pionierzy informatyki Oryginalne krosno Jacquarda Joseph-Marie Jacquard (1752-1834) krosno „sterowane numerycznie” (1801) Wstęp do informatyki i architektury komputerów 41 Wstęp do informatyki i architektury komputerów 42 Pionierzy informatyki c.d. Nośnik danych - „karty perforowane” Charles Babbage (1791-1871) maszyna różnicowa (1822) maszyna analityczna (1833) Wstęp do informatyki i architektury komputerów 43 Wstęp do informatyki i architektury komputerów 44 Maszyna różnicowa (1822) Maszyna różnicowa c.d. niech: f(x) = 2x2 - 3x + 2 zadanie: wyliczyć wartości: f(0), f(0.1), f(0.2), f(0.3), ... ● tabulator wielomianów ● nigdy nie zrealizowana przez Babbage'a ● f(0.0)=2.00 2.00-1.72=0.28 f(0.1)=1.72 0.28-0.24=0.04 1.72-1.48=0.24 f(0.2)=1.48 ● 0.24-0.20=0.04 1.48-1.28=0.20 f(0.3)=1.28 0.20-0.16=0.04 1.28-1.12=0.16 f(0.4)=1.12 Szwed George Scheutz (1785-1873) zbudował kilka sztuk, począwszy od 1855 r. zbudowany w 1991 według planów Babbage'a egzemplarz pozwala tabulować wielomiany st. 7 z dokładnością 31 cyfr dziesiętnych f(0.5) = 1.12 - (0.16 - 0.04) = 1.00 Wstęp do informatyki i architektury komputerów 45 Wstęp do informatyki i architektury komputerów Maszyna analityczna (1833) Maszyna analityczna c.d. tabulator „dowolnych funkcji” ● ● napędzana maszyną parową programowalność ● ● wymiary: 30 x 10 x 2 m rozdzielenie funkcji programu oraz danych ● ● projekt nigdy nie doczekał się realizacji ● nośnik programu i danych: karty perforowane ● pamięć na 1000 liczb 50-cyfrowych ● ● procesor („młyn”) zdolny do wykonywania kompletu operacji arytmetycznych Wstęp do informatyki i architektury komputerów 46 ● 47 na jej potrzeby zaprojektowano pierwszy język programowania koncepcyjny pierwowzór komputera Harvard Mark I zbudowanego w roku 1944 Wstęp do informatyki i architektury komputerów 48 Pionierzy informatyki c.d. Pionierzy informatyki c.d. George Boole (1815-1864) Alan Turing (1912-1954) algebra logiki (1848) maszyna Turinga (1936) A B A & B true true true true false false false true false false false Wstęp do informatyki i architektury komputerów pojęcie obliczalności „Bomba” (1939-1942) false 49 Maszyna Turinga Wstęp do informatyki i architektury komputerów 50 Maszyna Turinga - sterowanie Ogólna postać instrukcji (polecenia) sterowanie (program) (stan, symbol wejściowy) głowica odczytująco/zapisująca (symbol wyjściowy, ruch głowicy, nowy stan) taśma (pamięć) Program = ciąg instrukcji Wstęp do informatyki i architektury komputerów 51 Wstęp do informatyki i architektury komputerów 52 Przykład: maszyna dodająca 1+2 A 1) * * Maszyna uniwersalna (A, *) -> ( _, prawo, A) (A, nic) -> ( *, prawo, B) (B, *) -> ( _, prawo, B) (B, nic) -> ( _, lewo, C) (C, *) -> ( nic, stop, STOP) * A 2) * * B * 5) * * * * * * C * 6) * * * * * * * 7) * * – maszyna ≈ program w języku programowania – maszyna uniwersalna ≈ „interpreter” języka programowania napisany w nim samym * 53 Maszyna Turinga – kilka uwag ● bardzo prosty model obliczeniowy ● „pełna moc obliczeniowa” ● Maszyny Turinga a programy =3 Wstęp do informatyki i architektury komputerów – Uniwersalna maszyna Turinga – maszyna, która może symulować wszystkie maszyny Turinga na podstawie ich „opisu” * STOP B 4) ● * B 3) ● Wstęp do informatyki i architektury komputerów 54 Pionierzy informatyki c.d. Claude E. Shannon (1916-2001) teoria obwodów (1937) wszystko co „da się obliczyć” da się obliczyć za pomocą (uniwersalnej) maszyny Turinga koncepcyjny (choć nie architekturalny!) protoplasta wszystkich dzisiejszych komputerów „implementacja” algebry logiki Boole'a Wstęp do informatyki i architektury komputerów 55 Wstęp do informatyki i architektury komputerów 56 Pionierzy informatyki c.d. Pionierzy informatyki c.d. Konrad Zuse John von Neumann (1910-1995) (1903-1957) Z3 (1941) pierwszy programowalny komputer binarny (zbudowany na przekaźnikach) projekt „maszyny z Princeton” (1945) EDVAC (1951) – pierwowzór współczesnej architektury komputerowej ploter (1958) Wstęp do informatyki i architektury komputerów 57 ● 1939-41 – ABC (Atanasoff-Berry Computer), pierwszy komputer cyfrowy (w pełni lampowy) podstawa technologiczna – lampy elektronowe, pamięć bębnowa 1943 – Colossus (używany do deszyfrowania Enigmy) najważniejsze cechy 1944 – Harvard Mark I – ogromne rozmiary – olbrzymia energochłonność i duża zawodność 1946, 1948 – ENIAC – karty/taśmy perforowane i wydruki jako wej-wyj 1947 – tranzystor (Bell Labs) – programowane w języku maszynowym lub języku asemblera 1950 – UNIVAC, pierwszy komputer komercyjny – 1953 – IBM 650, sprzedano 1.5 tys sztuk programy trzymane w pamięci „zewnętrznej” Wstęp do informatyki i architektury komputerów 58 Ważniejsze wydarzenia Komputery pierwszej generacji (1940-1956) ● Wstęp do informatyki i architektury komputerów 1956 – pierwszy dysk twardy (IBM; 5MB; $10000/MB) 59 Wstęp do informatyki i architektury komputerów 60 Atanasoff-Berry Computer (ABC) Pamięć bębnowa komputera ABC (1939) Pojemność: 30 liczb 50-bitowych Wstęp do informatyki i architektury komputerów 61 Colossus Wstęp do informatyki i architektury komputerów 62 Dwie programistki i ENIAC Pobór mocy: 160 kW (sic!) Wstęp do informatyki i architektury komputerów 63 Wstęp do informatyki i architektury komputerów 64 ENIAC i programistka Wstęp do informatyki i architektury komputerów John von Neumann i EDVAC 65 Pamięć bębnowa Wstęp do informatyki i architektury komputerów Wstęp do informatyki i architektury komputerów 66 UNIVAC – pierwszy komputer „komercyjny” 67 Wstęp do informatyki i architektury komputerów 68 Wizja komputera domowego - 1954 Wizja komputera domowego - 1954 Naukowcy z RAND Corporation stworzyli ten model, aby zilustrować, jak może wyglądać „komputer domowy” w roku 2004. Jednakże wymagana do tego celu technologia nie będzie zapewne w zasięgu „przeciętnego gospodarstwa domowego”. [...] Z konsolą dalekopisową oraz językiem programowania Fortran [1954-57, John Backus] komputer ten będzie prosty w użyciu [...] Wstęp do informatyki i architektury komputerów 69 podstawa technologiczna – ● 1956 - TX-0 (pierwszy komputer „tranzystorowy”) tranzystory, pamięć rdzeniowa najważniejsze cechy 1958 – układ scalony (Texass Instruments); International Algorithmic Language (protoplasta Algolu); pierwszy modem telefoniczny (Bell Labs) – mniejsze, szybsze, tańsze i bardziej niezawodne niż 1 generacja, choć wciąż podatne na uszkodzenia – nadal nośniki perforowane i wydruki jako wej-wyj 1960 – PDP-1, komputer z klawiaturą i monitorem, Algol 60 (nowoczesny język programowania) – programowane w językach wysokiego poziomu, jak Fortran, Cobol czy Algol 60 1963 – pierwsza mysz komputerowa – programy ładowane do pamięci „operacyjnej” Wstęp do informatyki i architektury komputerów 70 Ważniejsze wydarzenia Druga generacja (1956-1963) ● Wstęp do informatyki i architektury komputerów 71 Wstęp do informatyki i architektury komputerów 72 Pamięć rdzeniowa Wstęp do informatyki i architektury komputerów MIT TX-0 73 Wstęp do informatyki i architektury komputerów DEC PDP-1 Trzecia generacja (1964-1971) ● podstawa technologiczna – ● Wstęp do informatyki i architektury komputerów 74 75 układy scalone (wiele tranzystorów na jednej płytce krzemu) najważniejsze cechy – zdecydowanie mniejsze, szybsze i bardziej niezawodne niż maszyny poprzednich generacji – klawiatura i monitor jako urządzenia wej-wyj – system operacyjny ułatwiający pracę z komputerem Wstęp do informatyki i architektury komputerów 76 Ważniejsze wydarzenia Denis Ritchie, Ken Thompson i DEC PDP-7 1967 – Simula 67 (pierwszy język obiektowy; OleJohan Dahl) 1968 – powstaje firma Intel 1969 – pierwsza wersja systemu Unix (PDP-7) 1970 – dyskietka 8”, pamięć półprzewodnikowa, „pełnowartościowa” wersja systemu Unix (PDP-11/20) Thompson (język B), Ritchie (język C) Wstęp do informatyki i architektury komputerów 77 Wstęp do informatyki i architektury komputerów Czwarta generacja (1971- ...) ● ● Czwarta generacja (1971- ...) podstawa technologiczna – ● mikroprocesory (tysiące układów scalonych na jednej płytce krzemu; Marcian Hoff) najważniejsze cechy – miniaturyzacja, wysoka niezawodność, duża wydajność i (stosunkowo) niska cena – przyjazne dla użytkownika środowisko systemowe (interfejs graficzny, nowe urządzenia wej-wyj itp.) Wstęp do informatyki i architektury komputerów 78 79 konsekwencje rozwoju – rozkwit języków programowania wysokiego poziomu oraz oprogramowania narzędziowego – wprowadzenie i rozkwit sieci komputerowych – stopniowe zacieranie się granic pomiędzy sprzętem komputerowym a urządzeniami powszechnego użytku – ekspansja technik cyfrowych we wszystkich dziedzinach zastosowań – ... Wstęp do informatyki i architektury komputerów 80 Ważniejsze wydarzenia 4-bitowy Intel 4004 (1971) 1972 – pierwsza transmisja e-mail (Ray Tomlinson), język C (Dennis Ritchie) 1973 – Unix „przepisany” w C 1975 – powstaje firma Microsoft Pierwszy komercyjny mikroprocesor jednoukładowy (740 kHz, 46 instrukcji, 2300 tranzystorów) Wstęp do informatyki i architektury komputerów 81 ● ● 82 1975: MITS Altair 8800 Komputery osobiste (1975- ...) ● Wstęp do informatyki i architektury komputerów rewolucja mikroprocesorowa znacznie obniża koszt maszyn, choć wciąż są zbyt drogie dla „przeciętnego śmiertelnika” ● CPU: Intel 8080 2MHz ● RAM: 256 B (sic!) ● rośnie zainteresowanie komputerami i ich „nieobliczeniowymi” zastosowaniami ● rośnie podaż i spadają ceny podzespołów elektronicznych ● czas na komputer osobisty !!! Wstęp do informatyki i architektury komputerów 83 Wstęp do informatyki i architektury komputerów zestaw do samodzielnego składania przełączniki i diody jako wej-wyj (programowany w kodzie binarnym) pierwszy komputer domowy 84 1976: Apple I 1977: Apple II ● CPU: MOS Tech. 6502 1 MHz ● RAM: 4-32 KB ● złącze klawiatury ● ● ● ● ● ● wyjście TV (24x40 znaków) OS: System Monitor (zajmował 256 bajtów) Apple BASIC (ładowany z taśmy magnetofonowej) 85 Microsoft Corporation w roku 1978 RAM: 4-64 KB klawiatura (tylko duże litery!) ● wyjście TV (80x24) ● wbudowany BASIC ● wyprodukowano ok. 200 szt. Wstęp do informatyki i architektury komputerów Wstęp do informatyki i architektury komputerów ● CPU: MOS Technology 6502 1 MHz wyprodukowano ok. 2 miliony sztuk Wstęp do informatyki i architektury komputerów 86 1981: Osborne 1 – pierwszy laptop 87 Wstęp do informatyki i architektury komputerów ● CPU: Zilog Z80 4 MHz ● RAM: 64 KB ● monitor 5” matryca 53x24 ● OS: CP/M ● waga: 12,25 kg ● opcjona: modem 300 bps ● SuperCalc, WordStar, Basic ● sprzedano ≥ 11 tys. sztuk 88 1981: IBM PC – Model 5150 Rozwój komputerów klasy PC ● CPU: Intel 8080 4.77 MHz ● RAM: 16-64 KB ● ● klawiatura (pełna) i monitor w komplecie ● matryca 25x80 znaków; opcjonalna grafika 8kolorowa (CGA) ● OS: MS DOS lub CP/M-86 ● początek „ery PC-tów” Wstęp do informatyki i architektury komputerów ● ● 89 IBM PC zawiera tylko jeden „zastrzeżony” element – BIOS; pozostałe części oraz system MS-DOS (przez IBM nazwany PC-DOS) są dostępne dla konkurencji w 1982 firmy Columbia i Compaq niezależnie opracowują własne wersje BIOS-u (na drodze tzw. reverse-engineering) i rozpoczynają produkcję pierwszych „klonów” IBM PC niezależne firmy jak Phoenix Tech. zaczynają oferować producentom komputerów BIOS praktyczne w 100% zgodny z IBM PC Wstęp do informatyki i architektury komputerów Dekada DOS-a i PC-tów 1980 – – – – 90 Dekada DOS-a i PC-tów 1981 1982 1983 Microsoft kupuje system DOS od Seattle Computer Products i przystosowuje go dla potrzeb powstającego IBM PC – MS-DOS 1.0 – MS-DOS 1.25 – MS-DOS 2.0 – Intel 8087 – Intel 80286 (16-bitowy) – – pojawia się IBM PC – IBM zleca firmie Microsoft implementację języków: Basic, Fortran, Cobol i Pascal na potrzeby IBM PC – firma Commodore wprowadza komputer domowy VIC-20 – poprzednika słynnego C64 (najlepiej sprzedającego się komputera w historii) firmy Columbia i Compaq rozpoczynają produkcję pierwszych „klonów” IBM PC pojawiają się: IBM PC-XT, Apple IIe i Apple Lisa – pojawiają się Commodore C64 i Sinclair ZX Spectrum ('82-'88) – powstają firmy: Adobe, Compaq, Hercules, Maxtor i Sun (4 pracowników) Microsoft rozpoczyna prace nad Xenix-em (wersją Unix-a na PC) – Sinclair Research wprowadza ZX81 (poprzednika słynnego ZX Spectrum) – powstają firmy: Adaptec, CTX, Logitech powstają firmy: FIC, Iomega, Quantum Wstęp do informatyki i architektury komputerów – 91 pojawiają się: Norton Utilities, MS Fortran, PC-Cobol, WordPerfect 1.0, Lotus 1-2-3 Wstęp do informatyki i architektury komputerów Apple Lisa – rewolucyjne GUI i zupełny niewypał rynkowy – magazyn Time ogłasza PC „Człowiekiem Roku” – Bill Gates prorokuje: „nikt nigdy nie będzie potrzebował więcej niż 640 KB RAM” 92 Dekada DOS-a i PC-tów 1984 1985 – MS-DOS 3.0 i 3.1 – Intel 80386 (32-bitowy) – IBM wprowadza IBM PC-AT oraz kartę graficzną EGA (640x350) – firma Microtek wprowadza pierwszy skaner (300 dpi) – pojawia się Apple Macintosh – idea graficznego interfejsu użytkownika odnosi sukces – MS Windows 1.0 – Microsoft i IBM rozpoczynają prace nad systemem OS/2 – powstają firmy: ATI, Corel, Gateway 2000, Gravis – rodzi się idea wolnego oprogramowania (manifest GNU) – powstają firmy: Cirrus, Dell, ESS Technologies – magistrala ISA poszerzona do 16 bitów; pojawiają się dyskietki 3.5” Wstęp do informatyki i architektury komputerów 93