Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Administracja systemami operacyjnymi Wiosna 2014 Wykład 1 System plików UNIX / Linux dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki.

Podobne prezentacje


Prezentacja na temat: "Administracja systemami operacyjnymi Wiosna 2014 Wykład 1 System plików UNIX / Linux dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki."— Zapis prezentacji:

1 Administracja systemami operacyjnymi Wiosna 2014 Wykład 1 System plików UNIX / Linux dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki 1

2 Istota systemu plików 2 UNIX jako system operacyjny jest zbudowany wokół pojęcia systemu plików, które używane są do przechowywania informacji składających się na długofalowy stan systemu. W Unixie wszystko jest plikiem. Stan ten zawiera: ̶ jądro systemu operacyjnego, ̶ pliki wykonywalne dla poleceń wspieranych przez system, ̶ informacje konfiguracyjne, ̶ tymczasowe pliki robocze, ̶ dane użytkownika ̶ różne pliki specjalne służące do kontroli dostępu do składników sprzętowych systemu i funkcji systemu operacyjnego. Każdy element przechowywany w systemie plików UNIX należy do jednego z czterech typów: - Zwykły plik - Katalog - Urządzenie - Dowiązanie

3 Rodzaje plików w UNIX 3 PLIK ZWYKŁY Może zawierać tekst, dane lub informacje programu Nie może zawierać innych plików lub katalogów. Nazwy plików w UNIX’ie mogą zawierać dowolny znak z wyjątkiem / i mieć do 256 znaków długości (znaki *, ?, # i & mogą mieć specjalne znaczenie dla powłoki i nie należy ich używać w nazwach). Spacja w nazwie powoduje niewygodę w korzystaniu – lepszy jest podkreślnik _. KATALOG Zawiera pliki i inne katalogi W każdym katalogu są zdefiniowane dwa specjalne katalogi:. bieżący katalog.. katalog nadrzędny W niektórych powłokach zdefiniowane są ponadto katalogi: ~ katalog domowy zalogowanego użytkownika ~nazwa_uzytkownika katalog domowy określonego użytkownika Specjalne nazwy katalogów

4 Rodzaje plików UNIX 4 Dowiązanie – wskazanie na inny plik zwykły lub katalog Dowiązania twarde (hard links). Dowiązanie twarde to utworzenie nowej nazwy dla istniejącego pliku. Dowiązania symboliczne (symbolic links). Link symboliczny to dowiązanie do pliku wskazujące na jego nazwę. jest traktowane przez UNIX jak plik, aby zapewnić aplikacjom łatwość dostępu do niego. Są dwa rodzaje urządzeń Urządzenie urządzenie znakowe – pseudoplik reprezentujący urządzenie przesyłające dane strumieniem, bajt po bajcie (np. modem) urządzenie blokowe – pseudoplik reprezentujący urządzenie zapewniające swobodny dostęp do danych, wymieniające dane w blokach (np. dysk twardy) Nazwany potok – specjalny plik, który ma służyć jako łącznik między procesami Gniazdo – plik służący jako mechanizm komunikacji sieciowej między procesami

5 5 Drzewo katalogów Linuksa System plików UNIX ma strukturę odwróconego drzewa. Początek jest w katalogu root (korzeń), oznaczanym /.

6 Katalogi domowe i systemowe 6 Osobiste pliki użytkowników znajdują się zwykle w katalogu /home/nazwa_uzytkownika (dla zwykłych użytkowników) i /root (dla superużytkownika). Katalog domowy jest zwykle ustawiany jako bieżący katalog roboczy powłoki zaraz po zalogowaniu. Użytkownik może swobodnie tworzyć, modyfikować i usuwać pliki i katalogi w obrębie swojego katalogu domowego i jego podkatalogów. Może również ograniczać dostęp do nich innym użytkownikom (ale nie superużytkownikowi). W katalogach systemowych przechowywane są pliki systemu operacyjnego, aplikacji, dokumentacja – wszystko oprócz plików prywatnych użytkowników. Zwykli użytkownicy mogą przeglądać większość zawartości katalogów systemowych, choć zwykle nie mogą w nich pisać (tworzyć, modyfikować lub usuwać plików i podkatalogów). Nazwy katalogów systemowych składają się zwykle z 3 części:

7 7 Zakres katalogu Zakres ścieżki katalogu określa przeznaczenie całej hierarchii katalogów. Najczęstsze zakresy to: /pliki systemowe (hierarchia podstawowa); /usrpliki wspólne użytkowników tylko do odczytu, zawiera większość narzędzi i aplikacji (hierarchia drugorzędna) /usr/localdane lokalne, specyficzne dla maszyny (hierarchia trzeciorzędna) /usr/X11R6pliki systemu X Window /usr/gamespliki gier /optpliki opcjonalnych pakietów oprogramowania /srvdane udostępniane przez system, specyficzne dla maszyny; /varpliki czasu wykonania

8 8 Kategorie katalogów binprogramy (pliki binarne lub skrypty) przewidziane do ogólnego użytku sbinprogramy (pliki binarne lub skrypty) przewidziane do wykonywania przez superużytkownika lib, lib64biblioteki kodów używanych przez inne programy libexecprogramy przewidziane do wywoływania przez inne programy Kategorie programów Kategorie dokumentacji docpliki dokumentacji; infopliki pomocy systemu info manpliki stron podręecznika shareinne pliki związane z programem (przykłady, instrukcje instalacji, grafiki, dane).

9 9 Kategorie katalogów Kategorie konfiguracji Kategorie usług ftppliki udostępniane przez serwer FTP wwwpliki udostępniane przez serwer WWW htmlstrony WWW w języku HTML i PHP cgi-binskrypty i programy działające na stronach WWW etc pliki konfiguracyjne systemu i usług; init.d, rc.d, rc0.d, rc1.d,..., rc6.d pliki konfiguracyjne wykorzystywane podczas rozruchu systemu.

10 10 Kategorie katalogów Kategorie systemu wyświetlania Kategorie sprzętu devpseudopliki urządzeń mediapunkty montowania nośników wymiennych mntpunkty montowania tymczasowych systemów plików fontsPliki czcionek X11Pliki systemu X Window Kategorie plików czasu wykonania lockpliki blokad logpliki dzienników systemowych mailskrzynki pocztowe dla przychodzącej poczty runpliki przechowujące identyfikatory działających procesów spoolpliki kolejkowane lub przesyłane (poczta wychodząca, zadania wydruku, zadania planowane) tmppliki tymczasowe, dostępne dla programów i użytkowników

11 Katalogi systemu operacyjnego 11 /bootpliki potrzebne w trakcie rozruchu systemu (przechowują jądro systemu, najczęściej /boot/vmlinuz); /lost+foundodzyskane dane z uszkodzonych plików /procdziałające procesy, m.in.: /proc/ioportslista urządzeń wejścia – wyjścia /proc/versionwersja systemu operacyjnego /proc/uptimeczas działania systemu (w sek.); /proc/nnn(nnn — liczba całkowita dodatnia) informacje o procesie nr nnn ; /proc/selfinformacja o aktualnie wykonywanym procesie.

12 Polecenia obsługi plików 12 pwdprint working directory drukuj katalog roboczy lsListlista plików w katalogu cdChange directoryzmień katalog mkdirMake directoryutwórz katalog rmdirRemove directory usuń katalog cpCopyKopiuj mvMovePrzenieś lub zmień nazwę rmRemoveUsuń catConcatenateDołącz, połącz pliki moreWięcej – wyświetl po stronie lub po linii (tylko przewijanie w dół) lessMniej – wyświetl po stronie lub po linii (przewijanie w dół i do góry) tailOgon - Wyświetl ostatnich kilka linii pliku

13 Tworzenie dowiązań 13 Dowiązania twarde (hard link) - to utworzenie nowej nazwy dla istniejącego pliku. Polecenie to jest podobne do kopiowania pliku z tym, że przy kopiowaniu tworzona jest niezależna kopia pliku a przy dowiązaniu twardym tworzona jest tylko nowa nazwa, która wskazuje na ten sam istniejący już plik. Przykład $ ln ~/Desktop/dorota.doc ~/Desktop/Katalog1/aneta.doc Polecenie to utworzy nam w katalogu "Katalog1" plik "aneta.doc", który będzie dowiązaniem do pliku "dorota.doc" znajdującego się na pulpicie Do tworzenia dowiązań twardych służy polecenie ln. ln cel_dowiązania dowiązanie gdzie: cel_dowiązania - plik do którego chcemy zrobić dowiązanie dowiązanie - plik, który będzie stanowił dowiązanie do pierwszego $ ls –l ~/Desktop/Katalog1 -rw-r--r-- 2 student student 12 wrz 26 18:30 aneta.doc 2 wskazuje na liczbę dowiązań do pliku Oba dowiązania są równoprawne. Skasowanie jednego z nich nie kasuje zawartości pliku. Aby skasować plik należy skasować wszystkie dowiązania do niego.

14 Tworzenie dowiązań 14 Dowiązania symboliczne (symbolic links) – jest to dowiązanie do pliku wskazujące na jego nazwę. Link symboliczny wskazuje na nazwę pliku, która dopiero wskazuje na plik. Linki symboliczne tworzy się używając parametru -s $ ln -s ~/Desktop/dorota.doc ~/Desktop/Katalog1/aneta.doc $ ls –l ~/Desktop -rw-r--r-- 1 student student 12 wrz 27 12:29 dorota.doc Utworzenie linku symbolicznego nie zwiększa liczby dowiązań do pliku. $ ls –l ~/Desktop/Katalog1 lrwxrwxrwx 1 student student 12 wrz 27 12:25 aneta.doc -> /home/student/Desktop/dorota.doc Dowiązania referencyjne (reference links) – jest to dowiązanie dostępne w systemach plików BTRFS i OCFS2 poleceniem cp --reflink

15 Nazwy plików – symbole wieloznaczne 15 Wiele nazw plików może być wyszczególnianych przy pomocy znaków dopasowań do wzorca: ? zastępuje dowolny znak na wskazanej pozycji w nazwie pliku * zastępuje zero lub więcej znaków w nazwie pliku. Sama * odpowiada wszystkim plikom; *.* odpowiada wszystkim plikom mającym w nazwie. znaki otoczone nawiasami kwadratowymi [ i ] odpowiadają dowolnej nazwie pliku, która ma jeden z tych znaków na wskazanej pozycji lista rozdzielonych przecinkami łańcuchów znaków otoczona nawiasami klamrowymi { i } jest rozwijana jako iloczyn kartezjański z otaczającymi znakami. ??? odpowiada wszystkim trójznakowym nazwom plików ?ell? odpowiada wszystkim pięcioznakowym nazwom plików z ‘ell’ w środku he* odpowiada wszystkim nazwom plików rozpoczynającym się od ‘he’ [m-z]*[a-l] odpowiada wszystkim nazwom plików zaczynającym się na litery od ‘m’ do ‘z’ i kończącym na litery od ‘a’ do ‘l’ {/usr,}{/bin,/lib}/file rozwija się na ‘/usr/bin/file’, ‘/usr/lib/file’, ‘/bin/file’ i ‘/lib/file’

16 Systemy plików w Linuksie 16 Definicja: System plików – metody i struktury danych używane przez system operacyjny w celu zapisania informacji o plikach i ich zawartości na danej partycji; jest to sposób organizacji plików na dysku. Słowo to jest używane również w znaczeniu dysku, partycji. Linux obsługuje kilkanaście typów systemów plików minix – najstarszy, najbardziej niezawodny. Ograniczenie nazwy pliku do 30 znaków i wielkości do 64MB, brakuje niektórych znaczników czasu. Źr. Wikipedia Obsługa innych systemów plików (ograniczone zastosowanie) NTFS, msdos (FAT), usmdos (wersja rozszerzona msdos, długie nazwy), iso9660 (płyty CD-ROM) nfs (system sieciowy) hpfs (system plików OS/2), sysv (używany przez SystemV/386) xia – zmodyfikowana wersja systemu minix (podniesiono limity długości nazwy oraz rozmiaru plików). Obecnie nie używany. ReiserFS – szybki i stabilny, dobrze radzi sobie z dużą liczbą małych plików. Obecnie w wersji 3.6. XFS – szybki ale podatny na awarie - wiele informacji przechowuje w pamięci RAM. ext – podstawowa i najstarsza wersja dla linuksa. Aktualnie nie używany. ext2 – ulepszona wersja ext. Ograniczono fragmentację danych i wprowadzono mechanizm naprawy plików ext3 – następca ext2. Wprowadzono mechanizmy księgowania (journaling) co zwiększyło stabilność systemu i odporność na awarie. ext4 – następca ext3, obecnie jeden z najpopularniejszych systemów plików dla Linuksa.

17 Organizacja partycji w Linuksie 17

18 Organizacja partycji w Linuksie 18 Oznaczenia dysków i innych urządzeń hda dysk ATA primary master hdb dysk ATA primary slave hdc dysk ATA secondary master hdd dysk ATA secondary salve sda pierwszy dysk SATA (lub SCSI) sdb drugi dysk SATA (lub SCSI) sdc trzeci dysk SATA (lub SCSI) …… sr0 - pierwszy nośnik wymienny SATA lub USB sr1 - drugi magazyn wymienny SATA lub USB …… cdrom – napęd CD Uwaga – w różnych dystrybucjach nazwy mogą się różnić

19 Podział dysku na partycje 19 Partycja systemowa SWAP. Jest to partycja, która jest używana jako zapasowa pamięć. Spełnia tę samą rolę co plik wymiany w systemie Windows. Partycje użytkowe – można wykorzystać do przechowywania danych. Przygotowując partycje na potrzeby użytkowe często tworzy się jedną partycję na potrzeby systemu operacyjnego i osobną partycję na potrzeby użytkowników. Pozwala to zwiększyć bezpieczeństwo danych użytkowników w razie poważnej awarii dysku czy systemu. Rozmiar partycji nie musi być większy niż 512MB, chyba że korzystamy z hibernacji – wówczas wielkość będzie równa ilości RAM. Niektóre dystrybucje umożliwiają pracę bez partycji SWAP – z plikiem wymiany podobnie jak w Windows. Istnieje możliwość rozdzielenia partycji SWAP na kilka fizycznych dysków co zwiększy wydajność systemu.

20 Przykładowy podział dysku na partycje 20 sdb4 to partycja logiczna

21 Zasady podziału dysku na partycje 21 Zasada główna – nie instalujemy całego linuksa na jednej partycji Zaleca się utworzenie partycji /home – dzięki temu, nasze dokumenty czy skopiowane ustawienia systemu możemy bezpiecznie trzymać podczas formatowania dysku z systemem 1. partycja C:\ pod Windows z systemem plików NTFS 2. partycja montowana jako / = ok. 0,5GB (system plików ext3) Tutaj będzie Kernel, pliki roota, pliki katalogu /etc. Przykładowy podział 3. partycja montowana jako /SWAP = ok. 1GB 4. partycja montowana jako /usr = ok. 2,5-5GB (system plików ext3) Na tej partycji Linux umieści pliki programów, zależenie od ich liczby. 5. partycja montowana jako /var = ok. 5-8GB (system plików ext3) 6. partycja montowana jako /var/log = ok. 1-2GB (system plików ext3) 7. partycja montowana jako /tmp = ok. 1GB (system plików ext3) 8. partycja montowana jako /archiwum = 8GB (system plików ext3) 9. partycja montowana jako /home/public = ok. 7-8GB (system plików ext2) – możliwość odczytu z Windows 10. partycja montowana jako /home pozostała objętość – pliki użytkowników

22 Program rozruchowy 22 Program rozruchowy (ang. boot loader) – działający na zasadzie bootstrapu program uruchamiany jako pierwszy po wykonaniu BIOS-u, służący do załadowania systemu operacyjnego do pamięci operacyjnej komputera. GRUB (ang. GRand Unified Bootloader) - program rozruchowy rozwijany w ramach projektu GNU. Pozwala zainstalowa wiele systemów na jednym komputerze (m. in. Linux, FreeBSD, Windows, Mac OS X) Segment startowy programu rozruchowego może być umieszczony w pierwszym, 512- bajtowym fragmencie sektora startowego dysku twardego (ang. Master Boot Record). W systemach uniksowych pliki dodatkowe programu rozruchowego znajdują się zazwyczaj w katalogu lub partycji montowanej w katalogu /boot. Potrafi odczytywać wiele systemów. W ten sposób można załadować jądro systemu operacyjnego oraz ewentualnie wirtualny dysk startowy. Dodatkowo GRUB potrafi ładować systemy bezpośrednio z urządzenia. GRUB obsługuje zabezpieczenia hasłem uruchamiania dowolnego systemu.

23 Program rozruchowy 23 LILO (z ang. Linux Loader) niezależne od żadnego systemu plików, potrafi załadować jądro systemu operacyjnego Linux lub inny kod wykonywalny zarówno z dyskietki jak i z dysku twardego. SYSLINUX – zestawem programów rozruchowych, służących do uruchamiania jądra Linux. Jest używany w różnego rodzaju dyskietkach i płytach ratunkowych oraz tzw. lekkich systemach. Program obsługuje od 1 do 16 różnych wpisów. Różne parametry startowe (takie jak urządzenie z którego należy zamontować główny system plików) mogą być ustawiane niezależnie dla każdego wpisu. LILO może zostać zainstalowany jako główny program rozruchowy w MBR (uruchamiany bezpośrednio przez BIOS) lub w sektorze rozruchowym partycji (uruchamiany pośrednio - z innego programu rozruchowego). SYSLINUX dla systemu FAT (do uruchamiania z dyskietki) ISOLINUX dla systemu ISO 9660 (do uruchamiania z płyty) PXELINUX dla serwera sieciowego PXE(Pre-boot eXecution Environment) EXTLINUX dla systemów ext2, ext3, ext4 oraz btrfs; MEMDISK dla uruchamiana systemu operacyjnego DOS

24 Narzędzia systemu plików 24 GParted – edytor partycji oparty na środowisku graficznym GNOME dostępny na licencji GPL fsck – narzędzie naprawy systemu plików. mkfs – formatowanie partycji (tryb tekstowy) dumpe2fs – drukuje superblok i dane grupy bloków systemu plików znajdującego się na urządzeniu mount, umount – montowanie filesystemów (konieczne przed wykonaniem operacji) fdisk, cfdisk – narzędzia partycjonowania dysku stat – informacje o pliku TestDisk dobry darmowy program do odzyskiwania danych na dyskach twardych. tune2fs – tuning systemu plików badblocks – wyświetla listę bloków, które uznał za zepsute. df – podaje ilość wolnego miejsca na dyskach du – zwraca ilość miejsca zajmowanego przez plik

25 Montowanie filesystemów 25 Przed użyciem systemu plików należy go zamontować. System operacyjny sprawdza niektóre części systemu plików w celu upewnienia się, że działa. # mount /dev/hda2 /home # mount /dev/hda3 /usr Ponieważ w Unixie pliki przechowywane są w jednym drzewie, nowy system plików będzie tworzył zawartość jakiegoś katalogu.

26 Plik /etc/fstab 26 /etc/fstab (ang. file systems table) to plik konfiguracyjny w systemach uniksowych, zawierający informacje na temat montowania urządzeń przy uruchomieniu systemu. # /dev/sda2swapswapdefaults 0 0 /dev/sda1/ext3defaults 0 0 /dev/sda3/homeext3defaults 1 2 /dev/cdrom/mnt/cdromautonoauto,owner,ro 0 0 /dev/hda1/mnt/debianautodefaults 0 0 /dev/fd0/mnt/floppyautonoauto,owner 0 0 devpts /dev/ptsdevptsgid=5,mode= proc /procprocdefaults 0 0 /etc/mtab ( mounted file systems table, tablica zamontowanych systemów plików) zawiera listę zamontowanych systemów plików. Plik ten ma format bardzo podobny do pliku fstab i jest automatycznie modyfikowany podczas użycia polecenia mount.

27 System plików UNIX (s5fs) 27 System plików Unix obecnie chwili już nie istnieje. Unix czy Linux pracuje z wirtualnym systemem plików UNIX, w warstwie niższej pracuje inny system plików (ext3, ext4)

28 System plików Unix (s5fs) 28 Wyróżnione obszary partycji Superblok - blok pełni rolę bootsektora. Ulega zmianie w trakcie pracy Tablica I-Węzłów (inode) - zawiera strukturę katalogów. Zapisywana w jednym obszarze ciągłym. Są to pozycje katalogowe, ale bez nazw plików. Struktura wpisu Typ pliku - plik, katalog, specjalny Właściciel, właściciel grupowy, atrybuty dostępu SUID SGID 32-bitowa długość pliku (w 32bitowych linuksach, w 64bitowych jest to 64bit pozycja) Atrybuty ID, czasu Liczba twardych dowiązań do pliku. Położenie na dysku - tablica indeksowa Dalej znajduje się przestrzeń danych – bloki z danymi plików i katalogów oraz bloki pośrednie. Rozmiar bloku dyskowego wynosi 512 bajtów pomnożone przez pewną potęgę 2.

29 Katalog w s5fs 29 Katalog jest plikiem specjalnym zawierającym listę plików i podkatalogów. Składa się z rekordów o stałym rozmiarze równym 16 bajtów. Pierwsze 2 bajty zawierają numer i-węzła, a następne 14 nazwę pliku. Taka budowa katalogu ogranicza liczbę plików w partycji do plików oraz długości nazw plików do 14 znaków. Ponieważ katalog jest plikiem, ma także i- węzeł, który zawiera pole identyfikujące plik jako katalog. Jeśli numer i-węzła odpowiadający pozycji jest równy 0 to oznacza, że plik już nie istnieje. Katalog główny partycji oraz jego pozycja zawsze mają numer równy i-węzła 2.

30 Pliki 30 Pliki w systemie UNIX nie zajmują ciągłego obszaru na dysku. W miarę wzrostu rozmiaru pliku jądro przydziela mu nowe bloki w wygodnym miejscu na dysku. Pozwala to łatwo zmniejszać i zwiększać rozmiar pliku nie fragmentując dysku. System plików musi więc utrzymywać informacje o położeniu bloków każdego pliku (w postaci adresów bloków fizycznych). Logiczny numer bloku jest indeksem w tej tablicy.

31 Pliki 31 Wielkość tablicy zależy od rozmiaru pliku. Dla dużych plików wymagało by to trzymania tablicy w kilku blokach dyskowych. Dlatego trzyma się małą listę w samym i-węźle, a dodatkowe bloki stosuje się w przypadku dużych plików. Jest to efektywne rozwiązanie do obsługi małych plików i wystarczająco elastyczne do obsługi bardzo dużych plików. Dziury Pliki uniksowe mogą zawierać tzw. dziury. Użytkownik może utworzyć plik, ustawić wskaźnik pozycji w pliku na dużą wartość i tam zapisać dane. Przestrzeń bez danych między tą pozycją a początkiem pliku jest dziurą. Jeśli proces spróbuje odczytać tą przestrzeń stwierdzi, że znajdują się tam bajty NULL o wartości 0. Żeby nie marnować miejsca na dziury jądro wpisuje zera w odpowiednie miejsca tablicy di_addr lub bloku pośredniego. Przy próbie odczytu, jądro przekazuje w wyniku blok wypełniony zerami. Przestrzeń dyskowa jest przydzielana jedynie przy zapisie danych do bloku.

32 Alokacja I-węzłów 32 Stosuje się algorytm przeszukiwania sekwencyjnego, zoptymalizowany przez częściową listę wolnych i-węzłów zawartą w superbloku. Alokujemy od początku listy (z prawej do lewej). Jeśli numer zwalnianego i-węzła jest mniejszy niż tego z końca listy, to dodajemy go na końcu listy, w przeciwnym wypadku nie robimy nic. Pustą listę uzupełniamy o wolne i-węzły zaczynając przeszukiwanie od następnego po ostatnio zaalokowanym. (pozwala na to poprzednia reguła) Sytuacja początkowa Alokujemy nr 43 Alokujemy nr 44. Zwracamy nr 43 Zwracamy nr 44. Alokujemy nr Uzupełniamy listę

33 Alokacja bloków 33 Nie ma możliwości sprawdzenia czy blok jest wolny, więc trzeba pamiętać całą listę wolnych bloków. Początek listy jest w superbloku. Ostatni element listy w danym bloku zawiera dalszą część listy. Alokujemy z początku listy. Zwracamy również na początek. Przykładowa lista wolnych bloków. Alokujemy od nr 128 do nr 30


Pobierz ppt "Administracja systemami operacyjnymi Wiosna 2014 Wykład 1 System plików UNIX / Linux dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki."

Podobne prezentacje


Reklamy Google