Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail

sabato 8 novembre 2014

Programmare con le libreri grafiche...

Oggi parliamo di programmazione a basso livello in linux, in special modo del mio amatissimo sistema operativo "Arch Linux"; inanzi tutto molte persone, specialmente i neofiti della programmazione, si chiedono come si possa programmare a livello accettabile e con almeno un minimo di interfaccia grafica decente, senza dover ricorrere alla shell unix o a creare un programmino che come minimo si apra come un qualsiasi programma come dovrebbe essere, senza ricorrere ad escamotage, come ad esempio programmi che auto compilano o al fastidiosissimo e pesantissimo 'JAVA', anche se sembra molto comodo, la maggior parte dei programmatori si rifiuta categoricamente ad usare un linguaggio di programmazione che non usa ne puntatori ne è performante, a meno che non si facciano piccole applet per il web...

Bene, ora dopo lo sfogo contro il java passiamo alle cose importanti; come installare queste suddette librerie per la programmazione, possono essere implementate in molti linguaggi a basso livello, del tipo il C e il C++, ovviamente tutte le funzioni che scriverete all'interno del programma , se ben implementate, faranno il loro effetto, in anzi tutto cosa dobbiamo installare, e come; bhe la risposta è ovviamente la mia solita, terminale, o se avete un gestore grafico di installatori di pacchetti è uguale, la prima dipendenza da installare è guile1.8, anche se esiste già un pacchetto che si chiama guile, ma noi non interessa, lo installate con yaourt guile e selezionate guile1.8 e appena finito ancora non potrete fare niente, ora senza il pacchetto guile1.8 potrete installare il pacchetto che a voi interessa, cioè "libgraph" che al suo interno contiene la funzione per la gestione grafica per la compilazione, ora facciamo la stessa cosa che abbiamo fatto con guile, cioe yaourt libgraph e proseguite, una volta finito è molto semplice includere la libreria in un qualsiasi programma, un implementazione di questa libreria nel linguaggio più semplice, il C potrebbe essere questo:

#include <graphics.h>

int main()
{
   int gd = DETECT, gm;
   int x = 320, y = 240, radius;

   initgraph(&gd, &gm, "C:\\TC\\BGI");

   for ( radius = 25; radius <= 125 ; radius = radius + 20)
      circle(x, y, radius);

   getch();
   closegraph();
   return 0;
}
 

ok ora abbiamo un programma che dovrebbe funzionare, ma se diamo il classico comando gcc esempio.c -o esempio dira giustamente che le funzioni usate non sono riconociute dal linguaggio C, e non ha tutti i torti, dobbiamo specificare che nel programma viene compilata anche la libreria, quindi la stringa di prima diventa cosi : gcc esempio.c -o esempio -lgraph  

Ora che avete il sorgente compilato per eseguirlo è molto semplice, basta o cliccare due volte sul programma generato o fare un gran ./esempio e il programma magicamente si avviera con un ionterfaccia grafica.
Ovviamente potrete sbizzarrirvi con la fantasia, da enumeratori randomici calcolatrici, fino ad arrivare ad imparare la libreria discretamente discretamente.
Chiedo venia per chi studia lingue, so che library vuol dire biblioteca e non libreria, ma chi tradusse questa parola evidentemente era molto barbaro e frettoloso, e da allora si usa libreria, molto usato come termine tecnico informatico...
E' sempre un piacere aggiornare le persone con nozioni basilarmente importanti!

martedì 24 giugno 2014

FORK BOMB

IL PROBLEMA
I "fork bomb'', come da titolo, sono un tipo di attacco di tipo dos (denial of service), usato anche in attacchi di tipo server per avere il dominio della macchina in remoto, per quanto si possa accedere, dato che un tipo di questo sistema viene ''forkato'' cioè duplicato, quindi rallentando il sistema in modo esponenziale fino al blocco totale di esso,e tutti sarete curiosi di sapere cosa duplica; la funzione originale è un comando interpretato da qualsiasi linguaggio di programmazione, specialmente unix unix_like e qualsiasi sistema che non abbia preso già le sue precauzioni per un tipo di questo attacco, e da qui anche spiegato il motivo del nome ''MSDOS''. Comunque proseguendo nella spiegazione, il la sintassi di una ''fork bomb'' è la seguente
:(){ :|:& };:

Se siete con linux specialmente e non avete messo paletti e non sapete quale sia la password di root per mandare in crash il sistema, potete tranquillamente aprire un terminale e scrivere la seguente stringa, se il computer è vostro non so quale scopo possa avere, ma c'è sempre la soddisfazione di sapere bloccare un sistema unix, ne posso avere un idea, ma appena avviate il comando, quanta più veloce sarà la capacita di elaborazione della macchina quanto prima avrete modo di vedere la freccetta del mouse o touchpad che laggherà fino al inutilizzo del sistema, di cui non si spegnerà neanche più, se non forzando il sistema a spegnersi usando il vecchio trucchetto di tenere il pulsante di accensione premuto, fino a che non si spegne la macchina.
SOLUZIONE
Bhe ho mostrato il problema, non so se chiamarlo errore, ma la suddetta debolezza ha anche una soluzione ed io mostrerò il metodo utilizzato da me per risolverlo, e poi si possono usare molte altre soluzioni, io mostro quella che ho trovato più semplice e veloce, alla fine se si capisce bene il sistema è molto semplice ed almeno si ha la sicurezza che nessuno possa farvi bloccare il vostro computer.
Iniziamo, con aprire il vostro terminale, e usando il vostro editor di testo preferito(nano, vi o altro)  andiamo a modificare, da utente root, il file /etc/security/limits.conf, aggiungendo la seguente istruzione "hard nproc 300", cioè limita il numero di processi per qualsiasi utente.
Con questo articolo spero di aver risolto il problema sui vostri sistemi che non riescono a gestire la memoria per troppi processi attivi contemporaneamente,è molto utile specialmente se avete un server online, questo smista i processi in piccoli locazioni di memoria anche se ne avete poca !

venerdì 14 marzo 2014

Schede video arch

Avete una scheda video della intel ed avete installato i driver consigliati dal produttore "xf86-video-intel" ma non funziona come dovrebbe e per regolare la luminosità dovete modificare manualmente i file di x11, bhe su questo post indico come si puo ovviare a questo dilemma con archlinux; inanzitutto quello che vi serve è un pc con su installato archlinux, tranquilli non andremo a rompere o decunfigurare niente per il momento, a meno che non facciate errori di vostra mano; inanzitutto quello che vi occorre è andare in un terminale e loggarvi come amministratore, fatto cio installate tramite aur update-grub quindi da terminale scriverete una cosa del genere "yaourt -S update-grub" e dovrebbe installare quell'unico pacchetto che interessa a noi; fatto cio proseguiamo con la messa in opera della configurazione della nostra scheda video ora con il vostro editor grafico preferito o che trovate di piu semplice utilizzo aprite il file di grub che si trova esattamente in '/etc/default/grub' io per praticita ho dato la seguente istruzione usanto la seguente sintassi "nano /etc/default/grub" pensando che nano non possa dare problemi si aprira il file di configurazione del grub, e in questo file cerchiamo una stringa in particolare "GRUB_CMDLINE_LINUX_DEFAULT" con tra le firgolette dovrebbe essere vuoto oppure trovereste una cosa del genere 'GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" '; e noi andremo a modificare la stringa fra le virgolette in questa maniera 'GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor" ' dopodiche salvate con control x e abbiamo quasi finito la configurazione dell'impostazione della luminosità; ora non vi resta che integrare la stringa con una ricompilazione del grub con il programma installato in precedenza,cioè dando solo il comando update-grub,riavviare la macchina e vedrete che i tasti funzione della luminosità saranno gia attivi; io l'ho potuto verificare con un 'acer aspire 5733' e funziona indifferentemente da qualsiasi desktop abbiate installato da kde a mate senza distinzione di colore ma solo di luminosità!