• mina86.com

  • Categories
  • Code
  • Contact
  • Systemy Operacyjne

    Coś z serii „ja już zaliczyłem na pięć, a może komuś się przyda”, czyli przygotowany przeze mnie plik z odpowiedziami na pytania przygotowawcze do egzaminu z przedmiotu Systemy operacyjne. Zapewne największa wartość mają one dla studentów Elektroniki Politechniki Warszawskiej, niemniej jednak może ktoś się tym zainteresuje.

    ARP ping

    Czas jakiś temu potrzebowałem sprawdzić, na komputerze bez przydzielonego adresu sieciowego, czy komputer o podanym adresie istnieje. Chciałem mianowicie, zależnie od wyniku tego testu skonfigurować sieć statycznie lub dynamicznie. Szybko szczególną uwagę zwróciłem na protokół ARP.

    W protokole Ethernet urządzenia są rozpoznawane za pomocą adresów MAC, a więc, aby móc wysłać pakiet do komputera o danym IP należy najpierw poznać jego adres sprzętowy. Do tego właśnie służy protokół ARP (gwoli ścisłości, może on być wykorzystany również przy innych protokołach warstwy drugiej i trzeciej).

    Jak to działa? Pierwsza strona rozsyła do wszystkich (na adres broadcast, tj.q FF:FF:FF:FF:FF:FF) zapytanie, wypełniając swój adres IP i MAC oraz adres IP, o który chce się zapytać. W odpowiedzi, druga strona wysyła ramkę z oboma adresami, swoimi i komputera wysyłającego pytanie.

    Nie każdy zdaje sobie sprawę, iż protokół ten można wykorzystywać nawet jeżeli nie ma się swojego adresu sieciowego — wówczas w odpowiednie pole wpisujemy same zera. W niczym to nie przeszkadza — w żadnym momencie protokół warstwy trzeciej nie jest wszak wykorzystywany.

    Warto wspomnieć, iż mechanizm ten jest wykorzystywany przez klienty DHCP, do sprawdzania (na wszelki wypadek), czy adres im nadany jest faktycznie wolny — nazywa się to Adress Conflict Detection.

    Dla zainteresowanych aplikacja, która próbuje wykryć adres sprzętowy urządzenia o podanym adresie sieciowym.

    Bezpieczeństwo logowania

    czyli czemu OpenID jest trzy razy mniej bezpieczny od zwykłego hasła.

    Double-checked locking pattern

    Jakiś czas temu w pewnych okolicznościach poruszony został wzorzec double-checked locking singleton, który jak powszechnie wiadomo nie jest do końca poprawny. Wynikła z tego krótka dyskusja, której kompilację pozwolę sobie wkleić poniżej (gdyż nie jest ona ogólnie dostępna, a nie lubię, gdy informacje się marnują).

    ls-cmd.pl

    Something for real unix geeks: Script that makes well known ls command work in Irssi the way God intended, ie. displaying nick list (no slash required).

    Ochrona stosu

    Prezentacja, którą miałem przyjemność omawiać w trakcie V Sesji Linuksowej traktująca o mechanizmie ochrony stosu polegającym na dodaniu strażnika pomiędzy adresem powrotu a zmiennymi lokalnymi funkcji. Archiwum zawiera również proste programy, które były prezentowane w trakcie wykładu.

    Stałość fizyczna i logiczna w C++

    Chciałbym zaprezentować pewien tekst, który przygotowałem na jeden z przedmiotów na studiach. Traktuje on o modyfikatorze const i mutable oraz określa pojęcie stałości logicznej czyli niezmienności zachowania obiektu, gdy patrzymy z zewnątrz. Może komuś się to przyda. Czekam również na wszelkie komentarze.

    Irssi AI

    Script implementing advanced AI algorithms answering yes-or-no questions on a channel. It can answer all questions or only those sent to us (that is prefixed with our nick).

    MPD now playing for Irssi

    Simple script writing title of currently played song in MPD. It has a unique feature of automatically replaying to informations send by other users.

    bitlbee query auto

    Interesting patch for bitlbee which allows user to configure bitlbee so that requests may be automatically ignored, rejected or accepted. For instance, one can filter out all questions containing URLs reducing amount of spam. One can also set acceptance of all requests.