180 likes | 534 Views
Warstwy systemu operacyjnego. Zadania systemu operacyjnego. Normy prawne dotyczące rozpowszechniania programów komputerowych. b y Adrian Leicht. Warstwy systemu operacyjnego.
E N D
Warstwy systemu operacyjnego Zadania systemu operacyjnego Normy prawne dotyczące rozpowszechniania programów komputerowych. by Adrian Leicht
Warstwy systemu operacyjnego • System operacyjny jest dziś najczęściej systemem dużym i złożonym. Jest więc tworem skomplikowanym, który musi zapewniać z jednej strony dużą niezawodność a z drugiej łatwość rozbudowy i modyfikacji (na przykład dostosowania do szybko zmieniających się rozwiązań sprzętowych).
Warstwa API Warstwa ta stanowi zbiór poleceń, które aplikacje użytkownika mogą wydawać systemowi operacyjnemu (na przykład: „zamknij plik”, „odczytaj znak z klawiatury”). Warstwa API (ang. Application Program Interface) pełni rolę pośrednika między systemem operacyjnym a programami użytkownika. Dzięki temu program nie musi troszczyć się na przykład o obsługę procesu otwierania czy zamykania pliku. Nie musi też posiadać wiedzy w jaki sposób w konkretnym systemie proces taki jest wykonywany. Całość obsługi pozostawia on systemowi operacyjnemu, który wie jak otworzyć i zamknąć plik. Aby programiści piszący programy użytkowe mogli korzystać z warstwy interfejsu aplikacji muszą wiedzieć jakie i w jaki sposób wydawać polecenia systemowi operacyjnemu. Zestaw poleceń API systemu operacyjnego jest więc udokumentowany i udostępniany programistom.
Warstwa jądra • Warstwa będąca zarządcą całego systemu. Jest ona odpowiedzialna między innymi za prawidłowe wykorzystanie pamięci operacyjnej, kontrolę priorytetów wątków, nadzór nad aktualnie wykonywanymi programami itd.
Warstwa sterowników urządzeń • Warstwa sterowników urządzeń zajmuje się fizyczną obsługą konkretnych urządzeń systemu komputerowego. Jądro systemu operacyjnego nigdy samodzielnie nie kontaktuje się z takimi urządzeniami jak napędy dyskowe, karty sieciowe czy kartą graficzną. Zawsze pośrednikiem w tych kontaktach jest warstwa sterowników urządzeń. Warstwa sterowników urządzeń składa się z niewielkich programów zwanych sterownikami urządzeń. Programy te zajmują się obsługą konkretnych urządzeń. Dzięki takiej budowie systemu operacyjnego łatwo jest modyfikować i zmieniać urządzenia i ich oprogramowanie bez konieczności zmiany całego systemu operacyjnego. • W chwili produkcji systemu operacyjnego nie można też przewidzieć nowych rozwiązań technicznych, które pojawią się na rynku. Dzięki zastosowaniu sterowników urządzeń producent nowego sprzętu dostarcza wraz z produktem odpowiednie sterowniki do systemu operacyjnego.
Zadania systemu operacyjnego • - Zarządzanie zasobami maszyny. System operacyjny optymalizuje wykorzystanie poszczególnych urządzeń wchodzących w skład komputera oraz steruje nimi. Specjalne moduły wchodzące w skład systemu operacyjnego (sterowniki) udostępniają aplikacjom jednolity sposób programowania urządzeń (interfejs), dzięki czemu każdy nowy sprzęt będzie współdziałać ze wszystkimi aplikacjami, o ile producent sprzętu przygotuje odpowiedni sterownik. - Gromadzenie danych na dyskach i zarządzanie nimi. Każdy system operacyjny jest wyposażony w moduł obsługujący system plików. System plików to struktura danych umieszczonych na dysku, która pomaga logicznie uporządkować dane, dzieląc je na pliki i grupując w katalogach.
- Maszyny wirtualne. System operacyjny udostępnia aplikacji tzw. maszynę wirtualną, czyli uproszczony obraz maszyny, na której pracuje aplikacja. System udostępnia aplikacji szczegóły dotyczące komputera oraz dodatkowe rozszerzenia, które ułatwiają pracę (np. katalog udostępniony przez sieć aplikacja widzi tak samo, jak znajdujący się na lokalnym dysku. Aplikacja korzystająca z takiego katalogu nie zajmuje się obsługą sieci. Aby mogła się tam dostać, system operacyjny udaje, że jest to katalog lokalny i udostępnia go aplikacji).
- Wielozadaniowość. Na jednym komputerze może działać wiele aplikacji jednocześnie. Każda otrzyma własną maszynę wirtualną i będzie mogła działać tak, jakby była jedyną aplikacją pracującą na komputerze. Dzięki temu nie trzeba specjalnie przystosowywać aplikacji, aby mogła "podzielić się" maszyną z innymi (np. przez zwrócenie procesora innej aplikacji). - Interakcja z użytkownikiem. Tę rolę spełnia zewnętrzna warstwa systemu, nazywana powłoką (shell), która umożliwia użytkownikowi uruchomienie aplikacji. W środowiskach graficznych do tej części systemu zalicza się również standardowe elementy interfejsu wykorzystywane przez aplikacje, np. standardowe okienka dialogowe, kontrolki itd. - Komunikacja z innymi maszynami. To jeden z najważniejszych elementów systemu. Dzięki modułom obsługującym sieć mamy dostęp zarówno do Internetu, jak i do dysków komputera stojącego na sąsiednim biurku lub do drukarki sieciowej.
Normy prawne dotyczące rozpowszechniania programów komputerowych. • Programy komputerowe powinny być wykorzystane na podstawie odpowiedniej licencji producenta (dokumentu upoważniającego posiadacza do korzystania z programu). Rozróżniamy następujące rodzaje licencji: • freeware, • shareware, • adware, • trial, • wersje demonstracyjne (demo), • cardware, • public domain, • wersje bez ograniczeń (OpenSource), • Powszechna Licencja Publiczna GNU (GNU General Public License), GNU GPL, odmiana licencji OpenSource, • BSD (Berkeley Software Distribution License, BSDL), odmianalicencji Open Source, • sitelicense (licencja dla całej instytucji, bez dystrybucji kopii poza instytucją), • licencja jednostanowiskowa, • licencja grupowa
Opis wybranych odmian licencji • Shareware - Angielskie słowo shareware oznacza oprogramowanie, którym można się dzielić. Program, który można otrzymać i rozpowszechniać za darmo, jednak trzeba uzyskać zgodę autora. Korzystanie z niego jest już jednak obwarowane pewnymi zasadami. Jeżeli po upływie okresu testowego (najczęściej 30-dniowego) użytkownik zdecyduje się zatrzymać program na dysku twardym, powinien potraktować to jako kupno produktu i zapłacić jego autorowi. Niekiedy pewne funkcje programów shareware są zablokowane i dopiero po rejestracji użytkownik otrzymuje hasło, które pozwala je uaktywnić. Shareware to oprogramowanie stosunkowo tanie (w porównaniu do cen programów komercyjnych w kraju autora), głównie dlatego, że nierzadko nad jego produkcje pracują pojedynczy ludzie. • Freeware - Programy, których można używać i rozpowszechniać za darmo. Nie wolno ich jednak sprzedawać, ani dokonywać w nich zmian, umieszczając wewnątrz na przykład własną reklamę. Może być objęte prawami autorskimi lub nie. Ang. darmowe oprogramowanie.
Adware - Oprogramowanie, za którego użytkowanie jego autor nie pobiera opłaty. Zamiast tego program wyświetla banery reklamowe. Wiele programów sprzedawanych na licencji shareware, które niegdyś po wygaśnięciu okresu testowego przestawały działać przekształcanych jest w produkty typu adware. Adware często zachowuje opcje kupienia programu i pozbycia się reklam, które pobierane z internetu obniżają szybkość połączenia, a także niejednokrotnie zaburzają działanie systemu operacyjnego. Na rozpowszechnianie programu (np. w internecie) należy uzyskać zgodę autora. Ang. oprogramowanie reklamowe. • Demo - Celowo zubożona przez autorów wersja programu, która jest udostępniana za darmo (np. poprzez internet). Taki zabieg marketingowy ma na celu wzbudzić zainteresowanie danym produktem - najczęściej grą komputerową. Istnieją trzy rodzaje oprogramowania demo: prezentacja pozwalająca jedynie oglądać przygotowane przez autorów możliwości programu lub komputera (np. w dziedzinie jakości grafiki, jaką może wyświetlać, czy szybkości animacji - tzw. rolling demo), wersja interaktywna pozbawiona pewnych funkcji w stosunku do pełnej wersji oprogramowania oraz wersja pełna, ale o ograniczonym czasie działania (zwykle 7, 30 lub 60 dni). Na rozpowszechnianie programu (np. w internecie) należy uzyskać zgodę autora.
Pelna wersja - Program komercyjny bez żadnych ograniczeń. Jego rozprowadzanie w innych mediach (np. w internecie) jest niezgodne z prawem. • Licencja jednostanowiskowa - Angielskie one-sitelicence, licencja uprawniająca użytkownika do zainstalowania nabytego oprogramowania tylko w jednym komputerze, obejmująca zakaz udostępniania takiego oprogramowania w sieci oraz na innych wolnostojących komputerach. Licencja jednostanowiskowa, jak każda, nie zabrania sporządzenia kopii zapasowej oprogramowania. • Licencja grupowa - Angielskie sitelicence, rodzaj licencji zezwalającej na użytkowanie oprogramowania w sieci lub w zestawie komputerów, np. w szkole lub w pracowni, określającej maksymalną liczbę stanowisk, na których wolno zainstalować objęte nią oprogramowanie. Odmianą licencji grupowej jest licencja sieciowa (network licence). • Licencja typu firmware - Angielskie firmware, licencja obejmująca oprogramowanie układowe, tzn. umieszczone na stale w sprzętowej części systemu komputerowego
Licencja GNU GPL (ang. General Public License), zasady licencyjne określone przez konsorcjum Free Software Foundation, zakazujące redystrybucji oprogramowania w formie czysto binarnej. Jeżeli ktoś wprowadza do obiegu oprogramowanie zawierające jakąkolwiek część podlegającą licencji GLP, to musi udostępnić wraz z każdą dystrybucją binarną jej postać źródłową. Odmiana licencji OpenSource. • Licencja typu Public Domain - angielskie public domainlicence, licencja dobroczynna czyniąca z oprogramowania własność ogółu, w myśl której autor lub autorzy oprogramowania zrzekają się praw do upowszechniania oprogramowania na rzecz ogółu użytkowników. • Licencja typu Linux - rozwiązanie licencyjne odnoszone do systemu Linux, którego jądro jest upowszechniane według praw licencji GPL. System Linux nie jest oprogramowaniem będącym własnością ogółu. Prawa autorskie do kodu Linux należą do różnych autorów kodu. Jednakże Linux jest oprogramowaniem w wolnym obiegu w tym sensie, że jego użytkownikom wolno go kopiować, zmieniać i stosować w dowolny sposób oraz rozdawać własne kopie bez ograniczeń. Spowodowane to jest zakazem prywatyzacji produktów pochodnych systemu Linux. Ograniczenia tej licencji wynikające z zasad licencji GPL nie zakazują tworzenia ani sprzedawania wyłącznie binarnych dystrybucji oprogramowania, jeżeli tylko każdy, kto otrzymuje kopie binarne, będzie miał szansę uzyskania również kodu źródłowego za rozsądną opłatą dystrybucyjną.