Podstawy Informatyki Informatyka Stosowana, I rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania wilk@metal.agh.edu.pl tel. 12 617 28 89 Konsultacje: piątek, po 15; B-4, pok. 207
Podstawy Informatyki PROGRAM ZAJĘĆ Semestr 1: Wykłady: 18 godzin, s. 301/302 B-4 Ćwiczenia laboratoryjne: 18 godzin,s 101 B-4
Z czego się uczyć? Materiały dydaktyczne (wykład + laboratorium). Dokumentacja oprogramowania (tzw. HELP). Internet (np. http://www.codeguru.com). Czasopisma i literatura komputerowa: Dawid Harel, Rzecz o istocie informatyki. T.H. Cormen, C.E. Leiserson, R.L. Rivest, Wprowadzenie do Algorytmów. L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych A.V. Aho, J.E. Hopcroft, J.D. Ulman, Projektowanie i analiza algorytmów komputerowych.
Czym jest informatyka? Informatyka (computer science, computing science, information technology, informatics) dziedzina nauki i techniki zajmująca się przetwarzaniem informacji w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje. Termin informatyka zaproponował w 1968 r. Romuald Marczyński w Zakopanem na ogólnopolskiej konferencji poświęconej maszynom matematycznym na wzór fr. informatique i niem. Informatik.
Historia informatyki IV w. p.n.e algorytm Euklidesa (pierwszy niebanalny algorytm), IX w. Muhammed ibn Musa al-kwarizmi - algorytmy dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych, 1801 Joseph Jacquard krosno tkackie sterowane dziurkowanymi kartami 1833 Charles Babbage maszyna różnicowa, plany maszyny analitycznej, 20. XX w. Alan Turing, Emil Post, Howard Aitken, John von Neumann, Kurt Gödel, Alnzo Church, Stephen Kleene, Andriej Markow teoria algorytmów, teoria obliczeń. 1940 Claude Shannon teoria informacji (bit), 60. XX w. uznanie informatyki za niezależną dyscyplinę akademicką.
Historia komputerów, cz. 1 440 p.n.e Abacus, Chiny 1623 Wilhelm Schickard sumator do 6 cyfr, 1642 maszyna obliczeniowa (B. Pascal) 1671 kalkulator mechaniczny (G. Leibniz) 1801 karty perforowane w tkalni (J. Jacquard) 1834 maszyna różnicowa (C. Babbage) 1936 taśma perforowana (K. Zuse) 1941 Konrad Zuse Z3 (600 przekaźników, 513Hz, 64 x 22-bit pamięć), 1943 M.H. Newman i T.H. Flowers Colossus,
Historia komputerów, cz. 2 1944 MARK 1 (na przekaźnikach), 1946 ENIAC (lampowy), 1948 tranzystor, 1949 UNIVAC - pierwszy komputer produkowany seryjnie, 1959 patent na układ scalony (TI), 1974 Intel 8080 (pierwszy mikroprocesor), 1977 Apple II (pierwszy komputer osobisty) 1980 ZX 81 (pierwszy do zabawy) 1983 IBM PC XT (początek ery pecetów)
Pascalina
Maszyna różnicowa Babbage a Cel: Wykorzystanie metody różnic skończonych do obliczania wartości wybranych funkcji (drukowanie tablic matematycznych) Założenia: Dodawanie liczb 20-cyfrowych (przy 6 różnicach), lub 40-cyfrowych (przy 3 kolejnych różnicach) Drukowanie wyników 44cyfry na minutę Wymiary maszyny: 2,5x2x1m Liczba elementów mechanizmu: 25 000 Koszt prototypu: 17 470 (parowóz kosztował wtedy 800 ) Druga maszyna różnicowa Dokładność 31 cyfr Liczba elementów 8 000 Skonstruowana wg planów Babbage a w latach 1985-91 przez pracowników Science Museum w Londynie.
ASCC (Automatic Sequence Controlled Calculator) MARK I Kalkulator mierzył 1.6x2,6x0.6 m, ważył 5 ton i miał 765 299 różnych części: 863 km przewodów elektrycznych, 1 000 komutatorów i 3 304 przełączniki dwupozycyjne, 1400 komutatorówi 2 200 przełączników 10- pozycyjnych, 1 210 łożysk tocznych, przyciski, styki krzywkowe, 175 000 połączeń elektrycznych, 3 miliony punktów lutowniczych. Wał główny, napędzany silnikiem 5 KM, biegł poziomo u podstawy maszyny przez całą jej długość. Poszczególne plansze uruchamiane były za pośrednictwem przekładni zębatych lub łańcuchowych. Wprowadzanie danych następowało bądź za pośrednictwem kart lub taśm perforowanych, bądź za pomocą 60 rejestrów złożonych z 24 przełączników dziesiętnych, ustawianych ręcznie przed przystąpieniem do pracy. Wyniki drukowano na kartach lub taśmach perforowanych, bądź na elektrycznych maszynach do pisania. Koszt urządzenia - ok. 1 mln $ Obsługa - 10 osób (zastępowała 100 tradycyjnych rachmistrzów)
Generacje komputerów 0 oparte o przekaźniki i elementy mechaniczne (np. Z3), 1 budowane na lampach elektronowych (np. XYZ), 2 budowane na tranzystorach (np. Cray-1), 3 budowane na układach scalonych SSI i MSI (np. Odra 1305), 4 budowane na układach VLSI (np. PC), 5 projekty o niekonwencjonalnych rozwiązaniach, np. komputer optyczny.
Komputer Odra
Komputer K-202 (J. Karpiński,1970-73)
Zmarł Jacek Karpiński Rzeczpospolita, 21-02 02-2010 2010 We wrocławskim szpitalu zmarł polski inżynier, elektronik i informatyk, twórca pierwszego polskiego mikrokomputera K-202 Jacek Karpiński. Miał 83 lata.
Budowa komputera W teorii i w praktyce
KOMPUTER Schemat funkcjonalny Pamięć Wejście Jednostka centralna (procesor) Wyjście
wyjście wejście
Procesor Jednostka arytmetyczna - wykonuje + - * /, a często i bardziej skomplikowane działania (log, sin itp.) oraz działania logiczne (AND, OR, NOT...) rejestry - pamiętają liczby do operacji zegar szyna danych, adresowa pamięć cache (szybka podręczna)
Pamięć ROM - tylko do odczytu, dane stałe, nie giną po wyłączeniu zasilania, np. BIOS RAM - do zapisu i odczytu, podstawowa pamięć komputera, obecnie 1 GB i więcej masowa - np. dyski, dyskietki, CD, DVD, taśmy - duże pojemności (do TB), ale wolniejszy dostęp niż RAM
Urządzenia wejścia klawiatura mysz mikrofon joystick modem, karta sieciowa porty szeregowe, USB itd. Pamięci masowe
Urządzenia wyjścia monitor drukarka głośniki karta sieciowa, modem porty szeregowe, USB pamięci masowe
System operacyjny komputer bez programu jest martwy, wpisywanie procedur zarządzających sprzętem i pamięcią w każdym programie byłoby skomplikowane, programem odpowiadającym za zarządzanie urządzeniami komputera, pamięcią, dyskami i innymi programami jest system operacyjny.
Budowa systemu operacyjnego sprzęt użyszkodnicy jądro programy powłoka
Składniki systemu jądro - komunikuje się z komputerem przez sterowniki urządzeń i wykonuje kolejkowanie zadań, obsługę pamięci powłoka - stanowi interpreter poleceń systemu (komunikacja z użytkownikiem) programy - polecenia systemowe nie zawarte w jądrze, programy narzędziowe, programy użytkowe
Systemy operacyjne: jednozadaniowe (np. DOS) wielozadaniowe (np. UNIX) niewielozadaniowe ;-) (Windows)
System DOS na komputery IBM PC jednozadaniowy bez wielodostępu (tylko z klawiatury) system wyszedł z użycia
Systemy MS Windows na komputery IBM PC ciągle rozwijane (ale wymagają coraz silniejszych komputerów) interfejs graficzny ułatwia pracę systemy wielozadaniowe, ale bez wielodostępu chociaż... świadczą pewne usługi poprzez sieć
Systemy UNIX Na wszystkie typy komputerów, od prostych PC do superkomputerów systemy od początku wielodostępne i wielozadaniowe łatwe w konfiguracji (pliki tekstowe) przeznaczone głównie do pracy zdalnej jasno określone prawa użytkowników
Wielozadaniowość i wielodostęp jednozadaniowość - kolejne zadanie wykonywane po zakończeniu poprzedniego wielozadaniowość - wykonywanie wielu zadań w tym samym czasie. W rzeczywistości zadania są wykonywane kolejno w przydzielonych im przedziałach czasowych (chyba że jest kilka procesorów) wielodostęp - w tym samym czasie z jednego komputera korzysta wielu użytkowników
Praca w systemie UNIX
Konta w systemie UNIX niepowtarzalny identyfikator użytkownika (login) wejście do systemu po podaniu hasła użytkownik posiada katalog domowy i fragment dysku do dyspozycji (często limitowany)
użytkownik posiada skrzynkę pocztową (najczęściej o adresie: login@adres.sieciowy.komputera ) uprawnienia w systemie zależą od przynależności do odpowiedniej grupy
Drzewo katalogów / (root) usr etc home bin lib mail stud prac zaocz rok102 dokt jkowalsk anowak
System plików W systemie UNIX zarówno dyski jak i wszystkie urządzenia zgrupowane są w jeden duży system plików każdy plik interpretowany jest jako strumień bajtów pliki urządzeń to są programy do sterowania nimi (drivery) każdy plik ma przypisane uprawnienia dostępu: dla właściciela, grupy i wszystkich
Właściciel pliku może dodać lub odjąć uprawnienia dostępu do niego prawa dostępu do czytania (r), zapisu, modyfikacji, kasowania (w) oraz do uruchomienia (x) są ustalane oddzielnie dla właściciela (u), grupy (g) i dla innych (o) tylko super użytkownik (root) ma prawa do wszystkiego, ale takie uprawnienia ma tylko administrator systemu
Zbiory tworzone są przez użytkownika. Mogą być modyfikowane, kopiowane lub usuwane. tekstowe (ASCII), zbiory binarne (wykonywalne) Nazewnictwo zbiorów: nazwa.rozszerzenie (Np. list1.txt, prog3.for) nazwa - dowolny ciąg znaków, rozszerzenie - dowolny ciąg znaków
Rozszerzenia specjalne (zwyczajowo): nazwa.f - zbiór źródłowy programu w języku FORTRAN, nazwa.p - zbiór źródłowy programu w języku Pascal, nazwa.c - zbiór źródłowy programu w języku C nazwa.cpp - zbiór źródłowy programu w języku C++...
Polecenia w systemie UNIX Przykład: ls -al /var komenda opcje parametry Enter Podstawowe komendy będą pokazane na ćwiczeniach
Komendy Unixa komendy pisane są małymi literami login: identyfikator (pierwsza litera imienia + 7 liter nazwiska) Np.: jkowalsk (Janusz Kowalski), anowak (Andrzej Nowak) password: hasło (hasło składa się z minimum 5 znaków: liter, cyfr, znaków specjalnych) E-mail address: identyfikator@metal.agh.edu.pl Prompt: 3\%{sendzimir\} /home/stud/zaocz/anowak\> logout
Komendy Unixa passwd - zmiana hasła old (login) password dwukrotnie new password w - informacja o aktualnie pracujących w sieci write adresat - pisanie tekstu na ekranie adresata talk adresat - rozmowa z adresatem z wykorzystaniem klawiatury i ekranu monitora man komenda - pomoc na temat komendy
ps - informacja o aktualnie wykonywanych zadaniach ps -f pełna informacja o aktualnie wykonywanych zadaniach UID PID TTY TIME COMMAND kowal 37 tty01 0:34 -csh nowak 125 tty02 2:28 vi prog.f janusz 328 tty03 1:52 mail W celu przerwania procesu należy: 1. zalogować się na innym komputerze 2. wykonać komendę: ps -f 3. wykonać komendę: kill -9 125
Komendy UNIXa, cd: ls - listowanie zawartości katalogu (listing), mkdir nazwa_katalogu - utworzenie katalogu nazwa_katalogu (make directory) Np. mkdir programy rmdir nazwa_katalogu - usunięcie katalogu nazwa_katalogu, Np. rmdir listy cd nazwa_katalogu - zmiana katalogu roboczego na katalog nazwa_katalogu, Np. cd programy cd programy/matem/geometria cd.. - przejście do katalogu powyżej katalogu roboczego,
Każdy użytkownik należy do grupy użytkowników (np. stud, rok1,...) Każdy zbiór posiada atrybuty (właściciel, grupa, inni) prawa do pliku można zobaczyć po wydaniu komendy: ls -al np. drwxr-xr-x 11 root 512 Jun 18 13:42./ drwxr-xr-x 23 root 512 May 31 08:16../ drwxrwxrwx 10 root 512 Jun 18 13:40 common/ drwx------ 2 root 8192 Feb 18 2000 lost+found/ drwxr-xr-x 14 root 512 Jan 18 2002 prac/ -rw-r--r-- 1 root 2097120 Oct 18 15:06 quotas drwxr-xr-x 33 root 512 Oct 7 10:08 stud/ d rwx rwx r-x il. dow. właściciel wielkość data nazwa_zbioru d - katalog w - prawo pisania do zbioru r - prawo czytania zbioru x - prawo wykonywania zbioru
Zmiana praw: chmod a[go]+[-]x[rw] nazwa_zbioru a - wszyscy (all) g - grupa (group) o - inni (others) - [+] - odbieranie (nadawanie) uprawnień pwd - nazwa katalogu roboczego cp zbiór1 zbiór2 - kopiowanie jednego zbioru na drugi zbiór, Np. cp prog_1.for prog_2.for rm nazwa_zbioru - usunięcie zbioru nazwa_zbioru Np. rm list3.txt mv nazwa1 nazwa2 - zmiana nazwy zbioru nazwa1 na nazwa2, Np. mv zadanie.doc problem.doc rmdir nazwa_katalogu - usunięcie katalogu nazwa_katalogu,
Praca zdalna Użytkownicy najczęściej pracują w systemie poprzez sieć komputerową do połączenia służą odpowiednie urządzenia (terminale) lub programy na komputery PC najczęściej stosowane oprogramowanie to telnet (nieszyfrowany) i ssh (szyfrowany) do aplikacji graficznych najczęściej służą programy Xwindows
Sieć komputerowa (Internet) laboratorium B-4 laboratoria B-5 B-1 B-6 UCI Cyfronet
Poczta komputerowa (E-mail) You have mail Adres E-mail: identyfikator@metal.agh.edu.pl mail - komenda poczty komputerowej (informuje, czy jest jakiś list), No mail for... (gdy nie ma listu) Gdy jest list: 1.From pkowal Wed Oct 10... Pozdrowienia 2. From jurek Thu Oct 11... Co słychać Czytanie listów: mail -> prompt & p - wyświetlenie listu na ekranie d [n] - usunięcie listu [n] s [nazwa_pliku] - zapisanie listu jako nazwa_pliku 2 - skok do listu o numerze 2
r - odpowiedź na list q - wyjście z poczty x - wyjście z poczty bez dokonania zmian mail adresat - wysyłanie listu do adresata Subject: Nagłówek listu Treść listu (bla, bla, bla...). Zakończenie pisania listu - przejście do nowej linii i wpisanie kropki? - pomoc - wyświetla wszystkie komendy poczty Programy do obsługi poczty (Unix): pine, elm
Programy pocztowe w Windows (outlook, netscape, mozilla...) Do działania potrzebny jest serwer poczty przychodzącej i serwer poczty wychodzącej. Program pocztowy transferuje zawartość skrzynki pocztowej użytkownika (po autoryzacji) z serwera na lokalny PC. Po przeczytaniu, poczta na serwerze powinna być skasowana! Program pocztowy transmituje napisany list do wskazanego serwera. Ten wysyła pocztę dalej. Nie każdy serwer wyśle naszą pocztę zabezpieczenia antyspamowe.
Programy usługowe systemu UNIX... telnet nazwa komputera (zdalnego) do którego chcemy się przełączyć (zalogować), login: password: ssh połączenie szyfrowane
ftp ftp nazwa komputera (zdalnego) do którego chcemy przesłać lub z którego chcemy skopiować zbiór login: password: ftp> dir - listowanie zawartości zbiorów na zdalnym komputerze cd nazwa katalogu - zmiana katalogu na zdalnym komputerze ascii - przesylanie zbiorow ASCII binary - przesylanie zbiorow binarnych get nazwa zbioru - pobranie zbioru ze zdalnego komputera put nazwa zbioru - przesłanie zbioru do zdalnego komputera mget (mput) * - pobranie (przesłanie) wszystkich zbiorów z danego katalogu. System pyta o każdy zbiór. bye - wyjście z ftp
WinSCP
Programy do pracy zdalnej telnet dostępny w pakietach do obsługi sieci tcp/ip oraz w Windows (od 95) transmisja nie szyfrowana (możliwość podsłuchu) w zabezpieczonych sieciach i serwerach jest wyłączony telnet w Windows źle obsługuje niektóre funkcje terminala ssh cała transmisja szyfrowana jedyny sposób połączenia przy zabezpieczonych komputerach przenosi w tunelu transmisję innych protokołów, np. mail, X11, ftp. klienty i serwery ssh w wersji darmowej są dostępne dla Windows (np. putty) i Unix (openssh)
putty
Programy graficzne praca w systemie klient - serwer obliczenia na serwerze, wyświetlane na terminalu zdalnym terminal to albo specjalne urządzenie, albo program na PC, zazwyczaj płatny najczęściej używany jest znormalizo-wany system programów o nazwie X11