Historia komputerów osobistych część druga

Transkrypt

Historia komputerów osobistych część druga
mgr inż. Przemysław Adam Śmiejek
([email protected])
Historia komputerów osobistych
część druga
24.09.2014
Historia komputerów osobistych
Co to jest kod źródłowy?
✔
Programy tworzone są przez programistów.
Piszą oni odpowiednie polecenia w języku
mniej lub bardziej zbliżonym do naturalnego
języka używanego przez człowieka.
✔
Następnie tak zapisany program jest
tłumaczony (kompilowany) na ciąg
zer i jedynek sterujących działaniem
procesora. Tak przetłumaczony
program nazywamy kodem
maszynowym.
✔
Aby dokonać zmian w programie,
należy mieć kod źródłowy. Bez tego
możliwe jest jedynie bardzo szczątkowe
ingerowanie w sposób działania programu
0000:0000 | 7F 45 4C 46
0000:0010 | 02 00 03 00
0000:0020 | A0 11 00 00
0000:0030 | 25 00 22 00
0000:0040 | 34 80 04 08
0000:0050 | 04 00 00 00
0000:0060 | 34 81 04 08
0000:0070 | 01 00 00 00
0000:0080 | 00 80 04 08
0000:0090 | 00 10 00 00
0000:00A0 | E8 98 04 08
0000:00B0 | 00 10 00 00
0000:00C0 | 00 99 04 08
0000:00D0 | 04 00 00 00
0000:00E0 | 48 81 04 08
0000:00F0 | 04 00 00 00
0000:0100 | F4 87 04 08
0000:0110 | 04 00 00 00
0000:0120 | 00 00 00 00
0000:0130 | 04 00 00 00
0000:0140 | 78 2E 73 6F
01 01 01 00
01 00 00 00
00 00 00 00
06 00 00 00
00 01 00 00
03 00 00 00
13 00 00 00
01 00 00 00
E8 08 00 00
01 00 00 00
40 01 00 00
02 00 00 00
E8 00 00 00
04 00 00 00
20 00 00 00
50 E5 74 64
2C 00 00 00
51 E5 74 64
00 00 00 00
2F 6C 69 62
2E 32 00 00
00 00 00 00
E0 85 04 08
34 00 20 00
34 00 00 00
00 01 00 00
34 01 00 00
13 00 00 00
00 00 00 00
E8 08 00 00
E8 08 00 00
EC 01 00 00
00 09 00 00
E8 00 00 00
48 01 00 00
20 00 00 00
F4 07 00 00
2C 00 00 00
00 00 00 00
00 00 00 00
2F 6C 64 2D
04 00 00 00
00 00 00 00 | .ELF............
34 00 00 00 | ........à...4...
08 00 28 00 | .......4. ...(.
34 80 04 08 | %.".....4...4...
05 00 00 00 | 4...............
34 81 04 08 | ........4...4...
04 00 00 00 | 4...............
00 80 04 08 | ................
05 00 00 00 | ....è...è.......
E8 98 04 08 | ........è...è...
06 00 00 00 | è...@...ì.......
00 99 04 08 | ................
06 00 00 00 | ....è...è.......
48 81 04 08 | ........H...H...
04 00 00 00 | H... ... .......
F4 87 04 08 | ....Påtdô...ô...
04 00 00 00 | ô...,...,.......
00 00 00 00 | ....Qåtd........
06 00 00 00 | ................
6C 69 6E 75 | ..../lib/ld-linu
10 00 00 00 | x.so.2..........
Historia komputerów osobistych
Otwarte Oprogramowanie było pierwsze
Colossus – seria komputerów, których
konstruowanie zaczęło się w 1943 roku
w Wielkiej Brytanii na potrzeby
wojskowości.
Colossus Mark II
Historia komputerów osobistych
Otwarte Oprogramowanie było pierwsze
Skonstruowany w latach 1943-1945
na Uniwersytecie Pensylwanii w USA.
E
N
I
A
C
Historia komputerów osobistych
Otwarte Oprogramowanie było pierwsze
Centrum
obliczeniowe
NASA – 1957
Historia komputerów osobistych
Otwarte Oprogramowanie było pierwsze
1969: Kenneth Thompson
i Dennis Ritchie tworzą
system operacyjny UNIX
1972: Dennis Ritchie
tworzy język
programowania C
Lata 70: zaczyna rodzić się
kultura hakerska
(w pozytywnym słowa tego
znaczeniu)
Ken Thompson
Dennis Ritchie
Historia komputerów osobistych
Kultura hakerska
Haker (ang. hacker) – osoba o bardzo dużych,
praktycznych umiejętnościach informatycznych
(lub elektronicznych) [...]
Hakerzy odznaczają się bardzo dobrą orientacją w
Internecie, znajomością wielu języków programowania, a
także świetną znajomością systemów operacyjnych, w tym
zwłaszcza z rodziny Unix (GNU/Linux, BSD itp.).
Stosuje się także odpowiednio skwantyfikowane określenia, np.
Perl hacker oznaczające osobę bardzo dobrze znającą język Perl
lub security hacker – na określenie wybitnego specjalisty od
bezpieczeństwa komputerowego.
Źródło: http://pl.wikipedia.org/wiki/Haker_%28slang_komputerowy%29
Historia komputerów osobistych
Kultura hakerska
Jedną z naczelnych wartości w środowisku hakerów [...] jest
wolność – w trzech wymiarach:
●
●
●
wolność tworzenia
wolność w dostępie do wiedzy
wolność form dzielenia się wiedzą
Castells [socjolog] kulturę hakerów określa także jako
kulturę daru.
Źródło: http://pl.wikipedia.org/wiki/Haker_%28slang_komputerowy%29
Kultura darów [...] – termin antropologiczny oznaczający społeczność tworzoną
w oparciu o bezinteresowną wymianę dóbr.
Innymi słowy kultura darów to kultura, w której uczestniczący przekazują
dobra posiadające wartość na poczet kształtowania dobrobytu swojej
społeczności.
Źródło: http://pl.wikipedia.org/wiki/Kultura_dar%C3%B3w
Historia komputerów osobistych
Kultura hakerska
Drugą z istotnych wartości jest uznanie, prestiż jaki może
zyskać haker w środowisku przez udostępnianie własnych
nowatorskich programów, czy rozwiązań w istniejących już
programach.
Prestiż wynikający z twórczego wykorzystania wiedzy dla
tworzenia nowych technologii i dzielenia się z nimi, jest
podstawą do budowania autorytetu w środowisku hakerów.
Źródło: http://pl.wikipedia.org/wiki/Haker_%28slang_komputerowy%29
Podsumowując:
●
dokonuj rzeczy niedokonywalnych
●
dziel się dokonaniami
Historia komputerów osobistych
Kultura hakerska
Znaczenie słowa „haker” w masowych mediach jest inne niż
stosowane przez społeczność hakerską. Media powszechnie
używają go wobec osób łamiących zabezpieczenia
systemów komputerowych.
Takie działanie w słownictwie informatycznym określa się
mianem „crackingu”, a osoby łamiące zabezpieczenia
mianem „crackerów”.
Określanie crackerów mianem hakerów jest bardzo źle
widziane w środowisku, gdyż etyka hakerska sprzeciwia się
cyberprzestępczości.
Łamanie zabezpieczeń wymaga często bardzo wysokich
umiejętności technicznych, można więc powiedzieć, że część
crackerów stanowią hakerzy.
Źródło: http://pl.wikipedia.org/wiki/Haker_%28slang_komputerowy%29
Historia komputerów osobistych
Kultura hakerska
Ciekawostka przyrodnicza
Z lat 70 i środowisk zbliżonych do hakerskich pochodzi również
słynna zasada KISS (ang. Keep It Simple, Stupid, czyli nie komplikuj,
głupku), która istotą jest dążenie do utrzymania eleganckiej
i przejrzystej struktury, bez dodawania niepotrzebnych elementów.
Genialność hakera nierzadko polega nie na skomplikowanym, a na
wręcz banalnym ale skutecznym postępowaniu.
Nie jest to zwrot o typowo informatycznym charakterze, spotyka się
go także w kręgach biznesowych.
Zazwyczaj nietrzymanie się tej zasady prowadzi do niepotrzebnych
utrudnień w dowolnej dziedzinie życia.
Historia komputerów osobistych
Częściowe załamanie kultury hakerskiej
✔
Nowa drukarka znowu się zacięła. Richard M. Stallman,
programista w Laboratorium Sztucznej Inteligencji w
Massachusetts Institute of Technology (zwanym w skócie
AI Lab), dotkliwe odczuł odkrycie tego uszkodzenia.
W godzinę po posłaniu do druku 50-stronicowego pliku
27-letni Stallman oderwał się na chwilę od zajmującej go
pracy i poszedł po dokumenty. Po dotarciu do drukarki
znalazł tylko cztery wydrukowane strony, co gorsza - nie
były to strony z jego dokumentu, co oznaczało, że jego plik
w całości nadal tkwił w przepastnej plątaninie sieci AI Lab.
W obronie wolności; Sam Williams; http://stallman.helion.pl/ch01.html
Historia komputerów osobistych
Częściowe załamanie kultury hakerskiej
W dalszej części czytamy:
✔
O tym jak Stallman niegdyś podobny problem rozwiązał
✔
O tym jak Stallman teraz kodów źródłowych nie dostał
✔
O tym jak Stallman zaczął analizować sytuację
✔
I wreszcie o tym, jak odkrył, że dawna skłonność hakerów do
wymiany się osiągnięciami i wspólnej pracy nad jakimś
zagadnieniem jest blokowana przez umowy lojalnościowe
z korporacjami...
✔
... które to odkrycie spowodowało powstanie w 1983 r. projektu
GNU (GNU is Not Unix) i pchnęło Stallmana do zdefiniowania
idei i filozofii Wolnego Oprogramowania
Historia komputerów osobistych
Powstanie ruchów typu Free Software
Join us now and share the software;
You'll be free, hackers, you'll be free.
Hoarders may get piles of money,
That is true, hackers, that is true.
But they cannot help their neighbors;
That's not good, hackers, that's not
good.
When we have enough free software
At our call, hackers, at our call,
We'll throw out those dirty licenses
Ever more, hackers, ever more.
Richard Stallman; autor zdjęcia: Chris McKenna
●
●
Free Software Foundation
Projekt GNU
Historia komputerów osobistych
Definicja Free Software (Wolnego Oprogramowania)
Słowo „wolne” odnosi się do dwóch konkretnych wolności:
✔
✔
po pierwsze, wolności kopiowania programu i dzielenia się
nim ze swoimi przyjaciółmi i współpracownikami;
✔
po drugie, wolności modyfikowania programu wedle
własnego uznania, dzięki pełnemu dostępowi do kodu
źródłowego.
✔
Poza tym można studiować źródło i uczyć się jak program został
napisany. Można go wówczas portować (dostosowywać do
różnego sprzętu/systemów), ulepszać i dzielić się swoimi
zmianami z innymi.
Historia komputerów osobistych
Definicja Free Software (Wolnego Oprogramowania)
✔
wolność uruchamiania programu, w dowolnym celu
(wolność 0)
✔
wolność analizowania, jak program działa, i dostosowywania
go do swoich potrzeb (wolność 1)
✔
wolność rozpowszechniania kopii (wolność 2)
✔
wolność udoskonalania programu i publicznego
rozpowszechniania własnych ulepszeń (wolność 3)
Historia komputerów osobistych
Nie tylko Free Software Foundation
✔
Równolegle z działaniami fundacji
Stallmana, na kalifornijskim uniwersytecie
w Berkeley podjęto prace nad zbiorem
oprogramowania zwanym jako Berkeley
Software Distribution (czasem zwanym
także Berkeley Unix) dostępnym również
na licencji dającej pełną wolność.
✔
Powodem powstawania systemów z rodziny BSD było to, że „prawdziwy”
UNIX należał od AT&T (amerykańska korporacja telefoniczna) i licencja nie
była przyjazna środowiskom akademickim.
✔
Niektóre rozwiązania zastosowane w BSD, do dzisiaj są uważane za wzorcowe
i stały się podstawą rozwiązań stosowanych w innych systemach
operacyjnych.
Historia komputerów osobistych
Nie tylko Free Software Foundation
Pamiętaj, że wciąż mówimy o maszynach tego typu,
a nie komputerach osobistych.
(na zdjęciu PDP-7)
Historia komputerów osobistych
Podsumowując lata 80
✔
W latach 80 na komputerach osobistych produkowanych przez
IBM (oraz ich klonach) króluje MS DOS, prowadzone są
nieśmiałe i niezbyt udane próby wprowadzenia Windows.
✔
...
Historia komputerów osobistych
Podsumowując lata 80
✔
W latach 80 na komputerach osobistych produkowanych przez
IBM (oraz ich klonach) króluje MS DOS, prowadzone są
nieśmiałe i niezbyt udane próby wprowadzenia Windows.
✔
W tym samym czasie Apple promuje Graficzny Interfejs
Użytkownika podbijający Amerykę w komputerach Macintosh
✔
...
Historia komputerów osobistych
Podsumowując lata 80
✔
W latach 80 na komputerach osobistych produkowanych przez
IBM (oraz ich klonach) króluje MS DOS, prowadzone są
nieśmiałe i niezbyt udane próby wprowadzenia Windows.
✔
W tym samym czasie Apple promuje Graficzny Interfejs
Użytkownika podbijający Amerykę w komputerach Macintosh
✔
Na „dużych” komputerach zadomawia się UNIX lub jego
pochodne (jak BSD)
✔
...
Historia komputerów osobistych
Podsumowując lata 80
✔
W latach 80 na komputerach osobistych produkowanych przez
IBM (oraz ich klonach) króluje MS DOS, prowadzone są
nieśmiałe i niezbyt udane próby wprowadzenia Windows.
✔
W tym samym czasie Apple promuje Graficzny Interfejs
Użytkownika podbijający Amerykę w komputerach Macintosh
✔
Na „dużych” komputerach zadomawia się UNIX lub jego
pochodne (jak BSD)
✔
Richard Stallman i Free Software Foundation tworzą system GNU
(GNU is Not Unix) jako całkowicie wolną (od ograniczeń
licencyjnych) implementację Uniksa.
Historia komputerów osobistych
Wspaniałe lata 90
✔
Linus Torvalds, młody student
uniwersytetu w Helsinkach tworzy
jądro o nazwie Linux jako
wypełnienie braków w systemie
GNU.
✔
Jądro Linux ma mu pozwolić na
uruchomienie systemu GNU na jego
domowym pececie i uzyskanie
środowiska uniksowego, takiego jakie
ma na uczelni
Historia komputerów osobistych
Wspaniałe lata 90
✔
Na bazie BSD powstają takie systemy
jak FreeBSD, NetBSD, OpenBSD. Ich
działanie nie ogranicza się do
pecetów, ale niewątpliwie (zwłaszcza
FreeBSD) na takich komputerach
działają.
✔
Rozwój tych systemów na początku lat 90 zostaje przyhamowany
procesem sądowym z Novellem i ostatecznie Linux wybija się na
prowadzenie, a *BSD znajdują swoje zastosowanie głównie w usługach
sieciowych i na domowe komputery osobiste raczej nie trafiają do
dzisiaj.
Historia komputerów osobistych
Wspaniałe lata 90
Czym jest system operacyjny bez oprogramowania?
Apache HTTP Server pierwszym produktem dającym wymierne
✔
korzyści
✔
Linux na serwerach WWW, poczty, ruterach itp.
✔
1995: program do grafiki rastrowej GIMP
✔
1996: Środowisko graficzne KDE
✔
1997: Środowisko graficzne GNOME
✔
1998: Startuje projekt Mozilla (na bazie kodu Netscape)
✔
2000: OpenOffice.org (na bazie kupionego przez Suna Star Office)
✔
2004: GIMP 2.0 oraz Firefox 1.0
Historia komputerów osobistych
Kto to wszystko tworzy?
✔
Hobbyści, studenci, uczniowie, pracownicy naukowi
✔
...
Historia komputerów osobistych
Kto to wszystko tworzy?
✔
Hobbyści, studenci, uczniowie, pracownicy naukowi
✔
Zawodowi programiści zatrudniani przez Fundacje
Free Software Foundation, Mozilla Foundation, Apache Foundation, Python
✔
Foundation, Perl Foundation i wiele innych
✔
...
Historia komputerów osobistych
Kto to wszystko tworzy?
✔
Hobbyści, studenci, uczniowie, pracownicy naukowi
✔
Zawodowi programiści zatrudniani przez Fundacje
Free Software Foundation, Mozilla Foundation, Apache Foundation, Python
✔
Foundation, Perl Foundation i wiele innych
Zawodowi programiści zatrudniani przez
✔
✔
przedsiębiorstwa potrzebujące danego produktu
✔
przedsiębiorstwa opierające całą lub część swojej oferty na Wolnym
Oprogramowaniu
✔
...
Historia komputerów osobistych
Kto to wszystko tworzy?
✔
Hobbyści, studenci, uczniowie, pracownicy naukowi
✔
Zawodowi programiści zatrudniani przez Fundacje
✔
Free Software Foundation, Mozilla Foundation, Apache Foundation, Python
Foundation, Perl Foundation i wiele innych
Zawodowi programiści zatrudniani przez
✔
✔
przedsiębiorstwa potrzebujące danego produktu
✔
przedsiębiorstwa opierające całą lub część swojej oferty na Wolnym
Oprogramowaniu
✔
Administratorzy zajmujący się utrzymaniem systemów
w sprawnym działaniu
Historia komputerów osobistych
Free Software, Open Source, FLOSS?
✔
Wolne Oprogramowanie Stallmana jako ruch nie tylko techniczny,
ale i filozoficzny – Free Software kojarzące się w biznesie z brakiem
możliwości zarabiania lub z ideami hipisowskimi / hakerskimi.
✔
...
Historia komputerów osobistych
Free Software, Open Source, FLOSS?
Wolne Oprogramowanie Stallmana jako ruch nie tylko techniczny,
✔
ale i filozoficzny – Free Software kojarzące się w biznesie z brakiem
możliwości zarabiania lub z ideami hipisowskimi / hakerskimi.
1997: Esej Erica Raymonda The Cathedral and the Bazaar
✔
Pojawia się termin Open Source (Otwarte Źródła) jako coś
✔
przyjaznego dla biznesu
✔
...
Historia komputerów osobistych
Free Software, Open Source, FLOSS?
Wolne Oprogramowanie Stallmana jako ruch nie tylko techniczny,
✔
ale i filozoficzny – Free Software kojarzące się w biznesie z brakiem
możliwości zarabiania lub z ideami hipisowskimi / hakerskimi.
1997: Esej Erica Raymonda The Cathedral and the Bazaar
✔
Pojawia się termin Open Source (Otwarte Źródła) jako coś
✔
przyjaznego dla biznesu
✔
1998: Open Source Initiative Bruce'a Perensa i Erica Raymonda.
✔
...
Historia komputerów osobistych
Free Software, Open Source, FLOSS?
Wolne Oprogramowanie Stallmana jako ruch nie tylko techniczny,
✔
ale i filozoficzny – Free Software kojarzące się w biznesie z brakiem
możliwości zarabiania lub z ideami hipisowskimi / hakerskimi.
1997: Esej Erica Raymonda The Cathedral and the Bazaar
✔
✔
Pojawia się termin Open Source (Otwarte Źródła) jako coś
przyjaznego dla biznesu
✔
1998: Open Source Initiative Bruce'a Perensa i Erica Raymonda.
✔
2000+: Próba pogodzenia podejść i termin FLOSS (Free Libre/Open
Source Software) oraz polska wersja WiOO (Wolne i Otwarte
Oprogramowanie)
✔
To nazewnictwo często bywa stosowane w dokumentacjach urzędowych,
przetargach i w oficjalnych analizach.
I to by było na tyle ...
Zastrzeżenia prawne
Licencja prezentacji
Niniejsza prezentacja jest dostępna na licencji*
Creative Commons
Uznanie autorstwa – Na tych samych warunkach 3.0
Niniejsze dzieło ani jego twórca nie są reprezentowani przez
żadną organizację zbiorowego zarządzania prawami autorskimi
lub prawami pokrewnymi.
* Zastrzeżenie licencyjne nie dotyczy niektórych elementów będących autorstwa osób trzecich.
Spis tych elementów można znaleźć w dalszej części.
Zastrzeżenia prawne
Licencje elementów obcych
W prezentacji wykorzystano:
Zdjęcia ENIAC-a na licencji public domain
✔
✔
źródło: http://pl.wikipedia.org/w/index.php?title=Plik:ENIAC-changing_a_tube.jpg
✔
źródło: http://pl.wikipedia.org/w/index.php?title=Plik:Eniac.jpg
✔
Zdjęcie Colossus Mark II na licencji public domain http://pl.wikipedia.org/w/index.php?title=Plik:Colossus.jpg
✔
Zdjęcia rekonstrukcji Collosusa na licencji CC BY-SA
✔
źródło: http://en.wikipedia.org/wiki/File:ColossusRebuild_11.jpg Autor: MaltaGC
✔
źródło: http://en.wikipedia.org/wiki/File:ColossusRebuild_12.jpg Autor: MaltaGC
✔
Komputery przemysłowe NASA na licencji public domain http://en.wikipedia.org/wiki/File:IBM_Electronic_Data_Processing_Machine_-_GPN-2000-001881.jpg
✔
Ken Thompson and Dennis Ritchie na licencji Public Domain: http://en.wikipedia.org/wiki/Image:Ken_n_dennis.jpg
✔
A portion of a DECsystem-1090 showing the KL10 CPU and MH10 memory cabinets. CC BY-SA Michael L. Umbricht
http://en.wikipedia.org/wiki/Image:PDP-10_1090.jpg
✔
Zdjęcie Richarda Stallmana: http://commons.wikimedia.org/wiki/Image:Richard_Stallman_speaking_at_Wikimania_2005-08-07.jpg autor: Chris McKenna, licencja CC
BY-SA
✔
Fragment kampusu Berkeley http://pl.wikipedia.org/w/index.php?title=Plik:Berkeley_glade_afternoon.jpg autor: Gku, licencja CC BY-SA
✔
Komputer PDP-7: http://pl.wikipedia.org/w/index.php?title=Plik:Pdp-7-oslo-2004.jpeg autor: Matias Fjeld (matiashf), licencja CC BY-SA
✔
Zdjęcie Linusa Torvaldsa: http://commons.wikimedia.org/wiki/File:Linus_Torvalds.jpeg autor: nieznany, licencja CC BY-SA
✔
Maskotka FreeBSD: http://en.wikipedia.org/wiki/File:Bsd_daemon.jpg na licencji komercyjnej, dopuszczającej użycie w celu idntyfikacji
Zastrzeżenia prawne
Zrzeczenie się odpowiedzialności
Autor włożył ogromny wysiłek w przygotowanie prezentacji
w sposób rzetelny, jednak istnieje możliwość popełnienia błędu
na etapie tworzenia prezentacji lub zaistnienia tegoż w źródłach,
z których Autor korzysta.
Autor zrzeka się więc odpowiedzialności za wykorzystanie
przekazywanych treści w praktyce i zachęca do samodzielnej
weryfikacji prezentowanej wiedzy.