Počítače a programování 1 pro obor EST BPC1E PŘEDNÁŠKA 2 OSNOVA: a) Vyjádření čísel a řetězců b) Počítačové systémy c) OS UNIX/Linux d) Úvod do počítačových sítí Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně
Obecná definice vyjádření : Vyjádření čísel a řetězců (1/12) Obecná definice vyjádření : Používané soustavy :
Vyjádření čísel a řetězců (2/12) Používají se symboly 0 – 9, pro soustavy se základem nad 10 se přidávají písmena z abecedy: např. pro hexadecimální soustavu: A = 10 B = 11 C = 12 D = 13 E = 14 F = 15 Příklad hexadecimálního vyjádření : Číslo 0x3CF0 reprezentuje hodnotu: 3 · 4096 + 12 · 256 + 15 · 16 = 15600
Vyjádření čísel a řetězců (3/12) Numerické typy
Vyjádření čísel a řetězců (4/12) Numerické typy bez desetinné čárky pro celá čísla - bezznaménkové (unsigned) - uložení v paměti - znaménkové (signed) - uložení v paměti
Vyjádření čísel a řetězců (5/12) Příklad pro unsigned char (8 bitů) Příklad pro signed char (8 bitů) – standardní vyjádření
Vyjádření čísel a řetězců (6/12) Doplňkové kódování Příklad pro signed char (8 bitů) – doplňkové vyjádření Od absolutní hodnoty kódo-vaného záporného čísla je ode-čtena jednička, číslo je převede-no do dvojkové soustavy a je provedena jeho negace. Jednodušší hardware ALU
Vyjádření čísel a řetězců (7/12) Numerické typy s desetinnou čárkou pro racionální čísla - uložení v paměti (obecně podle IEEE754 normy) S je hodnota znaménkového bitu E je binární hodnota v exponentu M je binární hodnota v mantise
Vyjádření čísel a řetězců (8/12) Numerické typy s desetinnou čárkou pro racionální čísla Float (4 byty) Double (8 bytů)
Vyjádření čísel a řetězců (9/12) Float (4 byty)
Vyjádření čísel a řetězců (10/12) Double (8 bytů)
Řetězec: pole znaků (v paměti: 1 byte/znak – kód ASCII) Vyjádření čísel a řetězců (11/12) Řetězec: pole znaků (v paměti: 1 byte/znak – kód ASCII) NTS (Null Terminated Strings) : posledním znakem null – spec. znak v C/C++ ’\0’ Složky pole: ukazatele na znaky
Řetězec jako pole ASCII kódů znaků v paměti : Vyjádření čísel a řetězců (12/12) Řetězec jako pole ASCII kódů znaků v paměti :
Počítačové systémy (1/4) technické vybavení (hardware) motherboard: procesor(y), paměť, sběrnicový systém periferie (I/O zařízení): paměťové disky, displej (řadič dis-pleje), klávesnice, myš, tiskárna programové vybavení (software) systémové programové vybavení: operační systém a utility aplikační programové vybavení: aplikační programy pro tech-nické úkoly (Eagle pro návrh PCB, PSpice pro simulaci el. ob-vodů) a výpočty (Matlab), prostředí pro vývoj aplikací v pro-gramovacích jazycích (Code::Blocks), zpracování dokumentů (Word), tech. kreslení (Auto CAD), zprac. audia a videa apod.
Počítačové systémy (2/4) VON NEUMANNOVA ARCHITEKTURA POČÍTAČE jeden procesor, jeden proud řízení vnitřní paměť RAM (RWM) pro uložení dat i programu vstupy a výstupy (V/V, input/output – I/O, periferie)
Počítačové systémy (3/4) VON NEUMANNOVA ARCHITEKTURA - SBĚRNICE
Počítačové systémy (4/4) PRINCIP ČINNOSTI Program je posloupnost instrukcí uložených ve vnitřní paměti. Procesor načítá program po jednotlivých instrukcích a postupně tyto instrukce provádí Procesor (CPU – Central Processor Unit) se skládá z: řídicí jednotky (řadiče) – zpracovává instrukce a řídí následnou činnost procesoru aritmeticko-logické jednotky (ALU) – provádí výpočetní operace nad operandy (daty) registrů – slouží k rychlému ukládání výsledků, mezivýsledků a operandů
OS UNIX/Linux (1/10) OPERAČNÍ SYSTÉM základní programové vybavení počítače, které je zavedeno do paměti počítače při jeho startu a zůstává v činnosti až do jeho vypnutí hlavním úkolem OS je zajistit uživatelské ovládání počítače, vytvořit pro procesy stabilní aplikační rozhraní (API) a přidělovat procesům systémové zdroje OS se skládá z jádra (kernel) a pomocných systémových nástrojů
OS UNIX/Linux (2/10) pro naše využití přístup pomocí textového terminálu fakultní UNIXový systém FEST (běží na FreeBSD) na adrese fest.stud.feec.vutbr.cz přihlášení pomocí SSH klienta PuTTY certifikáty, odsouhlasení identity serveru heslo se nezobrazuje – ani hvězdičkami
OS UNIX/Linux (3/10) Struktura systému jádro – správa úloh, ovladače hardwaru příkazový interpreter (shell) nejznámější Bourne-again shell (bash) a Korn shell (ksh) příkazová řádka (prompt) interpretace a spouštění příkazů uživatele utility a programy superuživatel root
OS UNIX/Linux (4/10) Správce souborů mc Midnight Commander (mc) – příbuzný Norton Commanderu, M602, Total Commanderu, Servant Salamanderu a spol.
OS UNIX/Linux (5/10) Základní utility většinu lze řešit ve správci souborů mc zastavení aktuálního příkazu – zkratka Ctrl+C základní utility a příkazy shellu cd: změna adresáře, change directory ls: výpis adresáře, list mkdir, rmdir: vytvoření/zrušení adresáře, make/remove directory rm: smazání souboru, remove cp, mv: kopie/přesun souboru, copy/move cat, more: zřetězení/výpis, stránkový výpis souboru chmod: změna přístupových práv konfigurace sítě příkazem ifconfig ifconfig eth0 192.168.1.50 netmask 255.255.255.0 up
OS UNIX/Linux (6/10) Souborový systém /boot Jádro OS /root Domovský adresář superuživatele /bin Základní systémové programy a příkazy /dev Adresář speciálních souborů, představující přístupový bod pro komunikaci s HW /etc Adresář s většinou konfiguračních souborů systému /lib Adresář knihoven a ovladačů /mnt Pomocný adresář pro připojování dočasných systémů souborů /tmp Veřejný adresář pro pomocné a dočasné soubory /home Adresář s domovskými adresáři uživatelů /usr Adresáře se soubory sekundární hierarchie, většina uživatelských utilit a aplikací /var Často se měnící soubory, např. dočasné soubory, logy
Typy souborů, speciální soubory OS UNIX/Linux (7/10) Typy souborů, speciální soubory typy souborů obyčejné – klasické soubory s daty, jak je známe např. z Windows adresáře – složky umožňující vytvářet hierarchickou strukturu systému speciální – vytvářejí rozhraní pro přístup k technickému vybavení počítače kořenový adresář / aktuální adresář . nadřazený adresář .. speciální soubory v /dev ttyS – sériový port /dev/ttyS0 – první (ve win COM1) lp – paralelní port /dev/lp0 – první (ve win LPT1) fd – disketová mechanika /dev/fd0 – první (ve win a:) hd – IDE zařízení (hard disk, cd, dvd); man 4 hd /dev/hda – primary master /dev/hda1 – první primary partition na /dev/hda sd – SCSI zařízení
Práva v souborovém systému OS UNIX/Linux (8/10) Práva v souborovém systému výpis informací v podrobném formátu: ls -l první znak: typ souboru (d = adresář) tři trojice pro vlastníka (u), skupinu (g), ostatní (o) r – soubor povoleno číst, adresář vypsat (soubory nepřístupné) w – do souboru povoleno zapisovat, v adresáři vytvářet/rušit soubory a podadresáře x – soubor je spustitelný, do adresáře možno vstoupit (zpřístupnit)
Webové stránky na FESTu OS UNIX/Linux (9/10) Webové stránky na FESTu v domácím adresáři vytvořit složku WWW (velkýma) zobrazit na http://www.stud.feec.vutbr.cz/~xjmeno00 primitivní HTML stránka, uložit jako index.html, například <html><body> Moje první html stránka – xjmeno00. </body></html> pomocí WinSCP připojit na FEST (protokol SFTP) editace na lokálním PC + kopírování na server; editace přímo na serveru přes SSH např. v mc, nano, vi apod.
OS UNIX/Linux (10/10) Jak se naučit s Linuxem? distribuce ve virtuálním PC (VMware Player, VirtualBox) preferovat konzolové systémy, ne klikačky smysluplný cíl embedded Linux v routerech apod. – OpenWrt na URELu: CentOS (klon RHEL), FreeBSD fakultní: většinou FreeBSD
Typy sítí dle velikosti Úvod do počítačových sítí (1/17) Typy sítí dle velikosti personální sítě (PAN) Bluetooth, ZigBee, IrDA lokální sítě (LAN) rozbočovače (huby) a přepínače (switche) směrovače (routery) metropolitní sítě (MAN) rozlehlé sítě (WAN) Gigabit Ethernet, 10Gbit Ethernet ISDN, Frame Relay, ATM
Úvod do počítačových sítí (2/17) Topologie sítí nejjednodušší spoj bod-bod (point-to-point, PtP) vícebodové topologie (point-to-multipoint, PtMP) kruhová, mesh, hvězda, plně propojená stromová, sběrnicová
Úvod do počítačových sítí (3/17) Internet celosvětový systém vzájemně propojených sítí komunikace pomocí sady protokolů TCP/IP počátek z ARPANETu se čtyřmi uzly (1969) nejznámější služby WWW (webové stránky, protokoly HTTP, HTTPS) E-mail (el. pošta, protokoly SMTP, POP3, IMAP) IM (instant messaging – ICQ, Jabber) VoIP (telefonie – SIP, Skype) sdílení souborů (FTP; NFS, AFS; SMB) vzdálené připojení (Telnet/SSH, RDP, VNC) služební protokoly (domény DNS, konfigurace DHCP, správa SNMP)
Úvod do počítačových sítí (4/17) TCP/IP model fyzická vrstva L1 realizuje přenos kódování, modulace, časování média, konektory, ... linková vrstva L2 přenáší rámce mezi přímými sousedy zajištění spolehlivosti, řízení toku přístup na sdílené médium síťová vrstva L3 přenáší pakety mezi koncovými systémy řeší směrování (routing)
Úvod do počítačových sítí (5/17) transportní vrstva L4 realizuje TCP může zajistit změnu nespolehlivého přenosu na spolehlivý, nespojovaného na spojovaný změna zajištěna SW emulací relační vrstva L5 prezenční vrstva L6 aplikační vrstva L7 např. FTP, DNS, POP3, DHCP, SMTP, SSH, Telnet, HTTP a mnoho dalších
Úvod do počítačových sítí (6/17) Adresy IPv4 IPv4 adresa zařízení v síti, např. 147.229.150.100 32 bitů, zápis pomocí čtyř 8bitových čísel oddělených tečkami síťová maska, např. 255.255.255.0, resp. /24 rozděluje bitově na adresu sítě a zařízení 147.229.150.0/24 je adresa sítě Address: 147.229.150.100 10010011.11100101.10010110 .01100100 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111 .00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000 .11111111 adresy hodné zapamatování 147.229.0.0/16 je síť VUT 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 jsou privátní sítě 255.255.255.255 je broadcast, 127.0.0.1 je loopback 8.8.8.8, 8.8.4.4 jsou veřejné DNS servery Google
Úvod do počítačových sítí (7/17) Adresy IPv6 větší adresní prostor, délka 128 bitů (vs. 32bit u IPv4) bezstavová konfigurace (odvození vlastní IPv6 adresy) notace hexa, oddělení dvojtečkou, vynechávání nul 2001:0db8:0000:0000:0000:0000:1428:57ab 2001:0db8:0:0:0:0:1428:57ab 2001:0db8::1428:57ab 2001:db8::1428:57ab dual-stack umožňuje současnou podporu IPv4 i IPv6 IPv6 na síti VUT: plně podporováno (vč. KolejNetu) s výjimkou specialit na lokálních sítích (tiskárny, virtualizovaná učebna) IPv6 v OS: nativně Win7, Linux/UNIX; WinXP problematické
Protokoly TCP a UDP, porty Úvod do počítačových sítí (8/17) Protokoly TCP a UDP, porty protokoly transportní vrstvy spolehlivost: TCP potvrzuje přijetí, má timeout, automaticky opakuje ztracené, UDP nepotvrzuje zachování pořadí: u UDP můžou být pakety doručeny v libovolném pořadí režie: u TCP vyšší, UDP má složitost nízkou porty u TCP a UDP protokolů – 16bitové číslo rozlišení různých aplikací porty 1-1023 jsou vyhrazené např. 80/tcp je HTTP, 110/tcp je POP3, 53/udp je DNS komunikace z portu klienta na port serveru
Úvod do počítačových sítí (9/17) Systém DNS realizován DNS servery a protokolem převod mezi doménovými jmény a číselnými IP adresami, informace o směrování el. pošty, IP telefonii atd. distribuovaná databáze s hierarchickou strukturou, zprava TLD (com, cz, info apod.), doleva se konkretizuje dotazy realizovány UDP komunikací na port 53/udp jmenné servery: kořenové (root), autoritativní, rekurzivní základní typy záznamů: A, AAAA, PTR, CNAME, MX, NS utilita nslookup
Úvod do počítačových sítí (10/17) Protokoly HTTP a HTTPS HTTP = hypertext transfer protocol model klient/server, bezestavový protokol, port 80/tcp výměna hypertextových dokumentů zabezpečené TLS spojení (OSI L6) nad TCP = HTTPS rozšíření o stav spojení – HTTP cookies verze HTTP/1.0 a HTTP/1.1 (keep-alive) metody GET, HEAD, POST (1.0); PUT, DELETE, ... (1.1) kódy odpovědi 200 (OK), 301 (Moved Permanently), 403 (Forbidden), 404 (Not Found), 500 (Int. Server Error)
Jednoduchá ukázka HTTP Úvod do počítačových sítí (11/17) Jednoduchá ukázka HTTP request (GET, POST, HEAD, ...) na port 80/tcp GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu response (číselný kód, např. 200) ze serveru HTTP/1.1 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Content-Type: text/html data data data data data ...
Úvod do počítačových sítí (12/17) Protokol FTP FTP = file transfer protocol oddělené řízení a přenos dat FTP klient otevře spojení na port 21 (ftp), autentizace, příkazy pro výpis adresářů, přenos souborů pro každý datový přenos další spojení aktivní režim: přenosové spojení otevřeno serverem z portu 20 (ftp-data) pasivní režim: přenosové spojení otevírá klient (průchod firewally) základní klient ftp anonymní připojení: jméno anonymous, heslo libovolné
Elektronická pošta a SMTP Úvod do počítačových sítí (13/17) Elektronická pošta a SMTP na doručování pošty se podílejí tři druhy programů MUA - Mail User Agent, poštovní klient (Thunderbird, Outlook) MTA - Mail Transfer Agent, doručovací server (Sendmail, Postfix) MDA - Mail Delivery Agent, program pro lokální doručování do schránek na serveru (často součást MTA; procmail) přenos od MUA, mezi MTA realizován protokolem SMTP spolupráce se systémem DNS – záznamy typu MX > set type=mx > feec.vutbr.cz feec.vutbr.cz MX preference = 10, mail exchanger = kos.feec.vutbr.cz feec.vutbr.cz MX preference = 10, mail exchanger = gate.feec.vutbr.cz feec.vutbr.cz MX preference = 11, mail exchanger = ant.feec.vutbr.cz
Protokoly SMTP, POP3, IMAP Úvod do počítačových sítí (14/17) Protokoly SMTP, POP3, IMAP odesílání pošty z MUA, přenos mezi MTA protokolem SMTP SMTP = Simple Mail Transfer Protocol, port 25/tcp příkazy HELO, MAIL FROM, RCPT TO, DATA, QUIT stahování pošty ze serveru na klienta POP3 = Post Office Protocol v3, port 110/tcp stahování zpráv do klienta pro offline přístup přístup k serverové schránce z klienta IMAP = Internet Message Access Protocol, port 143/tcp přístup ke zprávám na serveru, podpora složek, vyhledávání, stálé připojení; složitější než POP3
Vzdálený přístup Telnet, SSH Úvod do počítačových sítí (15/17) Vzdálený přístup Telnet, SSH připojení ke vzdálenému textovému terminálu protokol Telnet, port 23/tcp klient-server spojení nad TCP, duplexní spojení příkazy virtuálního terminálu standardní součástí Linuxu, Windows (ve Win7 nutno zapnout) bez šifrování Secure Shell (SSH), port 22/tcp zabezpečená náhrada za telnet a vzdálené shelly (rlogin, rsh, ...) tunelování spojení a forward portů přenos souborů SFTP přesměrování grafiky X11 zabezpečeným kanálem
Využití klienta Telnet Úvod do počítačových sítí (16/17) Využití klienta Telnet Telnet je základním protokolem pro terminálový přístup v nejjednodušší variantě pouze čisté TCP spojení => vhodné pro experimenty telnet www.seznam.cz 80 GET / HTTP/1.0 2x Enter podobně pro SMTP nebo např. vlastní aplikace
Dynamická konfigurace DHCP Úvod do počítačových sítí (17/17) Dynamická konfigurace DHCP DHCP = Dynamic Host Configuration Protocol automatická konfigurace IPv4 pro klienty: IP adresa, maska, výchozí brána, DNS servery, doména atd. typy alokace adres dynamické (pronájem IP, může se měnit) statické (dle MAC adresy zařízení) komunikace na portech 68/udp (klient) a 67/udp (server) DISCOVER (broadcast do sítě, hledání serveru) OFFER (odpověď serveru s nabídou IP adresy) REQUEST (výběr klienta z nabídek – žádost) ACK (potvrzení zápůjčky serverem)
Téma následující přednášky DĚKUJI ZA POZORNOST Téma následující přednášky Základní struktura programu Algoritmy Data a proměnné Úvod do jazyka C