Otwarte oprogramowanie zaczerpnij ze źródła. Maciej Golik, ACK Cyfronet AGH Uniwersytet Otwarty AGH,
|
|
- Bronisława Cybulska
- 9 lat temu
- Przeglądów:
Transkrypt
1 Otwarte oprogramowanie zaczerpnij ze źródła Maciej Golik, ACK Cyfronet AGH Uniwersytet Otwarty AGH,
2 Agenda i wstęp 2
3 Agenda Sprzęt, oprogramowanie i źródła Licencjonowanie oprogramowania Krótka historia otwartego oprogramowania Otwarte oprogramowanie a biznes Popularne otwarte oprogramowanie Otwarte protokoły Cyfronet Otwarte Podsumowanie 3
4 Wyjaśnienie tytułu Otwarte oprogramowanie zaczerpnij ze źródła Programy komputerowe (system, przeglądarka, odtwarzacz) Dostępne dla każdego (otwarte, wolne) Źródło przepis na program Wykorzystaj (zmieniaj, ufaj) Wykład o otwartym oprogramowaniu, jego wykorzystaniu na świecie oraz o tym, co każdy z nas może z niego zaczerpnąć. 4
5 Sprzęt, oprogramowanie i źródła 5
6 Sprzęt a oprogramowanie sprzęt oprogramowanie 6
7 Rodzaje oprogramowania Firmware oprogramowanie wbudowane w sprzęt BIOS firmware płyty głównej Sterownik oprogramowanie komunikujące się ze sprzętem System operacyjny program, który pozwala uruchamiać inne programy Aplikacja: Tekstowa (konsolowa): działa w trybie tekstowym użytkownik komunikuje się z aplikacją poprzez wpisywanie komend i obserwowanie wyników, np. maciek@komputer ~ % date pon, 26 sty 2015, 19:32:11 CET Graficzna (okienkowa): działa w trybie graficznym, najczęściej wyświetlana w okienku, np. Firefox 7
8 Program komputerowy Program (komputerowy) jest to zestaw instrukcji, które są wykonywane przez sprzęt, w większości procesor. Instrukcje dla procesora są napisane w kodzie binarnym. Kod binarny zawiera instrukcje procesora oraz tekst. Kod binarny jest reprezentowany przy użyciu dwójkowego systemu liczbowego, czyli ciągów 0 i 1. Kod binarny jest tworzony poprzez kompilację (tłumaczenie) z języka programowania, który jest zrozumiały dla człowieka. Pierwotny kod, napisany przez człowieka, nazywa się źródłem programu lub zwyczajnie źródłem. Istnieje wiele języków programowania różnią się poziomem trudności nauki, szybkością działania, itp. 8
9 Współdziałanie sprzętu i oprogramowania Firmware udostępnia interfejsy dla systemu operacyjnego. System operacyjny komunikuje się ze sprzętem przy użyciu sterowników. System operacyjny udostępnia aplikacjom środowisko i interfejsy. Aplikacje udostępniają interfejs dla użytkownika. 9
10 Źródła programu #include <stdio.h> int main() { printf("hello World!"); return 0; } Źródło (język C).file "hello.c".intel_syntax noprefix.section.rodata.lc0: assembler.string "Hello World!".text.globl main.type main: push ebp mov ebp, esp and esp, -16 sub esp, 16 mov eax, OFFSET FLAT:.LC0 mov DWORD PTR [esp], eax call printf mov eax, 0 leave ret.size main,.-main.ident "GCC: (Gentoo p1.0, pie-0.4.7) 4.5.4".section.note.GNU-stack,"",@progbits # readelf -a hello.o ELF Header: Magic: 7f 45 4c Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: REL (Relocatable file) Machine: Intel Version: 0x1 Entry point address: 0x0 Start of program headers: 0 (bytes into file) Start of section headers: 224 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 0 (bytes) Number of program headers: 0 Size of section headers: 40 (bytes) Number of section headers: 11 Section header string table index: 8 Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL [ 1].text PROGBITS 34 1d AX [ 2].rel.text REL [ 3].data PROGBITS 54 WA [ 4].bss NOBITS 54 WA [ 5].rodata PROGBITS 54 0d A [ 6].comment PROGBITS 61 2b 01 MS [ 7].note.GNU-stack PROGBITS 8c [ 8].shstrtab STRTAB 8c [ 9].symtab SYMTAB 0298 a [10].strtab STRTAB Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings) I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown) O (extra OS processing required) o (OS specific), p (processor specific) There are no section groups in this file. There are no program headers in this file. Relocation section '.rel.text' at offset 0x350 contains 2 entries: Offset Info Type Sym.Value Sym. Name 0a 0501 R_386_32.rodata R_386_PC32 printf There are no unwind sections in this file. Symbol table '.symtab' contains 10 entries: Num: Value Size Type Bind Vis Ndx Name 0: 0 NOTYPE LOCAL DEFAULT UND 1: 0 FILE LOCAL DEFAULT ABS hello.c 2: 0 SECTION LOCAL DEFAULT 1 3: 0 SECTION LOCAL DEFAULT 3 4: 0 SECTION LOCAL DEFAULT 4 5: 0 SECTION LOCAL DEFAULT 5 6: 0 SECTION LOCAL DEFAULT 7 7: 0 SECTION LOCAL DEFAULT 6 8: 29 FUNC GLOBAL DEFAULT 1 main 9: 0 NOTYPE GLOBAL DEFAULT UND printf No version information found in this file. plik binarny (obiekt) 10
11 Kod binarny (...) a0 05b0 05c0 05d0 05e0 05f (...) b fe 4c f3 01 1c 49 dc a 57 4c 4c ff e c3 fe ff ff 7a 7a 0e d 29 ff ea ff ff ff e5 48 4c eb 5f ff ff ff ff a c c a4 0c 01 1c 01 1c 0e 5d db ed f6 ea b c ec 6c a c1 1e e 08 6c 3b f 0f fd 0f ff c4 0f 48 6f 30 5c 6c 14 1b b 98 0b 1c 1f f f f fe ff 0c fe 0c fd d ff 5b 84 c4 57 ff ff 07 ff 07 ff d d 08 6f ff ff 08 ff 08 ff a8 ec dc 41 c c c4 90 2a c 6c f d5 20 e a 41 5d c3 5d b...].f... AWA..AVI..AUI..A TL.%...UH.-... SL).1.H...H...]...H..t... L..L..D..A...H...H9.u.H...[]A\A] A^A_.ff......H...H......Hello World!...; \...L... I...l zR..x......* zR..x... *3$"...D... 11
12 Demo ba, `"8b `8b 8P.a8P Y"' 8 aaaaa """"" 8 b d 8b d8 `8b d8' `8b d8' `8b d8' `8b d8' `8' `8',adba, d8"' `"8b d8' `8b Y8,,8P Y8a..a8P `"YY"' 12
13 Licencjonowanie oprogramowania 13
14 Dystrybucja programów i źródeł Programy komputerowe są dystrybuowane wraz z licencją, Licencja określa zasady użytkowania danego programu, Programy mogą być dystrybuowane w postaci: Binarnej użytkownik otrzymuje gotowy plik *.exe, który następnie uruchamia, Źródłowej użytkownik otrzymuje zestaw plików źródłowych, z których przy pomocy kompilatora tworzy plik binarny Większość programów jest dystrybuowana w postaci binarnej, część z nich posiada również wersję źródłową, rzadko program dystrybuowany jest w postaci wyłącznie źródłowej. 14
15 Licencje programów komputerowych Inne licencje: Demo / Trial Shareware Freeware Adware Donationware Freemium (free to play) Abandonware 15
16 Wolne a otwarte oprogramowanie wolne otwarte własnościowe dobro publiczne Wolne (od wolności) free as in freedom, libre Otwarte - free as in beer, Dobro publiczne, przyzwalające Copyleft Copyright 16
17 Najpopularniejsze otwarte licencje GPLv2 wolna licencja, Copyleft, licencja wirusowa, najbardziej popularna licencja otwarto-źródłowa, używana przez największe otwarte projekty, GPLv3 GLPv2 wraz z zabezpieczeniem przed tiwoizacją (praktyka używania oprogramowania licencjonowanego na zasadach copyleft w połączeniu ze sprzętem, który nie pozwala użytkownikowi na uruchomienie zmodyfikowanej wersji tego oprogramowania), MIT, BSD 2.0 (nowa, 3 klauzulowa) licencje liberalne, pozwalają na wszystko, nie są wirusowe, Apache, BSD (stara) licencje liberalne wraz z klauzulą rozgłoszeniową. 17
18 Najpopularniejsze otwarte licencje wykres GPLv2: 25%; MIT: 19%; Apache: 16%; GPLv3: 10%; BSD 3,5%; LGPLv2+3: 7,3% 18
19 Inne licencje Dobro publiczne brak wymagań lub obostrzeń, dowolne wykorzystanie, WTFPL (Do What the F*** You Want to Public License) równoważna z oddaniem jako dobro publiczne, Creative Commons Uznanie Autorstwa (ang. Attribution (BY)) Użycie Niekomercyjne (ang. Noncommercial (NC)) Bez Utworów Zależnych (ang. No Derivative Works (ND)) Na Tych Samych Warunkach (ang. Share Alike (SA)) Minimum: CC-BY, istnieje także C0 jak domena publiczna 19
20 Co warto wiedzieć o licencjach Free to play, freemium stosowane w sklepach dla telefonów (Apple istore, Google Play) Demo z możliwością odblokowania reszty zawartości, Zawiera reklamy wymaga połączenia z internetem, Zawiera mikro płatności. EULA (od ang. End-user license agreement) umowa lub wzorzec umowy pomiędzy licencjodawcą (producentem lub dystrybutorem oprogramowania) a tzw. użytkownikiem końcowym, określająca warunki udzielenia licencji na korzystanie z oprogramowania. Umowy w sklepach elektronicznych (na gry, programy) są często umowami na korzystanie/wynajem oprogramowania, a nie na samo oprogramowanie. 20
21 Demo ba, `"8b `8b 8P.a8P Y"' 8 aaaaa """"" 8 b d 8b d8 `8b d8' `8b d8' `8b d8' `8b d8' `8' `8',adba, d8"' `"8b d8' `8b Y8,,8P Y8a..a8P `"YY"' 21
22 Krótka historia otwartego oprogramowania 22
23 Początki ruchu wolnego oprogramowania Richard Matthew Stallman Powszechnie znany jako: rms W 1983 zapoczątkował ruch wolnego oprogramowania, tworząc projekt GNU W 1985 utworzył Free Software Foundation, która zajmuje się promowaniem (i tworzeniem) wolnego oprogramowania oraz opieką nad projektem GNU 23
24 Projekt GNU Miał (ma) na celu utworzenie w pełni otwartego i wolnego systemu operacyjnego oraz towarzyszącego oprogramowania, Projekt powstał w czasach świetności systemu Unix, i powstawał jako otwarta alternatywa oparta o podobne zasady co pierwowzór, rekurencyjny akronim GNU jest rozwijany jako GNU's not Unix, 2 główne cele: Promowanie wolnego oprogramowania, prace nad licencją GPL Tworzenie i opieka nad wolnym oprogramowaniem: gcc, Bash, GntuTLS, glibc, coreutils, tar, GRUB, hurd* 24
25 Linus Torvalds Urodzony w Finlandii, żyje w USA Twórca jądra Linux Twórca systemu kontroli wersji git Obecny opiekun jądra Linux, zatrudniony w Linux Foundation Za swój wkład w otwarte oprogramowanie otrzymał wiele prestiżowych nagród 25
26 Początki Linuxa pierwsza publiczna informacja Hello everybody out there using minix I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(. Linus Torvalds 26
27 Czym jest Linux? Linux jest jądrem (kernel) systemu operacyjnego, Najczęściej odnosi się do całego systemu operacyjnego, poprawnie zwanego dystrybucją Linuxa (czasem GNU/Linux), Swoją popularność zawdzięcza użyciu licencji GPLv2, Obecnie jest największym i najpopularniejszym projektem o otwartych źródłach na świecie: 17 milionów linii kodu, 50 osób, 5 firm Dystrybucja Linuxa odpowiada systemowi Windows, Popularne dystrybucje to: Debian, Ubuntu, Linux Mint, RHEL, Fedora, OpenSUSE. 27
28 Otwarte oprogramowanie a biznes 28
29 Red Hat Firma zajmuje się tworzeniem i sprzedażą otwartego oprogramowania, Firma jest największym korporacyjnym sponsorem jądra Linux, Jej głównym produktem jest dystrybucja Linuxa RHEL, Firma posiada wiele innych produktów, z których większość jest otwarta, m.in.: narzędzia dla programistów, systemy plików i wiele innych, W roku 2011 firma Red Hat dołączyła do elitarnej grupy firm z miliardowym dochodem (osiągając dochód 1,13 miliarda dolarów). 29
30 Red Hat sposoby zarobku Firma jest sponsorem 3 dystrybucji: RHEL, Fedora, CentOS każda z nich jest kierowana do innego grona odbiorców, Firma zarabia przed wszystkim na sprzedaży usług, szkoleń oraz wsparcia technicznego, Źródła wszystkich programów są otwarte, Pliki binarne RHEL są dostępne tylko na 30 dni, potem należy uiścić opłatę, loga produktów są znakami zastrzeżonymi, Firma jest nastawiona na zarobki z innych firm, do użytkowników indywidualnych kierowana jest dystrybucja CentOS w pełni darmowa, Zadowoleni użytkownicy po zapoznaniu się z CentOS-em chętnie namawiają pracodawców na płatny RHEL. 30
31 Canonical i Ubuntu Canonical jest firmą założoną przez milionera o nazwisku Mark Shuttleworth, który zasłynął z turystycznej podróży w kosmos, Głównym produktem jest Ubuntu dystrybucja Linuxa skierowana na komputery osobiste, Jest to obecnie najpopularniejsza dystrybucja na PC, w pełni darmowa i przystosowana dla przeciętnego użytkownika, Firma zarabia na współpracy z innymi firmami, a obecnie skupia się na bardzo prężnie rozwijającej się gałęzi rynku komputerowego urządzeniach mobilnych. 31
32 Możliwe modele biznesowe Sprzedaż plików binarnych, Open Core otwarta baza wraz z płatnymi funkcjami np. upraszczające użytkowanie oprogramowania, Przedłużone wsparcie, Opłaty za wprowadzenie funkcjonalności, Opłaty za miejsce w fundacji, Dotacje, Licencje podwójne darmowe do użytku niekomercyjnego oraz płatne dla użytku komercyjnego......lub sprzedaż usług oraz udostępnianie kodu na licencji GPL lub bez GPL za odpowiednią opłatą, Sprzedaż urządzeń. 32
33 Popularne otwarte oprogramowanie 33
34 Linux Linux na komputerach ma tylko 1% udziału, Windows ponad 90%, Linux na serwerach ma 58-78% udziału (wg Security Space, 2012) W rankingu TOP5 najwydajniejszych superkomputerów na świecie: 97% 34
35 Firefox/Chrome Dwie najbardziej popularne przeglądarki internetowe, Firefox tworzony przez fundację Mozilla zawdzięczamy jej Internet taki, jaki dzisiaj znamy, wcześniej opanowany i tworzony wyłącznie pod zamkniętą przeglądarkę firmy Microsoft Internet Explorer. Chrome jest zamkniętą, ale bezpłatną, ulepszoną wersją w pełni otwartej przeglądarki Chromium (model Open Core). 35
36 OpenOffice/LibreOffice Otwarta alternatywa dla Microsoft Office, Nie oferuje tak wiele zaawansowanych funkcji jak MS Office, ale nadal zapewnia bardzo duży zestaw funkcjonalności, który powinien wystarczyć dla większości użytkowników, Jednym z wielkich sukcesów projektu jest wdrożenie go w całej administracji miejskiej w mieście Munich, które teraz dołączyło do fundacji Document Foundation w celu ulepszania tego oprogramowania. 36
37 Android Najpopularniejszy mobilny system operacyjny na świecie, rocznie sprzedawanych jest miliard urządzeń z Androidem, stanowi to 84.37% sprzedanych urządzeń, Bazuje na jądrze Linux! Nie jest jednak dystrybucją Linuxa ponieważ nie pozwala uruchamiać programów, które normalnie działają np. na Ubuntu lub RHEL, Android dzieli się na 2 części: w pełni otwartą AOSP oraz wersja z dodatkowymi usługami i programami. 37
38 WordPress Najpopularniejsza na świecie platforma blogowa, Pozwala prowadzić zaawansowaną stronę internetową bez umiejętności programowania, Może służyć do prowadzenia bloga, CMS lub też sklepu internetowego, Można go zainstalować samodzielnie pobierając za darmo ze strony wordpress.org lub wykupić płatne wsparcie (gotową zainstalowaną wersję) na wordpress.com. 38
39 Otwarte protokoły 39
40 Co to jest protokół? Protokół: opis formatu wiadomości i sposobu ich wymiany 40
41 Otwarte protokoły Ethernet TCP/IP DNS HTTP SSL/TLS INTERNET sieć lokalna sieć globalna nazwa adres strony internetowe szyfrowanie 41
42 Otwarta kryptografia Algorytmy: AES (symetryczny), RSA (asymetryczny), SHA (funkcja skrótu), Biblioteki: OpenSSL, GNUTls Protokoły: SSL, TLS Wszystkie te powyższe technologie są w pełni otwarte, opisane i dostępne publiczne. Otwarta kryptografia jest w pełni bezpieczna znajomość i dostępność kodów i opisów nie osłabia, a wzmacnia jakość tych rozwiązań, poprzez wystawienie ich na widok i testy przez wiele osób i organizacji. Powszechne stosowanie tych technologii potwierdza tylko ich jakość, skuteczność i bezpieczeństwo. 42
43 Potrzeba otwartych protokołów komunikatory Łukasz: Marek: Łukasz: Skype Marek: GaduGadu Onet.pl wp.pl Możemy wysyłać wiadomości komu chcemy, bez względu na to, z jakiej poczty korzysta. Jeżeli Łukasz i Marek chcą porozmawiać, muszą się zdecydować na jeden komunikator, ponieważ każda firma ma swój własny protokół. 43
44 Cyfronet Oraz otwarte oprogramowanie 44
45 45
46 ACK Cyfronet AGH Akademickie Centrum Komputerowe Cyfronet Akademii Górniczo-Hutniczej, Pierwsze Polskie centrum superkomputerowe, ustanowione w roku 1973, Zapewnia darmowy dostęp do mocy komputerowej dla naukowców z Polski, Obsługuje sieć dla wszystkich uniwersytetów w Krakowie, urzędu miasta i szkół, Jest siedzibą najpotężniejszego klastra w Polsce Zeusa, a wkrótce (już w poniedziałek!) jego następcy Prometeusza. 46
47 Klaster Zeus Zeus jest superkomputerem o architekturze klastra jest zbudowany z wielu małych komputerów połączonych w jeden duży za pomocą superszybkiej sieci, Najpotężniejsze superkomputery na świecie konkurują ze sobą na liście TOP5, Najlepszym miejscem zajętym przez Zeusa było miejsce
48 Statystyki z Zeusa Parametr Wartość Porównanie 360 Tflops 6 PB 10 0 x moc PC 90 lat wideo FullHD (bez kodowania) Pojemność taśm 3.5 PB 20 lat muzyki mp3 Wytworzone ciepło 6kW 3 kuchenek 13M kwh/rok 20 domów Moc obliczeniowa Pojemność dysków Zużywany prąd 50
49 PROMETHEUS 51
50 A jak to się ma do otwartego oprogramowania? Ta ogromna moc obliczeniowa jest obsługiwana niemal wyłącznie przez otwarte oprogramowanie i z użyciem otwartych protokołów, Najważniejszym użytym oprogramowaniem jest oczywiście Linux (tak samo, jak w przypadku większości superkomputerów na liście TOP5) dystrybucja Scientific Linux utworzona we współpracy Cern I FermiLab dla środowisk naukowych, bazująca na źródłach udostępnianych przez Red Hat dla dystrybucji RHEL, Dodatkowo, duża liczba narzędzi do kontroli zadań na klastrze, monitorowania, komunikacji z użytkownikami, zarządzania infrastrukturą, sieciami i wiele innych. 52
51 Otwarte... You may add additional text here... 53
52 Otwarty sprzęt - schematy Marcin Jakubowski: Otwarte źródło projektów dla cywilizacji Prezentacja z konferencji TED2011 Dzięki wiki i cyfrowym narzędziom, TED Fellow Marcin Jakubowski tworzy bazę projektów open source, na podstawie których każdy, całkiem od zera, będzie w stanie zbudować 50 maszyn rolniczych, takich jak ciągnik czy kombajn. A to tylko pierwszy krok w tworzeniu zestawu instrukcji do wybudowania samowystarczalnego miasteczka. (koszt początkowy: 10 tys dolarów) 54
53 Otwarty sprzęt druk 3D Agencja NASA dostarczyła właśnie na oddaloną od Ziemi o ponad 4 kilometrów Międzynarodową Stację Kosmiczną (ISS) nowy klucz nasadowy. Nie byłoby w tym może nic dziwnego, gdyby nie fakt, że transport odbył się drogą mailową. 55
54 Otwarta nauka 56
55 RaspberryPi Na początku: mini komputer w cenie 35 dolarów, Obecnie: otwarta społeczność, wiele wspólnych projektów, otwarte sterowniki, otwarte oprogramowanie, Wsparcie dla i przez społeczność. Wraz z Arduino są najpopularniejszymi projektami tego typu. 57
56 Otwarte... Grafika, Filmy, Muzyka,... 58
57 Podsumowanie You may add additional text here... 59
58 Podsumowanie Bezpłatność jest najmniejszą zaletą otwartego oprogramowania (właściwie to efektem ubocznym) najważniejszą jest wolność/otwartość, Idea otwartości wcale nie jest nowa przepisy kuchenne, Warto wybierać i promować otwarte oprogramowanie to pomaga nam wszystkim, Jednak nie oznacza to, że otwarte oprogramowanie jest panaceum na wszystko zawsze należy wybrać odpowiednie narzędzie. 60
59 Pytania? Prezentacja dostępna pod adresem: Dodatkowe materiały i odnośniki: All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. 61
60 Acknowledgements Wikipedia LibreOffice FSF 62