Gli albori di Linux

Sfruttando le conoscenze del corso di Sistemi Operativi  in questo articolo cercherò di rendervi partecipi di alcuni capisaldi e retroscena che forse non tutti conoscono sulla nascita di Linux.

linux-minix

Convinto del fatto che almeno una volta nella vita lo avete usato o almeno sentito nominare in una delle sue più disparate versioni, voglio mettere alla vostra attenzione le vere radici di questo sistema operativo che se pur di difficile approccio e comprensione è dato di fatto, ritenuto molto potente e utilizzato dagli addetti ai lavori.

Al contrario dei poco approfonditori della materia storica,  il vero spunto per la nascita dell’attuale Linux è scaturito da  Andrew Stuart Tanenbaum nato in America ha vissuto quasi sempre in Olanda, professore di informatica e caposaldo degli studi in materia di sistemi operativi e non solo. Negli anni 80 l’unico sistema operativo utilizzato era UNIX, sviluppato da AT&T e Bell Laboratories, essendo lo stesso coperto da copyright non dava la possibilità a nessun studente o “smanettone” di poter studiare e approfondire le conoscenze su questo sistema operativo, visto che i sorgenti non erano rilasciati e accessibili ai non addetti ai lavori. Allora il prof. Tanembaum nella seconda metà degli anni 80, precisamente nel 1987 presso la Vrije Universiteit ad Amsterdam diete alla luce un nuovo sistema operativo, sempre UNIX base che chiamò MINIX; contestualmente pubblicò un libro dove erano presenti i sorgenti del kernel, del gestore della memoria e del file system, quasi tutto interamente scritto in linguaggio C.

Ed è questa la vera svolta per la nascita del sistema operativo che conosciamo e usiamo oggi con il nome di Linux, è grazie a MINIX,  nato con uno scopo prettamente didattico e di apprendimento che lo studente Linus Torvalds grazie alle sue doti di programmatore si avvia ad un concetto di kernel diverso da quello di MINIX che successivamente darà vita a Linux stesso.

Famoso è lo scambio di differenti vedute avuto sul newsgroup comp.os.minix dal titolo Linux is obsolete.Torvalds riteneva di aver trovato una soluzione per rendere più veloce e più performante il kernel di MINIX, Tanenbaum liquidò lo studente facendogli presente che lui era il prof. e quello che diceva e faceva lui non si discuteva.Questo è stato il punto di rottura che dopo pochi anni ha dato vita a Linux come lo conosciamo oggi, la differenza fondamentale che Torvalds aveva intuito o meglio aveva ipotizzato era un kernel con struttura monolitica al contrario di quello che equipaggiava MINIX che era a microkernel.

Tutto quello che è avvenuto successivamente è frutto di questa storica scissione e rottura tra queste due figure diventate emblemi della storia e nella nasciata dei sistemi operativi moderni, resta il fatto che Tanenbaum nel suo ultimo libro ha dedicato un capito a Linux e a quello che qualche anno prima avevo ritenuto un progetto non perseguibile e di poca importanza.

Inutile dilungarsi sulle differenze salienti dei due sistemi, MINIX era un sistema base per il solo studio e approfondimento degli aspetti architetturali dei sistemi operativi, Linux attualmente è un sistema operativo a tutti gli affetti usatissimo nei settori di gestione e applicazione di un certo livello, ma anche utilizzato quatidianamente da un ristretto gruppo di persone in versione desktop. Inoltre, afferire quali delle due strutture è più performante e affidabile (monolitica o microkernel) è la medesima sfida affrontata dall’amico Flavio nel post precende sui sistemi operativi, la risposta è semplicemente dipende, non pensate sia un’escamotage per non esporsi, ma semplicemente dipende da che tipo di applicazione ne vogliate fare.

 

Spero di non avervi annoiato troppo e di aver fatto cosa gradita delucidarvi su un aspetto che se pur minimale è la vera nascita di Linux.

SHOOT to TRILL

 

 

Ok…avete visto il video e vi è venuta voglia di capire di cosa stiamo parlando (tipico!): si chiama Bullet Time e consente di vedere ogni momento della scena in slow-motion mentre l’inquadratura sembra girare attorno alla scena stessa alla velocità normale. Durante il video avrete pensato: “Wow, come in Matrix!”, esattamente, i fratelli Wachowski hanno reso celebre questa tecnica cinematografica che consiste sostanzialmente nel disporre un grande numero di fotocamere attorno ad un oggetto e farle scattare simultaneamente, successivamente si “montano” (risparmiamoci battute!!) le immagini ottenute in slow-motion e si controlla l’effetto desiderato. Non tutti hanno a disposizione 20 reflex, tutte uguali e con lo stesso obiettivo tra l’altro, altrimenti vi troverete a dover sistemare ogni singolo file sullo stesso bilanciamento del bianco, i colori e tutti i settings che si dovrebbero maneggiare (però potete provare lo stesso, in modo da capire nelle stesse condizioni di luce come si comportano diverse reflex con diversi sensori e magari diversi obiettivi [ottimo spunto per un mio prossimo post, EVVAI!!!]), però almeno adesso sapete come si ottengono le scene alla Matrix e se in un futuro avete intenzione di girare un corto-metraggio e inserire qualche scena di questo tipo, la lettura di questo post non è stata vana.

 

AR

 

P.s: per correttezza riporto i credits del video:

This video was produced in Workshop SHOOT to THRILL.

The result was made possible using total of 24 digital cameras.

Organized by: Claudio Giambusso, Alice Stefani, Ivan Borov

Directed by: Claudio Giambusso, Alice Stefani

Music by: Valerio Sizzi

Video backstage by: Filippo Valluzzi

Director of photography: Manuel Neglia, Mattia Campo

Special Thanks to:

Maurizio Costa (in charge of photo studio IED Milano)

Teodora Filipova, Julie Luchsinger, Tiziano…, Kaisha Davierwalla, Giulia.., Marta Mangiucca, Ascanio Mellini, Francesca Mesiano, Manuel Neglia, Mattia Campo, Massimo, Francesca Ferrari

 

.bash_profile vs .bashrc

Quando si lavora con un Sistema Operativo come Linux, Unix o Mac OS X, è molto comodo poter personalizzare la bash con i comandi o le impostazioni che siamo abituati ad usare. Mi sono imbattuto in un piccolo dilemma stasera, mentre settavo la mia variabile EDITOR ( in modo da usare nano al posto di vim ).
Quale file modificare: .bash_profile o .bashrc ? Quale è la differenza tra i due file? e perche’ vengono utilizzati entrambi se hanno lo stesso scopo?

Consultanto la man page di bash sono riuscito a risolvere questo piccolo dilemma.

 

Quando usare .bash_profile ?

Ogni volta che si avvia una intercative shell vengono eseguiti i comandi che si trovano all’interno dei seguenti file:

  • 1. /etc/profile
  • 2. ~/.bash.profile
  • 3. ~/.bash_login
  • 4. ~/.profile

Per cui ogni volta che eseguiamo il login ( username e password ) da console, utilizzando per esempio ssh, viene eseguito .bash_profile

 

Quando usare .bashrc ?

Se siamo gia’ loggati all’interno della shell ed apriamo un nuovo terminale di console ( Ex. xterm ) all’interno di Gnome o KDE, allora vengono eseguite le istruzioni presenti in .bashrc.
Lo stesso accade se da console digitiamo nel terminal


/bin/bash

 

Perche’ questa  distinzione?

Tale distinzione e’ nata dalla necessita’ di poter visionare parametri di diagnostica ogni volta che accediamo ad una macchina ( carico della CPU, uso della memoria ecc…), in questo caso viene utilizzato .bash_profile.

Invece .bashrc viene usato per le impostazioni che vogliamo caricare ogni volta che viene lanciato un nuovo terminale.

 

 

In Mac OS X come funziona?

Mac OS X ha una filosia tutta sua… come la maggior parte delle volte 😀

Di defualt il Sistema Operativo lancia una nuova schermata di login chiamando il file .bash_profile al posto di .bashrc. Per tale motivo nei Sistemi Apple bisognera’ sempre modificare .bash_profile per caricare correttamente le proprie impostazioni, anche nel caso in cui non esegiuamo una non-login shell.

 

Suggerimento

La maggior parte delle volte e’ scocciante avere gli stessi comandi su entrambi i file, per tale motivo vi posto la mia soluzione “elegante” per risolvere il dilemma 😀


if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

In questo modo ad ogni login, in automatico la vostra macchina eseguira’ il codice presente anche in .bashrc

Quale Sistema Operativo Scegliere?

 

Windows vs Mac OS X vs Linux - La sfida di sempre

 

 

 

Diffidate della gente che vi dice: Questo Sistema Operativo e’ meglio di quell’altro.. questo Sistema e’ piu’ sicuro… quel Sistema  e’ il piu’ veloce ecc.. Diffidate anche di questa guida, serve solo per darvi un’idea, la mia idea, su quale Sistema Operativo scegliere per il vostro computer.

Da quel poco che ho potuto capire dagli esami sostenuti riguardo l’architettura alla base dei Sistemi Operativi, e’ che l’unica risposta sensata da dare quando una persona ci chiede consiglio su quale Sistema Operativo scegliere e’ : Dipende.

Ho un feeling speciale con Mac OS X, il quale e’ l’ideale per l’uso che voglio fare del mio calcolatore, Ha un cuore BSD ( tutti gli strumenti di amministrazione messi a disposizione da Unix) ed una interfaccia Aqua davvero accattivante ed innovativa… ma cio’ che funziona egregiamente per me non e’ detto che vada bene per qualsiasi altra persona.
Questo non significa che Mac OS X non ha “problemi”. Ne ha molti: Apple usa spesso hardware gia’ vecchiotto, ha una limitata scelta nella configurazione hardware dei suoi calcolatori, Kernel Panic a iosa quando si cerca di modificare qualcosa nel Kernel :D… e costano un bel po’.
Nonostante questo, credo che attualmente Mac OS X sia la piattaforma client piu’ meritevole e con un alto tasso di sicurezza rispetto agli atri sistemi.

Certo, la sicurezza di un Sistema Operativo e’ un parametro molto labile in questo campo. Sono consapevole del fatto che la maggior parte delle Falle di Sicurezza e dei Bug si riferiscono al Sistema Operativo Windows, ma questo e’ dovuto al semplice fatto che sono i piu’ utilizzati.. per tale motivo una persona che voglia sottrarre informazioni cerca di “bucare” il Sistema Operativo piu’ utilizzato e non quello con un numero esiguo di utenti.

 

Nota che non il termine “client” voglio indicare l’uso con cui la maggior parte degli utenti fa del proprio personal computer. Un sinonimo di client potrebbe essere “Desktop Replacement”, con il quale si vuole indicare una macchina usata tutti i giorni sia per lavoro che per gioco.

Ho avuto la fortuna di poter utilizzare i tre maggiori Sistemi Operativi lato client: La famiglia Linux, Mac OS X, e la famiglia di Windows. In queste poche righe cerchero’ ( umilmente ) di dare la mia opinione su tutti e tre.

 

Leggi tutto “Quale Sistema Operativo Scegliere?”

Because Change Happenz

Eccomi di nuovo qui… seduto alla mia scrivania in cerca della sequenza giusta di parole, una sequenza che abbia un senso o che almeno abbia una parvenza di post semi-interessante che valga la pena di leggere.

La musica di sottofondo è quella delle grandi occasioni:  Ludovico Einaudi – Nuvole Bianche , una di quelle musiche che uso spesso per rilassarmi e sognare ad occhi aperti e che reputo all’altezza del titolo dell’ articolo.

Because Change Happenz
(Affinchè il cambiamento accada)

La cosa bella dei blog è che spesso, se non la maggior parte delle volte,i post non vengono letti da nessuno, rimanendo per anni sul web…sono lì che fluttuano nell’etere in attesa che qualcuno o qualcosa li vada a leggere.

Magari questo post sarà uno di quelli… e a dire la verità la cosa non mi dispiace affatto, dato che sono un tipo poco “social” e che raramente scrive qualcosa di personale.

Ciò che mi spinge a scrivere qualcosa su di me è la voglia conscia ed inconscia di rileggere questi post a distanza di anni e riprovare le stesse sensazioni e gli umori che mi hanno spinto a scrivere. Già mi immagino tra qualche anno, con qualche capello bianco in più ( in realtà ne ho gia molti adesso 🙁 ), mentre rileggo queste pagine e sorrido al semplice pensiero di aver potuto scrivere queste stronzate 😀

Ultimamente ci sono stati un pò di cambiamente nella mia vita, in questo post ve ne narrerò qualcuno cercando di fare una cernita su quelli più interessanti e di non cadere troppo nel prolisso 😀

Il primo cambiamento è dovuto al restyling “grafico” della mia camera… infatti mi sono deciso a stampare alcune mie foto e di metterle in bella mostra sulla parete, in modo tale da essere l’ispirazione di me stesso 😀

Panoramica della mia stanza 😀

Lo so lo so, non vi interessa… ma come detto prima, il post è tutto incentrato sul mio ego e sul mio narcisismo e poi , in realtà, era la scusa per darvi mostra delle mia bravura nel collage fotografico e della mia predisposizione all’ars fotografica 😀

Il secondo cambianto riguarda l’aspetto grafico del blog, abbiamo cambiato il template scegliendo Mystique. Spero l’aspetto del blog sia diventato un pò più “professionale” o per lo meno più accattivante di quello vecchio dato che iniziamo a diventare famosi 😛 ( scusate le smanie egocentriche ).

Dal punto di vista delle personalizzazioni , Mystique è tutta un’ altra storia, mette a disposizione dell’utente finale degli strumenti per la customizzazione del layout davvero ottimi e ben struttrati.
Basta accedere al menu del Template per rendersi subito conto delle potenzialità offerte rispetto al template vecchio.
Vi annovero qualche Hack fatto sul template:

  • Inserimento nell’header dell’icona di Facebook
  • Layout Dinamico della pagina in base alle dimensioni del browser
  • Aggiunto il bordo ai post ( un tocco di classe 😀 )
  • Alcune modifiche Hard-Code come la modifica dell’utente del Widget di Twitter e l’eliminazione del form di accesso direttamente dalle pagine php del template
  • Modifiche varie al css originale per la corretta visualizzazione dei post
  • Cambiata l’immagine dell’header, in attesa della realizzazione di quello ufficiale
  • Inserita una favicon temporanea

Per il resto.. Stay Tuned 😀

P.s. quasi dimenticavo… volevo segnalarvi un ottimo sito di un mio amico Frigente – il primo portale su Frigento vale la pena di andarci

Statistiche Rottura Hard Disk

Si stima che oltre il 90% di tutte le nuove informazioni che vengono prodotte nel mondo siano immagazzinate su dischi magnetici, molti dei quali sono Hard Disk.

La lettura di un research paper rilasciato da Google sulle statistiche di rottura degli Hard Disk ( in tutto e per tutto identici a quelli usati da noi comuni mortali 😀 ) mi ha letteralmente impressionato.

Per tale motivo ho deciso di mostravi i numeri e i grafici relativi a tale studio ( del 2007 ), ma prima di procedere con l’articolo vi elenco le conclusioni a cui sono arrivati i ricercatori Google

  • Contrariamente a quanto si pensa, vi è una bassa correlazione tra la rottura del disco e la sua frequenza di utilizzo o tra la rottura del disco e le alte temperature.
  • Qualche parametro SMART ( scanning degli errori, conteggio di riellocazione, ecc.. ) ha un impatto molto grande sulle probabilità delle rotture
  • Data la mancanza di riconoscimento, in molti dei guasti, da parte del sistema SMART, si è giunti alla conclusione che è molto difficile avere un accurato sistema di previsione dei guasti.

Vi rimando al mio precedente articolo sull’infrastruttura usata nei Data Centers di Google per lo store dei dati e la loro gestione.

 

TestBed


I dati sono stati collezionati su un numero superiore a 100.000 Hard Disk. I dischi sono una combinazione tra serial e parallel ATA ( SATA e PATA ), gli stessi che vengono montati sotto i nostri computer, con velocità RPM di 5400 o 7200 e con una grandezza che va dagli 80 GB ai 400 GB.
I dischi presi in considerazione sono stati tutti testati prima della loro messa in opera, ed il periodo di riferimento dello studio è tra Dicembre 2005 e Agosto 2006.

 

Risultati

 

AFR ( Annualized Failure rates )

 

AFR , detto anche il Tasso di Fallimento Annuale

 

 

Tasso Annuale Di Rottura diviso in base alla vita del disco

Come si può notare dal grafico, vi è un notevole incremento di rotture nei primi 3 mesi di vita del disco rigido, mentre vi è una significativa diminuzione nel primo anno di vita.

Dal secondo anno di vita in poi si nota una netta crescita delle failures.

Lo studio è stato effettuato tenendo presente tutti i dischi rigidi del sistema Google, quindi non vi è nessuna suddivisione tra marca, modello o tipologia di impiego, ma serve solo a dare un’idea globale delle failures del sistema di store di Google.

 

Leggi tutto “Statistiche Rottura Hard Disk”

Sono uno dei dinosauri da distruggere…

Nel periodo di esami che, ormai, volge al termine, volevo solo ricordare a tutti i nostri lettori che dappertutto ci sono “i dinosauri da distruggere”…ma sicuramente, prima o poi li distruggerete.

Che la vostra sessione di esami sia andata bene o male…se non li avete distrutti a questo round, distruggeteli al prossimo!!!

La Shell di Mac OS X

Una persona sana di mente può mai mettersi a scrivere un articolo sulla Shell di Mac OS X a mezzanotte in punto!!??

Ovviamente no… ma visto che il blog inizia ad avere 50-60 visitatori assoluti al giorno mi fa ben sperare di non essere solo e che ci siano altri “malati” come me 😀

Partiamo con un pò di nozioni di base dato che molti dei fortunati possessori di un Macintosh non hanno mai utilizzato una shell ( Terminale ). Mac OS X viene fornito con la shell di default Bourne Again SHell, comunemente detta bash, ma include anche altri tipi di shell come TENEX C shell (tcsh), Korn shell (ksh) ecc..

Spero abbiate già l’iconcina del Terminale sul vostro Dock, altrimenti spostate l’icona Terminale dalla subdirectory Utility di Applicazioni in modo da avere un veloce accesso alla command line.

Chiunque abbia mai usato un Sistema Operativo UNIX-like per scopi che non siano solo di gioco o per farsi bello con gli altri 😀 ha avuto modo di scoprire tale strumento fino a tal punto da non poterne più fare a meno. Non esagero quando dico che è indispensabile, soprattutto nel caso in cui il nostro Sistema Software deve compiere particolari task e/o automatismi che da interfaccia grafica sarebbero molto più complessi, se non addirittura impossibili..

Un altro mio articolo sui principali comandi shell può esservi di aiuto nel capire cosa è possibile fare, e spero vi renda così curiosi da iniziare a smanettare con la vostra shell 😀

In questo articolo volevo mostrarvi qualche piccolo esempio sull’uso della shell, ed in particolare in riferimento all’ambiente Mac OS X.

Esempio 1


#!/bin/sh
# Script nw opens a new Terminal window
osascript << EOF
tell app "System Events"
  keystroke "n" using command down
end tell
EOF

Questo piccolo esempio usa il comando osascript per invocare un AppleScript, il quale a sua volta interagisce con il System Events e serve per emulare l’effetto che si ha premendo ⌘-N , cioè aprendo un altra finestra Terminale

 

Esempio 2


#!/bin/sh
# Script opens a new Terminal Tab in existing window
osascript << EOF
tell app "System Events"
  keystroke "t" using command down
end tell
EOF

Quest’altro piccolo esempio invece emula ⌘-T, cioè apre una nuova tab sul Terminale già in uso.

 

Esempio 3


#!/bin/sh
# Script Run Vim
osascript << EOF
tell app "Terminal"
set number of rows of first window to 34
set number of columns of first window to 96
set custom title of first window to "Vim Editor :D"
EOF
vim $@

Quest’ultimo esempio vi mostra come aprire Vim utilizzando uno shell script.

Per poter eseguire questi script, dobbiamo renderli eseguibili. Supponiamo di aver chiamato quest’ultimo esempio RunVim, dobbiamo dare il seguente comando ( sempre da shell ):


chmod +x RunVim

L’ora tarda e la dolce visione del mio cuscino non mi permettono di andare oltre.. ma il prossimo articolo sarà sui parametri di personalizzazione della nostra Shell.