x86_64, wrażenia

Posted by Michał ‘mina86’ Nazarewicz on 18th of July 2008

64-bitowe procesory x86_64, x64, amd64, intel64, czy jak je tam chcemy zwać, zdobywają coraz większą popularność. Jest również coraz więcej systemów operacyjnych wykorzystujących ich potencjalne możliwości. Nareszcie pozbyliśmy się problemu przekręcenie licznika w 2038! Nareszcie możemy zaadresować 1 TiB fizycznej pamięci (to, że nasza płyta główna obsługuje 3 GiB, a jak mamy szczęście 3,5 GiB to już szczegół). Nareszcie mamy 48-bitową logiczną przestrzeń adresową (tj. 256 TiB)! Do tego dochodzi lepsza obsługa instrukcji SIMD, więcej rejestrów, 64-bitowa arytmetyka itp.

Rzecz jasna nie ma nic za darmo. Za te udogodnienia musimy płacić i bynajmniej nie chodzi mi o pieniądze, bo to raczej najmniej istotne — istotniejszą kwestią jest większe zużycie pamięci z powodu użycia ośmiobajtowych wskaźników, czy wyrównania stosu do ośmiu bajtów nawet jeżeli zrzucamy na niego liczbę 32-bitową. Do tego dochodzi jeszcze bardziej skomplikowany, a przez to wolniejszy, proces tłumaczenia adresów logicznych na adresy fizyczne.

Masowe wysyłanie listów

Posted by Michał ‘mina86’ Nazarewicz on 3rd of July 2008

W tekście poniższym opiszę jak i dlaczego właśnie tak należy wysyłać masowe listy (tj. do wielu osób jednocześnie). Dość często zdarza mi się otrzymywać wiadomości z przerośniętą listą adresatów, z których połowy nawet nie znam — jest to zdecydowanie niedobry sposób na rozsyłanie korespondencji!

Sieci Komputerowe

Posted by Michał ‘mina86’ Nazarewicz on 16th of June 2008

Ponownie coś z serii „ja juz zaliczyłem na 5,0, a może komuś się przyda”. Odpowiedzi na pytania przygotowawcze przed kolokwium z przedmiotu Sieci komputerowe II. Jak w przypadku poprzedneigo wpisu, plik ten największą wartość ma dla studentów Elektroniki Politechniki Warszawskiej, ale może też ktoś inny będzie miał ochotę przejrzeć.

Systemy Operacyjne

Posted by Michał ‘mina86’ Nazarewicz on 16th of June 2008

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

Posted by Michał ‘mina86’ Nazarewicz on 6th of June 2008

Czas jakiś temu zainstała u mnie potrzeba sprawdzenia, na komputerze bez przydzielonego adresu sieciowego, czy komputer o danym adresie istnieje. Chciałem mianowicie, zależnie od wyników sprawdzenia skonfigurować sieć statycznie lub dynamicznie. Stosunkowo szybko doszedłem do wniosku, iż szczególną uwagę należy zwrócić 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

Posted by Michał ‘mina86’ Nazarewicz on 10th of May 2008

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

ls-cmd.pl

Posted by Michał ‘mina86’ Nazarewicz on 15th of April 2008

Coś dla prawdziwych uniksowych geeków: Skrypt, który powoduje, że dobrze znana komenda ls działa w Irssi jak powinna, czyli wyświetla listę osób na kanale (samo ls, bez slasha).

Ochrona stosu

Posted by Michał ‘mina86’ Nazarewicz on 8th of April 2008

Prezentacja, którą omawiałem w trakcie prezentacji na 5. 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++

Posted by Michał ‘mina86’ Nazarewicz on 21st of March 2008

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

Posted by Michał ‘mina86’ Nazarewicz on 26th of February 2008

Skrypt implementujący zaawansowane algorytmy sztucznej inteligencji odpowiadający na pytania zadawane na kanale. Może udzielać odpowiedzi albo na wszystkie pytania albo tylko na te napisane bezpośrednio do nas (tzn. poprzedzone naszym nickiem).