Wolne oprogramowanie - Foundations of Computing and...

57
W 1983r. Richard Stallman (wcześniej pracujący z AI Lab w MIT) ogłosił rozpoczęcie prac nad stworzeniem kompletnego, kompatybilnego z Uniksem systemu operacyjnego będącego wolnym oprogramowaniem, zwanego GNU (ang. Gnu’s Not Unix – Gnu to nie Unix). Pierwszą próbą zdefiniowania wolnego oprogramowania był Manifest GNU opublikowany przez Stallmana w 1985r. w celu pozyskania współpracowników i poparcia dla Projektu GNU. Wolne oprogramowanie

Transcript of Wolne oprogramowanie - Foundations of Computing and...

• W 1983r. Richard Stallman (wcześniej pracujący z AI Lab w MIT) ogłosił rozpoczęcie prac nad stworzeniem kompletnego, kompatybilnego z Uniksem systemu operacyjnego będącego wolnym oprogramowaniem, zwanego GNU (ang. Gnu’s Not Unix – Gnu to nie Unix).

• Pierwszą próbą zdefiniowania wolnego oprogramowania był Manifest GNU opublikowany przez Stallmana w 1985r. w celu pozyskania współpracowników i poparcia dla Projektu GNU.

Wolne oprogramowanie

http://www.fsf.org/

• W 1985 r. Stallman założył Free Software Foundation (fundację wolnego oprogramowania) – organizację non-profit skupiającą programistów tworzących wolne oprogramowanie i tworzącą prawne podstawy ruchu wolnego oprogramowania.

• Najważniejszym dziełem FSF jest GNU General Public Licence (Powszechna Licencja Publiczna GNU, w skrócie GPL) – ogólna licencja, którą każdy programista może zastosować do swojego dzieła, w celu nadania mu statusu wolnego oprogramowania i ochrony wolności jego użytkowników.

Wolne oprogramowanie

Oficjalna definicja wg FSF:

• „Wolne oprogramowanie” to kwestia wolności, nie ceny. By zrozumieć tę koncepcję, powinniśmy myśleć o „wolności słowa”, a nie „darmowym piwie”

• Wolne oprogramowanie odnosi się do prawa użytkowników do swobodnego uruchamiania, kopiowania, rozpowszechniania, analizowania, zmian i ulepszania programów.

Wolne oprogramowanie

Dokładniej, mówimy o czterech rodzajach wolności użytkowników programu:

• wolność uruchamiania programu, w dowolnym celu (wolność 0)

• wolność analizowania, jak program działa, i dostosowywania go do swoich potrzeb (wolność 1). Warunkiem koniecznym jest tu dostęp do kodu źródłowego

• wolność rozpowszechniania kopii, byście mogli pomóc sąsiadom (wolność 2)

• wolność udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność (wolność 3). Warunkiem koniecznym jest tu dostęp do kodu źródłowego

Wolne oprogramowanie

• Oprogramowanie nazywamy wolnym, jeśli wszyscy użytkownicy posiadają w pełni wszystkie te prawa.

• Zatem, powinniście mieć swobodę rozpowszechniania kopii programu, zmodyfikowanych bądź oryginalnych, za darmo bądź pobierając opłatę za dystrybucję, wszędzie i każdemu.

• Wolność robienia tego wszystkiego oznacza (między innymi), że nie musicie prosić o pozwolenie ani płacić za nie.

Wolne oprogramowanie

• Wolne oprogramowanie należy wyraźnie odróżnić od freeware.

• Samo udostępnianie za darmo oraz zezwolenie na redystrybucję programu nie wystarczają do nazwania danego programu wolnym.

Wolne oprogramowanie

• Licencje wolnego oprogramowania można podzielić ze względu na obecność klauzuli copyleft.

• Copyleft jako sparodiowanie słowa copyright (prawo autorskie); „lewo autorskie”

• Copyleft samo w sobie nie jest licencją. Jest tylko modelem opisującym pewien typ licencji

• Podstawowym przykładem zastosowania idei copyleft jest licencja GNU General Public License (GPL), stworzona przez Richarda Stallmana

Klauzula copyleft

• Zasady działania pojęcia copyleft wg Projektu GNU:

• „By poddać program działaniu copyleft, najpierw zastrzegamy copyright, prawa autorskie do niego.

• Następnie dokładamy warunki rozpowszechniania, będące prawnym środkiem, dzięki któremu dajemy każdemu prawo do używania, modyfikowania i rozpowszechniania kodu naszego programu lub dowolnego programu pochodnego, ale tylko wtedy gdy warunki rozpowszechniania pozostaną niezmienione.

• W ten sposób, kod i przekazane wolności stają się prawnie nierozdzielne.”

Klauzula copyleft

• Podstawowym przykładem zastosowania idei copyleft jest licencja GNU General Public License (GPL), stworzona przez Stallmana

• GPLv1, GPLv2, GPLv3 etc.

• Mity związane z GPL:

• oprogramowania na GPL nie można sprzedawać i trzeba je rozdawać za darmo

• każdy program stworzony przy użyciu oprogramowania na GPL również podlega tej licencji

GNU General Public License (GPL)

http://www.gnu.org/licenses/

• Mozilla Public License (MPL) oraz, oparta na niej, Common Development and Distribution License (CDDL).

• Obie licencje zostały uznane za licencje wolnego oprogramowania (przez FSF) oraz open source (przez OSI). Są niekompatybilne z GPL

• Najbardziej znanym programem na licencji MPL jest przeglądarka Mozilla, zaś na CDDL – system operacyjny OpenSolaris

Inne licencje z klauzulą copyleft

• Licencje na wolne oprogramowanie bez klauzuli copyleft nazywane są zezwalającymi (ang. permissive) lub licencjami akademickimi.

• Przykłady:

• BSD (ang. Berkeley Software Distribution, czasami nazywany Berkeley Unix) – odmiana systemu operacyjnego Unix wywodząca się ze stworzonych na Uniwersytecie Kalifornijskim Berkeley rozszerzeń dla systemu rozwijanego przez firmę AT&T. Także potoczna nazwa licencji BSD, na której te systemy są wydawane oraz pokrewnych licencji tego typu (np. licencja MIT).

Licencje bez klauzuli copyleft

• Licencje BSD zezwalają m.in. na użytkowanie i redystrybucję oprogramowania, z modyfikacjami lub bez, w formie kodu źródłowego lub binarnego.

• Konsekwencją tych liberalnych warunków licencji jest zezwolenie na włączanie oprogramowania nią objętego do produktów na innych licencjach, zarówno otwartych, jak i zamkniętych.

• Kod na takich licencjach można bez problemu włączyć do swoich produktów bez ujawniania ich kodu źródłowego.

Licencje BSD

• W środowisku wolnego oprogramowania także istnieją rozbieżności w poglądach na ilość praw udzielanych użytkownikowi.

• Konflikt pomiędzy zwolennikami licencji GPL i licencji akademickich (głównie BSD):

• „GPL gwarantuje wolność od zamkniętego oprogramowania, a BSD daje wolność do tworzenia zamkniętego oprogramowania”

Copyleft kontra licencje akademickie

• Pokrewnym pojęciem do wolnego oprogramowania jest otwarte oprogramowanie (open source, oprogramowanie o otwartym kodzie źródłowym).

• Określenie to zostało sformułowane w 1998 r. jako nowa nazwa dla wolnego oprogramowania:

• nie powodowała niejednoznaczności i nie kojarzyła się tylko z darmowym oprogramowaniem,

• była bardziej przyjazna dla ludzi biznesu.

Otwarte oprogramowanie

• Open Source Initiative definiuje otwarte oprogramowanie

• Open source nie oznacza tylko dostępu do kodu źródłowego.

• Warunki dystrybucji oprogramowania open source muszą być zgodne z dziesięcioma kryteriami:

Otwarte oprogramowanie

http://www.opensource.org/docs/osd

1. Swoboda redystrybucji

Licencja nie może ograniczać swobody którejkolwiek ze stron do sprzedawania lub rozdawania oprogramowania jako elementu szerszej dystrybucji zawierającej programy z różnych źródeł.

2. Kod źródłowy

Do programu musi być dołączony kod źródłowy, a licencja musi zezwalać na dystrybucję zarówno w postaci kodu źródłowego, jak i skompilowanej.

3. Dzieła pochodne

Licencja musi zezwalać na dokonywanie zmian oraz tworzenie dzieł pochodnych. Musi również umożliwiać dystrybucję takich dzieł na tych samych warunkach, jakie opisuje licencja oryginalnego oprogramowania.

Otwarte oprogramowanie

4. Spójność kodu źródłowego autora

Licencja może ograniczać dystrybucję kodu źródłowego w zmodyfikowanej postaci tylko wtedy, jeśli dozwolona jest przy tym dystrybucja «poprawek» (ang. patch) wraz z kodem źródłowym, za pomocą których program jest potem modyfikowany w trakcie kompilacji. Licencja musi jawnie zezwalać na dystrybucję oprogramowania skompilowanego ze zmodyfikowanego kodu źródłowego. Licencja może wymagać, aby dzieła pochodne nosiły inną nazwę lub numer wersji niż oprogramowanie oryginalne.

5. Niedozwolona dyskryminacja osób i grup

6. Niedozwolona dyskryminacja obszarów zastosowańLicencja nie może zabraniać wykorzystywania programu w jakimś konkretnym obszarze zastosowań. Na przykład, nie może zabraniać wykorzystania programu w sposób komercyjny lub używania go do badań genetycznych.

Otwarte oprogramowanie

7. Dystrybucja licencji

Określenie praw dołączone do programu musi obowiązywać wszystkich, którzy otrzymują oprogramowanie bez konieczności przestrzegania przez te osoby dodatkowych licencji.

8. Licencja nie może obejmować konkretnego produktu

Określenie praw dołączone do programu nie może zależeć od tego, że dany program stanowi część określonej dystrybucji oprogramowania. Jeśli program został pobrany z takiej dystrybucji i wykorzystywany lub rozprowadzany zgodnie z warunkami licencji, wszystkie osoby do których program trafia powinny posiadać te same prawa, które określone są dla oryginalnej dystrybucji oprogramowania.

Otwarte oprogramowanie

9. Licencja nie może ograniczać stosowania innego oprogramowania

Licencja nie może nakładać ograniczeń na inne oprogramowanie rozprowadzane wraz z oprogramowaniem objętym licencją. Na przykład, nie może wymagać aby wszystkie inne programy rozprowadzane na tym samym nośniku były programami open source.

10. Licencja musi być neutralna technologicznie

Żaden punkt licencji nie może narzucać konkretnej technologii lub stylu interfejsu.

Otwarte oprogramowanie

• Obie definicje w dużej mierze się pokrywają, choć definicja OSI jest znacznie bardziej sformalizowana.

• Obie definicje wyraźnie zezwalają na pobieranie opłat za dystrybucję oprogramowania i jednocześnie wymagają aby w ten sposób pozyskany program można było bezpłatnie redystrybuować.

• Obie definicje żądają dostarczenia kodu źródłowego programu oraz zezwolenia na jego modyfikację i dystrybucję zmodyfikowanych wersji.

• FSF i OSI publikują na swoich stronach listy licencji zgodnych z ich definicjami.

Wolne czy otwarte?

• Wg Stallmana oba terminy opisują niemal tę samą kategorię oprogramowania, ale oznaczają poglądy oparte na fundamentalnie odmiennych wartościach. Dla niego open source to metodologia tworzenia oprogramowania, a wolne oprogramowanie to ruch społeczny.

• R. Ghosh (członek zarządu OSI) zaproponował Free/Libre Open-Source Software (w skrócie FLOSS, ew. FOSS) jako neutralne pojęcie, bez przechylania się na którąkolwiek ze stron, ale popularność tego terminu jest niska.

Wolne czy otwarte?

• Właściciel praw autorskich może licencjonować swoje dzieła wielokrotnie i na odmiennych warunkach.

• Firmy sprzedające oprogramowanie własnościowe często stosują kilka typów licencji jednocześnie – np. licencje dla użytkowników indywidualnych, dla użytkowników grupowych, oraz dla instytucji akademickich.

• Niektóre firmy wydają produkty na licencji typu copyleft, oraz komercyjnej (np. z dodatkową funkcjonalnością, wsparciem technicznym etc) np.baza danych MySQL

Podwójne licencjonowanie

• Wolne oprogramowanie wywarło też istotny wpływ na inne dziedziny.

• Licencje wolnej dokumentacji utorowały drogę organizacji Creative Commons, która zasady wolnego oprogramowania przeniosła na grunt kultury.

• Dzięki nim, twórcy utworów muzycznych, graficznych, audiowizualnych, literackich i innych, mogą w wielu przypadkach swobodnie korzystać z dorobku innych twórców, a konsumenci kultury mogą się nią swobodnie dzielić.

Creative Commons

Jeśli ty masz jabłko i ja mam jabłko i wymienimy się tymi jabłkami, to wtedy ty i ja wciąż będziemy mieli po 1 jabłku. Ale jeśli ty masz pomysł i ja mam pomysł i wymienimy się tymi pomysłami, to wtedy oboje będziemy mieli 2 pomysły.

George Bernard Shaw

• Przemysław Kulczycki „Analiza porównawcza modeli licencjonowania oprogramowania”Praca na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych

samych warunkach 3.0 Unportedhttp://jakilinux.org/felietony/analiza-porownawcza-modeli-licencjonowania-oprogramowania-wstep/

• http://www.fsf.org/

• http://www.opensource.org/docs/osd

Literatura

Sieci komputeroweNarzędzia Informatyki

2016.11.28

Rozwój sieci• Terminale komputerów mainframe

• Sieci wewnętrzne firm

• współdzielenie zasobów

• współdzielenie informacji

• ARPANET

• INTERNET

• Dostęp do sieci z domu

• Sieci domowe

• „Wszystko jest w sieci”

Typy sieciOdległość między jednostkami Jednostki zlokalizowane w: Przykład

1 m metr kwadratowy sieć osobista PAN

10 m pokójsieć lokalna

LAN100 m budynek

1 km kampus

10 km miasto sieć metropolitalna MAN

100 km krajWAN

1000 km kontynent

10000 km planeta Internet

PAN• bardzo ograniczony zasięg

• np. do łączenia peryferiów

• bluetooth, RFID lub podobne

LAN

• sieć prywatna lub firmowa

• łączy komputery i umożliwia współdzielenie zasobów

• może być przewodowa lub bezprzewodowa

• architektura Klient-Serwer lub Peer-2-Peer

• prędkość transmisji rzędu 10, 100 lub 1000 Mbps dla sieci przewodowych

LAN

MAN• Pokrywa miasto

• sieć akademicka w Poznaniu

• sieci oparte na telewizji kablowej

WAN• Pokrywają duży obszar, np. kraj, kontynent

• Często obecnie widziane z logicznego punktu widzenia, a będące podzbiorem Internetu

Historia Internetu

• Pod koniec lat 50-tych Departament Obrony USA (DoD) zażyczył sobie sieci komunikacyjnej mogącej przetrwać atak jądrowy

• Dotychczas wykorzystywana była zwykła sieć telefoniczna

• W roku 1960 kontrakt zdobyła firma RAND Corporation

Sieć telefoniczna• Uszkodzenie kilku kluczowych węzów

prowadzi do rozkładu sieci

• Propozycja Paula Baran’a z firmy RAND

Historia Internetu

• Ponieważ linie komunikacyjne były za długie dla sygnałów analogowych Baran zaproponował przesyłanie przełączanych pakietów cyfrowych

• AT&T zostało poproszone o zbudowanie prototypu i stwierdziło, że jest on awykonalny

ARPA

• Advanced Research Project Agency

• Powstała po 1957 r. w odpowiedzi na przegrany wyście kosmiczny - Sputnik

• mała agencja udzielająca grantów i kontraktów uniwesytom i firmom

• W roku 1967 Larry Roberts z ARPA zaczął pracować nad projektem niezawodnej sieci komputerowej

ARPA• Na konferencji w 1967 r. Roberts

zaprezentował pracę opartą na pomyśle Wesley’a Clark’a

• Na tej samej konferencji występował Donald Davies z National Physical Laboratory w Anglii

• Przedstawił system łączący kilka komputerów NPL w sieć opartą na pracach Baran’a

ARPANET

• Zapadła decyzja o budowie prototypu sieci

• Każdy komputer miał być podłączony lokalnie do IMP (Interface Message Protocol) - minikomputera

• Każdy IMP był połączony z co najmniej dwoma innymi łączem 56 kbps

• W grudniu 1968 r. firma BBN wygrała przetarg na budowę sieci

ARPANET• Sieć zaczęłą działać w grudniu 1969 r.

• Wybrano na początek 4 węzły:

• UCLA - University of California, Los Angeles

• UCSB - University of California, Santa Barbara

• SRI - Stanford Research Institute

• UTAH - University of Utah

Rozwój ARPANET

XII 1969VII 1970III 1971IV 1972IX 1972

TCP/IP• Problemem w sieci ARPANET była

komunikacja między różnymi systemami

• W 1974 r. Cerf i Kahn opracowali model i protokół TCP/IP

• ARPA przyznała granty na implementację TCP/IP dla różnych systemów

• Naukowcy w University of California, Berkeley opracowali interfejs oparty na socketach i zaimplementowali w wersji 4.2BSD Unix

ARPANET• W 1973 r. podłączono pierwsze ośrodki

poza USA - Norwegia i Anglia

• W 1975 r. ARPANET zyskał status operacyjny i został wyjęty spod kontroli ARPA

• W 1983 r. wydzielono MILNET

• 28 lutego 1990 r. został oficjalnie zamknięty

• W 1971 wysłano pierwszy e-mail

• W 1973 przesłano pierwszy plik FTP

NSFNET

• ARPANET był dostępny tylko dla instytucji realizujących projekty DoD

• U.S. National Science Foundation podjęła decyzję o budowie sieci do celów naukowych CSNET w 1981 r.

• Od początku sieć była oparta na TCP/IP

• Nie była dostępna dla instytucji komercyjnych

NSFNET• NSFNET zaczynał od łączy szkieletowych 56

kbps

• szybko zostały wymieniona na 448 kbps

• w 1990 r. - 1.5 Mbps

• NFS utworzył organizację non-profit Advanced Networks and Services - ANS

• w 1990 r. ANS przejął NSFNET i utworzył ANSNET z łączami 45 Mbps - dostęp komercyjny

• 5 lat później wykupiony przez America Online

Europa

• Delivery of Advanced Network Technology to Europe (DANTE)

• organizacja non-profit zarządzająca łączami szkieletowymi między europejskimi centrami obliczeniowymi

• EBONE 1992-2002

Polska

• Naukowa i Akademicka Sieć Komputerowa

• Powstał w 1991 r.

• Pierwsze połączenie IP w 1991 r. między Instytutem Fizyki UW a Centrum Komputerowym w Uniwerystetu w Kopenchadze

• Zarządza obecnie DNS i prowadzi działalność komercyjną

Nośnik fizyczny

• skrętka

• przewód koncentryczny

• światłowód

• radio

Sieć telefoniczna

• publiczna przełączana sieć telefonicznaPSTN

• każdy z każdym

• jedna centrala

• hierarchia wielopoziomowa

Sieć telefoniczna

• Przewidziana do przesyłania sygnału o częstotliwości max 3100 Hz

• Modem, maksymalna prędkość 56 kbps, pomiędzy dwoma modemami 33.6 kbps

Sieć telefoniczna

• xDSL - Digital Subscriber Line

• z linii usunięte są filtry

• max częstotliowść linii 1 MHz

• ADSL2+ - 2.2 MHz - 24 Mbps

Sieć telefoniczna

• Ważna jest odległość od centrali

Przełączanie• Przełączanie obwodów - klasyczna sieć

telefoniczna

• Przełączanie pakietów - sieci cyfrowe

Telewizja kablowa

• Początki w latach 40-tych XX w.

Telewizja kablowa

• Modemy - standard DOCSIS

• Data Over Cable Service Interface Spe- cification

CTV a ADSL

• W kablówce pasmo jest dzielone między użytkowników

• w ADSL każdy użytkownik dysponuje swoim pasmem

• Kablówka działa podobnie jak sieć komórkowa

Ethernet

• karty sieciowe łączone skrętką CAT 5

• HUB

• Switch