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

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.

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

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.

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

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.

Return top

Creative Commons License
Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 3.0 Polska