Cerca nel blog

Visualizzazione post con etichetta Sistema Operativo. Mostra tutti i post
Visualizzazione post con etichetta Sistema Operativo. Mostra tutti i post

martedì 5 ottobre 2010

Ubuntu, cosa bolle in pentola


Pochi giorni prima del lancio ufficiale di Ubuntu 10.10, atteso per domenica prossima, la Canonical di Mark Shuttleworth rende disponibile per il download anche una Release Candidate con caratteristiche da versione finale. Chi aveva già scaricato la beta uscita all'inizio di settembre può passare direttamente a questa installazione, con un semplice aggiornamento.
La nuova release dell'OS libero e gratuito basato su GNU/Linux (nome in codice "Maverick Meerkat") è un misto tra correzioni, modifiche e miglioramenti. L'applet Sound Indicator integra ad esempio i controlli per il player musicale. Gwibber, il client di micro-blogging, supporta finalmente il nuovo sistema di autenticazione usato da Twitter. Il client mail Evolution passa alla versione 2.30.2 mentre il performante Shotwell diventa il visualizzatore e l'editor di immagini predefinito, al posto dello storico F-Spot scritto in C#. La Release Candidate si presenta poi con l'ultima versione dell'ambiente desktop GNOME 2.32.0 con API gsettings e dconf. I pacchetti kernel sono stati invece aggiornati alla versione 2.6.35-22.23.
Molte delle feature introdotte in quella che sarà la tredicesima release completa di Ubuntu lasciano intendere che nel prossimo futuro potrebbero fare la loro comparsa anche dei tablet equipaggiati con questo OS. Tanto per cominciare, il sistema operativo ora supporta pienamente il touchscreen multitouch, in linea con Windows 7 e Mac OS X. Oltretutto, la nuova interfaccia utente Unity dedicata all'installazione netbook rielabora la grafica dei menù in modo intelligente, proprio per sfruttare al meglio i display di piccole dimensioni. Nel frattempo, Canonical ha anche avviato la fase di Beta test di Ubuntu One Music per Google Android. Applicazione che permette la riproduzione in streaming di qualsiasi MP3 associato all'account Ubuntu One e caricato nei 2GB di spazio libero. Il nuovo servizio di audio streaming (gratuito, per un limitato periodo di tempo) è al momento disponibile solo per smartphone e cellulari equipaggiati con Android, non supporta altri formati audio e non include la possibilità di creare una playlist. Nei prossimi aggiornamenti si parla però di caratteristiche "potenziate" e di una versione speciale, tutta dedicata ad iPhone.

venerdì 23 luglio 2010

File e Directory in Linux

I file possono avere un nome costituito da caratteri alfabetici, di sottolineatura o numerici, possono includere punti e virgola. Tuttavia il nome di un file non può iniziare con un punto se non in casi particolari. la lunghezza massima di un nome può essere di 256 caratteri. Linux organizza i file in un insieme di directory in modo gerarchico. Una directory a sua volta può contenere files o altre directory. Una struttura di questo tipo di solito viene definita struttura ad albero.






Comandi di visualizzazione dei file
Per visualizzare il contenuto di un file si utilizzano i comandi cat e more.
Il comando cat visualizza in una sola volta tutto il contenuto del file anche se questo non è possibile visualizzarlo interamente nella finesta di shell. Oltrettuto nel momento in cui il contenuto del file viene visualizzato questo scorre velocemente a schermo rendendo impossibile la lettura. Per ovviare a questi spiacevili inconvenienti è stato pensato il comando more. Il comando more visualizza il file non tutto insieme ma a poco alla volta chiedendoci di premere il tasto " f " o la BARRA SPAZIATRICE per visualizzare la parte successiva del file. Inoltre con è possibile rivedere parti del file già visualizzate premendo il tasto " b " e per uscire dalla visualizzazione del file prima che esso sia finito si può premere il tasto " q ".

Esempio: 
   joaquin@joaquin-laptop:~$ more /media/hda5/architetture\ software.odt


Comandi di stampa
Per mandare in stampa un file alla stampante collegata al sistema si utilizza il comando lpr seguito dal path del file da stampare, mentre per annullare la stampa di un file basta utilizzare il comando lprm seguito dal file da annullare.
Esempio:
   joaquin@joaquin-laptop:~$ lpr /media/hda5/architetture\ software.odt (manda in stampa il file)
   joaquin@joaquin-laptop:~$ lprm /media/hda5/architetture\ software.odt (annulla la stampa del file)
I processi di stampa vengono inseriti in una coda e vengono stampati uno alla volta in background, quindi durante la stampa è possibile continuare altre attività. Con il comando lpq è possibile visualizzare tutti i job in coda, il proprietario di un job di stampa, l'identificativo del job di stampa, la dimensione in byte e il file temporaneo a cui fa riferimento il job di stampa. 


Comandi per la gestione delle directory
Per creare una directory si utilizza il comando mkdir per eliminarne una il comando è rmdir, mentre per cambiare la directory di lavoro si utilizza il comando cd tutti questi comandi accettano come argomento il percorso della directory.

Comandi per gestire i file
Quando il numero dei file memorizzati diventano molti diventa difficiel ricordarsi in che punto del filesystem un determinato file sia memorizzato, quindi Linux mette a disposizione alcuni comandi molto utili per la gestione dei file. I comandi di cui stiamo parlando sono i comandi per ricercare,copiare rinominare e cancellare un file. Il comando cp permette di copiare i file, il comando mv che rinomina o sposta il file, il comando rm che cancella un file infine il comando ln che aggiunge un nuovo nome al file. In pratica aggiungere un nuovo nome ad un file permette ad un file di avere più nomi, questo permette di accedere a un file da un'altra directory, i nomi aggiunti vengono detti link. Esistono due tipi di link: fisici e simbolici.
Per ricercare un file si ha a disposizione il comando find, questo comando accetta come argomento uno o più nomi di directory seguiti da opzioni che specificano il tipo e i criteri della ricerca, la ricerca di un file avviene nelle direcotory elencate e nelle subdirectory. Il comando find può eseguire anche ricerche sulla base del nome, del tipo, del proprietario e della data dell'ultimo aggiornamento.

Permessi di accesso ai file
In Linux ogni file e directory ha i proprio permessi di accesso che specificano quali utenti possono accedere al file e in che modalità. Si può permettere l'accesso ai file a tre tipi di categorie di utenti:

  1. Il proprietario
  2. Il gruppo
  3. Tutti gli "altri"

Per file e directory è possibile definire i permessi di:
  • Scrittura
  • Lettura
  • Esecuzione

Per ognuna delle categorie di utenti prima specificate vi sono permessi di scrittura, lettura ed esecuzione distinti che controllano la modalità di accesso da parte del proprietario, del gruppo e di tutti gli "altri utenti".



Facendo riferimento all'immagine precedente si può notare che:
  • Il primo carattere è " - " questo perchè è un file comune in caso di directory avremmo trovato il carattere " d "
  • Per i permessi del proprietario leggiamo i primi tre carattere subito dopo il carattere che ci indica se il file è una directory oppure no. Come si può vedere il proprietario ha accesso in lettura(r), in scrittura(w) e in esecuzione(x).
  • Per la modalità di accesso del gruppo facciamo riferimento ai tre caratteri subito dopo quelli relativi al proprietario. Anche il gruppo ha modalità di accesso in lettura,scrittura ed esecuzione.
  • Gli ultimi tre caratteri indicano la modalità di accesso per tutti gli altri utenti del sistema. Per questo file i restanti utenti non hanno nessun permesso di accesso.

Per modificare la configurazione dei permessi si deve utilizzare il comando chmod.

Comandi per l'archiviazione dei file
Il comando o come molto più spesso viene indicato programma di servizio tar crea degli archivi contenenti file e directory. Il comando tar viene utilizzato per creare archivi su i vari dispositivi o file. Si può chiedere al comando tar di creare un archivio su un dispositivo utilizzando l'opzione f e il nome del ispositivo o file. La signature del comando può essere questa:

tar -opzioni f nome_archivio.tar directory_e_file

opzione descrizione
c crea un archivio
vvisualizza l'esecuzione del comando sulla shell
xestrae un archivio ricostruendo l'albero delle directory
dtrova le differenze tra due archivi
raggiunge un file all'archivio

ci sono molte altre opzioni per conoscerle tutte basta utilizzare il comando man tar.   

martedì 13 luglio 2010

Linux file system proc

Il process file system di Linux comunemente noto come filesystem /proc, è un filesystem particolare che il sistema genera nella memoria, di conseguenza non è scritto sul disco e viene generato ogni volta che il sistema viene avviato. Questo filesystem offre delle informazioni riguardanti il sistema, quindi i file /proc si possono considerare a tutti gli effetti interfacce con il kernel. Le subdirectory e file /proc sono elencati nella tabella sottostante:

File Descrizione
/proc/#num Una directory per ogni processo in esecuzione sul sistema, per esempio il processo con identificativo 1(processo init) è rappresentato da /proc/1.
/proc/cpuinfo Offre informazioni sulla CPU:tipo,modello, marca ed prestazioni.
/proc/devices Elenco dei driver configurati per il Kernel, in esecuzione in quel momento.
/proc/dma Visualizza i canali DMA.
/proc/filesystem Filesystem configurati nel Kernel.
/proc/interrupts Visualizza gli interrupts in uso.
/proc/ioports Mostra le porte di I/O in uso.
/proc/kcore Immagine della memoria fisica.
/proc/kmsg Messaggi generati dal kernel.
/proc/ksyms Tabella dei simboli per il kernel.
/proc/loadavg Visualizza il carico del sistema.
/proc/meminfo Informazioni sull'utilizzo della memoria.
/proc/modules Elenca i moduli del kernel caricati.
/proc/net Restituisce informazioni sullo stato dei protocolli di rete.
/proc/stat Statistiche operative sul sistema.
/proc/uptime Periodo di attività del sistema.
/pric/version Restituisce la verisone del kernel utilizzata.

Questo filesystem come si può capire è molto utile, infatti permette a programmi di accedere a informazioni sul sistema leggendo semplicemente dei file. Un esempio classico è il comando ps che elenca tutti i processi in esecuzione sul sistema. Ecco alcuni esempi.
La versione del mio kernel:

Informazioni sulla CPU che sto utilizzando:

venerdì 9 luglio 2010

Tree Directory Linux

L'albero delle directory di Linux si presenta molto diverso da quello di Windows. Una delle differenze sostanziali tra Windows e Linux, è che Windows utilizza una directory per ogni programma che istalliamo, mentre Linux presenta un albero di directory(tree directory) molto più complesso. L'albero delle directory può essere diviso in più parti, ognuna delle quali puù risiedere sulla sua partizione del disco. Questa suddivisione aggevola l'utente nelle operazioni di backup e nell'amministrazione, inoltre questa struttura è molto utile in una rete di PC Linux, che condividono delle parti del filesystem su dispositivi a solo lettura.


L'albero di directory Linux si presenta nel seguente modo:

/
+---bin
+---boot
+---etc
+---home
+---+---users1
+---Desktop
+---+---users2
+---+---users3
+---Desktop
+---+---users_n
+---proc
+---sys
+---usr
+---lib
+---dev
+---var
+---media
+---sbin
+---mnt
+---opt

/ è la directory principale.
/bin contiene i programmi di base per interagire con il sistema operativo. Per intenderci sono i comandi che digitiamo sulla shell.
/boot contiene i file per la fase di boot del sistema.
/etc contiene i file di configurazione del sistema, e sono specifici per ogni sistema.
/home è la directory home di ogni utente eistente nel sistema. ad esempio sul mio sistema esiste una directory /home/joaquin .
/proc è una dirctory virtuale o meglio è un filesystem virtuale per ottenere informazioni sul sistema. Per esempio prvate a dare il seguente comando da shell cat /proc/cpuinfo per ottenere tutte le info sulla vostra cpu, oppure il comando cat /proc/version per controllare la versione del kernel Linux che utilizzate.
/sys è una directory virtuale per estrarre informazioni del sistema.
/usr è definita da molti una gerarchia secondaria. In effetti essa contiene molte directory come quelle presenti nella radice principale. questa directory contiene tutti i programmi utenti, le librerie, e la docuemntazione
/lib contiene le librerie e i moduli fondamentali per il fuzionamento del sistema alcune di queste librerie sono anche condivise da più software.
/dev contiene i file dei dispositivi.
/var dati variabili
/media è il punto di montaggio per i dispositivi mobili.
/sbin contiene file binari essenziali per il sistema.
/mnt punto di montaggio per file system temporane.
/opt pacchetti e software opzionali.

mercoledì 7 luglio 2010

Permessi in Linux

Linux, adotta un file system ad albero gerarchico, quindi per far riferimento ad un file o una directory non basta specificare
solo il nome del file o della direcory ma bisogna specificare tutto il percorso dalla root(il Linux indicata con "/") fino al file o directory desiderata in modo da attraversare l'albero
dalla radice al nodo desiderato.
Questa struttura ad albero può crescere creando nuove directory.
I file possono avere un nome costituito da caratteri alfabetici, di sottolineatura o numerici, possono includere punti e virgola. Tuttavia il nome di un file non può iniziare con un punto se non in casi particolari. La lunghezza massima di un nome può essere di 256 caratteri.




Elenchiamo adesso alcuni comandi utili per i files:
ComandoDescrizioneEsempio
catUtile per visualizzare il contenuto di un file a video.Si possono avere problemi nel visualizzare tutto il file visto che l'output scorre veloce sulla shell.cat info.txt
moreQuesto comando è stato realizzato per eliminare i problemi del comando cat. Infatti more permette di navigare l'output del file visualizzato sulla shell. Infatti il comando more visualizza l'output poco alla volta e per andare avanti nella visualizzazione basta premere la BARRA SPAZIATRICE per rileggere parti del file già visualizzare sulla shell bisogna digitare il tasto "b", metre per uscire dalla visualizzazione premere il tasto "Q".more info.txt
lprPermette di mandare in stampa un file sulla stampante connessa al sistema.lpr info.txt
lpqVisualizza tutti gli job di stampa con i relativi proprietari le dimensioni in byte e il file temporaneo cui fa riferimento il job di stampa.lpq
lprmAnnulla un jod di stampa. Il comando lprm accetta come argomento l'identificativo del jod da annullare oppure il nome del proprietario.lprm 00045
oppure
lprm joaquin
mkdirPermette di creare una nuova directory. Accetta come argomento il percorso di una directory.mkdir prova
rmdirQuesto comando permette di eliminare una directory. Accetta come argomento il percorso di una directory.rmdir prova
cdPermette di cambiare la directory di lavoro. Accetta come argomento il percorso di una directory.cd ..
mvPermette di rinominare o spostare un file. Accetta come argomento il percorso di un file.mv prova.txt pippo.txt
rmPermette di cancellare un file. Accetta come argomento il percorso di un file.rm pippo.txt
lnPermette di creare un collegamento(link) ad un file. Accetta come parametro il percorso di un file e il file di link.ln pippo.txt link.txt
pwdVisualizza il percorso assoluto della directory di lavoro.pwd
findEsegue la ricerca di un file. Accetta un elenco delle directory dove ricercare il file e delle opzioni come -name che specifica il nome del file da cercare.find -name pippo.txt
N.B.:Ognuno dei comandi elencati ha delle opzioni che possono essere utilizzate. Utilizzare il comando man per un elenco delle opzioni di ogni comando.

In Linux ad ogni file e directory è associata una serie di permessi che garantiscono la modalità di accesso.
È possibile gestire la modalità di accesso a se stessi cioè al proprietario del file, ai membri di un gruppo oppure a tutti gli utenti  del sistema.
Quindi per file e directory è possibile definire permessi in scrittura, lettura ed esecuzione per il proprietario del file, per il gruppo e per tutti gli utenti del sistema.
Alla creazione di un file vengono automaticamente assegnato i permessi in lettura e scrittura per il proprietario.
In Linux si possono distinguere tre categorie di utenti:
il proprietario, il gruppo, gli "altri". Per ognuna di queste categorie si possono impostare permessi di lettura, scrittura ed esecuzione distinti che controllano l'accesso da parte del proprietario, del gruppo di lavoro e tutti gli altri utenti del sistema.
Vediamo ora come impostare i permessi per ognuna delle tre categorie.
Allora abbiamo come già detto permessi in lettura, scrittura ed eecuzione per ognuna delle tre categorie individuate da Linux, quindi per un totale di nove permessi da impostare.


Prima di dire come impostare i permessi vediamo prima come leggere i permessi di un file.


Come si può vedere dall'immagine il primo carattere di ogni riga relativa ai file è "-" questo significa che è un file comune se invece il primo carattere è una "d" significa che la riga fa riferimento ai permessi di una directory.
Il carattere "-" non è utilizzato solo come indicatore di file comune, ma se è presente in una posizione che non sia la prima indica che la rispettiva categoria non ha il relativo permesso sul file o sulla directory.
Per indicare che una categoria ha il permesso in lettura viene visualizzato nella giusta pisizione il carattere "r", per il permesso di scrittura nella giusta posizione è visualizzata la lettere "w" mentre per il permesso di esecuzione viene visualizzata la lettera "x".
Dall'immagine si può osservare che il proprietario dei file ha tutti i tre i permessi infatti i permessi per il proprietario sono i primi tre caratteri immediatamente subito dopo quello che indica se il file è una directory o un file comune. Le tre successive posizioni indicano i permessi che il gruppo di lavoro
ha sul file o directory. Infine le ultime tre posizioni indicano i permessi che tutti gli altri utenti del sistema hanno sul file o sulla directory.

Se si guarda l'immagine e si localizza la linea che indica il secondo file si può notare che si tratta di un file comune(il primo carattere è "-") si nota che il proprietario ha i permessi in lettura scrittura ed esecuzione ( sono presenti i caratteri di "rwx") i permessi per il gruppo di lavoro
sono lettura ed esecuzione (infatti la sequenza dei caratteri è "r-x"), mentre tutti gli altri utenti del sistema hanno il permesso in lettura, scrittuara ed esecuzione (la sequenza dei caratteri è "rwx"). La linea che individua il terzo file ha una sola differenza dai permessi indicati per il secondo file e cioè tutti gli altri utenti del sistema hanno il solo permesso in lettura infatti
la sequenza dei caratteri è "r--".
Quindi la stuttura dei permessi è del seguente tipo
12345678910
"-" or "d""-" or "r""-" or "w""-" or "x""-" or "r""-" or "w""-" or "x""-" or "r""-" or "w""-" or "x"

La posizione 1 può avere il carettere "-" o "d" rispettivamente se il file è un file comune o una directory.
Le posizioni 2 3 e 4 indicano rispettivamente il permesso in lettura scrittura o esecuzione per il proprietario del file.Le posizioni 5 6 e 7 indicano rispettivamente il permesso in lettura scrittura o esecuzione per il gruppo di lavoro. Le posizioni 8 9 e 10 indicano rispettivamente il permesso in lettura scrittura o esecuzione per gli "altri" utenti del sistema.
Per cambiare la configurazione dei permessi si deve utilizzare il comando chmod. Tale comando accetta come argomenti due elenchi un elenco per la configurazione dei permessi ed un elenco di nomi dei file.
L'elenco dei permessi può essere specificato utilizzando un metodo simbolico che utilizza le lettere "r", "w" e "x" oppure utilizzare una maschera binaria.
Un esempio può essere: chmod +x-w pippo.txt il comando precedente aggiunge il permesso in esecuzione e toglie il permesso in scrittura.
Il metodo della maschera binaria invece per configurare i parametri utilizza una sequenza di tre numeri in formato ottale per specificare i permessi per ognuna delle tre categorie. Ogni numero ottale corrisponde ad un numero binario di tre cifre. Un numero binario quindi è composto da una sequenza di 1 e 0 per un numero massimo di tre ed ogni cifra può essere 0 oppure 1 rispettivamente se il permesso si vuole concedere oppure no. Quindi se voglio che un file sia leggibile modificabile ed eseguibile per il proprietario e solo in lettura per il gruppo e per gli altri utenti del sistema la sequenza binaria sarebbe: 111(permessi proprietario)100(permessi gruppo)100(permessi altri) trasformando le sequenze di tre cifre binarie in ottale si ha 744 quindi il comando chmod sarà chmod 744 pippo.txt.

martedì 6 luglio 2010

Cron


Nei sistemi Unix e nei sistemi Linux di consegueza è un potente strumento per la pianificazione
delle operazioni da eseguire in determinati istanti che può non essere nell'immediato, oppure per eseguire operazioni ad intervalli di tempo regolari.
Lo strumento di cui staimo parlando è cron. Il comando crontab consente lo scheduling di comandi e/o operazioni, cioè registra i comandi presso il sistema operativo
affinchè siano mandati in esecuzione nell'istante di tempo specificato. Il crontab è un semplice file di testo contenente appunto i comandi registrati presso il sistema.
Per eseguire i comandi registrati presso il sistema, in background gira un demone chiamato cron che elabora il file crontab ed esegue i comandi in background nel sistema, un comando mandato in esecuzione da cron è detto cronjob.
Entriamo in dettaglio:i files crontab contengono la lista dei job che il demone elabora e decide se un comando deve essere mandato in esecuzione.
Ecco come si presenta un crontab lanciato con il comando crontab -e:
Come si può vedere dall'immagine abbiamo una prima riga che è composta nel modo seguente:

# m h dom mom dow command

I primi cinque campi permettono di specificare la frequenza con cui eseguire il sesto campo cioè il campo in cui è specificato il comando da eseguire.
Vediamo in dettaglio ogni campo cosa indica e che valori può assumere:

CampoCosa indica e range di valori
mminuti (0-59)
hore (0-23)
domgiorno del mese (1-31)
mommese (1-12)
dowgiorno della settimana (0 - 7) (domenica = 0 oppure 7)
commandcomando da eseguire


Ogni campo può specificare valori multipli utilizzando alcuni operatori, gli operatori sono:

OperatoreCosa specificaEsempio
operatore ','permette di specificare una sequenza di valori1,5,7,8
operatore '-'permette di specificare un'intervallo di valori13-20
operatore '*'permette di specificare tutti i possibili valori per un campo
operatore '/' (supportato solo da alcune estensioni del demone)permette di saltare un certo numero di valorise nel campo ora specifichiamo "*/4" indicherà i valori "0,4,8,12,16,20"


Vediamo ora qualche esempio di comando:
mhdommomdowcommand
0803***rm -r /home/joaquin/prova/
il comando specifica che alle ore 03:08 di notte di ogni giorno dell'anno si vuole svuotare il contenuto della directroy prova.

Se invece volessimo far eseguire lo stesso comando tutti i giorni ogni due ore:
mhdommomdowcommand
**/2***rm -r /home/joaquin/prova/

Se vogliamo che il comando venga eseguito alle ora 17:00 dal 4 al 15 maggio ma anche il lunedì allora il comando dovrà essere:
mhdommomdowcommand
0174-1551rm -r /home/joaquin/prova/

È possibile specificare di voler eseguire può comandi utilizzando l'opertore ; nel campo comand
mhdommomdowcommand
[0-59][0-23][1-31][1-12][0-7]comando_1;comando_2;comando_3

mentre se vogliamo eseguire un comando solo se un primo comando va a buon fine allora dovremmo usare l'operatore && e la sintassi è la seguente:
mhdommomdowcommand
[0-59][0-23][1-31][1-12][0-7]comando_1 && comando_2


Diamo ora un'occhiata alle opzioni con cui il comando cronotab
ComandoopzioneCosa indica
crontab-epermette di modificare il crontab corrente
crontab-lpermette di visualizzare il crontab corrente nell'output standard
crontab-rpermette di rimuovere il crontab corrente