Unix

3.4264305177118 (734)
Inviato da nono 19/03/2009 @ 05:15

Tags : unix, sistemi operativi, computer, high tech

ultime notizie
Non solo Apache, uno sguardo a come sta cambiando il mondo dei ... - HostingTalk
Se è vero che i due server web più diffusi sono senza dubbio Apache e IIS, rispettivamente il primo nato per i sistemi operativi Unix-like e il secondo nativo di casa Microsoft, è anche vero che in giro ci sono ormai alternative che non passano più...
Nella consulenza tecnologia: personale qualificato per BizPower - Lavoratorio.it
Esperty media ed utility, analisti programmatori Datastage Parallel 7.5, sistemisti Unix/Linus, analisti programmatori .Net, programmatori Java e J2EE, analisti programmatori Java, esperti di sicurezza informatica e programmatori Asp .Net: BizPower,...
USA Vs China, corsa agli armamenti digitali - Tom's Hardware Guide
È in linea con gli standard UNIX, e compatibile con Linux, e ci sono diversi fogli di documentazione disponibili, a riguardo. Certo, ha anche delle funzioni di sicurezza, come tutti i sistemi operativi, ma non si vede perché dovrebbe rappresentare un...
I Diritti dell'Imputato - Punto Informatico
Questo vuol dire che non deve eseguire nessun comando, nemmeno lo shutdown (anche perché lo shutdown potrebbe essere collegato, come avviene su molti sistemi Unix, ad una procedura di "ripulitura" che cancellerebbe gran parte delle tracce)....
Un breve tutorial su AWK: introduzione (1/4) - Programmazione.it
Molto spesso chi si affaccia al mondo UNIX/Linux trova molte difficoltà a comprendere la potenza della riga di comando, preferendo le comodità dell'interfaccia grafica. Una volta assimilati i principi ei comandi di base però nasce la necessità di poter...
Linux assaggia Silverlight 2 - Punto Informatico
Gli sviluppatori di Moonlight sostengono che è possibile creare applicazioni Silverlight sulle piattaforme Linux/Unix utilizzando il Silverlight UNIX SDK. Per fare ciò è necessario Mono 2.4, ossia l'implementazione più recente del MS.NET Framework....
FreeBSD 7 alla terza release - Punto Informatico
Oltre ad essere lo Unix BSD più diffuso in ambito consumer, FreeBSD è anche uno dei sistemi operativi open source più noti dopo Linux. FreeBSD 7.2 è la terza release stabile del ramo di sviluppo 7.x, ed arriva a poco più di un anno di distanza dal...
Security Power Tools - Programmazione.it
Il testo è in effetti un buon miscuglio di argomenti dal livello di difficoltà più o meno vario, che richiedono conoscenze talora generiche (a volte vengono spiegate norme basilari come il funzionamento della shell Linux/UNIX) e talora molto avanzate....

Unix

Evoluzione di Unix nel tempo

UNIX è un sistema operativo portabile per computer inizialmente sviluppato da un gruppo di ricerca dei laboratori AT&T e Bell Labs, fra i quali c'erano inizialmente anche Ken Thompson e Dennis Ritchie.

Unix è nato dall'intelligenza e dalla passione di alcune menti dei Bell Laboratories: dove molti vollero porre fine al progetto, altri lo portarono avanti, senza altro incentivo che quello della ricerca e della curiosità. A Unix si deve il concetto di Informatica come scienza autonoma; prima di allora essa era considerata un aspetto pratico delle scienze matematiche, una semplice applicazione di postulati teorici.

Molti credono che Unix sia stato sviluppato grazie a un'intuizione fortunata; l'affermazione non è esatta: il suo sviluppo si deve in parte a un progetto precedente, Multics, abbandonato ben presto dalla direzione dei Bell Labs perché ritenuto troppo complesso.

Multics nacque con presupposti molto avanzati per l'epoca, in particolare era un sistema operativo in grado di supportare l'esecuzione di applicazioni in timesharing. Si scelse di svilupparlo internamente, dato lo scarso supporto che l'allora produttore di computer dava a questo aspetto. Si chiamava BESYS il sistema operativo che veniva montato di default sulle macchine, e si trattava più che altro di una semplice estensione dell'hardware. BESYS richiedeva un massiccio intervento manuale da parte degli operatori: ogni sequenza di operazioni doveva essere caricata dall'uomo, con grande spreco di tempo.

L'invenzione del linguaggio C costituisce una fase importantissima nella storia di Unix. Il C, sviluppato da Thompson e Ritchie nell'arco 1969-1973, ha permesso di portare il kernel su piattaforme diverse dall'originario PDP-7, costituendo di fatto il primo software della storia ad essere in grado di funzionare in ambienti totalmente diversi. Assieme al kernel, che ricordiamo rappresenta il core (nucleo) del sistema operativo, il sistema Unix è stato corredato da una serie di comandi standard per la gestione dei file e degli utenti, comandi che ancora oggi vengono usati nei sistemi operativi moderni.

I Bell Laboratories erano di proprietà dell'AT&T (società che gestiva le comunicazioni telefoniche negli Stati Uniti), la quale di fatto quindi deteneva i diritti di Unix. Proprio in quel periodo, all'inizio degli anni settanta, il sistema telefonico statunitense stava subendo una piccola rivoluzione interna: l'utilizzo di mini-computer per la gestione del traffico voce e dati. Questi erano dotati di software di tipo minimale, che permetteva operazioni di manutenzione piuttosto limitate. Ben presto si scoprì come Unix, grazie alla sua concezione moderna e alla sua versatilità, permettesse ai mini-computer di fare operazioni molto più complesse. Per la prima volta, le operazioni di manutenzione potevano essere gestite a livello centrale, senza spedire i tecnici a investigare sul posto ad ogni singolo guasto.

AT&T non volle avere alcuna royalty sull'utilizzo e la modifica di Unix. Ciò non a fini di beneficenza, come si potrebbe erroneamente pensare, ma per un fatto "politico". In quanto monopolista, AT&T aveva un range di servizi da offrire al mercato limitato per legge e Unix non costituiva un business direttamente collegato alle telecomunicazioni, anche se sotto certi aspetti lo era. Al centro di forti critiche per via della sua posizione dominante, AT&T permise che il codice sorgente di Unix venisse distribuito gratuitamente per fini di studio presso le Università di tutto il mondo.

Ottenere una copia del sistema operativo era piuttosto semplice e davvero poco costoso: bastava pagare le spese di spedizione del supporto. In breve si formò una comunità mondiale a livello universitario incentrata sullo sviluppo di nuove componenti e applicazioni di Unix. Tutto ciò ricorda in qualche modo l'Open Source moderno: tutto il materiale veniva condiviso ed era rigorosamente a codice aperto. Grazie a questo processo, nel corso degli anni settanta videro la luce le prime 7 versioni del sistema operativo.

Unix costituì un forte aggregatore per la nascente scienza dell'informazione. Di fatto, si può addirittura affermare che fu il suo sviluppo congiunto a definire per la prima volta l'idea di informatica come scienza. Unix ha prodotto inoltre una serie di conseguenze altamente desiderabili in ambito scientifico: la creazione di un ambiente comune all'interno del quale i ricercatori potevano verificare e controllare gli esperimenti; i lavori prodotti si potevano riutilizzare e migliorare; avvenne il passaggio definitivo dal laboratorio isolato a un ambiente di lavoro comunitario, dove tutti potevano contribuire.

Per risolvere i problemi di condivisione del codice, si introdusse per la prima volta la copia di file tra sistemi dislocati in parti diverse del mondo attraverso la linea telefonica. Il sistema venne chiamato UUCP (Unix to Unix Copy) e nonostante venne ben presto surclassato dalla nascente Arpanet (in seguito Internet), costituì un esempio dell'ambiente vivace e produttivo che si era costruito attorno a Unix.

Con lo smembramento di AT&T nel 1984 nelle famose 7 baby-bells, società più piccole che operavano a livello locale, la condivisione gratuita di Unix ebbe fine. Solamente alcune Università, come Berkeley in California, continuarono a sviluppare la loro versione derivata di Unix. AT&T aveva dimesso la propria posizione di operatore dominante ed era diventato un carrier per le chiamate tra i vari stati. La commercializzazione di Unix non conosceva più ostacoli e pertanto Unix System III (basato sulla settima versione) fu la prima release ad essere rilasciata dietro corrispettivo di un prezzo e senza codice sorgente. Seguì pochi anni dopo la versione UNIX System V, che includeva il supporto ad altre architetture e l'inserimento dell'editor vi originariamente sviluppato dalla derivazione californiana di Unix, BSD.

Altre società cominciarono a offrire versioni commerciali di Unix. Alcune ottennero un'apposita licenza di utilizzo del codice da parte di AT&T, altre si affidarono al ramo di sviluppo creato dall'Università di Berkeley. Fu appunto da questa derivazione che Bill Joy creò SunOS (ora Solaris e OpenSolaris) e fondò Sun Microsystems nel 1982. Anche Microsoft ebbe la propria versione di Unix, che chiamò Xenix, poi acquisita dalla SCO (Santa Cruz Operation). Si deve proprio alla SCO l'opera per renderla compatibile con i sistemi Intel 386.

Nel 1984 nacque il primo vero standard di Unix, il SVR4 o System V Release 4, che racchiudeva tutte le innovazioni promosse dalle varie società che avevano commercializzato Unix finora come Sun, BSD, SCO e IBM.

Nel 1993 AT&T decise di vendere tutti i diritti di Unix a Novell, con i quali creò UnixWare, un sistema che integrava la tecnologia alla base di NetWare. Poi UnixWare si trovò a dover competere con Microsoft Windows NT, ma essendo mancante di un supporto commerciale valido alla lunga perse la battaglia. Nel 1995 alcuni diritti sullo sviluppo e commercializzazione vennero distribuiti a SCO. Non si conosce di preciso quali diritti siano stati ceduti, e la questione è attualmente alla base dell'odierna causa che contrappone le due società.

Inizialmente la SCO supportò Linux con una propria distribuzione e collaborò attivamente nell'intento di rendere più appetibile il suo Unix schiacciato dalla concorrenza Microsoft; accadde, però, che mentre la SCO perdeva le vendite a causa di un inadeguato supporto commerciale, le piccole ditte di Linux crescevano incredibilmente. La crescita di Linux causò non pochi problemi a SCO, che venne schiacciata dalla forte crescita di Linux da un lato e dalla forza commerciale di Microsoft dall'altro. Decise allora di ricorrere per vie legali contro IBM e altre società che utilizzavano fortemente Linux al centro del proprio business. Le accuse riguardano presunte violazioni di copyright nel kernel di Linux; ciò significa che alcune parti di Linux, secondo SCO, sarebbero state copiate dal kernel di Unix, di cui SCO afferma di detenere i diritti.

Attualmente non si è arrivati al giudizio finale dei giudici, dunque non è tuttora chiaro né se SCO detenga effettivamente diritti su Unix, né se le accuse sul kernel di Linux siano effettivamente fondate. Tuttora SCO non è stata in grado di dimostrare che una sola linea di codice sia stata copiata da Unix; inoltre, alcuni studi interni alla stessa SCO, trapelati recentemente sotto forma di un'email spedita da un responsabile della società, forniscono l'evidenza che non esistono copiature di codice da un sistema all'altro, tra l'altro la stessa Novell reclama molti diritti di copyright che si credevano di SCO.

Curiosamente anche BSD soffrì di un attacco legale simile (relativamente alla neo-distribuzione BSD/386), ad opera della AT&T. La disputa si concluse nel 1994, largamente a favore di BSD, dove, tra 18000 file, soltanto 3 dovettero essere rimossi dal sistema e 70 modificati in termini di licenza.

Nel 1983 Richard Stallman lancia un progetto per creare GNU, un clone di Unix che fosse software libero, ovvero garantisse completa libertà di utilizzo e modifica da parte di utenti e sviluppatori, sottraendo Unix ai produttori di software proprietario. Nel 1991 il sistema fu completato con la creazione del kernel Linux da parte di Linus Torvalds. Il mondo Unix conobbe così una seconda giovinezza. Attualmente i sistemi basati su GNU/Linux sono i più utilizzati nella grande famiglia dei sistemi Unix, soprattutto in ambito server, ma con una crescente diffusione anche sui netbook e i personal computer. Tra il 2007 e il 2008 diversi costruttori, tra cui Dell, Asus, Lenovo, HP hanno proposto computer con GNU/Linux preinstallato al grande pubblico aprendo a tale sistema le porte dell'informatica personale.

La più importante famiglia di sistemi derivate da Unix, ma non certificate come UNIX, è quella di BSD, di cui fanno parte FreeBSD, NetBSD, OpenBSD, DragonflyBSD e molti altri.

Per la parte superiore



Man (Unix)

La pagina man del comando man

La maggior parte dei sistemi operativi UNIX e Unix-like dispone di un'ampia documentazione in linea nota come man pages (abbreviazione di "manual pages" ovvero pagine di manuale) o pagine man che sono consultabili tramite il comando man.

Ogni pagina man è un documento esplicativo di un comando, di una funzione o di un formato di file, o altro ancora, che descrive in maniera sintetica l'argomento e può contenere riferimenti ad altre pagine.

Le varie pagine man sono raggruppate in sezioni omogenee per tipo di argomento trattato (ad esempio vi è una sezione per i comandi utente, una per le chiamate di sistema, una per i formati dei file di configurazione, ed altre ancora).

Le pagine man sono tipicamente disponibili in lingua inglese, anche se per alcuni sistemi sono disponibili delle traduzioni.

Lo UNIX Programmer's Manual ("Manuale Unix per Programmatori") fu pubblicato per la prima volta il 3 novembre 1971. Comunque, le pagine di manuale non furono disponibili in linea fino alla settima edizione di UNIX nel 1979. A quel tempo, la disponibilità della documentazione in linea attraverso il sistema delle pagine man fu considerato come un grande passo avanti. Oggigiorno, virtualmente ogni applicazione Unix da linea di comando è corredata dalla propria pagina di man, e la loro assenza è generalmente percepita come indice di bassa qualità del software. Alcuni progetti, come Debian, si preoccupano anche di scrivere pagine man per quei programmi e comandi che ne sono privi.

Tradizionalmente il riferimento ad una pagina man è espresso usando la notazione "nome_pagina(sezione)", per esempio ftp(1) o socket(2).

Lo stesso nome di pagina man può apparire in più di una sezione del manuale: questo succede quando il nome di una chiamata di sistema, un comando utente o un macro package hanno lo stesso nome e sono dunque in conflitto tra loro. Due esempi sono man(1) e man(7), oppure exit(1) ed exit(3).

Esiste anche una pagina relativa al comando man, visibile tramite il comando man man.

Lo UNIX System V utilizza uno schema di numerazione simile, eccetto che per la sezione 4, che è per i formati di file, la sezione 5, che contiene i miscellanea, e la sezione 7, che è per i file speciali.

Le sezioni sono ulteriormente suddivise in sottosezioni usando un suffisso di una lettera, come ad esempio la sottosezione 3C per le chiamate di libreria C e la sottosezione 3M per la libreria matematica. Una conseguenza di ciò è che le pagine della sezione 8 (per i comandi di amministrazione del sistema) talvolta rimandano alla sottosezione 1M della sezione dei comandi generali.

Possono essere presenti anche altre sezioni, ma non sono ben standardizzate. Esempi comuni sono: OPTIONS, EXIT STATUS, ENVIRONMENT, KNOWN BUGS, FILES, AUTHOR, REPORTING BUGS and COPYRIGHT.

Il formato usato per scrivere una pagina man è quello del sistema troff, con una struttura di tipo macro package (orientata all'apparenza) oppure alternativamente mdoc (orientata alla semantica). Ciò rende possibile ottenere da una pagina delle versioni PostScript o PDF, o vari altri formati ancora, sia per la visualizzazione che per la stampa (sebbene la maggior parte degli utenti preferisca ancora l'interfaccia testuale per la rapidità di consultazione).

Pur essendo state realizzate nel tempo delle alternative al sistema delle pagine man, poche di esse hanno riscosso una popolarità comparabile, con la possibile eccezione del sistema info del progetto GNU, che è un primo sistema di ipertesto con il quale è realizzata la documentazione ufficiale del progetto.

Nonostante la popolarità delle pagine man, il fatto di prevedere una pagina individuale per ogni applicazione, unitamente ad altre pecche dovute anche allo sforzo di mantenere semplice il sistema di gestione, hanno motivato lo sviluppo di sistemi di documentazione alternativi, uno dei quali è ad esempio il suddetto sistema info.

Ad oggi la maggior parte delle applicazioni Unix dotate di GUI, ed in particolare quelle realizzate per le shell grafiche GNOME e KDE, prevedono una documentazione per l'utente finale in HTML o altri sistemi ipertestuali, e possono avviare automaticamente i visualizzatori necessari per poterla consultare.

Per la parte superiore



PID (Unix)

Nei sistemi operativi Unix e Unix-like PID è l'acronimo di process identifier (identificativo di processo) ed è un numero intero non negativo assegnato automaticamente che identifica in maniera univoca un processo all'interno del sistema e rimane costante per tutta la durata del processo.

Il PID è un attributo del process control block.

L'assegnazione dei PID avviene con criteri che variano a seconda dello specifico sistema operativo in uso. Tradizionalmente essi sono assegnati in sequenza secondo l'ordine temporale di creazione dei processi, spesso usando il più piccolo valore che sia superiore a quello del processo creante e che non sia correntemente assegnato ad un qualche altro processo.

L'intervallo di valori che un PID può assumere ha un limite superiore, solitamente 30000, oltrepassato il quale si ricomincia ad assegnare valori partendo da 1.

Un processo può conoscere il PID che gli è stato assegnato tramite la chiamata di sistema getpid(), ed il PID del suo processo padre tramite la chiamata di sistema getppid().

Un processo che ne crea altri mediante la chiamata di sistema fork() ottiene come risultato il PID del processo appena creato (il figlio ottiene il valore speciale 0), oppure il valore speciale -1 in caso di errore.

Il PID 0, se presente, indica un processo speciale interno al sistema indicato come Scheduler o swapper. Dato che 0 assume significati particolari nelle chiamate di sistema, non lo si può considerare un processo ordinario (ad es. non è possibile inviargli segnali).

Il PID 1 appartiene sempre al processo init, dato che esso è sempre il primo processo creato all'avvio del sistema e che rimane in funzione per tutto il tempo in cui il sistema è attivo.

Per la parte superiore



Kill (Unix)

La sintassi generale del comando kill presenta due forme: una per inviare un segnale ad uno o più processi, e l'altra per ottenere informazioni sui segnali.

I parametri pid indicano i PID dei processi a cui inviare i segnali, secondo le stesse convenzioni dell'omonima chiamata di sistema (per cui è anche possibile specificare 0 o -1 o valori inferiori).

Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.

Il comportamento predefinito è quello di inviare il segnale SIGTERM.

Ad esempio "kill -s SIGKILL 1234", "kill -9 1234" e "kill -KILL 1234" sono equivalenti tra loro.

Se il parametro valore non è specificato, viene prodotto sullo standard output un elenco dei segnali noti al sistema.

In alcuni sistemi operativi Unix e Unix-like sono disponibili anche i comandi killall e pkill, che inviano un segnale a tutti i processi che soddisfano dei criteri di ricerca specificati come parametri. Con questi comandi è ad esempio possibile inviare un segnale a tutti i processi di un dato utente, o a tutti quelli il cui nome contiene una stringa specificata.

Prima di inviare il segnale, essa verifica che il chiamante abbia il permesso di inviare segnali al processo o al gruppo di processi indicato.

Il tipo pid_t è un tipo opaco che rappresenta un PID e che inoltre può anche assumere un valore uguale o inferiore a zero.

Il parametro sig indica il segnale da spedire; le costanti che identificano i segnali sono elencate nello header file signal.h. Se è 0 non viene spedito alcun segnale, ma si verifica unicamente la possibilità di inviare segnali al processo o al gruppo di processi indicati.

In caso di successo viene ritornato il valore 0, altrimenti viene ritornato il valore -1 e la variabile errno indica l'errore specifico.

Per la parte superiore



Source : Wikipedia