<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SIMOTRONE WEB PAGE &#187; Linux</title>
	<atom:link href="http://www.simotrone.it/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simotrone.it</link>
	<description>Simotrone is back!</description>
	<lastBuildDate>Fri, 30 Jul 2010 05:47:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Firewall in cron</title>
		<link>http://www.simotrone.it/2010/03/04/firewall-in-cron/</link>
		<comments>http://www.simotrone.it/2010/03/04/firewall-in-cron/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 06:02:46 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2725</guid>
		<description><![CDATA[Ok, capita anche ai migliori.
A me però sta particolarmente sulle balle.
Così, visto che mi è già capitato due volte di chiudermi fuori da una box remota pistolando sul firewall a caso &#8211; ed è decisamente umilante rompere le balle al prossimo per il riavvio in loco del server &#8211; ho ben deciso di scrivere un [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, capita anche ai migliori.</p>
<p>A me però sta particolarmente sulle balle.<br />
Così, visto che mi è già capitato due volte di chiudermi fuori da una box remota <em>pistolando</em> sul firewall a caso &#8211; ed è decisamente umilante rompere le balle al prossimo per il riavvio in loco del server &#8211; ho ben deciso di scrivere un semplice scriptino in bas in cron.daily, che rilancia periodicamente il file con la configurazione del firewall &#8220;standard&#8221;.</p>
<p>Che odio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2010/03/04/firewall-in-cron/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breake my linux sys</title>
		<link>http://www.simotrone.it/2009/10/13/breake-my-linux-sys/</link>
		<comments>http://www.simotrone.it/2009/10/13/breake-my-linux-sys/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 05:00:35 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[hackeraggio]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2279</guid>
		<description><![CDATA[Puo&#8217; capitare di dimenticarsi la password di root. Oppure, come mi è successo di recente, puo&#8217; capitare di dover entrare in un sistema Linux di cui non si sa la password per un recupero.
Se si ha libero accesso fino al bootloader (GRUB o LILO) che sia, si è a cavallo. Procediamo.
Quando il bootloader carica il [...]]]></description>
			<content:encoded><![CDATA[<p>Puo&#8217; capitare di dimenticarsi la password di root. Oppure, come mi è successo di recente, puo&#8217; capitare di dover entrare in un sistema Linux di cui non si sa la password per un recupero.</p>
<p>Se si ha libero accesso fino al bootloader (GRUB o LILO) che sia, si è a cavallo. Procediamo.</p>
<p>Quando il bootloader carica il kernel lancia init che è il processo padre di tutti i processi in ambiente Linux; init di conseguenza avvia getty per il login e il sistema è pronto.</p>
<p>Accedendo alle stringhe di GRUB (premendo &#8220;e&#8221;) possiamo invece modificare il comportamento all&#8217;avvio.</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">title &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Debian GNU/Linux, kernel <span class="nu0">2.6</span><span class="nu0">.29</span><span class="nu0">-1</span>-amd64<br />
root &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>hd0,<span class="nu0">1</span><span class="br0">&#41;</span><br />
kernel &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/boot/vmlinuz<span class="nu0">-2.6</span><span class="nu0">.29</span><span class="nu0">-1</span>-amd64 <span class="re2">root=</span>/dev/sda2 ro <br />
initrd &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/boot/initrd.img<span class="nu0">-2.6</span><span class="nu0">.29</span><span class="nu0">-1</span>-amd64</div>
</div>
<p>Definito il device di avvio con root, la stringa kernel identifica il percorso all&#8217;immagine del kernel da avviare, nonche&#8217; la partizione dove si trova.<br />
In fondo alla riga <em>kernel</em> possiamo aggiungere un parametro che forzi init ad iniziare dal programma che preferiamo:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">kernel &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/boot/vmlinuz<span class="nu0">-2.6</span><span class="nu0">.29</span><span class="nu0">-1</span>-amd64 <span class="re2">root=</span>/dev/sda2 ro <span class="re2">init=</span>/bin/bash</div>
</div>
<p>In questo modo il sistema si avvierà lanciando la console come primo processo e non richiedera&#8217; password all&#8217;avvio (sic).<br />
Per reimpostare la password di root è sufficiente utilizzare il comando <strong>passwd</strong>, ma le cose potrebbero non andare per il verso giusto poichè a quel livello la partizione è montata <em>read-only</em>.</p>
<p>Sarà quindi necessario rimontare la partizione di root con</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;"><span class="kw2">mount</span> -o remount,rw /</div>
</div>
<p>e poi cambiare la password.</p>
<p>Nel caso il bootloader fosse protetto, la modifica di GRUB non sarebbe possibile come ho descritto. In quel caso sarà comunque semplice aggirare l&#8217;ostacolo con un media di boot (chiavetta, floppy o cd che sia).</p>
<p>Se la password è messa a livello di bios, meglio resettare la scheda madre. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/10/13/breake-my-linux-sys/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cache drop</title>
		<link>http://www.simotrone.it/2009/10/06/cache-drop/</link>
		<comments>http://www.simotrone.it/2009/10/06/cache-drop/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 05:07:56 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[proc]]></category>
		<category><![CDATA[ram]]></category>
		<category><![CDATA[svuotare]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2299</guid>
		<description><![CDATA[Dal kernel 2.6.16 è possibile scachare la RAM dalle pagine di memoria diventate inutili semplicemente dando un comando numerico nei file in /proc/sys.
echo 3 > /proc/sys/vm/drop_caches
man proc

/proc/sys/vm/drop_caches &#40;since Linux 2.6.16&#41;
&#160; &#160; Writing to this file causes the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
&#160; &#160; To [...]]]></description>
			<content:encoded><![CDATA[<p>Dal kernel 2.6.16 è possibile <em>scachare</em> la RAM dalle pagine di memoria diventate inutili semplicemente dando un comando numerico nei file in /proc/sys.</p>
<blockquote><p><strong>echo 3 > /proc/sys/vm/drop_caches</strong></p></blockquote>
<p>man <a href="http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html">proc</a></p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">/proc/sys/vm/drop_caches <span class="br0">&#40;</span>since Linux <span class="nu0">2.6</span><span class="nu0">.16</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; Writing to this <span class="kw2">file</span> causes the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become <span class="kw2">free</span>.</p>
<p>&nbsp; &nbsp; To <span class="kw2">free</span> pagecache, use <span class="kw3">echo</span> <span class="nu0">1</span> &gt; /proc/sys/vm/drop_caches; <br />
&nbsp; &nbsp; to <span class="kw2">free</span> dentries and inodes, use <span class="kw3">echo</span> <span class="nu0">2</span> &gt; /proc/sys/vm/drop_caches;<br />
&nbsp; &nbsp; to <span class="kw2">free</span> pagecache, dentries and inodes, use <span class="kw3">echo</span> <span class="nu0">3</span> &gt; /proc/sys/vm/drop_caches.</p>
<p>&nbsp; &nbsp; Because this is a non-destructive operation and dirty objects are not freeable, the user should run <span class="kw2">sync</span><span class="br0">&#40;</span><span class="nu0">8</span><span class="br0">&#41;</span> first.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/10/06/cache-drop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wget</title>
		<link>http://www.simotrone.it/2009/09/15/wget/</link>
		<comments>http://www.simotrone.it/2009/09/15/wget/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 05:29:15 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[comandi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2222</guid>
		<description><![CDATA[Per avere i pacchetti della slackware 13.0.

# wget -r -b -nH &#8211;cut-dirs=4 -X isolinux,pasture,patches ftp://ftp.fu-berlin.de/unix/linux/mirrors/slackware/slackware-13.0/


-r
recursivo
-b
mette direttamente in background. Spamma un log su wget-log
-nH
non voglio una dir col nome dell&#8217;host
&#8211;cut-dirs=4
taglia i primi 4 livelli (unix, linux, mirrors, slackware)
-X isolinux
esclude una lista di argomenti separati da virgola

wget è una utility che consente di scaricare files (o gerarchie [...]]]></description>
			<content:encoded><![CDATA[<p>Per avere i pacchetti della <a href="ftp://ftp.fu-berlin.de/unix/linux/mirrors/slackware/slackware-13.0/">slackware 13.0</a>.</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;"><span class="re3"># <span class="kw2">wget</span> -r -b -nH &#8211;cut-<span class="re2">dirs=</span><span class="nu0">4</span> -X isolinux,pasture,patches <span class="kw2">ftp</span>://<span class="kw2">ftp</span>.fu-berlin.de/unix/linux/mirrors/slackware/slackware<span class="nu0">-13.0</span>/</span></div>
</div>
<dl>
<dt>-r</dt>
<dd>recursivo</dd>
<dt>-b</dt>
<dd>mette direttamente in background. Spamma un log su wget-log</dd>
<dt>-nH</dt>
<dd>non voglio una dir col nome dell&#8217;host</dd>
<dt>&#8211;cut-dirs=4</dt>
<dd>taglia i primi 4 livelli (unix, linux, mirrors, slackware)</dd>
<dt>-X isolinux</dt>
<dd>esclude una lista di argomenti separati da virgola</dd>
</dl>
<p><strong>wget</strong> è una utility che consente di scaricare files (o gerarchie di file) da riga di comando: un download rapido e comodo sui protocolli HTTP(S) e FTP; puo&#8217; funzionare in background e ha notevoli potenzialità spiegate nel man. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/09/15/wget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel e lilo</title>
		<link>http://www.simotrone.it/2009/09/08/kernel-e-lilo/</link>
		<comments>http://www.simotrone.it/2009/09/08/kernel-e-lilo/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 05:00:25 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[2.6.30]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[lilo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[make]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2204</guid>
		<description><![CDATA[Sto pistolando su un kernel per l&#8217;e3pc (così, per provare il nuovo 2.6.30).
Fra me è Sua Maestà il K non c&#8217;è ancora quello che definirei un ottimo rapporto, ma suppongo che alla lunga impareremo a conoscerci (o meglio, IO, umile padawan, troverò un modo per farmi capire a S.M.).
Ci sono un sacco di guide sul [...]]]></description>
			<content:encoded><![CDATA[<p>Sto pistolando su un kernel per l&#8217;e3pc (così, per provare il nuovo 2.6.30).<br />
Fra me è Sua Maestà il K non c&#8217;è ancora quello che definirei un ottimo rapporto, ma suppongo che alla lunga impareremo a conoscerci (o meglio, IO, umile padawan, troverò un modo per farmi capire a S.M.).</p>
<p>Ci sono un sacco di guide sul web, e come sempre tirare le somme in maniera organica non è banale.<br />
Una lista di comandi come segue SENZA spiegato che significa non ha senso (imho).</p>
<blockquote><p>make clean<br />
$ make dep<br />
$ make bzImage<br />
$ make modules<br />
# make modules_install</p></blockquote>
<p>Una scaletta un po&#8217; più seria (ma sicuramente da perfezionare):<br />
* prendete il kernel nuovo (<a href="http://www.kernel.org/">kernel.org</a>)</p>
<p>* mettete sotto <strong>/usr/src/</strong> e scompattate</p>
<p>* il kernel viene &#8220;partorito&#8221; da una compilazione con <strong># make</strong>. Make si appoggia ad un <strong>Makefile</strong> che si appoggia a sua volta ad un file testuale di configurazione (<strong>.config</strong> nella dir dove ci stanno i sorgenti).</p>
<p>* Si può cambiare qualche aspetto importante andando a modificare le variabili dentro il Makefile (quelle in stampatello all&#8217;inizio). Per esempio:</p>
<pre>VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 29
EXTRAVERSION = .1
NAME = Temporary Tasmanian Devil</pre>
<p>Modificare EXTRAVERSION può risultare molto utile, poichè in <strong>/lib/modules/</strong> vengono caricati i moduli necessari al kernel all&#8217;avvio, e la stringa che forma la dir concatena anche quel parametro (insomma, si possono tenere separati i vari moduli di versione in versione).</p>
<p>* L&#8217;operazione di configurazione del kernel è <strong>fondamentale</strong>, e io la realizzo con un comando: <strong>$ make menuconfig</strong><br />
NOTA: Io uso menu config perchè mi è comodo e usa le solite interfacce coloratine da terminale figlie di ncurses. Ovviamente esistono altre opzioni: dal più testuale config, ai grafici xconfig e gconfig (mai usati, ma sono certo siano esteticamente validi e ugualmente efficaci). Se si vuole caricare una configurazione vecchia (ie: esiste già un .config precedentemente redatto) si puo&#8217; usare il comando<strong> $ make oldconfig</strong>.<br />
NOTA2: Ci sono anche alcune opzioni per creare file .config con caratteristiche standard: <strong>$ make allnoconfig</strong>, <strong>$make allyesconfig</strong>, ecc. Per ulteriori info, leggere il README.</p>
<p>* Dopo aver create il .config, con <strong>$ make</strong> si compila il kernel vero e proprio (che comparirà magicamente sotto arch/x86/boot/bzImage .<br />
ATTENZIONE: basta scrivere $ make per ottenere ciò che in molte guide e&#8217; indicato come $ make dep, $ make bzImage, $ make modules. Insomma, il tutto si è evoluto, e non c&#8217;è più necessità di indicare che è necessario compilare le dipendenze (dep), l&#8217;immagine (bzImage, big compressed image) e i moduli; make già sa, e basta e avanza.<br />
NOTA: Se si vuole avere più output con make, si può dare il comando $ make V=1 (o 2).</p>
<p>* Se si è configurato il kernel in maniera monolitica (cioè all-in-one), si deve spostare il tutto sotto /boot e via. Nel caso si siano indicati dei moduli, bisogna compilarli. il comando è <strong># make modules_install</strong> e, come si evince facilmente, installa i moduli del kernel nel <em>filesystem</em> (sotto /lib/modules/linux-2.x.x.EXTRAVERSION-XXXX).</p>
<p>* Si potrebbe dare anche <strong>$ make install</strong> per installare il kernel compilato nel posto giusto, ma io non mi fido e lo copio a mano (ie: # cp /usr/src/linux-2.xx.xx/arch/x86/boot/bzImage /boot/kernel-2.xx.xx).<br />
NOTA: <strong>$ make install</strong> si basa su <strong>/sbin/installkernel</strong> che viene lanciato da arch/x86/boot/install.sh coi parametri estrapolati dallo script.</p>
<p><strong>system.map</strong> è una mappa di simboli utile al kernel che viene caricata all&#8217;avvio, ma <strong>non</strong> necessaria.</p>
<p>* Nel caso le cose vadano storte (e ci andranno, <em>of course</em>), è necessario ripulire i sorgenti appena compilati e tornare alla situazione iniziale. Soluzione stupida: cancellare tutto e scompattare l&#8217;archivio. Soluzione migliore: usare i comandi di make. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Come si legge nel Makefile:</p>
<pre># Cleaning is done on three levels.
# make clean     Delete most generated files
#                Leave enough to build external modules
# make mrproper  Delete the current configuration, and all generated files
# make distclean Remove editor backup files, patch leftover files and the like</pre>
<p>Di solito sono sufficienti i primi due: se si vuole tenere la configurazione, si lancia <strong>$ make clean</strong>; se si vuole cancellare tutto <strong>$ make mrproper</strong>.</p>
<p>In qualunque caso, ci vengono in aiuto il file README, il Makefile (si puo&#8217; leggere, davvero!) e <strong>$ make help</strong> (le info di cosa puo&#8217; fare il makefile, che forse è meglio che leggere il codice del Makefile. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ).<br />
Esiste anche la dir <strong>Documentation/</strong> che tiene tante di quelle info da uscirne scoppiati (cominciare dal file <strong>HOWTO</strong>).</p>
<p>Visto che ultimamente ho <em>smandruppato</em> con <a href="http://www.slackware.com">slackware</a> m&#8217;è toccato guardare un po&#8217; <strong>LILO</strong> (LInux LOader). Preferisco GRUB, ma vabbè.<br />
Dunque, lilo è l&#8217;altro (il primo) bootloader. A differenza di grub che si legge il file di configurazione <strong>menu.lst</strong> e questo gli basta, lilo necessita di un file di configurazione <strong>/etc/lilo.conf</strong> (che è molto semplice ed intuitivo da capire) e di una compilazione per essere a posto.<br />
La compilazione la si ottiene dando il comando <strong># lilo</strong>. Se si vuole fare un test (imho fondamentale), meglio postporre al comando il flag <strong>-t</strong>. Il flag <strong>-v</strong> aumenta la verbosità, ovviamente.</p>
<p>Un link da esplorare: <a href="http://kernelnewbies.org/">kernel niubbi</a>.</p>
<p>Robba (vecchia) da leggere:<br />
<a href="http://www.thomashertweck.de/kernel26i.html">Configurare, compilare e installare un kernel 2.6 per (open)SUSE Linux</a> di Thomas Hertweck (2006)<br />
<a href="http://www.pluto.it/files/ildp/HOWTO/KernelAnalysis-HOWTO/KernelAnalysis-HOWTO.html">KernelAnalysis-HOWTO</a> di Roberto Arcomano (2003)<br />
<a href="http://mirrors.kernel.org/LDP/HOWTO/Installation-HOWTO/">The Linux Installation HOWTO</a> di Eric Steven Raymond (2002)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/09/08/kernel-e-lilo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>top</title>
		<link>http://www.simotrone.it/2009/09/01/top/</link>
		<comments>http://www.simotrone.it/2009/09/01/top/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 05:00:56 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[comandi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[top]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2153</guid>
		<description><![CDATA[Il comando top ci fornisce una serie di informazioni sul sistema (uptime, uso della cpu, uso della memoria, ecc.).
Le prime righe di solito sono abbastanza chiare (uptime, load average, processi in corso). La terza fornisce info riguardanti i processi della CPU al momento: us per i processi avviati nello userspace, sy per quelli del sistema-kernel, [...]]]></description>
			<content:encoded><![CDATA[<p>Il comando <strong>top</strong> ci fornisce una serie di informazioni sul sistema (uptime, uso della cpu, uso della memoria, ecc.).</p>
<p>Le prime righe di solito sono abbastanza chiare (uptime, load average, processi in corso). La terza fornisce info riguardanti i processi della CPU al momento: <em>us</em> per i processi avviati nello userspace, <em>sy</em> per quelli del sistema-kernel, <em>id</em> indica il valore di &#8220;cazzeggio&#8221; della cpu &#8211; se è alto non è molto impiegata. Sui valori <em>wa</em> , <em>hi</em>, <em>si</em> e <em>st</em> attualmente preferisco non pronunciarmi, ma sono indici di interazione fra la cpu e (rispettivamente) il disco, l&#8217;hardware, il software, le virtualizzazioni; se sono bassi è meglio, se sono alti indicano problemi o iper-attività sui device.</p>
<style>dt {border-top: 1px dotted #666; border-left: 1px dotted #666; padding: 2px  0 0 3px; margin-top: 3px; font-weight: bold; background: #333;}
dd { border-left: 1px dotted #666; margin: 0; padding-left: 3em; background: #333; padding-bottom: 3px;}</style>
<p>La riga più significativa:</p>
<pre>PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND</pre>
<p>PID, USER, %CPU e COMMAND non li spiego. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<dl>
<dt>PR</dt>
<dd>Indica la priorità del processo &#8211; in termini di cicli di cpu. Un valore basso indica che il processo verrà buttato nella cpu più spesso.</dd>
<dt>NI</dt>
<dd>Valore di nice del processo. E&#8217; un modificatore di priorità.</dd>
<dt>VIRT</dt>
<dd>Quantità di memoria richiesta dal processo. (Grazie a questo si puo&#8217; verificare se è vero che firefox è pesante&#8230; si, lo è. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  )</dd>
<dt>RES</dt>
<dd>Memoria residente, cioè la memoria che il processo sta <span style="text-decoration: underline;">effettivamente</span> usando.</dd>
<dt>SHR</dt>
<dd>Memoria condivisa fra processi, magari poichè ci sono librerie in comune.</dd>
<dt>S</dt>
<dd>Come nella seconda riga di top, indica quali processi stanno andando, quali dormienti, ecc&#8230;</dd>
<dt>%MEM</dt>
<dd>Indica la percentuale di memoria che il processo ha occupato nell&#8217;ultimo ciclo.</dd>
<dt>TIME+</dt>
<dd>Indica la quantità di tempo totale di sfruttamento della CPU ha il processo.</dd>
</dl>
<p><strong>top</strong> modifica l&#8217;output in tempo reale e permette anche di modificarlo attraverso alcune <em>key</em>.</p>
<dl>
<dt>i</dt>
<dd>permette di visualizzare (o no) i processi in attesa (idle).</dd>
<dt>P</dt>
<dd>ordina i processi in funzione dell&#8217;uso della CPU.</dd>
<dt>M</dt>
<dd>ordina i processi in funzione dell&#8217;uso della memoria.</dd>
<dt>u</dt>
<dd>permette di visualizzare solo i processi di un determinato utente.</dd>
<dt>k</dt>
<dd>ci permette di killare un processo da top.</dd>
<dt>r</dt>
<dd>ci permette di ridefinire la priorità del processo (renice). (Cercherò di scrivere un post per spiegare nice e renice.)</dd>
<dt>n</dt>
<dd>per visualizzare un arbitrario numero di processi.</dd>
<dt>m</dt>
<dd>visualizzare (o no) la parte relativa alle memorie (mem e swap).</dd>
<dt>B</dt>
<dd>Potrebbe essere anche utile evidenziare le voci importanti.</dd>
<dt>s/d</dt>
<dd>Se la frequenza di aggiornamento non piace, si puo&#8217; definire il numero di secondi (non negativo, e 0 potrebbe non dare i risultati sperati).</dd>
<dt>W</dt>
<dd> Dopo aver impostato tutto, se volete salvare le vostre impostazioni. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (In /home/$user/.toprc)</dd>
</dl>
<p>Con <strong>man top</strong> si potranno vedere moltri altri comandi.</p>
<p>Un po&#8217; come nella quantistica, dove la misurazione altera il sistema misurato (principio di indeterminazione FTW), top è molto bello ma influenza il sistema (del resto si aggiorna in tempo reale, interrogando tutto e tutti di continuo); per questo esistono anche altri strumenti &#8220;statici&#8221; di controllo: <strong>ps</strong> per i processi, <strong>uptime</strong> per vedere dati sul sistema, <strong>free</strong> per la memoria.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/09/01/top/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unix filesystem</title>
		<link>http://www.simotrone.it/2009/08/23/unix-filesystem/</link>
		<comments>http://www.simotrone.it/2009/08/23/unix-filesystem/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 06:40:16 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2137</guid>
		<description><![CDATA[Il filesystem Unix è descritto in man hier.
Volendo ho trovato qualcosa anche qua.
In generale si parla di dati di 4 categorie (2 a coppie): condivisibili e non condivisibili, statici o variabili.
I dati nelle home o le configurazioni di solito sono non condivisibili (/home), gli eseguibili sono condivisibili. I comandi eseguibili sono intesi come statici (/bin), [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right" src="http://www.tldp.org/LDP/sag/html/fstree.png" alt="fhs" />Il filesystem Unix è descritto in <strong>man hier</strong>.<br />
Volendo ho trovato qualcosa anche <a href="http://www.pathname.com/fhs/">qua</a>.</p>
<p>In generale si parla di dati di 4 categorie (2 a coppie): <strong>condivisibili</strong> e <strong>non condivisibili</strong>, <strong>statici</strong> o <strong>variabili</strong>.<br />
I dati nelle <em>home</em> o le configurazioni di solito sono non condivisibili (<strong>/home</strong>), gli eseguibili sono condivisibili. I comandi eseguibili sono intesi come statici (<strong>/bin</strong>), i log come variabili (<strong>/var/mail</strong>).</p>
<p>Queste sottodirectory di root normalmente sono presenti:</p>
<pre>bin	Essential command binaries
boot	Static files of the boot loader
dev	Device files
etc	Host-specific system configuration
lib	Essential shared libraries and kernel modules
media	Mount point for removeable media
mnt	Mount point for mounting a filesystem temporarily
opt	Add-on application software packages
sbin	Essential system binaries
srv	Data for services provided by this system
tmp	Temporary files
usr	Secondary hierarchy
var	Variable data</pre>
<p><strong>/usr</strong> è indicato come un <em>filesystem</em> gerarchico secondario, perchè anche se è una <em>subdir</em> di <strong>/</strong>, ha una sua struttura che replica fedelmente quella del <em>parent</em>. Di norma i file in <strong>/usr</strong> sono condivisibili e <em>read-only</em>.</p>
<p><strong>/proc</strong> fornisce informazioni sul sistema ed è la parte del fs che contiene  le operazioni del kernel (quindi non c&#8217;entra niente con quel che c&#8217;è nell&#8217;hdd).</p>
<pre>sim@idrogeno:~$ ls /proc
1      2      2426  2900  3100   7328       cmdline      mtrr
10     2016   257   2902  31014  7329       config.gz    net
11     2109   2574  2930  351    7330       cpuinfo      pagetypeinfo
1111   2110   258   2931  354    7331       devices      partitions
1399   2133   259   2933  366    7332       diskstats    scsi
15364  21816  260   2936  369    7336       dma          self
1578   21817  261   2938  390    7560       driver       slabinfo
1579   21818  2624  2939  4      7569       execdomains  stat
1587   21819  2638  2940  418    7573       filesystems  swaps
16320  21820  2669  2942  5      7698       fs           sys
16365  22295  2682  2943  514    7813       ide          sysvipc
18215  2277   2683  2944  6      7887       interrupts   timer_list
183    2279   2684  2945  6699   8          iomem        tty
184    2280   2685  2949  6909   8090       ioports      uptime
185    2281   2686  2958  6918   86         irq          version
186    2282   2687  2970  6979   87         kallsyms     vmallocinfo
1886   2302   2698  2974  6980   88         kmsg         vmstat
1895   2309   2709  2995  7      8889       kpagecount   zoneinfo
1904   23686  2715  2997  7049   89         kpageflags
191    2385   2716  3     7070   9          loadavg
1914   23956  2744  3019  7079   9005       locks
1925   2399   2857  3040  7324   acpi       meminfo
1926   2409   2860  3041  7325   asound     misc
194    24186  2861  3060  7326   buddyinfo  modules
1943   24191  2899  3098  7327   bus        mounts</pre>
<p>Le directory coi numeri danno informazioni riguardo i processi (il numero rappresenta il pid), e contengono al loro interno informazioni come il comando dato per lanciare il processo, i settori di memoria riservati, le variabili di sistema a disposizione, ecc.</p>
<p>Altri come <strong>/proc/cpuinfo</strong>, <strong>/proc/devices</strong> (e version, uptime, ecc.) si spiegano da soli.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/08/23/unix-filesystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filename space problem</title>
		<link>http://www.simotrone.it/2009/08/18/filename-space-problem/</link>
		<comments>http://www.simotrone.it/2009/08/18/filename-space-problem/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 17:23:26 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[filename space]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2097</guid>
		<description><![CDATA[Oggi mi sono ritrovato dinnanzi ad una situazione molto curiosa: utenti che visualizzavano file (o meglio i loro nomi) attraverso l&#8217;interfaccia grafica avevano un elenco di caratteri alfanumerici praticamente a caso, mentre guardando i file attraverso terminale le cose parevano sensate&#8230;
Sensate fino ad un certo punto: i nomi dei file contenevano un bellissimo asterisco che [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi mi sono ritrovato dinnanzi ad una situazione molto curiosa: utenti che visualizzavano file (o meglio i loro nomi) attraverso l&#8217;interfaccia grafica avevano un elenco di caratteri alfanumerici praticamente a caso, mentre guardando i file attraverso terminale le cose parevano sensate&#8230;<br />
Sensate fino ad un certo punto: i nomi dei file contenevano un bellissimo asterisco che via terminale veniva escapato (<strong>\*</strong>) ma visualizzato con un filesystem manager grafico pareva mandare le cose a ramengo (es: CMDJER~1.EPS).</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">yyyy@box:~/aaaa/yyyy$ <span class="kw2">ls</span><br />
xxx.<span class="kw2">tar</span>.gz &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;zzzz_fig5*.eps &nbsp;yyyy.dvi &nbsp;fig1*.eps<br />
zzzz_fig11*.eps &nbsp;zzzz_fig6*.eps &nbsp;yyyy.log &nbsp;fig2*.eps<br />
zzzz_fig13*.eps &nbsp;zzzz_fig7*.eps &nbsp;yyyy.pdf &nbsp;fig3*.eps<br />
zzzz_fig15*.eps &nbsp;zzzz_fig8*.EPS &nbsp;yyyy.tex<br />
zzzz_fig4*.eps &nbsp; yyyy.aux &nbsp; &nbsp; &nbsp; &nbsp; fig12*.eps</div>
</div>
<p>Whypecché?</p>
<p>Il punto chiave è che l&#8217;interfaccia grafica visualizzava i filename attraverso <a href="http://us6.samba.org/samba/">samba</a>, che per essere sicuro di non danneggiare nessuno (ie: Win), cambiava i filename in qualcosa di non contenente wildcard o altre stranezze.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/08/18/filename-space-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian su USB</title>
		<link>http://www.simotrone.it/2009/05/31/debian-su-usb/</link>
		<comments>http://www.simotrone.it/2009/05/31/debian-su-usb/#comments</comments>
		<pubDate>Sun, 31 May 2009 06:53:09 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[recovery]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=1910</guid>
		<description><![CDATA[Se c&#8217;è una cosa grandiosa delle chiavette USB, è che possono tenere un sacco di cose importanti, ed essere estremamente portatili.
Credo che una delle cose più ganze, sia poter girare con il proprio OS a portata di mano.
Per gli utenti che non vogliono chiedere mai e che hanno una chiavetta USB a disposizione:

scaricate l&#8217;immagine della [...]]]></description>
			<content:encoded><![CDATA[<p>Se c&#8217;è una cosa grandiosa delle chiavette USB, è che possono tenere un sacco di cose importanti, ed essere estremamente portatili.<br />
Credo che una delle cose più ganze, sia poter girare con il proprio OS a portata di mano.<br />
Per gli utenti che non vogliono chiedere mai e che hanno una chiavetta USB a disposizione:</p>
<ul>
<li>scaricate l&#8217;immagine della distro debian (5.0) con il DE che preferite da <a href="http://cdimage.debian.org/cdimage/release/current-live/">qui</a> (io sono andato sulla i386, usb-hdd, xfce).</li>
<li>copiate su una chiavetta con $ dd if=immagine_debian_live.img of=/dev /chiavetta /usb<br />
Attenzione: copiate sul device della chiavetta, non su quella della partizione (ie: /dev/sdc, non /dev/sdc1)</li>
<li>Inserite la chiavetta in una porta usb e riavviate il pc, facendo il boot dalla chiavetta (ie: F8 per avere il menu di boot).</li>
</ul>
<p>Facile e utile. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/05/31/debian-su-usb/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Kernel + iptables</title>
		<link>http://www.simotrone.it/2009/05/04/kernel-iptables/</link>
		<comments>http://www.simotrone.it/2009/05/04/kernel-iptables/#comments</comments>
		<pubDate>Mon, 04 May 2009 06:25:12 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=1843</guid>
		<description><![CDATA[Dopo aver ricompilato il kernel di H avevo qualche problema a far girare iptables come volevo.
Essenzialmente Sua Maestà il K non mi prendeva la (fondamentale) riga che gestisce le connessioni già attive.
$IPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Poiché il firewall è in effetti gestito a livello di kernel, e l&#8217;errore era [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo aver ricompilato il kernel di H avevo qualche problema a far girare <strong>iptables</strong> come volevo.</p>
<p>Essenzialmente Sua Maestà il K non mi prendeva la (fondamentale) riga che gestisce le connessioni già attive.</p>
<pre>$IPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT</pre>
<p>Poiché il firewall è in effetti gestito a livello di kernel, e l&#8217;errore era su uno stato specifico (<strong>-m state</strong>) era chiaro che m&#8217;ero dimenticato di includere un modulo&#8230; sic.</p>
<p>La prossima volta, meglio ricordarsi di inserire lo <strong>state match support</strong> sotto <strong>Core Netfilter Configuration</strong> (<strong>CONFIG_NETFILTER_XT_MATCH_STATE</strong>).<br />
<span id="more-1843"></span><br />
La diff fra le due configurazioni (ho aggiunto un paio di altre cose, in effetti):</p>
<pre>&lt;pre&gt;idrogeno:/boot# diff config-2.6.29-H-090430 /usr/src/linux/.config
4c4
&lt; # Thu Apr 30 21:03:34 2009
---
&gt; # Sun May  3 14:15:51 2009
62c62
&lt; CONFIG_LOCALVERSION="-H-090430-02"
---
&gt; CONFIG_LOCALVERSION="-H-090430-04"
436c436
&lt; # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_COMMENT=m
445,446c445,446
&lt; # CONFIG_NETFILTER_XT_MATCH_HELPER is not set
&lt; # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_HELPER=m
&gt; CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
459c459
&lt; # CONFIG_NETFILTER_XT_MATCH_STATE is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_STATE=m
463c463
&lt; # CONFIG_NETFILTER_XT_MATCH_TIME is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_TIME=m</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/05/04/kernel-iptables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
