Historia komputerów:
LICZYDŁO - 5000-3000 p.n.e.
kalkulatory mechaniczne Wilhelm Shickard
Blaise Pascal (umożliwiało sumowanie 8 - mio cyfrowych liczb)
Kości Napiera John Napier
William Ougtred - pierwowzór suwaka logarytmicznego
Kalkulator Leibnitza - Gotfrieda Wilhelma Leibnitza (systemu pozycyjnego, binarnego do informatyki)
Maszyna różnicowa - Charles Babbage
Maszyna analityczna - Charles Babbage
Maszyna tabulacyjna - Herman Hollerith
Era urządzeń elektro-mechanicznych
automaty liczące Z1, Z2 i Z3 - Konrad Zuse.
MARK I (1937 r.) - Automatyczny Sekwencyjnie Sterowany Kalkulator
Komputer ABC- pierwszy prototyp specjalizowanego komputera
ENIAC- Electronic Numerical Integrator and Calculator. Przyjmuje się iż był to pierwszy komputer elektroniczny nowej ery.
ENIAC (1943 - 1946) - Skonstruowany na potrzeby armii amerykańskiej. Wykorzystywany do sporządzania tablic balistycznych dla artylerii (rachunki dla pojedynczej trajektorii zajmowały 10-20 minut)
- Konstrukcja opierała się na idea sumatora PASCALA (kół cyfrowych) w wersji elektronicznej, komputer ten przetwarzał dane w systemie dziesiętnym
- Do konstrukcji pamięci wykorzystano 18 000 lamp elektronowych. Wydajność obliczeń wynosiła 5000 dodawań na sekundę.
- Poważną wadą była jego duża zawodność.
- ENIAC był maszyną cyfrową programowalną z tym, że programowanie zachodziło w drodze rekonfiguracji sprzętowej
- Pulpity obsługiwało się ręcznie
- Wykorzystano go do obliczenia wartości liczby Pi z dokładnością do 1000 miejsc po przecinku
EDVAC (1951 - 1952) - Pracę nad nim rozpoczęto w 1944 r. bazował na koncepcji von Neumann'a
- całkowite zautomatyzowanie przetwarzania danych bez bezpośredniego udziału i nadzoru człowieka w trakcie trwania procesu przetwarzania
- Koncepcja przechowywania programu w pamięci rozwiązywała ostatecznie problem programowania komputera i czyniąc z komputera narzędzie uniwersalne
Mikrokomputer - komputer, w którym funkcję centralnego procesora pełni mikroprocesor.
System komputerowy - program pośredniczący między użytkownikiem komputera, a sprzętem komputerowym
- Podstawowym celem SO jest spowodowanie, aby system komputerowy był wygodny w użyciu i jednocześnie zapewniał wydajną eksploatację sprzętu
- SO tworzy środowisko, w którym wykonywane są programy
SYSTEM OPERACYJNY
- W zaawansowanych SO wyróżniamy moduły odpowiedzialne za określone funkcje systemu operacyjnego, do których należą:
> Zarządzanie procesami
- tworzenie i usuwanie procesów
- wstrzymywanie i wznawianie procesów
- synchronizacja procesów
- komunikacja między procesami
- obsługa blokad (zakleszczeń)
> Zarządzanie zasobami systemu komputerowego
- pamięcią operacyjną
- pamięcią pomocniczą (zewnętrzna - dyski magnetyczne)
- systemem I/O
- plikami
> System ochrony - zapewnienie mechanizmu nadzoru dostępu programów, procesów lub użytkowników do zasobów systemu operacyjnego
> System interpretacji poleceń - tzw. Powłoka (shell)
Tryb interakcyjny - przy całkowitym braku oprogramowania systemowego. Na początku był TYLKO SPRZĘT. Program wprowadzano ręcznie lub później z czytnika kart perforowanych lub taśmy papierowej.
Tryb pracy wsadowej - monitor rezydujący. Uprzednio przygotowane kompletne zadania o podobnych wymaganiach sprzętowych i programowych gromadzono w tzw. jednolity wsad, tworzący kolejkę zadań realizowanych automatycznie przez monitor.
buforowanie - metoda jednoczesnego wykonywania obliczeń i operacji I/O dla danego zadania. Zamiar utrzymania jednostki centralnej i urządzeń I/O w stanie nieprzerwanej aktywności
Katalog - to zbiór zawierający systematyczny, często hierarchiczny spis obiektów jednego typu wraz z towarzyszącymi im atrybutami, umożliwiający klasyfikację obiektów według kategorii lub wybór obiektów według określonych kryteriów wyszukiwania.
Plik - ciąg danych (inaczej zbiór danych) o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość.
Ścieżka bezwzględna - rozpoczyna się od znaku "/" reprezentującego katalog główny, np.: /home/student/praca
Ścieżka względna - określa pozycję pliku względem katalogu w którym aktualnie znajduje się użytkownik, np: student/praca
Struktura drzewiasta - Niekoniecznie jest używana do pokazywania drzewiastej struktury danych; najczęściej chodzi tylko o pokazanie tabelki danych. Posiada ona bowiem dwie funkcjonalności, z których też nie zawsze wykorzystuje się obie na raz: pokazywanie linijek danych z podziałem na kolumny oraz pokazywanie drzewiastej struktury wraz z powiązaniami nadrzędności i podległości.
POWŁOKA ( ang. SHELL) - to program interpretujący polecenia użytkownika. Nazywamy powłoką. Powłoka przyjmuje polecenia od użytkownika, analizuje je i przekazuje jądru życzenia użytkownika.
POTOK jest to sposób zapisu szeregu poleceń (minimum dwóch), w którym wyjście poprzedzającego procesu jest kierowane bezpośrednio na wejście procesu kolejnego.
Kompilacja - wstępne przetworzenie instrukcji programu (kod źródłowy z języka C++ w procesie kompilacji zostaje przetłumaczony na język maszyny, czyli język binarny)
Łączenie - linkowanie (konsolidacja). Połączenie wszystkich niezależnych segmentów z uwzględnieniem bibliotek, w jeden wykonywalny program. (dopiero w procesie linkowania dochodzi do połączenia napisanego programu z wymaganymi w celu jego prawidłowego działania bibliotekami )
Algorytm musi spełniać dwa warunki:
- gwarantować otrzymanie rozwiązania w skończonej liczbie operacji
- wielokrotne wykonanie algorytmu dla tego samego zestawu danych powinno spowodować otrzymanie tego samego wyniku - warunek jednoznaczności
spooling - istota polega na wykorzystaniu pamięci dyskowej w roli olbrzymiego bufora do czytania z maksymalnym wyprzedzeniem z urządzeń wejścia i do przechowywania plików wyjściowych do czasu aż urządzenia wyjścia będą w stanie ją przyjąć oraz realizacji operacji I/O w trybie pośredniego nadzoru przez jednostkę centralną
Wieloprogramowość - realizacja wielu procesów (zadań) współbieżnie, czyli w tym samym czasie. W określonej chwili czasu pewna grupa zadań znajduje się w punkcie pośrednim między początkiem a zakończeniem.
POLECENIA UNIX
banner - wypisz argument wielkimi literami
who - kto jest w systemie
man - znajdź i wypisz pomoc (help)
echo - wypisanie argumentu
pwd - podaj ścieżkę do katalogu aktualnego (roboczego)
touch - ustaw czas dostępu i modyfikacji tworzonych lub istniejących plików
ls - wypisanie zawartości katalogów
chmod - zmiana praw dostępu
cd - ustal nowy katalog aktualny (roboczy)
mkdir - utwórz katalog
rm - usuń pliki lub katalogi
rmdir - usuń katalogi
cp - kopiuj pliki i katalogi
mv - przenieś lub zmień nazwę plików i katalogów
ln - zwiąż pliki i katalogi
cat - połącz (konkatenuj) i wyświetlaj pliki
cut - wytnij wybrane pola z wszystkich linii pliku
grep - wypisz wiersze pliku w których występuje wzorzec
wc - zlicz słowa, linie lub znaki
passwd - ustal lub zmień hasło
find - znajdź pliki
more - wyświetl zawartość pliku tekstowego z podziałem na ekrany
uniq - znajdź powtarzające się linie pliku
sort - sortuj i/lub scal pliki
tail - wypisz końcówkę pliku
head - pokaż początek pliku
test - podaj wartość wyrażenie logicznego
expr - wyznacz wartość wyrażenia
Pierwsza generacja komputerów
- Pierwsza generacja komputerów konstrukcyjnie oparta była na lampach elektronowych, zaś koncepcyjnie na idei von Neumann'a
1947 r. - wynalezienie Tranzystora (Bell laboratories), powstanie pierwszych magnetycznych nośników danych (bębny magnetyczne)
1953 r. - pierwsza pamięć zbudowana na rdzeniach magn, IBM powstaje pierwszy napęd taśmowy (magnetyczny)
1954 r. - powstaje pierwsza drukarka (Uniprinter, drukuje 600 linii/minutę), (Texas Instruments) tranzystor krzemowy
1955 r. - Narinder Kapany wynajduje włókno optyczne
1955 r. - IBM opracowuje pierwszy dysk twardy (RAMAC)
- powstało pojęcie programu komputerowego i języków programowania. Wiele komputerów 1 generacji programowanych było w języku maszynowym (binarnym). Nie istniały jeszcze systemy operacyjne
1949 r. - pierwszy język programowania wysokiego poziomu. Short Order Code wymyślony przez Johna Mauchly'ego
1951 r. - Murray Hopper - translator AO zmieniający kod programu na kod binarny
1955/56 r. - język programowania FORTRAN (IBM)
1955 r. - pierwszy system operacyjne Gene AMDAHL
- Najbardziej znane konstrukcje komputerów 1 generacji:
1946 - 51 r. - UNIVAC - Universal Automatic Computer - pierwszy komercyjny komputer zainstalowany w amerykańskiej instytucji zajmującej się spisami ludności
1953 r. - (IBM) komputer o nazwie 650, 1 wytwarzany masowo.
Druga generacja komputerów
- Komputery drugiej generacji oparte były na tranzystorach, zalety:
* Mniejsze rozmiary * Większa szybkość działania
* Większa niezawodność i mniejsze rozpraszanie energii
- Ponadto w tym okresie do powszechnego użytku weszły:
* Pamięć taśmowa z nośnikiem magnetycznym
* Pamięć dyskowa * Pamięć ferrytowa
* Wysokowydajne drukarki wierszowe
* Wysokowydajne urządzenia I/O (czytniki kart perforowanych, terminale etc.)
- W 1959 roku Seymour Cray (z Control Data Corporation) buduje pierwszy w pełni tranzystorowy superkomputer CDC 1604.
-modularność sprzętu komputerowego. Poszczególne egzemplarze komputerów zestawiane z odpowiednich modułów produkowanych seryjnie, dzięki czemu możliwe było zestawianie określonej konfiguracji komputera zgodnie z wymaganiami odbiorcy
- dalsze postępy w dziedzinie języków programowania:
1960 r. - język programowania Algol 60 (Algorythmic Language)
1961 r. - język COBOL (Computer Business Oriented Language)
1964 r. - język BASIC - uniwersalny język symboliczny dla początkujących
1967 r. - pierwszy język zorientowany obiektowo SIMULA
- Powstają pierwsze efektywne Systemy Operacyjne
1961 r. - powstają systemy przetwarzania w czasie rzeczywistym tj. takich, w których odpowiedź systemu komputerowego można uzyskać z dowolnego urządzenia I/O prawie natychmiast
Trzecia generacja komputerów
- Rozwój elektroniki - nowe ogromne osiągnięcie - opracowanego przez Texas Instruments w 1958 roku UKŁADU SCALONEGO
1958 r. - wynalezienie lasera (Bell Laboratories) oraz powstanie pierwszych modemów 300 bit/s (Bell Laboratories)
1959 r. - komercyjna kopiarka (Xerox)
1963 r. - mysz (Stanford Research Institute), rozpoczęcie w Polsce seryjnej produkcji komputerów z serii ODRA 1300, zatwierdzenie normy amerykańskiego 7 bitowego kodu ASCII
1967 r. - produkcja, na potrzeby armii komputera opartego na układ scalonych z pamięcią półprzewodnikową (Texas Instruments)
1969 r. - powstaje pierwsza sieć komputerowa APRANET łącząca uniwersytety (UCLA, UC w Santa Barbara, SR i University of Utah)
1970 r. - opracowanie systemu UNIX (Bell Laboratories)
1965 - nowy produkt firmy IBM - rodzina w pełni ze sobą zintegrowanych komputerów serii IBM 360
- Powiększeniem szybkości przetwarzania
- Powiększeniem precyzji obliczeń
- Integracją systemu i oprogramowania
- Umożliwieniem współbieżnie realizowanych operacji
- Poprawieniem stosunku możliwości/cena
- Usprawnieniem komunikacji między komputerami
- 1969 r. IBM ogłasza iż osobno płacimy za soft i hardware. Powstanie rynku oprogramowania.
-Powstają firmy zajmujące się produkcją oprogramowania
12. Era mikrokomputera
nowa liniia komputerów o nieco mniejszych możliwościach, które mogły zaspokoić wymagania mniejszych firm - MINIKOMPUTERY.
- Pierwszym na rynku mikrokomputerem był PDP 1,a funkcjonalnym był dopiero PDP 8 (1965 r.)
- W latach 70-tych w Polsce produkcję minikomputerów serii MERA
- Początek lat 70 tych przyniósł nowe układy scalone: układy LSI (Large Scale of Integration), które pozwoliły na rozpoczęcie nowej linii komputerów: klasy MIKROKOMPUTERÓW
- 1971 wyprodukowany pierwszy mikroprocesor 4 bitowy (Intel): Intel 4004 (108 KHz, 60 tyś operacji/s, 2300 tranzystorów).
13. Linia mikroprocesorów x86 firmy Intel
1971 - 4004 - pierwszy procesor, do kalkulatora,
1974 - 8080 - prosty procesor 8-bitowy
1978 - 8086, 8088 - 16-bitowe rozwinięcie poprzednich konstrukcji zewnętrznie okrojone do 8-bitów w przypadku 8088,
1982 - 80286 - Poszerzone tryby adresowania, tryby pracy real i protected
1985 - 80386 - Architektura 32-bitowa, nowy tryb adresowania , wbudowana jednostka zarządzania pamięcią MMU, nowe tryby pracy dla systemów wielozadaniowych,
1989 - 80486 - Cache L1 (8 kB) na chipie, wbudowana jednostka zmiennoprzecinkowa
1993 - Pentium (80586) - rozdzielone cache danych i instrukcji (po 8kB) superskalarna jednostka arytmetyczno-logiczna
1996 - Pentium MMX - cache L1 powiększona do 32 kB
1997 - Pentium II - architektura DIG (Dual Independent Bus) z cache L2 w obudowie z procesorem
1999 - Pentium III - dodatkowe instrukcje SSE, znaczny wzrost częstotliwości zegara,
2001 - Pentium 4