Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej...

30
UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki Podstawy użytkowania komputerów 1 Budowa komputera Typowy komputer osobisty jest urządzeniem, składającym się z wymiennych elementów. Najważniejsze z nich to: Procesor (jednostka centralna, cpu) – wyspecjalizowany układ scalony zajmujący się obliczeniami. Podczas oceny wartości procesora bierze się pod uwagę przede wszystkim: Taktowanie procesora – procesor jest urządzeniem synchronicznym, czyli takim, które w może wykonać kolejną operację tylko po odebraniu sygnału wyznaczającego rytm pracy (podobnie jak wioślarz na galerze wykonuje ruch po usłyszeniu bębna). Generalnie – im wyższe taktowanie, tym procesor działa szybciej. Typowe wartości taktowania to kilka GHz (1 Hz to jeden „takt” na sekundę, 1 GHz to miliard taktów na sekundę). Liczba rdzeni – rdzenie stanowią coś w rodzaju „wielu procesorów” działających w jednej obudowie i mogących wykonywać zadania równolegle. Im więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które można wykonywać niezależnie. Typowa liczba rdzeni w domowym komputerze to 2-8. Pamięć podręczna (cache) – rodzaj bardzo szybkiej pamięci służącej do wspomagania bieżących obliczeń (pamięć ta działa jak podręczny notatnik). Typowy procesor w 2017 roku ma kilka (1-8 MB chache). Moc wydzielana – to ilość ciepła wydzielanego na obudowie procesora. Typowy procesor rozprasza ok. 120-150 W. Gniazdo – rodzaj gniazda, do którego może być włożony procesor. Firmy Intel i AMD stosują oczywiście inne rozwiązania, w dodatku każda z firm wprowadza co jakiś czas nowe gniazdo (co jest związane ze zmianami architektury procesorów i rozwojem technologii). Gniazda firmy AMD to m.in. AM2, AM3 i AM3+, zaś firmy Intel – LGA1150, LGA1151, LGA1155 itp. Technologia – procesory wykonuje się z bloków krzemowych. Im gęstsze upakowanie w ramach układu scalonego tym lepiej – obliczenia są szybsze, a moc tracona w postaci ciepła – mniejsza. Oczywiście uzyskanie bardzo gęstego upakowania jest skomplikowane technicznie. Typowy proces technologiczny (mierzony – w uproszczeniu – odległością między komponentami) ma dziś 14-22 nm. Przoduje w tym

Transcript of Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej...

Page 1: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Podstawy użytkowania komputerów

1 Budowa komputeraTypowy komputer osobisty jest urządzeniem, składającym się z wymiennych elementów. Najważniejsze z nich to:

Procesor (jednostka centralna, cpu) – wyspecjalizowany układ scalony zajmujący się obliczeniami. Podczas oceny wartości procesora bierze się pod uwagę przede wszystkim:

Taktowanie procesora – procesor jest urządzeniem synchronicznym, czyli takim, które w może wykonać kolejną operację tylko po odebraniu sygnału wyznaczającego rytm pracy (podobnie jak wioślarz na galerze wykonuje ruch po usłyszeniu bębna). Generalnie – im wyższe taktowanie, tym procesor działa szybciej. Typowe wartości taktowania to kilka GHz (1 Hz to jeden „takt” na sekundę, 1 GHz to miliard taktów na sekundę).

Liczba rdzeni – rdzenie stanowią coś w rodzaju „wielu procesorów” działających w jednej obudowie i mogących wykonywać zadania równolegle. Im więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które można wykonywać niezależnie. Typowa liczba rdzeni w domowym komputerze to 2-8.

Pamięć podręczna (cache) – rodzaj bardzo szybkiej pamięci służącej do wspomagania bieżących obliczeń (pamięć ta działa jak podręczny notatnik). Typowy procesor w 2017 roku ma kilka (1-8 MB chache).

Moc wydzielana – to ilość ciepła wydzielanego na obudowie procesora. Typowy procesor rozprasza ok. 120-150 W.

Gniazdo – rodzaj gniazda, do którego może być włożony procesor. Firmy Intel i AMD stosują oczywiście inne rozwiązania, w dodatku każda z firm wprowadza co jakiś czas nowe gniazdo (co jest związane ze zmianami architektury procesorów i rozwojem technologii). Gniazda firmy AMD to m.in. AM2, AM3 i AM3+, zaś firmy Intel – LGA1150, LGA1151, LGA1155 itp.

Technologia – procesory wykonuje się z bloków krzemowych. Im gęstsze upakowanie w ramach układu scalonego tym lepiej – obliczenia są szybsze, a moc tracona w postaci ciepła – mniejsza. Oczywiście uzyskanie bardzo gęstego upakowania jest skomplikowane technicznie. Typowy proces technologiczny (mierzony – w uproszczeniu – odległością między komponentami) ma dziś 14-22 nm. Przoduje w tym zakresie Intel (typowy procesor AMD ma zwykle większe „odległości”.

Page 2: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Płyta główna (motherboard) – komponent, na którym umieszczamy procesor.

Na płycie głównej znajdują się złącza kart (w tym karty graficznej), sloty pamięci, wyprowadzenia portów itp. Przy ocenie/zakupie płyty warto zwrócić na: model chipsetu, obsługiwane procesory, liczbę złącz (pamięci, dysków etc.). Znakomita większość płyt jest przystosowana do zasilania standardowym zasilaczem ATX.

Zasilacz (PSU, power supply unit) – niedoceniany pod względem parametrów element komputera. Występuje zwykle w standardzie ATX (oznacza on zarówno specyfikację elektryczną, jak i wymiary fizyczne).

Dobre zasilacze są zwykle… ciężkie (co wynika m.in. z jakości stosowanych materiałów, liczby radiatorów itp.). Zasilacze takie mają też zwykle odpinane wiązki kabli co ułatwia ich montaż w obudowie i pozwala na zachowanie dobrego przepływu powietrza.

Pamięć RAM – (Random Access Memory – pamięć swobodnego dostępu), mierzona pojemnością wyrażaną w bajtach (właściwie w Gb). Typowy moduł pamięci może mieć 1-16 GB. Komputer z roku 2017 ma zwykle 4-8GB RAM (graficy zwykle powinni zainwestować w maszynę wyposażoną w 16-32GB). Laptopy są zwykle wyposażone w mniejszą ilość (do 2-4GB, rzadziej 8GB).Pamięci sprzedawane są w modułach o różnych gniazdach (trzeba sprawdzić, jakie gniazdo występuje na naszej płycie). Dziś typowe moduły należą do serii DDR3 i DDR4 (co m.in. wpływa na szybkość taktowania). Moduły do laptopów są mniejsze i oznaczane SODIMM.

Page 3: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Monitor – dziś typowo LCD (starsze modele kineskopowe oznaczane są jako CRT). Podstawowym parameterem jest rozdzielczość maksymalna, czasem oznaczana jako: 1024×768 (XGA/XVGA, eXtended czyli rozszerzona), 1280×1024 (SXGA), 1600×1200 (UXGA, Ultra-eXtended), 1280×800 (WXGA), 1680×1050 (WSXGA+)), 1920×1200 (WUXGA) lub 2560×1600 (WQXGA). Możliwe są jednak również inne wartości.Drugi parametr, szczególnie potrzebny w pracy graficznej to przekątna ekranu, mierzona w calach. Spotyka się ekrany o szerokości przekątnej 19”-30”. W laptopach dominuje standard 15” 17” i 19” (bardzo duże laptopy).

Dla pracy na laptopie ważny jest również stosunek poziomu do pionu. Dawniej dla monitorów komputerowych typowy był standard 4:3, dziś stosuje się przede wszystkim 16:9 (spotyka się jednak także 16:10 a nawet 2:1).Istotnym parametrem może być stosowane złącze. W praktyce spotyka się cztery z nich: VGA (najstarsze, obecnie rzadko spotykane), DVI (w pełni cyfrowe), GamePort i HDMI. Ten ostatni standard wydaje się najbardziej powszechny)

2 Protokół HTTPProtokół to sposób wymiany informacji pomiędzy dwoma (lub więcej) uczestnikami komunikacji. Pojęcie protokołu jest w pewien sposób

Page 4: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

związane z dyplomacją - w tej dziedzinie opisują bowiem "co można i co trzeba". Przykładowo, moglibyśmy ustalić "protokół" rozmowy telefonicznej:1. po pierwsze osoba odbierająca telefon zgłasza swoją gotowość do rozmowy. Może ona zastosować wyrażenia: "Halo", "Tu <imię> lub <nazwisko>" lub "Słucham"2. następnie dzwoniący i odbierający na przemian wypowiadają swoje kwestie, przy czym jako pierwszy wypowiada się dzwoniący3. rozmowa kończy się, gdy obie strony w następujących po sobie wypowiedziach pożegnają się słowami "do usłyszenia", "do zobaczenia" lub "cześć"Jak widać nasz protokół jest dość ograniczony - nie uwzględnia sytuacji, w której odbierający podniesie telefon mówiąc" Tak, słucham?" (dopuściliśmy jedynie jedną z trzech form). Oczywiście, w rozmowie pomiędzy dwojgiem ludzi nie ma to specjalnie znaczenia - każdy z nas z łatwością dostosuje się do przywitania, którego nie przewidywał protokół1.W przypadku protokołów komputerowych trzeba dokładnie opisać każdą możliwą sytuację i każdą możliwą "wypowiedź", dlatego formalne opisy protokołów bywają skomplikowane i raczej mało ciekawe. Dlatego wystarczy po prostu powiedzieć, że protokół HTTP opisuje, w jaki sposób przeglądarka internetowa (tzw. klient) i serwer WWW komunikują się ze sobą (w celu przesłania danych strony). HTTP jest skrótem od Hyper Text Transfer Protocol.Architektura klient-serwerKomputery połączone w sieć mogą pracować w różnych architekturach. Słowo architektura w tym przypadku odnosi się tu właściwie do terminu znanego z technologii oprogramowania i jest związane z podziałem ról pomiędzy dwa (lub więcej) programy. Architektura klient-serwer to sytuacja, w której jeden z komputerów (lub programów) ma za zadanie realizować zlecenia pochodzące od drugiej maszyny (lub programu). Komputer realizujący zlecenia nazywamy serwerem, zaś żądające od niego określonych usług inne jednostki - klientami. Można także zauważyć, że rolą serwera jest wyczekiwanie (nasłuchiwanie) żądań klientów. Łatwo zauważyć, że ponieważ mamy jeden, wyróżniony serwer - to aby całość stanowiła działający system, musi on bez przerwy pracować.Dobrą analogią architektury klient-serwer jest praca stacji benzynowej. Pełni ona rolę serwera, zaś przyjeżdżające samochody są klientami, które wymagają obsługi. Jeśli stacja jest zamknięta, to nikt nie może pobrać paliwa. Jak widać, architektura serwerowa nie musi być koniecznie oparta o jeden serwer - w każdym większym mieście jest przecież kilka stacji paliw.Przeciwieństwem architektury klient-serwer jest architektura peer-to-peer (P2P). W takiej architekturze wszyscy mogą wymieniać się informacjami z takimi samymi prawami (trochę tak, jakby każdy był w stanie być serwerem).

1 jednak czasem zdarzają się niecodzienne sytuacje. Kiedyś w TP SA pracował pan o nazwisku Czekaj, który miał zwyczaj zgłaszać się jedynie swoim nazwiskiem. Czasami prowadziło to do zabawnych nieporozumień, gdy dzwoniący był przekonany, że ktoś po prostu każe mu poczekać.

Page 5: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Analogią do architektury P2P jest plotka rozchodząca się w społeczeństwie (na przykład za pomocą telefonów komórkowych). Każda rozmowa dwóch osób służy wymianie informacji (i to w obie strony - trudno wskazać kto jest "serwerem"). Co więcej, można zabrać telefony nawet połowie ludzi, a i tak plotka dalej "żyje". Nawiasem mówiąc to właśnie dlatego sieci typu emule są oparte o architektury P2P.Sieć WWWSieć WWW (World Wide Web) to globalna struktura komputerów stanowiąca istotną część Internetu (ale równoznaczna z nim), oparta o protokół HTTP służąca do wymiany hipertekstowej informacji multimedialnej. Spróbujmy uporządkować te pojęcia.Internet jest pojęciem dużo szerszym niż WWW. Komputery tworzące Internet wymieniają ze sobą wiele informacji które nie są związane z WWW. Na przykład - przesyłają pliki (protokół FTP, protokół emule), synchronizują zegary (protokół ntp), przesyłają emaile itd. Hipertekst to pojęcie związane ze strukturą informacji. Oznacza ono, że w naszych danych (np. w tekście) nie jest przechowywana sama treść, ale również inne informacje - np. dotyczące logicznych powiązań z innymi źródłami. Hipertekstowe były np. katalogi niemieckiego wywiadu (Abwehr) - bo zawierały w notatkach również odnośniki do innych dokumentów. Dziś najpopularniejszym środowiskiem realizacji idei hipertekstu jest język HTML.Multimedia to inaczej "wiele typów mediów". W informatyce odnosi się to najczęściej do wielu różnych form przekazywania informacji - grafiki statycznej, wideo, dźwięku itp.

3 Adresowanie stron (czyli znajdowanie obiektów w świecie WWW)

HTML i strony internetoweHTML to język służący do budowy dokumentów. Skrót rozwija się jako HyperText Markup Language, czyli hipertekstowy język znacznikowy. Pojęcie hipertekstowości już opisaliśmy, dlatego teraz zajmiemy się pojęciem znacznika (ang. tag). Znacznik to informacja nie stanowiąca treści dokumentu, ale niosąca informację o pewnych cechach jego treści. HTML nie jest jedynym sposobem użycia znaczników.Pierwsza wersja HTML powstała w roku 1980 z myślą o porządkowaniu danych naukowych w rozwijającej się globalnej sieci Internet. Jej twórcą był fizyk, Tim Berners-Lee. Chodziło o to, aby do treści gromadzonych referatów (opracowań naukowych) móc w wygodny sposób dodawać informacje, gdzie można poszukać innych. Berners-Lee zaproponował użycie składni nawiasów trójkątnych <> do zapisu tych "dodatkowych danych". W swojej idei HTML był rozwiązaniem nawiązującym do niezwykle rozbudowanego, formalnego języka SGML (standardowy, uogólniony język znaczników), był jednak znacznie prostszy i bardziej użyteczny2.

2 SGML nie jest jedynie bardziej rozbudowanym od HTMLa zestawem tagów. SGML umożliwia definiowanie i zapisywanie (w formalny sposób) bardzo rozbudowanych tzw. gramatyk opartych o znaczniki. Jest to język

Page 6: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Pierwsza specyfikacja zawierała zaledwie 22 różne znaczniki. Pierwotna propozycja Tima Bernesa-Lee nigdy nie stała się oficjalnym standardem (więc mówienie o HTML 1.0 jest pewnego rodzaju uproszczeniem). Mimo to koncepcje w niej stosowane szybko stały się uznane i szeroko stosowane. Główne pomysły pierwszej wersji HTML można streścić następująco:

zawartość dokumentu jest podzielona na treść właściwą i znaczniki wszystko, co znajduje się pomiędzy nawiasami trójkątnymi < i >

jest znacznikiem (np. <xxx>) znaczniki mają dwie formy: otwierającą i zamykającą. Znacznik

zamykający rozpoczyna się symbolami </ (np. </xxx>). Pozostałe znaczniki są znacznikami otwierającymi.

wszystko, co nie jest znacznikiem jest treścią dokumentu niektóre znaczniki HTML mają określone znaczenie (np. <b> -

początek pogrubiania), inne są ignorowane (np. <koza>)W ten sposób łatwo było "wplatać" znaczniki do treści dowolnego dokumentu. Na przykład:

Warto zauważyć, że znaczniki HTML nie mówią o tym jak DOKŁADNIE powinien wyglądać dokument po wyświetleniu. Służą one jedynie do sugerowania

wyglądu, ale pozostawiają ostateczną decyzję po stronie urządzenia, które będzie tekst wyświetlać. Powyższy przykład mógł wyglądać w przeglądarce tak:

Jeśli jednak urządzenie (np. stary terminal znakowy nie

potrafił wyświetlać czcionek o różnej wielkości (ale potrafił wyświetlać kolory) ten sam dokument mógł być wyświetlony tak:

"uogólniony" to znaczy taki, który zawiera w sobie wszystkie możliwości wszystkich języków oparte o znaczniki.

<H1>To jest tytuł</H1>To jest treść jakiegoś dokumentu mówiącego o <I>ważnej teorii</I>, którą warto poznać.<H2>A to jest tytuł podrozdziału</H2>

To jest tytułTo jest treść jakiegoś dokumentu mówiącego o ważnej teorii, którą warto poznać.A to jest tytuł podrozdziału

To jest tytułTo jest treść jakiegoś dokumentu mówiącego o ważnej teorii, którą warto poznać.A to jest tytuł podrozdziału

Page 7: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

W roku 1995 opublikowano specyfikację HTML 2.0. Zawierała ona uporządkowane (i opisane za pomocą tzw. gramatyk SGML) znaczniki wraz z nowymi propozycjami. W tym samym okresie na świecie burzliwie rozwijała się sieć WWW. Pojawiły się nowe aplikacje korzystające z pomysłu HTML, nazywane przeglądarkami. Najważniejsze z nich to NCSA Mosaic, Netscape Navigator i Internet Explorer. Niestety, konkurencja na rynku (zwłaszcza pomiędzy dwoma ostatnimi ) doprowadziła do tego, że producenci narzędzi starali się proponować i wprowadzać "własne" znaczniki, niezgodne z treścią opracowywanego standardu HTML (ściślej: rozszerzające go). W standardzie HTML 2.0 znalazł się podział na 4 tzw. poziomy. Obsługa znaczników (ściślej: konstrukcji) poziomu 0 była absolutnie wymagana od wszystkich przeglądarek (np. znacznik <H1>). Znaczniki poziomu 2 (np. <I>) powinny być obsługiwane, zaś poziomy 3 i 4 - pozostawiono wo decyzji producentom oprogramowania (np. znacznik <TABLE> i znacznik <FORM>).Na początku 1997 roku opublikowano wersję HTML 3.0 (miała ona jednak status tzw. rekomendacji, a nie standardu, ponieważ rok wcześniej instytucja zajmująca się standaryzowaniem HTML zamknęła grupę badawczą dotyczącą tego projektu3). Jednym z postanowień HTML 3.0 było porzucenie języka wyrażeń matematycznych (zdecydowano, że zostanie utworzony specjalny język ich opisu). Jako ciekawostkę możemy też dodać, że na postać HTML 3.2 miała wpływ umowa pomiędzy Netscape a Microsoftem o... wycofaniu się z obsługi konkurencyjnych znaczników <blink> i <marquee>4.W grudniu tego samego roku ogłoszona została specyfikacja HTML 4.0. Opisywała ona trzy wersje (warianty):

Strict - w której przestarzałe znaczniki (z poprzednich wersji HTML) nie były poprawne

Transitional - w której przestarzałe znaczniki (z poprzednich wersji HTML) nie były dopuszczalne

Frameset - w której opisano (i dopuszczono) jedynie elementy służące do budowy tzw. ramek (dzielących dokument HTML na niezależne części).

Pod koniec 1998 roku wydano poprawki do standardu, który przyjął oznaczenie 4.01. Jest to w tej chwili obowiązująca postać standardu. W roku 2000 na podstawie HTML 4.01 (w wersji Strict) opracowano standard ISO5 dotyczący HTML. W roku 2008 opublikowano propozycję standardu HTML 5. Ma ona obecnie status wersji roboczej.

4 XHTMLKiedy Tim Bernes opracował swoją pierwszą wersję języka HTML, była ona dalekim nawiązaniem do języka "uogólnionego", czyli SGML. O tej koncepcji można myśleć następująco: SGML jest swego rodzaju

3 IETF - Internet Engineering Task Force4 odpowiadały one za migotanie tekstu i miały służyć wyróżnianiu treści (podobnie jak wytłuszczenie)5 międzynarodowa organizacja ds standaryzacji

Page 8: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

wszechjęzykiem, który opisuje wszystkie możliwe języki świata (także te nieistniejące...), zaś HTML jest prostym językiem składającym się z kilku słów. Łatwo zrozumieć, czemu HTML był znacznie prostszy w zastosowaniach. Wcześniej opisaliśmy jak zmieniał się standard języka HTML. Z drugiej strony, niezwykle zawiły, formalny i naukowy język SGML również był modyfikowany - głównie w celu jego uproszczenia. W pewnym momencie zdecydowano się na stworzenie standardu, który opisywałby w wygodny i zrozumiały sposób języki znacznikowe (wiele różnych języków, nie tylko HTML!). Standardem tym jest język XML6 - opracowany na podstawie SGML.Podstawowe założenia języka XML były następujące:

dopuszczalnymi znakami są znaki Unicode7

dokument XML składa się ze znaczników8 (markup) i treści (content)

znacznikiem XML jest każdy łańcuch tekstowy zaczynający się od znaku < i kończący się znakiem > (taki znacznik nazywany jest tagiem) oraz każdy łańcuch zaczynający się znakiem & i kończący się znakiem ;

znaczniki (tag) dzielimy na: początkowe (postaci <xxx>), końcowe </xxx> i bezelementowe <xxx />

treścią XML jest wszystko to, co NIE JEST znacznikiem elementem XML jest każda treść, która zawarta jest pomiędzy

tagami: początkowym i końcowym (np. <xxx>treść</xxx>oraz tagi bezelementowe (np. <treść />

atrybutem jest konstrukcja postaci nazwa=wartość, która stanowi część taga początkowego (np. <xxx nazwa=wartość>) lub taga bezelementowego (<xxx nazwa=wartość />)

deklaracją XML nazywamy specjalny znacznik postaci <?xml version="1.0" encoding="UTF-8" ?>

Jak widać, zasady XML są dość podobne do HTML, należy jednak zwrócić uwagę na tag bezelementowy (stanowi on coś w rodzaju taga początkowo-kończącego). Jest to dość naturalne, bowiem XML w założeniu miał być prostym opisem języków znacznikowych. Warto jednak podkreślić, że XML nie mówi nic o interpretacji znaczników - tylko o ich formie9.

6 język ten od początku był "dobrze przemyślany" (w odróżnieniu do HTML), dlatego do dziś ma tylko jedną wersję (XML 1.0).7 komputerowy sposób zapisu znaków, pozwalający na zapisywanie wszelkich znaków międzynarodowych (diaktryków narodowych, jak polskie ń)8 XML rozróżnia znacznik-markup i znacznik-tag, co sprawia trochę problemu w języku polskim, w którym angielskie słowa markup i tag tłumaczymy jednakowo9 Język XML opisuje formę znaczników, nie zaś ich znaczenie. W tym sensie XML przypomina nie tyle język (w sensie znaczenia słów), co gramatykę (która opisuje, jak budować poprawne zdania). Naukowcy zajmujący się tzw. gramatykami formalnymi uznali by taką wypowiedź za

Page 9: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

W 2000 roku organizacja W3C (World Wide Web Consortium) postanowiła połączyć szeroką stosowalność HTML z jasną organizacją dokumentów XML. Istniejący wówczas HTML 4.01 wyrażono za pomocą gramatyki języka XML tworząc w rezultacie tzw. język XHTML. Wprowadziło to z jednej strony pewną organizację (podobnie jak propozycję HTML 1.0 pomogło zorganizować wyrażenie jej w języku SGML, co dało początek HTML 2.0), z drugiej jednak pojawił się nowy standard, który różnił się od "klasycznego" HTML. Co ciekawe, istniejące przeglądarki potrafią dziś poprawnie wyświetlać zarówno dokumenty HTML 4.01 (wszystkie trzy wersje), jak i XHTML.Warto więc podkreślić kilka różnic pomiędzy HTML a XHTML:

XHTML (w przeciwieństwie do HTML) wymaga, aby wszystkie znaczniki otwierające miały odpowiadające im znaczniki końcowe. Oznacza to, że dokument <HTML>Hello jest poprawny10 w HTML, ale niepoprawny w XHTML (brak znacznika </HTML>).

XHTML (w przeciwieństwie do HTML) wymaga, aby znaczniki, które nie mają zdefiniowanego znacznika kończącego (np. IMG) były zapisywane w postaci znacznika bezelementowego. Oznacza to, że zapis <IMG src="xxx.jpg"> jest poprawny w HTML, ale niepoprawny w XHTML (powinien wyglądać tak: <IMG src="xxx.jpg" />).

XHTML w przeciwieństwie do HTML nie dopuszcza do pomijania cudzysłowów przy definiowaniu atrybutów. Zapis <option selected=selected> jest poprawny w HTML, zaś w XHTML - nie (powinno być: < option selected="selected">)

XHTML wymaga, aby nazwy atrybutów były pisane małymi literami, HTML - nie.

W XHTML założono, że błędy krytyczne (np. uszkodzona struktura tagów) powinny przerywać renderowanie (wyświetlanie) strony. W HTML przeglądarka ma prawo "próbować dalej" przetwarzać dokument.

Warto także dodać, że XHTML 1.0 ma - podobnie jak HTML 4.01 - trzy wersje:

Strict - odpowiadający11 HTML 4.01 Strict Transitional - odpowiadający HTML 4.01 Transitional Frameset - odpowiadający HTML 4.01 Frameset

W 2006 roku opublikowano propozycje dla standardu XHTML 2.0, zajmujące się m.in. unowocześnieniem obsługi formularzy HTML. Należy jednak podkreślić, że jest to rozszerzenie w stosunku do HTML 4.01, który jest aktualnie obowiązującym standardem HTML. Jednocześnie

niezbyt ścisła, ale dość dobrze oddaje ona sytuację.10 przez POPRAWNOŚĆ dokumentu nie należy rozumieć, że jest on POPRAWNIE wyświetlony tylko, że jest zgodny ze standardem (większość przeglądarek wyświetla NAWET niepoprawnie sformułowany dokument, usiłując "uzupełnić go" brakującymi znacznikami).11 ściślej: standard XHTML 1.0 Strict jest zapisem standardu HTML 4.01 Strict w języku XML

Page 10: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

trwają prace nad rozwojem XHTML5, odpowiadającemu HTML5 wyrażonemu w składni XML.

5 Znaczniki języka HTML 4.01 / XHTML 1.0Wbrew pozorom i dość skomplikowanej historii standardów opisanych wyżej, język HTML (XHTML) jest dość prosty. Składa się na niego zaledwie 89 znaczników12. Warto dodać, że większość znich jest używana bardzo rzadko. Mimo to, te kilkadziesiąt znaczników odpowiada za całość informacji w sieci WWW.Uwaga: format <xxx /> oznacza, że znacznik nie występuje w formie początkowej i końcowej (tylko forma bezelementowa)

Znacznik Opis DTD13

<!--...--> Znacznik komentarza STF<!DOCTYPE>  Znacznik określający rodzaj dokumentu STF

<a>Anchor, czyli kotwica - najczęściej oznacza odwołanie do innej strony (hiperlink) STF

<abbr> Skrót STF<acronym> Skrótowiec STF<address> Adres STF<applet> Przestarzały! Oznacza wstawienie apletu (małego programu) TF<area /> Określa mapę obrazu STF<b> Tekst wytłuszczony STF<base /> Określa w jakim okienku będą się otwierały linki (np. w nowym oknie) STF

<basefont /> Przestarzały. Określa cechy podstawowej czcionki dokumentu TF<bdo> Określa kierunek tekstu (np. czytany z prawa na lewo tekst hebrajski) STF<big> Wielkie litery (rozmiar) STF<blockquote> Cytat blokowy STF<body> Zakres głównej części dokumentu STF<br /> Znak łamania linii STF<button> Przycisk "Send" (w formularzu) STF<caption> Nagłówek tabeli STF<center> Przestarzały! Centrowanie tekstu TF<cite> Cytat STF<code> Tekst "kodu programu" STF<col /> Kolumna tabeli STF<colgroup> Grupa kolumn STF<dd> Opis elementu listy STF<del> Tekst skasowany (przekreślony) STF<dfn> Definicja STF<dir> Przestarzały! Lista pozycji katalogu TF<div> Sekcja dokumentu STF<dl> Definicja listy STF<dt> Element listy STF<em> Tekst wyróżniony STF<fieldset> Obrzeże elementów formularza STF<font> Przestarzały! Ustawia atrybuty czcionki TF<form> Formularz STF<frame /> Definiuje ramkę w zestawie F

12 uwaga, podano również znaczniki przestarzałe, to jest takie, które występują tylko w wersji HTML Transitional13 określa dozwolne stosowanie (litery odpowiadają wersjom standardu S=Strict, T=Transitional, F=Frameset)

Page 11: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

<frameset> Definiuje zestaw ramek F<h1> to <h6> Nagłówki STF<head> Nagłówek = informacje o dokumencie STF<hr /> Pozioma linia STF<html> Cału dokument HTML STF<i> Tekst pochylony STF<iframe> Ramka w kodzie TF<img /> Obrazek STF<input /> Pole wprowadzania danych STF<ins> Tekst wstawiony STF<isindex> Przestarzały! Indeks dokumentu TF<kbd> Tekst "klawiaturowy" STF<label> Etykieta STF<legend> Tytuł dla elementu formularza STF<li> Element listy STF<link /> Relacja pomiędzy dokumentem a źródłem zewnętrznym STF<map> Mapa obrazu STF<menu> Przestarzały! Definuje menu TF<meta /> Metadane STF<noframes> Określa treść dla przeglądarek, które nie potrafią wyświetlać ramek TF

<noscript> Określa treść dla przeglądarek, które nie potrafią realizować skryptów STF<object> Obiekt osadzony (np. wyrażenie matematyczne) STF<ol> Lista uporządkowana STF<optgroup> Grupa pozycji menu STF<option> Pozycja menu STF<p> Akapit STF<param /> Parametr dla obiektu STF<pre> Tekst preformatowany STF<q> Krótki cytat STF<s> Przestarzały! Tekst przekreślony TF<samp> Przykład kodu STF<script> Skrypt (program) przeznaczony do wykonania przez przeglądarkę STF<select> Lista wyboru STF<small> Małe litery STF<span> Sekcja dokumentu STF<strike> Przestarzały! Tekst przekreślony TF<strong> Tekst wyróżniony STF<style> Styl elementu (definiowalny) STF<sub> Indeks dolny tekstu STF<sup> Indeks górny tekstu STF<table> Tabela STF<tbody> Grupa w tabeli STF<td> Komórka tabeli STF<textarea> Pole wprowadzania tekstu (wielolinijkowe) STF<tfoot> Stopka STF<th> Komórka nagłówkowa tabeli STF<thead> Grupa komórek nagłówkowych tabeli STF<title> Tytuł dokumentu STF<tr> Wiersz tabeli STF<tt> Teletekst STF<u> Przestarzały! Tekst podkreślony TF<ul> Lista nieuporządkowana STF<var> Zmienna STF<xmp> Przestarzały! Tekst preformatowany

Page 12: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Powyższe znaczniki są uporządkowane alfabetycznie, ale można je także podzielić na grupy odpowiadające poszczególnym funkcjonalnościom HTML (w tym zestawieniu pominięto znaczniki przestarzałe)Grupa Często używane Używane rzadziej Podstawowe <!DOCTYPE> <html>

<body> <h1> ... <h6> <p> <br /> <hr /> <!-- -->

Formatowanie tekstu <b> <em> <i> <acronym> <abbr> <address> <bdo> <big> <blockquote> <cite> <code> <del> <dfn> <ins> <kbd> <pre> <q> <samp> <small> <var>

Budowanie formularzy <form> <input /> <textarea> <button> <select> <option> <label>

<optgroup> <fieldset> <legend>

Ramki <frame /> <frameset> <noframes>

<iframe>

Obrazki <img /> <map> <area />

Hiperlinki <a> <link />Listy elementów <ul> <li> <ol> <dl> <dt> <dd>Tabele <table> <td> <tr> <caption> <th>

<thead> <tbody> <tfoot> <col /> <colgroup>

Style <style> <div> <span>

Metadane <head> <title> <meta>

<base />

Programowanie w HTML

<script> <noscript> <object> <param />

Każdy z opisany powyżej znaczników może być rozszerzony o atrybuty. Jak wcześniej wspomniano, atrybutem jest para postaci nazwa="wartość". W języku HTML atrybuty można podzielić na dwie grupy: atrybuty podstawowe (najczęściej definujące sposób wyświetlania elementu bądź jego interpretację) oraz atrybuty zdarzeniowe (które zasadniczo są małymi skryptami wywoływanymi po zaistnieniu określonego zdarzenia).

6 System operacyjny

System operacyjny to specjalny rodzaj oprogramowania. Służy ono do zapewnienia warstwie aplikacji (czyli programów użytkowych) niezbędnych funkcji obsługi hardware (sprzętu). Dzięki temu programiści piszący oprogramowanie użytkowe (np. MS Word) nie muszą się martwić

Page 13: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

jak „obsłużyć” konkretny model dysku twardego, CD-ROMu, czy monitora. System operacyjny tworzy więc „środowisko”, w którym pracują inne programy. Z drugiej strony, system operacyjny sam w sobie jest także programem.

Zwykle w skład systemu operacyjnego wchodzi nie jeden program, ale cały ich zestaw. Taki zbiór oprogramowania niezbędnego do obsługi podstawowych funkcji (w tym przede wszystkim – obsługi urządzeń) nazywamy jądrem (kernel).

Rozumując w ten sposób, można przedstawić oprogramowanie działające na komputerze w postaci modelu warstwowego:

W warstwie oprogramowania mogą pracować różne aplikacje (zaznaczone jako niebieskie kółka). Kiedy potrzebują one dostępu do sprzętu (np. zapisują pliki na dysku), wywołują one z kernela odpowiednią funkcję systemową, zlecając odpowiednie działanie. Jądro (czyli kernel) zajmuje się przeprowadzeniem konkretnych działań. Wynik operacji (np. „sukces” albo „błąd – dysk jest pełny”) jest przekazywany do aplikacji, która wydała zlecenie.

SPRZĘT

KERNEL

OPROGRAMOWANIE

SPRZĘT

KERNEL

OPROGRAMOWANIE

Page 14: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

W niektórych systemach rolę kernela pełni jeden program, w innych – kilka, współpracujących ze sobą. Jest także stosowane podejście mieszane – kernel jest jednym programem, ale dzięki swojej modularnej budowie można go dostosować do konkretnych potrzeb.

Tak może wyglądać jądro systemu operacyjnego zbudowane w postaci kilku modułów:

Przykładowo – gdy zależy nam na minimalizacji jadra linuksa, możemy je „przykroić” pod konkretny system usuwając z niego zbędne moduły obsługi urządzeń audio (bo nie będziemy ich stosować). Warto zauważyć, że dostosowywanie jądra (Kernela) to nie to samo, co instalowanie i usuwanie oprogramowania użytkowego. Jeśli usuniemy moduł obsługi pewnego sprzętu z kernela, to nie będzie można w ogóle zainstalować oprogramowania użytkowego współpracującego z takimi urządzeniami.

Objaśnijmy to sobie na przykładzie Windowsów. Załóżmy, że chcemy nagrać płytę DVD. Większość osób użyje do tego programu Nero. Musi on zostać zainstalowany na danym komputerze. Jeśli jednak nie chcemy instalować Nero, możemy skorzystać z programu BurnDVD. Oba te programy zapewniają inny „interfejs użytkownika”, ale realizują tę samą funkcję – zapis dysku. Zapis dysku jest możliwy, ponieważ kernel Windows zawiera funkcje obsługi urządzeń DVD. Gdyby usunąć tę część jądra, żaden z programów (Nero czy BurnDVD) nie mógłby działać.

Warto dodać, że choć kernel jest rodzajem oprogramowania, to wiele systemów (np. linux) przewiduje specjalny tryb uruchamiania programu jądra (kernel mode). Oznacza to m.in. priorytet procesu jądra przed procesami innych programów (procesy użytkownika).

Powyższy model jest stosunkowo prosty. W praktyce spotyka się także systemy, w których można dodatkowo wydzielić podwarstwy. Jądro zawiera wówczas tylko programy bezpośrednio związane ze sprzętem, zaś warstwa je otaczająca – sterowniki urządzeń dostarczane przez producentów sprzętu. Specyficzną warstwą jest także wirtualne środowisko Javy, o którym będziemy mówić później.

KERNEL

OPROGRAMOWANIE

SPRZĘT

Page 15: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

7 Programy i ich uruchamianieProgram – to zestaw instrukcji dla komputera, przeznaczonych do wykonania. W stosunku do niektórych programów używa się też terminu „aplikacja”, choć zwyczajowo odnosi się ono do programów użytkowych (a nie np. do programów obsługi sprzętu).

Programy występują często w wersji wykonywalnej (executable), czyli bezpośrednio gotowych do przekazania procesorowi. Takie programy są po prostu strumieniami bajtów (ściślej: słów binarnych14) i nie są zrozumiałe dla człowieka. W niektórych systemach operacyjnych programy w wersji wykonywalnej oznacza się za pomocą nazw (np. w Windows - *.exe), w innych – za pomocą specjalnego „prawa do wykonania” przypisanego do pliku.

Przykład programu wykonywalnego mógłby wyglądać tak:123, 23, 11, 90, 34, 129, 150, 150, 111

Programy wykonywalne są oczywiście bardzo uzależnione od konkretnego rodzaju procesora – program przeznaczony dla procesora opartego o tzw. architekturę15 Intel x86 (np. Core 2 Duo, czy AthlonXP16) nie będzie działał na procesorze Sparc – i vice versa.

Programy użytkownika pracują poza jądrem systemu operacyjnego (ale korzystają z funkcji przez nie udostępnianych). Oznacza to, że są programy te są zależne nie tylko od architektury procesora, ale także od konkretnego systemu operacyjnego. Program wykonywalny dla procesora x86 w systemie Windows wygląda więc inaczej niż program wykonywalny dla tego samego procesora w systemie Linux.

Innymi słowy: programu napisanego dla Windows nie da się uruchomić pod Linuxem (i vice versa)17.

Ponieważ programy wykonywalne byłoby bardzo ciężko tworzyć (i analizować) w postaci „gotowej”, stosuje się inne podejście. Programista tworzy kod w określonym „języku programowania”, który następnie jest tłumaczony (automatycznie) na kod wykonywalny.

Przykład programu w języku asembler (jest to język bardzo zbliżony do poziomu programów wykonywalnych) może wyglądać tak:

mov dptr,#4000hmov a,#01110111b14 Istnieją także komputery, które operują na jednostkach innych niż bajty (bajt to zespół 8 bitów)15 Architektura procesora oznacza w uproszczeniu jego wewnętrzną budowę16 Zwróćmy uwagę, że architektura x86 obejmuje zarówno procesory produkowane przez firmę Intel, jak i AMD17 Nie mówimy tu emulatorach takich jak Cygwin czy Wine

Page 16: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

movx @dptr,amov dptr,#4001hmov a,#0000hmovx @dptr,a

Jak powiedzieliśmy wcześniej, programy takie, jak powyżej nie mogą być bezpośrednio uruchomione na procesorze (bo nie jest to postać wykonywalna). Konieczna jest translacja (tłumaczenie), którą zajmują się specjalistyczne programy. Programy takie mogą działać według 2 metod:* analizować, tłumaczyć na postać wykonywalną i przekazywać do wykonania przez procesor „linia po linii” (takie podejście realizują tzw. interpretery)* najpierw wczytać cały program, a następnie przetłumaczyć i całość przekazać procesorowi do wykonania (takie podejście realizują tzw. kompilatory)

Ponieważ program w języku asembler nadal nie jest specjalnie zrozumiały (poza grupą specjalistów piszących w tym języku) i w dodatku jest silnie związany z procesorem na którym ma być wykonywany (oczywiście po kompilacji), większość programistów tworzy w tzw. językach wysokiego poziomu18. Są to języki znacznie bardziej zbliżone do języka naturalnego (choć nadal operujące charakterystyczni konstrukcjami i pojęciami, jak zmienna, pętla, instrukcja warunkowa itp.). Przykładami takich języków są C, C++, Pascal itp.

Oto przykład programu w języku C++:

#include <iostream> int main(){ std::cout << "Hello world\n";}

Programy w języku wysokiego poziomu wymagają bardzo skompilowanej translacji do wersji wykonywalnej, ale dają także programiście znacznie bogatszy zestaw możliwości. Nawiasem mówiąc, w przeważającej większości do zmiany na postać wykonywalną służą kompilatory (wyjątkiem były m.in. pierwsze wersje języka LOGO). Większość języków wysokiego poziomu ma kompilatory dla różnych typów procesorów i dla różnych systemów operacyjnych – można więc mówić, że program napisany w C, da się uruchomić (po kompilacji) na różnych platformach. Oczywiście trzeba zastosować inny kompilator.18 Asembler jest określany jako język niskiego poziomu (słowo „niski” oznacza tu niewielką odległość od kodu wykonywalnego, a nie jakość rozwiązania)

Page 17: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Zastosowane powyżej określenie „platforma” oznacza środowisko, w jakim będą uruchamiane programy. Termin ten może się odnosić zarówno do systemu operacyjnego („platforma Windows”), jak i do typu (architektury) procesora („platforma procesora Motorola 68000”).

Napisaliśmy, że określony program w C można skompilować pod wiele platform. Zwykle jednak dotyczy to jedynie prostych programów. W praktyce programy w językach wysokiego poziomu używają wielu specyficznych rozwiązań (pogrupowanych w tzw. Biblioteki), co sprawia, że „przenośność” oprogramowania nie jest zbyt wielka.

Dla rozwiązania tego problemu powstał język (czy też właściwie: środowisko) Java. Podejście to polega na zbudowaniu „wirtualnego komputera” o ustalonym języku, który może być „uruchomiony” na każdym procesorze i w każdym środowisku, w którym dostępna jest Java.

Oznacza to, że jeden program napisany w Javie (która jest językiem wysokiego poziomu) może być uruchomiony na wersji Linuxowej, Windowsowej i na innych typach procesorów (np. na procesorze Sparc).

Przykładowy program w języku Java:

public class Program { public static void main(String[] args) { System.out.println("Witaj w javabook.pl!"); } }

W tym miejscu warto wyjaśnić jeszcze jedno pojęcie: debugging. Debugging (dosł. odrobaczanie) to termin programistyczny oznaczający poszukiwanie błędów w tworzonym (lub działającym) oprogramowaniu.

Procesem nazywamy uruchomioną (działającą) wersję programu. Można także mówić, że proces jest instancją programu.

Wniosek: z jednego zapisanego programu można uruchomić wiele procesów.

8 Linux

Linux to nazwa darmowego systemu operacyjnego stworzonego na bazie koncepcji systemu operacyjnego Unix. Ten ostatni powstał w roku 1969 w firmie AT&T. Prawa do systemu UNIX przechodziły wielokrotnie z rąk do rąk i dlatego jego sytuacja prawna nie jest do końca określona. Kłopotów przysparza także mnogość wersji UNIXa (w odróżnieniu od Windows,

Page 18: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

systemu operacyjnego Microsoft, nowe wersje UNIXa pojawiały się bardzo często).

Linux powstał właśnie dlatego, żeby użytkownicy mieli do dyspozycji oprogramowanie wolne od roszczeń firm i korporacji. Nazwa Linux pochodzi od Linus Torvaldsa - programisty, który jako pierwszy napisał „od zera” jądro systemu (bazując na pomysłach UNIX). Poniższy obrazek pokazuje skróconą historię Linuxa na tle jego „rodziców” i „braci” (za: wikipedia):

Centrum Linuxa stanowi jądro (kernel). Jest ono obudowane wieloma programami. Ponieważ rozwojem Linuxa zajmuje się wiele różnych, niezależnych grup programistów (Linux należy do tzw. oprogramowania otwartego) istnieje wiele różnych „konfiguracji” oprogramowania „okołokernelowego”. Konfiguracje te nazywamy „dystrybucjami”. Co więcej, dystrybucje mogą mieć różne wersje :-).

Typowe dystrybucje to:* Red Hat* Debian* Fedora (bardzo zbliżona do Red Hata, zawiera nowatorskie oprogramowanie)* Ubuntu („przyjazna” dla użytkowników)* Gentoo (wersja dostępna dla bardzo wielu procesorów – od x86 do Sparc czy ALPHA)* Slackware

Dystrybucja – to system operacyjny Linux w postaci pakietu: kernel+oprogramowanie dodatkowe, związany z pewną grupą

Page 19: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

programistyczną. Dystrybucje różnią się składem zestawu oprogramowania, miejscem przechowywania plików systemowych itp.

Różne wersje tej samej dystrybucji (np. Fedora 7 i Fedora 10) różnią się wersjami oprogramowania i jądra19. Przykładowo: Fedora 10 używa jądra w wersji 2.6.27 i programu gcc (kompilatora C) w wersji 4.3.2. Fedora 7 zawierała jądro 2.6.21

Użytkownik podczas instalacji systemu może także własnoręcznie wybrać pakiety wchodzące w skład „jego” dystrybucji, podobnie jak podczas instalacji Windows. Przykładowo, Linux zawiera różne wersje interfejsu graficznego (Windows – tylko jedną!) i możemy wybrać najbardziej odpowiadającą nam postać (zwykle tzw. GNOME, KDE lub XFCE20).

Interfejs graficzny GNOME (w dystrybucji SLACKWARE)

19 Trzeba pamiętać, że jądro systemu linux jest cały czas rozwijane i ulega ciągłej zmianie! Nowe wersje pojawiają się mniej więcej co 3 miesiące.20 Różnią się one zasadniczo - nie tylko zestawem ikon, czy pulpitem, ale jest to temat na osobne rozważania. Przykładowo XFCE jest interfejsem, który ma najmniejsze możliwości, ale za to daje się uruchomić nawet na bardzo starych i słabych komputerach.

Page 20: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Interfejs graficzny KDE

Interfejs graficzny XFCE

Co więcej, użytkownik może nawet w ogóle zrezygnować z interfejsu graficznego, ograniczając swoją instalację Linuxa do absolutnego minimum! Linuxa można nawet uruchomić na komputerze, który ma zaledwie 4 MB RAM i „zabytkowy” procesor Intel80386. Co więcej – Linux ten może działać z dyskietki 3.5” o pojemności niewiele przekraczającej 1MB (!). Oczywiście taki Linux oferuje bardzo ograniczoną funkcjonalność21, ale jest nadal pełnoprawnym systemem operacyjnym.

Porównajmy wymagania minimalne:Pamięć RAM zegar procesora dysk

21 Można jednak uzyskać doskonały router, firewall, czy serwer plików

Page 21: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Linux 4MB 33MHz 1 MBWindows Vista 512 MB 1GHz = 1000

MHz15 GB ≈ 15000

MB

Jak napisaliśmy, wszystkie wersje Linuxa pracują w oparciu o kernel (jądro).

Wokół jądra umieszczone są programy, które mogą odwoływać się do sprzętu tylko poprzez funkcje udostępniane przez jądro. Programy „obudowujące” kernel dostępne w Linuxie udostępniają zwykle bardzo proste funkcje. Przykładem jest wc, który służy np. do zliczania (lub wyrazów) w podanym na jego wejściu tekście.

Z kernela mogą także korzystać programy napisane przez użytkownika i skompilowane do postaci wykonywalnej (na powyższym rysunku reprezentuje je program a.out). Cechą charakterystyczną Linuxa jest jednak przede wszystkim obecność shella – specyficznego „programu konsoli” udostępnianego użytkownikom.

9 Shell i system plikówShell (zwany także powłoką) jest specjalnym programem przeznaczonym dla użytkownika, służącym do interpretacji standardowego języka poleceń (zwanego „językiem shella”). Shell jest więc w istocie interpreterem poleceń. Nawiasem mówiąc, specyficzna wersja shella występuje także w systemach Windowsowych – jest nim program cmd.exe22.

Dwa przykłady shella: Windowsowy (po lewej) i Linuxowy (po prawej):

22 Można go wywołać wywołując w Windows STARTUruchomcmd

Page 22: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Język shella Windows jest bardzo prosty i daje niewielkie możliwości23. Zupełnie inaczej sytuacja wygląda w środowisku Linux, gdzie pisanie programów w shellu daje wielkie pole do popisu.

Programy napisane w języku shella nazywamy programami shella, programami powłoki lub po prostu skryptami. Programy te składają się z poleceń „rozumianych” przez powłokę oraz z wywołań programów „obudowujących” jądro. Mówimy czasem, że w skład skryptów shella wchodzą polecenia wewnętrzne („wbudowane” w shella) i zewnętrzne (czyli programy spoza shella).

W tym miejscu warto zaznaczyć, że programowanie dla systemu Linux to nie tylko pisanie programów dla shella. Programista może przecież napisać program w języku wysokiego poziomu (np. w C), skompilować go i uruchomić. Programowanie w shellu jest jednak znacznie prostsze, a poza tym powłoka jest ZAWSZE dostępna w każdej wersji Linuxa, zaś kompilator C – nie.

UWAGA: w większości linuxów dostępnych jest kilka shelli, różniących się od siebie w mniejszym lub większym stopniu. Różnice te dotyczą zakresu wbudowanych poleceń i ich składni. Typowym shellem linuxowym jest powłoka sh. Wielką popularnością cieszy się również bash. Inne przykłady shelli to ash, csh lub ksh.

O rodzaju domyślnego shella decyduje w Linuxie zawartość pliku /etc/passwd

Może ona wyglądać na przykład tak:

wojmos:x:500:500:wojmos:/home/wojmos:/bin/bashkarol:x:500:500:wojmos:/home/karol:/bin/shtadek:x:500:500:wojmos:/home/karol:/bin/nologin

Jak widać (informacja ta znajduje się na końcu linii), użytkownik wojmos używa shella bash, karol – shella sh, zaś tadek nie ma prawa do żadnej z powłok.

W tym miejscu trzeba powiedzieć dwa słowa o linuxowym systemie plików. System plików to inaczej sposób organizacji pamięci dyskowej – określa jej możliwości (na przykład – maksymalną wielkość, liczbę 23 Programami powłoki w Windows były pliki *.bat (np. autoexec.bat)

Page 23: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

katalogów i informacje dodatkowe – np. jakie prawa wiążą się z plikami). Z formalnego punktu widzenia: system plików to reguły umieszczania na nośniku abstrakcyjnych danych oraz informacji umożliwiających przechowywanie tych danych, łatwy i szybki dostęp do informacji o danych oraz do tych danych, manipulowania nimi a także sposobach usuwania ich (za: wikipedia).

Większość producentów systemów operacyjnych oferuje własne rozwiązania systemów plików. Przykładowo: w różnych wersjach Windows pojawiały się systemy FAT, FAT32 czy NTFS. Linuxowe systemy plików to m.in. ext2, ext3 i ext4. Warto tu dodać, że jądro systemu Linux pozwala czytać i zapisywać dyski „sformatowane” pod Windows (czyli: z założonym systemem plików NTFS lub FAT).

W skład Windowsowego systemu plików wychodzą dyski, oznaczone literami (np. C:, D:, czy E:). Na każdym z dysków istnieje jego własny katalog główny oznaczony jako \. Pliki mają nazwy, w których można wyróżnić (najczęściej trójznakowe) rozszerzenie, określające charakter danych (co jest spadkiem po systemach FAT i FAT32) - i tak, pliki z rozszerzeniem exe są uznawane za programy wykonywalne. W systemie NTFS wprowadzono też prawa dostępu, co oznacza, że użytkownik może zezwalać bądź nie innym użytkownikom na dostęp do swoich plików.

W systemach linuxowych (z punktu widzenia użytkownika wersje ext2, ext3 czy ext4 praktycznie się nie różnią24) nie ma pojęcia „dysku C:”. Cała przestrzeń dyskowa jest związana z jednym katalogiem głównym, który oznaczany jest jako / (zwróćmy uwagę, że ukośnik skierowany jest odwrotnie niż w Windows!). Dyski fizyczne są montowane w strukturze plików w mniej jawny sposób niż to ma miejsce w Windows. Może się więc zdarzyć, że w Linuxie mamy takie „drzewko” katalogów:

/- |-root |-users |-wojmos |-iza |-www

Ale pliki umieszczone w katalogu /users znajdują się na jednym dysku (fizycznym), a pliki w katalogu /www – na drugim.

Pliki można oczywiście także „zobaczyć” w aplikacjach okienkowych:

24 Różnice dotyczą m.in. możliwości defragmentacji plików, pliku dziennika itp.

Page 24: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

Jedna z wersji graficznego „eksplorera plików” w LinuxieJedną z najważniejszych cech linuxowych systemów plików była i jest koncepcja praw dostępu. Dla każdego pliku można określić 3 prawa: RWX.R – oznacza prawo do odczytu plikuW – oznacza prawo do zapisu plikuX – oznacza prawo do wykonania plikuJak widać, w przeciwieństwie do Windows, o tym, czy plik może być wykonany decyduje prawo X, a nie – rozszerzenie pliku.

W linuxie prawa dostępu można przydzielić niezależnie: dla właściciela pliku, dla grupy, do której należy oraz dla „pozostałych”. Do zmiany praw służy jedno z poleceń powłoki.

Wracając do shella (powłoki) i programów (skryptów) pisanych dla niego. Proste skrypty mogą być uruchamiane na każdej z powłok (sh, bash, zsh itp.), ale jeśli korzystamy z bardziej zaawansowanych poleceń, mogą pojawić się kłopoty z interpretacją. Dlatego dobry programista podaje w pierwszej linii swojego skryptu, która z powłok powinna zająć się wykonaniem skryptu.

Wygląda to tak (użyj shella o nazwie sh):

#!/bin/sh

10 Podstawy użytkowania i programowania shellaW linuxie istnieje rozbudowany i wygodny system dokumentacji poleceń. Wystarczy wpisać:

man + nazwa polecenia

aby uzyskać pełną informację na jego temat.

Przykładowo: tak wygląda efekt polecenia man man (czyli pomoc dla pomocy) na Fedorze 10 (pokazano tylko początek):

NAME man - format and display the on-line manual pages

Page 25: Podstawy użytkowania komputerówwojmos.com/students/uko/UKOS.wstep.doc · Web viewIm więcej rdzeni tym szybciej działa procesor – ale odnosi się to tylko do działań, które

UKO, notkatki dla INF, 2016-2017 Wojciech St. Mościbrodzki

SYNOPSIS man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S section_list] [section] name ...

DESCRIPTION man formats and displays the on-line manual pages. If you specify section, man only looks in that section of the manual. name is normally the name of the manual page, which is typically the name of a command, function, or file. However, if name contains a slash (/) then man interprets it as a file specification, so that you can do man ./foo.5 or even man /cd/foo/bar.1.gz.

Zestaw najbardziej przydatnych poleceń25 w linuxie obejmuje polecenia:

ls Pokazuje listę plików (jak dir w DOS/Windows)chmod Zmiana praw plikuchown Zmiana właściciela plikugrep Filtruje wejście w poszukiwaniu określonych wzorcówwc Zlicza słowadu Podaje wielkość zajętego miejsca na dyskudf Podaje wielkość wolnego miejsca cd Zmienia catalogmkdir Tworzy catalogrm Usuwa plikcp Kopiuje plikmv Przemieszcza plikecho Wypisuje na ekraniecat Przekazuje wejście na wyjściepwd Podaje bieżący catalogwho Podaje zalogowanych użytkownikówwhoami Podaje nazwę użytkownikauname Podaje dane o systemie (m.in. wersję jądra)

Często korzysta się także z innych, „poważniejszych” programów: jak tar, gzip, awk, at itp.

25 Warto zauważyć, że zbiór ten obejmuje wewnętrzne polecenia powłoki, jak i proste programiki wywoływane przez powłokę (jak grep)