ramdysk jako... dysk tymczasowy ;-)
Witam ponownie. Dzisiaj napiszę notkę o wykorzystaniu ramdysku dla naszych aplikacji, które potrzebują dostępu do plików o szybszym czasie dostępu. Do tego celu wykorzystam ramfs i/lub tmpfs. To może od razu przejdę do kodu
int ram_mount(){
if(!mount("/dev/ram0", "/mnt/", "ramfs", 0, NULL)){
printf(" Mounting memory failed. ");
}
FILE *_tfile;
_tfile = fopen("/mnt/plik", "w");
fputs("testowy plik", _tfile);
fclose(_tfile);
fclose(_tfile);
}
int ram_unload(){
umount("/mnt/");
}
Funkcja ram_mount() mountuje ramdysk /dev/ram0 do /mnt jako ramfs, możemy równierz wykorzystać wspomniane tmpfs, gdzie możemy zapisywać nasze pliki przez program (tak jak na przykładzie fopen()...). Funkcja ram_unload() odmountowuje /mnt. Ja ten sposób wykorzystuje w mojej aplikacji, aby trzymać pliki konfiguracyjne, i inne ;-).
Pozdrawiam.
wielowątkowość w wykonaniu mike ;-)
Witam serdecznie po długim czasie. Hmm co do tego czasu, to raczej nic ciekawego się nie wydarzyło. Dziennie się uczę i pracuje. Do tego jakże by bujne życie towarzyskie (a raczej jego niedobory ;-P). No ale, taka już dola informatyka, który raczej się trzyma z dala od społeczeństwa :-D
No ale nie o tym traktuje ten wpis.
Dzisiaj przedstawię moją koncepcje wielowątkowości w systemach Unix/BSD/Linux w języku C/C++ - opartego na znanej i lubianej ;-) bibliotece pthread. Hmm, dlaczego właściwie się zająłem tą tematyką? Potrzeba matką wynalazku. Podczas pisania mojej aplikacji (dość rozległej - dodam), potrzebuję szybkie, bezproblemowej pracy wątków w tej aplikacji.
Pthread oczywiście spełnia moje wymagania, ale są pewne *ale*. Czym są te ale? No więc: przekazywanie sygnałów, argumentów między wątkami. Rzecz jasna, takie coś można wykonywać między zmiennymi lokalnymi (lub pthread_join() tak?). Ale ja ten "problem" (nie mogę tego nazwać problemem, ale spokojnie mogę to nazwać moim małym zapotrzebowaniem ;-)). No więc, zacznę tak:
/* Kod oczywiscie C/C++ */
struct thread_t{
void *(*proc) (void *); /* Thread function */
int tid; /* Thread ID */
char *agrv; /* Argumends, commands... */
int arg; /* If is new argv set 1, if no 0/null */
int sig; /* Thread signal */
};
static int thread_init(*(*proc) (void *));
static int thread_stop(int thread);
static int thread_sig(int thread, int sig);
static int thread_wait(int thread);
static int thread_send_argv(int thread, char *argv);
static char *thread_recv_argv(int thread);
* No więc, funkcja thread_init(*(*proc) (void *)) tworzy nowy wątek (tak samo jak pthread_create) ALE: funkcja wymaga mniej parametrów, zamiast podawania uchwytu do struktury pthread_t, podajemy samą nazwe wątku, a w rezultacie otrzymujemy handler [uchwyt] do naszego nowo utworzonego wątku).
* Funkcja thread_stop(int hthread) kończy nasz wątek (plusy: chyba żadne... minusy: [do dopracowania] jeśli zamiast int hthread podamy inny numer wątku, niż "nasz", to go zabijemy :-D). Funkcja może być wywoływana wewnętrznie przez wątek (tak samo jak się używa pthread_exit()) lub zewnętrznie, przez "rodzica".
* Funkcja thread_sig(int hthread, int signal) wysyła to wątku i uchywcie hthread sygnał int signal (plusy: wogóle możliwość wysyłania spersonalizowanych [czyli dla konkretnego wątku] konkretnie sygnałów w postaci liczby).
* Funkcja thread_wait(int hthread) wysyła do wątku informacja, iż ma czekać (funkcja w trakcie dopracowywania ;-)).
* Funkcja thread_send_argv(int hthread, char *argv) wysyła wiadomość/komendę do wątku hthread i ustawia flage w strukturze int arg; na 1.
* Funkcja char *thread_recv_argv(int hthread) odbiera zmienną char *argv ze struktury thread_t danego wątku.
Szczerze, to długo nad tą biblioteką nie siedziałem. Ale teraz ją udoskonalam ;-). Mam nadzieję, iż libethread0 (ethread - bo tak nazwałem wątki, nazwa jeszcze nie jest oficjalna), będzie nie długo do pobrania. Umieszczę stosowną notke na blogu i oczywiście, dorobię z boku malutkie submenu z działem Pobierz :-)
Pozdrawiam serdecznie, mike.
O crackingu słowo wstępne
Na wstępie witam wszystkich serdecznie. Dzisiaj poruszę ciężki temat, jakim jest cracking w sieci. Ale zacznę od początku...
Parę dni temu miało miejsce włamanie na nowo otwarte forum komputerowe iFav, moim zdaniem dobrze zapowiadające się - to, że było kolejnym forum o tej tematyce jest nie ważne, jest wiele podobnych for ale po****dniętych, bezsensownych, gdzie *****i nie mają zielonego pojęcia o jakiejkolwiek ADMINISTRACJI - no ale nie mi to oceniać. Czemu? Ja jestem tylko programistą i *****istratorem systemów operacyjnych a nie for.
No ale wracając do włamania. Włamania dokonał nijaki krefciak. Jest on użytkownikiem m.in. forum net-hack.pl, gdzie ataki tego typu są uważane, za H A C K I N G, a nie zgodnie z literaturą informatyczną, C R A C K I N G I E M. Czego dokonał wspomniany krefciak? A no (nie wiem w jaki sposób, na pewno nie swoim kodem, swoim programem) dostał się do forum iFav.pl usunął pliki, baze danych (phpBB) i ustawił (jakby był wielkim pr0 h4ckj3r3m) index "Hacked by krefciak".
Hmm i co mnie tak zintrygowało? To, że na forum net-hack.pl wspomina o jakimś programie pr0hack (jak sama nazwa mówi, jest pr0, +7 do lasnu i pewnie +10 do umiejętności...) co również daje mi do myślenia, że autor jest jedynie zwykłym uczniem szkoły, który używa tylko programów z "neta" - bo owym się posłużył, a więc nie jest żadnym real pr0 hackerem, tylko lamusem / luserem.
Przechodząc do sedna sprawy. Chłopak jest szczeniakiem, który myśli, że jest pr0. Nie ujdzie mu to na sucho, bo w świetle polskiego prawa, osoba która niszczy mienie własne, narusza to mienie narusza również prawo. Myślisz, że h4ckując, jesteś wielki, bo podpiszesz się nicknamem? Mylisz się.
Podsumówując, przypadek wyżej opisany zalicza się do crackingu nie zaś hackingu. Nie wiem nawet jakimi słowami opisać zachowanie takiego szczeniaka.
Działaj dalej, a sam wpadniesz.
nowy laptop! :D
O tak! Wreszcie! Na szczęście nowy sprzęt! Apple PowerBook 17" jest w końcu mój :) Po mimo wielu problemów na stararcie (zasilacz... instalka mac os x...) nareszcie działa jak trzeba :) Poniżej screen:
Apple PowerBook 17-inch, Mac OS X 10.5.5 Leopard - PowerPC 1.5GHz, 1GB RAM, 100GB HDD, ATI Radeon 9700 64mb, Matryca 17" 1440x900, Bateria ok. 2h
I jak? ;-)
Pozdrawiam, Mike.
nowy system na pokładzie
zmiany zmiany zmiany...
Dzisiaj na blogu wprowadziłem kilka zmian (top) no i dodałem kolejnego screenshota mojej pracy - sklepu internetowego dla perfumerii. Wszelkie zastrzeżenia i pytania do komentarza :)
Pozdrawiam!
<- Poprzednia strona | Następna strona ->







