ARCHITEKTURA KOMPUTERÓW

Download Report

Transcript ARCHITEKTURA KOMPUTERÓW

Środowisko pracy informatyka
zima 2014
Wykład 1
Wprowadzenie
dr inż. Wojciech Bieniecki
Instytut Nauk Ekonomicznych
i Informatyki
http://wbieniec.kis.p.lodz.pl/pwsz
1
Warunki zaliczenia
Laboratorium:
- Obecność i aktywność na zajęciach
- Oceny z zadań domowych
Wykład:
- Test wielokrotnego wyboru + zadania otwarte
o krótkiej odpowiedzi.
2
Czym są technologie informacyjne (IT)
Technologie informacyjne, to technologie (metody) i
urządzenia (w tym przede wszystkim komputery), które
wykorzystujemy do zbierania, przechowywania, przetwarzania i
przesyłania informacji.
Najczęściej spotykane terminy związane z urządzeniami
wykorzystywanymi przez technologie informacyjne to
hardware - czyli sprzęt oraz software - oprogramowanie
komputerowe
3
Typy komputerów
Serwer - określa komputer z zainstalowanym sieciowym systemem
operacyjnym, świadczący usługi innym komputerom, np. serwer
wydruków - zarządza kolejnością wydruków, serwer plików
- udostępnia zasoby dyskowe (pliki) danego komputera, serwer
aplikacji - umożliwia zdalne uruchamianie i użytkowanie aplikacji.
Stacja robocza - w odróżnieniu od serwera, komputer przeznaczony do
bezpośredniej pracy, z własnym systemem operacyjnym lub
podłączony poprzez sieć komputerową do serwera.
PC (personal computer) - komputer osobisty:
Komputer stacjonarny - z obudową desktop lub tower składa się z co najmniej trzech zasadniczych elementów:
jednostki centralnej, monitora i klawiatury.
4
Typy komputerów
elementy składowe komputera stacjonarnego:
1. monitor
2. płyta główna
3. procesor (CPU)
4. pamięć operacyjna (RAM)
5. karta rozszerzenia
6. Zasilacz
7. napęd optyczny (CD, DVD itp.)
8. dysk twardy (HDD)
9. mysz
10.klawiatura
5
Typy komputerów
Laptop, notebook - komputer
przenośny, ze zintegrowaną
klawiaturą i monitorem
tworzącymi jedną całość;
Netbook - przenośny, mniejszy, lżejszy
i tańszy laptopa, ma dłuższy czas pracy
na baterii i pozbawiony funkcji i
oprogramowania niepotrzebnych przy
korzystaniu z Internetu;
6
Typy komputerów
iMac - seria komputerów firmy
Apple, zdobył popularność dzięki
kompaktowej budowie (zajmuje
mało miejsca na biurku, wszystko w
jednym miejscu, minimalna ilość
kabli, fabrycznie skonfigurowany
komputer gotowy do działania
łącznie z wejściem do Internetu).
7
Typy komputerów
Palmtop, PDA - komputer rozmiarami
zbliżony do kalkulatora, zawiera system
operacyjny i proste programy użytkowe,
takie jak terminarz, kalendarz,
odtwarzacz plików MP3 i MP4,
przeglądarka internetowa, klient poczty,
komunikator internetowy, posiada
możliwość łączenia się z komputerem za
pomocą portów bluetooth,
podczerwieni (IrDA) lub WiFi, dostępne
są również palmtopy zintegrowane z
telefonami komórkowymi - MDA,
8
Typy komputerów
Tablet – przenośny komputer większy niż telefon komórkowy lub palmtop, posiada
duży ekran dotykowy Multi-Touch.
Nie posiada fizycznej klawiatury, użytkownik posługuje się klawiaturą wirtualną,
dotykając ekran bezpośrednio, bez użycia rysika.
Nie korzysta w zasadzie z nośników wymiennych, a jedynie z wbudowanych dysków
twardych. Dlatego też wszelkie aplikacje dostępne są głównie poprzez zakup lub
bezpłatne pobranie ze specjalnych aplikacji-sklepów, co wiąże się z koniecznością
posiadania dostępu do Internetu.
Obecnie urządzenia te posiadają zwykle wbudowane karty do bezprzewodowej
łączności (Wi-Fi, GSM, 3G, LTE), dzięki czemu przejmują także część funkcji
nowoczesnych telefonów komórkowych.
9
Oprogramowanie komputerów osobistych
Ze względu na pełnione przez siebie funkcje, oprogramowanie
komputera można podzielić na dwie główne grupy:
• oprogramowanie podstawowe
• oprogramowanie użytkowe
Bardziej precyzyjna klasyfikacja wyodrębnia trzy grupy:
• oprogramowanie systemowe
• oprogramowanie narzędziowe
• oprogramowanie użytkowe
Oprogramowanie systemowe to system operacyjny oraz BIOS i odpowiednie programy
wspomagające.
Oprogramowanie narzędziowe to programy, które ułatwiają tworzenie i obsługę
programów użytkowych, np. translatory.
Oprogramowanie użytkowe stanowią programy, które wykonują konkretne zadania
stawiane przez użytkownika, np. przekształcają wprowadzane dane dostarczając
nowych informacji lub wprowadzając ich nową jakość.
10
Struktura oprogramowania
komputera
Struktura oprogramowania komputera ma charakter warstwowy
11
BIOS
BIOS (ang. Basic Input Output System) jest zbiorem elementarnych programów I
procedur zapisanych w pamięci ROM (obecnie FIashROM) i dostarczanych wraz
ze sprzętem.
Najważniejsze programy BIOS-u:
program testujący POST (ang. Power On SeIf Test) — w pierwszej kolejności
testowany jest procesor, następnie pamięć ROM I RAM, sterowniki przerwań i inne
układy na płycie głównej, a w ostatniej kolejności urządzenia zewnętrzne; w ostatniej
fazie testu wykrywane są rozszerzenia BIOS-u na kartach sterowników, następuje ich
inicjalizacja i uruchomienie niezbędnych programów;
boot - program inicjujący — przeszukuje dyski komputera i uruchamia system
operacyjny;
procedury obsługi podstawowych urządzeń wejścia/wyjścia (klawiatury, monitora,
dysków i drukarki);
Setup — program umożliwiający konfigurację sprzętu.
Zmienne programu BIOS (data, godzina, hasło, ustawienia sprzętu) przechowywane są w
podtrzymywanej bateryjnie pamięci RAM.
12
Unified Extensible Firmware
Interface (UEFI)
•Szybki start systemu
•Wbudowany BIOS
•Uproszczone podkręcanie „procesora”
•Oszczędzanie energii
•Rozbudowane programy narzędziowe
•Testy pamięci
•Backup dysku twardego
•Wygodna obsługa menu ustawień przy pomocy myszy
•Uproszczona aktualizacja UEFI Apple jest aktualnie jedynym
producentem oferującym komputery z systemem UEFI
13
System operacyjny
Jest to zbiór programów i procedur, których zasadniczym
zadaniem jest zarządzanie wszystkimi zasobami sprzętowymi,
programowymi i informacyjnymi komputera.
System operacyjny pośredniczy pomiędzy uruchamianymi
aplikacjami a sprzętem, działa od chwili startu do wyłączenia
komputera.
W każdym systemie operacyjnym występują warstwy,
spełniające różne funkcje, np.:
• warstwa odpowiedzialna za współpracę ze sprzętem,
• jądro systemu, realizujące jego funkcje,
• powłoka ( shell ) - zewnętrzna warstwa sytemu
stanowiąca interfejs użytkownika.
14
Zadania systemu operacyjnego
• Zarządzanie zasobami sprzętowymi - zapewnienie optymalnego wykorzystania pamięci i
urządzeń wchodzących w skład komputera oraz sterowanie nimi. Specjalne moduły
programowe - sterowniki udostępniają aplikacjom jednolity sposób programowania urządzeń –
interfejs.
• Obsługiwanie zbiorów w pamięci zewnętrznej - gromadzenie danych na dyskach i zarządzanie
nimi poprzez moduł programowy obsługujący system plików. System plików to struktura
danych na dysku, która pomaga logicznie uporządkować dane, dzieląc je na pliki i grupując w
katalogach.
• Realizacja maszyn wirtualnych - uproszczonych obrazów komputera, które są udostępniane
aplikacjom.
• Wielozadaniowość - umożliwienie pracy wielu aplikacji na jednym komputerze. Każda
aplikacja otrzymuje własną maszynę wirtualną i może działać tak, jakby była jedyną aplikacją
pracującą na komputerze.
• Interakcja z użytkownikiem - powłoka systemu umożliwia użytkownikowi uruchomienie
aplikacji oraz komunikację z komputerem. Użytkownik może komunikować się z systemem w
trybie tekstowym wpisując odpowiednie polecenia systemowe i odczytując komunikaty
wysyłane przez system, bądź w trybie graficznym poprzez system okienek dialogowych, ikon,
kontrolek, itp.
• Komunikacja z innymi komputerami - moduły obsługujące sieć zapewniają dostęp do
Internetu oraz do zasobów innych komputerów pracujących w sieci.
15
Oprogramowanie narzędziowe
Oprogramowanie narzędziowe to zbiór programów, które ułatwiają tworzenie
i obsługę programów użytkowych. Są to przede wszystkim translatory.
Translator pełni następujące funkcje:
• kontroluje formalną poprawność programu,
• przydziela odpowiednie komórki w pamięci dla zmiennych występujących w
programie,
• tłumaczy program użytkownika z języka zewnętrznego na język wewnętrzny
komputera.
Najprostszym translatorem jest tzw. asembler, który tłumaczy program napisany w
języku symbolicznym na język wewnętrzny (binarny) komputera.
Ze względu na sposób translacji można podzielić translatory na dwie główne grupy:
• kompilatory (C, C++, Java),
• interpretery (Basic, JavaScript, Python).
Translator wyposażony w programy pomocnicze, takie jak: edytor, debuger, linker,
nazywany jest systemem lub zintegrowanym pakietem programowania określonego
języka (ang. Development Kit).
16
Generacje języków programowania
17
Zintegrowane środowisko
programistyczne
(ang. Integrated Development Environment, IDE) – aplikacja lub zespół aplikacji
(środowisko) służących do tworzenia, modyfikowania, testowania i konserwacji
oprogramowania.
Aplikacje będące zintegrowanymi środowiskami programistycznymi
umożliwiają edycję kodu źródłowego, kompilowanie kodu źródłowego,
tworzenie zasobów programu (okien, menu, elementów graficznych),
tworzenie baz danych, komponentów i innych.
IDE mogą mieć wbudowany kompilator, lub być tylko nakładką –
wykorzystującą Development Kit)
18
Przykłady IDE - Java
BlueJ - przeznaczone do tworzenia
aplikacji w języku Java Jego głównym
przeznaczeniem jest nauka języka (oraz
ogólnie pojętych podstaw
programowania obiektowego) i
tworzenie prostych programów.
Eclipse - rozbudowane środowisko
programistyczne stworzone przez IBM, obecnie
Open Source, którego główna zaletą jest obsługa
wtyczek rozszerzających jego możliwości o obsługę
wielu języków tworzenia kodu.
Wspomaganie pisania aplikacji w języku Java, C,
C++, PHP, JavaScript,, tworzenie GUI itp. Eclipse
posiada takie funkcje jak weryfikacja błędów, auto
uzupełnianie kodu czy podświetlanie składni.
19
Przykłady IDE – C, C++, C#
Microsoft Visual Studio
Dev C++
Code::Blocks
20
Oprogramowanie użytkowe
Oprogramowanie użytkowe (tak zwane aplikacje) - to programy wykonujące
konkretne zadania.
Kategorie oprogramowania:
•edytory tekstu - Microsoft Word, OpenOffice Writer;
•arkusze kalkulacyjne - Microsoft Excel, OpenOffice Calc;
•programy obsługi baz danych - Microsoft Access, OpenOffice Base;
•edytory prezentacji - Microsoft PowerPoint, OpenOffice Impress;
•programy graficzne - służące do obróbki grafiki wektorowej (Corel Draw,
Adobe Illustrator, Adobe Flash, Swish, InkScape) i rastrowej (Microsoft
Paint, Corel Photopaint, Photoshop, Gimp, InfranView, Picasa);
•oprogramowanie DTP do tworzenia materiałów reklamowych - Microsoft
Publisher, Adobe InDesign;
21
Oprogramowanie użytkowe
•oprogramowanie OCR służące do rozpoznawania znaków lub całych
tekstów, często dołączane do skanerów - FineReader, Recognita;
•oprogramowanie CAD - komputerowe wspomaganie oprogramowania –
AutoCAD, SolidEdge;
•programy antywirusowe - Avast, AVG, Kaspersky, Nod23, Norton
Antivirus, Panda Antivirus,
•programy antyspyware - usuwające z komputera programy spyware,
których celem jest szpiegowanie działań użytkownika - Windows Defender,
SpyBot, Ad-Aware;
•programy firewall - chroniące komputer przed zagrożeniami z sieci
komputerowej - Norton Symantec Security, Outpost, zapora wbudowana
w Windows (SP2);
•programy finansowo-księgowe - RAAKS, Rachmistrz, Symfonia;
•przeglądarki internetowe - Microsoft Internet Explorer, Mozilla Firefox,
Opera, Chrome;
22
Oprogramowanie użytkowe
•komunikatory - Gadu-Gadu, Skype, Tlen, Miranda, ICQ;
•programy pocztowe - klienty poczty elektronicznej - Mozilla Thunderbird,
Microsoft Outlook Express, KMail, Pegasus Mail, The Bat;
•odtwarzacze dźwięku - Windows Media Player, Winamp;
•edytory dźwięku - AudaCity,
•odtwarzacze filmów - Power DVD, Windows Media Player, AllPlayer, Best Player;
•edytory wideo - Adobe Premiere Elements, PowerDirector Pro, Pinnacle Studio,
VideoWave, VideoStudio, Windows Movie Maker, WinDVD Creator;
•programy kompresji danych - 7-ZIP, IZArc, WinRAR, WinZIP;
•programy edukacyjne
•gry komputerowe
23
Oprogramowanie EUC
Niektóre z tych programów np. arkusze kalkulacyjne, pakiety obliczeniowe można
zaliczyć do oprogramowania narzędziowego, jeśli mają otwartą strukturę mogą
być wykorzystywane przez użytkownika do tworzenia własnych programów
użytkowych (np. MATLAB).
Pojęciem EUC (ang. end-user computing, przetwarzanie przez użytkownika
końcowego) określa się systemy informatyczne, których użytkownicy nie będący
informatykami mogą tworzyć własne aplikacje lub modyfikować istniejące
aplikacje.
Poziom komplikacji tworzenia tych aplikacji waha się od interakcji z elementami
graficznymi (przeciąganie okienek, klikanie), poprzez tworzenie skryptów w
kontrolowanym środowisku uruchomieniowym aż do możliwości tworzenia,
modyfikacji i rekompilacji kodów źródłowych.
24
Bezpieczeństwo danych
Pracując przy komputerze powinnyśmy zadbać, aby nasz komputer działał
poprawnie i aby nasze dane były bezpieczne.
Zabezpieczenie systemu komputerowego zależy od jego przeznaczenia. W
inny sposób zostanie zabezpieczona stacja robocza wykorzystywana do gier
komputerowych, w inny serwer instytucji rządowej.
Zasady korzystania z haseł:
•Użytkownik ponosi odpowiedzialność za operacje wykonywane z jego
konta. Hasła nie wolno udostępniać.
•Hasło powinno być regularnie zmieniane oraz zmieniane w przypadku
podejrzenia jego przechwycenia
•Korzystając z serwisów internetowych pamiętajmy o wylogowaniu się,
nie zapamiętujmy naszych danych w przeglądarkach.
•Korzystając z komputera dostępnego publicznie powinniśmy unikać
wpisywania numeru karty kredytowej oraz innych poufnych informacji.
•Korzystać z oprogramowania antyspyware monitorującego możliwość
wyłudzenia hasła
25
Dobre praktyki tworzenia haseł
Nie wolno:
tworzyć hasła o długości krótszej lub równej 6 znaków
wybierać jako hasło znanego słowa, imienia, nazwiska, daty urodzenia, numeru
telefonu, numeru rejestracyjnego
zmieniać hasła tak, by nowe było zależne od starego (np. z Lato.2012 na
Jesień.2012)
zapisywać hasła w widocznych lub łatwo dostępnych miejscach (jak np. fragment
biurka zakryty klawiaturą, wnętrze szuflady czy płyta z danymi)
Należy:
wybierać długie i mało znane słowo lub frazę (kombinacja różnych znaków)
wybrać hasło w sposób na tyle losowy na ile tylko możliwe
zmieniać hasło odpowiednio często, w losowych odstępach
zmienić hasło natychmiast, jak tylko rodzi się podejrzenie, że ktoś mógł je poznać
Można:
- opracować własny algorytm generowania haseł - wybór pierwszych liter słów ulubionej
piosenki, ostatnich znaków z wersów wiersza lub wybranej strony książki itp.
26
- zlecić systemowi wygenerowanie trudnego hasła
Złośliwe oprogramowanie
Wirus komputerowy - obcy fragment kodu, dołączony do programu. Uruchomienie
„zarażonego” programu spowoduje odszukiwanie na dysku „zdrowych” programów
i dołączanie do nich kodu wirusa. "Zainfekowane" nim programy najczęściej przenoszone
są na wymiennych nośnikach (pendrivach) lub przesyłane siecią, niszczą w ten sposób
zasoby innych komputerów. Wirus może też atakować sektor rozruchowy dysku
unieruchamiając komputer. Należy pamiętać, że skutki powodowane przez wirusy mają
znamiona przestępstwa polegającego na naruszeniu dóbr chronionych prawem.
Robak komputerowy - samoreplikujący się program komputerowy, podobny do wirusa.
Główna różnica polega na tym, że wirus wykorzystuje plik wykonywalny jako „nosiciela”
modyfikując jego kod, robak natomiast jest niezależną aplikacją, która rozprzestrzenia się
w sieci podłączonej do zarażonego komputera wykorzystując luki w systemie operacyjnym
lub naiwność użytkownika. Oprócz replikacji, robak może również niszczyć pliki, wysyłać
pocztę (spam). Współczesne robaki pobierając z sieci dodatkowe moduły potrafią
zmieniać i rozbudowywać własną funkcjonalność
27
Złośliwe oprogramowanie
Trojan (koń trojański) jest pozornie przydatnym programem, jednak posiada ukryte,
niepożądane działanie, które może być szkodliwe dla danych użytkownika. Może na
przykład wysyłać lub niszczyć dane, wysyłać hasła i klucze dostępu, a także blokować
mechanizmy ochronne komputera.
Spyware (programy szpiegujące) - ich których celem jest szpiegowanie działań
użytkownika, wyłudzenie danych i wysłanie ich autorowi programu. Dane te to:
adresy www stron internetowych odwiedzanych przez użytkownika
•dane osobowe
•numery kart płatniczych
•hasła
•zainteresowania użytkownika (np. na podstawie wpisywanych słów w oknie
wyszukiwarki)
•adresy poczty elektronicznej
•archiwum
Adware - programy, które bez zgody odbiorcy, w sposób utrudniający obsługę
komputera, wyświetlają niechciane reklamy. W przypadku "ukrytych" modułów adware
często łączone są one z innymi złośliwymi kodami.
28
Wybrane zagadnienia prawne
Wszystkie programy komputerowe chronione są prawem autorskim. Prawo
chroni twórcę programu przed jego bezpłatnym rozpowszechnianiem i
używaniem, chyba że autor na to zezwolił.
Również treści zamieszczane w Internecie podlegają ustawie o prawie
autorskim (Ustawa z dnia 4 lutego 1994 o prawie autorskim i prawach
pokrewnych) oraz Ustawa z 6 czerwca 1997 r. Kodeks karny.
Piractwo
komputerowe
to
bezprawne
kopiowanie
i
rozpowszechnianie programów komputerowych podlegającej ochronie
prawno-autorskiej.
Do piractwa komputerowego może dochodzić poprzez
•kopiowanie,
•pobieranie,
•współdzielenie,
•sprzedaż,
•instalowanie w komputerze prywatnym lub firmowym większej liczby
kopii programu niż zezwala na to licencja.
29
Korzystanie z oprogramowania
Kupując oprogramowanie w rzeczywistości tylko nabywamy licencję do
korzystania z programu.
W licencji znajdziemy informację ile kopii programu możemy zainstalować na
komputerach oraz ile kopii bezpieczeństwa nośnika możemy wykonać.
Jeżeli wykonamy więcej kopii programu niż zezwala na to licencja popełniamy
piractwo komputerowe.
Jeżeli wykonamy więcej kopii programu niż zezwala na to licencja popełniamy
piractwo komputerowe.
Kopiowanie lub pobieranie kopii oprogramowania bez licencji jest zawsze
łamaniem prawa.
Nie wolno kopiować programu dla przyjaciół, użyczać dysków instalacyjnych,
rozpowszechniać czy pobierać pirackich aplikacji z Internetu, czy też kupować
jednej kopii oprogramowania i instalować na wielu komputerach.
30
Korzystanie z oprogramowania
Według prawa polskiego producent oprogramowania może domagać się od
użytkownika nielegalnej kopii zapłaty pięciokrotnej wysokości jego rynkowej
wartości na drodze cywilnoprawnej, zaś w zakresie odpowiedzialności karnej za
piractwo komputerowe grozi kara nawet 5 lat pozbawienia wolności.
Należy również pamiętać, że instalując pirackie oprogramowanie narażamy się
na działania programów szpiegujących i złośliwego kodu (wirusów, koni
trojańskich itp.), co może prowadzić do uszkodzenia komputera lub utraty
danych.
Piractwo komputerowe ścigane jest przez Policję i BSA (Business Software
Alliance).
BSA jest organizacją non-profit reprezentującą producentów oprogramowania i
sprzętu komputerowego, powołaną w celu podejmowania działań na rzecz
bezpiecznego i zgodnego z prawem środowiska cyfrowego.
31
Rodzaje licencji
Licencja oprogramowania komputerowego reguluje warunki jego użytkowania oraz
zasady odpłatności.
Shareware - licencja zezwala na rozpowszechnianie bezpłatnie programu pod
warunkiem otrzymania zgody autora. Najczęściej po okresie testowym należy program
odinstalować lub zapłacić za jego użytkowanie, często programy na tej licencji mają
ograniczoną funkcjonalność, którą uzyskać można dopiero po rejestracji i zakupie.
Freeware - licencja zezwala na rozpowszechnianie za darmo, nie wolno natomiast
odsprzedawać takiego oprogramowania, ani dokonywać zmian w jego kodzie
źródłowym.
Adware - autor udostępnia swój program bezpłatnie, w zamian za to dołączone są do
niego reklamy
Demo - najczęściej celowo zubożone wersje programów udostępniane za darmo,
czasami są to pełne wersje o ograniczonym czasie działania
Pełna wersja - oprogramowanie komercyjne, płatne, bez żadnych ograniczeń.
Kopiowanie i rozpowszechnianie jest niezgodne z prawem. Zazwyczaj wolno sporządzić
32
nam kopię zapasową programu.
Rodzaje licencji
Licencja firmware - obejmuje oprogramowanie tzw. układowe, umieszczone na stale w
sprzętowej części systemu komputerowego.
Licencja GNU GPL - zasady licencjonowania określone zostały przez konsorcjum Free
Software Foundation, celem licencji jest przekazanie użytkownikom czterech
podstawowych wolności:
•wolność uruchamiania oprogramowania w dowolnym celu (wolność 0)
•Wolność analizowania, jak program działa i dostosowywania go do swoich
potrzeb (wolność 1)
•wolność rozpowszechniania niezmodyfikowanej kopii programu (wolność 2)
•wolność udoskonalania programu i publicznego rozpowszechniania własnych
ulepszeń (wolność 3).
Licencja Public Domain - autor zrzeka się praw do upowszechniania oprogramowania
na rzecz ogółu użytkowników.
Licencja jednostanowiskowa - umożliwia zainstalowanie oprogramowania tylko na
jednym komputerze.
Licencja grupowa - umożliwia zainstalowanie oprogramowania w sieci (licencja
33
sieciowa) lub na kilku komputerach (określa maksymalną liczbę stanowisk).
Koniec wykładu 1
34