Cyber wojna

Na tego typu określenia zawsze reagowałem skrzywieniem ust i pogardliwym prychnięciem. Poza atakami DDoS, spam’owaniem skrzynek pocztowych, aż do granic ich limitu, deface’em strony, albo wykradaniem danych, co “źli hakerzy” mogli zrobić rządom, albo wielkim korporacjom? Poza tym czy tego typu działania naprawdę można nazwać wojną? Read more

Google Glass w rzeczywistości

Google ostatnio zaprezentował swój najnowszy wynalazek który ma szanse zrewolucjonizować świat. Mam na myśli okulary “rozszerzające rzeczywistość” czyli Project Glass. Filmik promocyjny wygląda naprawdę imponująco, tym bardziej, że kto z nas geek’ów nie marzy o czymś takim? Read more

  • Comments Off on Google Glass w rzeczywistości

Konfiguracja jądra

Dla wielu, a zwłaszcza dla początkujących, jest to bardzo trudny i męczący temat. I nic dziwnego. Linux obsługuje masę  najróżniejszego sprzętu, który można znaleźć w urządzeniach wszelkiego typu, od wielkich serwerów z setkami gigabajtów RAM’u po najmniejsze mikro-kontrolery. I wszystkie te opcje siedzą sobie razem w jednym menu konfiguracji jądra. Read more

  • Comments Off on Konfiguracja jądra

-march=native

Każdy użytkownik Gentoo co najmniej raz musiał ustawić flagi kompilatora. Ustawienie samej flagi -march z reguły nie jest trudne, ale co ustawić poza nią, żeby jak najlepiej wykorzystać cechy naszego procesora (a wbrew pozorom ma znaczenie co się ustawia)? Od jakiegoś czasu gcc oferuje opcję “native” jako parametr dla -march. Jeśli użyjemy tej opcji gcc stara się samo ustalić jaki mamy procesor i co będzie dla nas najlepsze. A co jeśli chcemy się dowiedzieć co jest dla nas najlepsze — jakie flagi gcc ustawiło? Pomocna wtedy jest ta komenda:

gcc -march=native -E -v - < /dev/null 2>&1 | grep cc1

Po wykonaniu jej zobaczymy dokładnie jakie polecenie zostało wywołane, a tym samym jakie flagi zostały ustawione.

  • Comments Off on -march=native

Optymalizacja w gcc

O niekorzystnych efektach stosowania optymalizacji na błędnym kodzie już kiedyś było. A teraz będzie jeszcze raz bo znalazłem kolejny ciekawy przykład. Znalazłem go na tej stronie przy okazji szukania materiałów o sygnałach w Linuksie. Kod po minimalnej zmianie wygląda tak: Read more

  • Comments Off on Optymalizacja w gcc

Load balancing

Najprostszy sposób jak wykonać load balancing przy użyciu tylko iptables. Wykorzystujemy do tego moduł “statistic” w trybie “nth” który oznacza nam każdy co czwarty pakiet (–every 4), licząc od zadanego (–packet 0). Same regułki wyglądają tak:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m statistic --mode nth --every 4 --packet 0 -j DNAT --to-destination 192.168.1.2:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m statistic --mode nth --every 4 --packet 1 -j DNAT --to-destination 192.168.1.3:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m statistic --mode nth --every 4 --packet 2 -j DNAT --to-destination 192.168.1.4:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m statistic --mode nth --every 4 --packet 3 -j DNAT --to-destination 192.168.1.5:80

Jeśli ustawimy takie regułki na serwerze z adresem 192.168.1.1 to każde nowe połączenie przychodzące na ten serwer na porcie 80 będzie przekierowane na inne maszyny na podstawie licznika (w tym wypadku modulo 4). Czyli pierwsze połączenie poleci na serwer 192.168.1.2, drugie na 192.168.1.3, trzecie na 192.168.1.4, a czwarte na 192.168.1.5, a potem od nowa. Oczywiście można to robić dla dowolnej ilości maszyn oraz dla dowolnych usług. Ważne jest tylko, aby zawsze był sprawdzany stan pakietu i aby regułki stosowane były tylko dla nowych połączeń. W przeciwnym razie kolejne serwery będą dostawać pakiety nie przeznaczone dla nich i usługi nie będą działały.

  • Comments Off on Load balancing

Duqu techno-thriller

Rok temu głośno było o wirusie Stuxnet, który zainfekował Irańskie centra wzbogacania uranu i spowodował w nich liczne szkody. Od października 2011 głośno z kolei jest o bliskim krewnym Stuxnet’a – wirusie ochrzczonym nazwą Duqu. Jakkolwiek nie ma żadnych danych udowadniających ponad wszelką wątpliwość relację pomiędzy Stuxnet’em, a Duqu to wszystko wskazuje na to, iż oba szkodniki zostały stworzone przez tych samych ludzi. Oba wirusy mają taką samą architekturę, te same mechanizmy działania, korzystają z tych samych wykradzionych certyfikatów kryptograficznych do podpisywania fałszywych sterowników oraz mają te same “magiczne wartości” zakodowane w sobie. Read more

  • Comments Off on Duqu techno-thriller

Deep C — głęboka znajomość C

Natknąłem się w sieci na bardzo ciekawą prezentację przedstawiającą kilka aspektów języka C (i kilka z C++), które każdy szanujący się programista na poważnie zajmujący się programowaniem w tych językach, powinien wiedzieć.
Niestety w czasach w których żyjemy bardziej niż na jakość kodu zwraca się uwagę na tempo jego tworzenia. W związku z tym ilość dobry programistów, tym bardziej takich języków jak C i C++, znacznie spada. Zatem jeśli uważasz się za programistę któregokolwiek z tych języków, obejrzyj prezentację i ratuj ginący gatunek dobrych programistów. ;)

Prezentacja w wersji on-line jest tutaj, a ściągnąć można ją stąd.

  • Comments Off on Deep C — głęboka znajomość C

Optimus, czyli dwie karty graficzne

Jeśli ktoś jest się posiadaczem nowego laptopa, lub planuje zakup takowego, wyposażonego w procesora Intel’a oraz kartę nVidii to czeka go pewne zaskoczenie (chyba że doczytał i kupował laptopa świadomie) — laptop będzie miał dwie karty graficzne (tzw. system Optimus). Wraz z najnowszą linią procesorów (codename Sandy Bridge) Intel postanowił wyposażać swoje procesory we wbudowaną kartę graficzną. Pomysł wcale nie taki głupi, ale… Read more

  • Comments Off on Optimus, czyli dwie karty graficzne

Linux fundamentals tutorial — podstawy Linuksowej konsoli

Na wiki Funtoo można znaleźć rewelacyjne tutoriale dotyczące obsługi Linuksa z poziomu konsoli. Przewidziane są one jako przygotowanie do “Linux Professional Institute’s 101 exam” (co za egzamin by to nie był) jednak przydadzą się każdemu, kto jest zainteresowany nauczeniem się obsługi Linuksa inaczej niż poprzez klikanie. Polecam również osobom zaawansowanym przejrzenie chociaż listingów z konsoli bo czasami mimo, że się coś zna to można poznać jakiś nowy szczegół o którym się wcześniej nie słyszało.

Całość dostępna tutaj:
Część 1
Część 2
Część 3
Część 4

[EDIT]
sirmacik podesłał mi link do podręcznika Debian. Jakkolwiek jest on ukierunkowany na Debiana i część informacji jest specyficzna dla niego (użytkownikom Ubuntu nie będzie to w niczym przeszkadzać) to całość też jest warta przeczytania. Też dobrze wyjaśnia wiele podstawowych kwestii.

[EDIT 2]
Znalazłem jeszcze taki wypis z masą przydatnych poleceń.

  • Comments Off on Linux fundamentals tutorial — podstawy Linuksowej konsoli