Pensieri da Coder
giovedì 29 novembre 2012 - 93 Commenti
Il difficile rapporto con la tecnologia del movimento 5 stelle

Non v’è dubbio che un movimento o partito politico che fondi sulla tecnologia la sua operatività e organizzazione, e la richiami pure nei suoi punti programmatici, non possa che attirare l’attenzione (se non addirittura rapire) di chi opera nel settore.
Dall’interesse alla verifica che quanto scritto sia consistente, il passo è molto breve, a causa della tipica deformazione professionale con la quale, spesso involontariamente, ci si approccia a problemi anche di altra natura. Ed è il motivo che mi ha portato a mettere nero su bianco le mie impressioni su alcune …

venerdì 9 novembre 2012 - 24 Commenti
Dal Codice Morse a  PKzip

Per voi il termine “compressione” è sinonimo di WinZIP o WinRAR?
Ebbene spero non resterete delusi nello scoprire che il panorama è decisamente più ampio e che possiamo far risalire la nascita dei sistemi di compressione (senza perdita, lossless compression) addirittura al 1838, con il Codice Morse. Infatti Samuel Morse, nel suo famoso codice, applicò un semplice processo di riduzione della lunghezza delle informazioni trasmesse:
sostituire ai caratteri che appaiono con frequenza maggiore un codice composto da un numero inferiore di simboli, in modo da risparmiare spazio nella codifica
 
Codice Morse
Morse decise che …

giovedì 8 novembre 2012 - 18 Commenti
Il legacy di x86 & x64 – parte 9 (conclusioni)

Dopo aver sezionato l’architettura x86 a caccia di elementi che possano essere classificati come legacy, è arrivato il momento di chiudere questa lunga serie di articoli con una sintesi e alcune riflessioni sull’argomento, riprendendo anche in parte quanto elaborato nel precedente pezzo sulle unità SIMD, che rappresenta una sorta di cartina al tornasole della situazione.
Ripropongo, per comodità, tutti i link ai precedenti otto articoli:
parte 1 (istruzioni 8086)
parte 2 (istruzioni 80186+)
parte 3 (FPU x87)
parte 4 (i segmenti)
parte 5 (i selettori)
parte 6 (istruzioni privilegiate)
parte 7 (istruzioni non privilegiate)
parte 8 (SIMD: MMX, 3DNow!, …

giovedì 18 ottobre 2012 - Commenta
Il legacy di x86 & x64 – parte 8 (SIMD: MMX, 3DNow!, e… SSE)

Ci sono voluti 7 articoli per trattare di una problematica che nasce col capostipite della famiglia, l’8086, e che si è evoluta coi successori, principalmente con l’80286, ma anche con l’80386 (che ha duplicato, per i 32 bit, quanto introdotto dal precedente, per i 16 bit).
Il dubbio, sicuramente lecito, è che ci siano elementi di legacy anche nelle unità SIMD che sono state introdotte nell’architettura x86, e che quindi si trascinano anche nelle successive implementazioni.
MMX è stata la prima, e si espone a delle critiche, anche se, come abbiamo visto, …

giovedì 11 ottobre 2012 - Commenta
Il legacy di x86 & x64 – parte 7 (istruzioni non privilegiate)

Oltre alle istruzioni privilegiate, per la gestione dei selettori ne sono state introdotte poche altre da Intel che non lo sono, ma che possono essere utili in modalità utente per effettuare alcune operazioni che possono rivelarsi più o meno utili.
Fra quelle che lo sono di meno c’è sicuramente ARPL, il cui scopo è quello di “aggiustare”, se possibile, il livello di privilegio di un selettore (che può risiedere in un registro o in memoria) sulla base di un altro (che si trova in un registro) che viene utilizzato per il …

giovedì 4 ottobre 2012 - 12 Commenti
Il legacy di x86 & x64 – parte 6 (istruzioni privilegiate)

Per gestire segmenti e selettori a livello applicativo abbiamo visto che sono necessarie poche istruzioni (MOV, PUSH/POP, LDS/LES/LSS/LFS/LGS, CALL/RET, JMP, INT/INTO/IRET), peraltro inutilizzate in un modello di memoria “flat” (fatta eccezione per quelle usate per chiamare il sistema operativo).
Il s.o., invece, fa sempre uso di una parte di queste quanto meno per impostare i selettori (ormai i segmenti 8086 sono, di fatto, inutilizzati) in maniera che l’applicazione che gira nel processo/thread abbia l’ambiente configurato per poter girare, ma tutto ciò non basta per gestire l’intero sistema, per cui già a partire …

giovedì 27 settembre 2012 - 20 Commenti
Risorge Anubis-OS, il dio dei sistemi operativi morti

Qualche tempo fa era stato citato, nei commenti di un altro articolo, come esempio di esperimento fallito, ma improvvisamente, dopo circa 4 anni di inattività, il progetto ha mostrato segni di vita, come sembrerebbe da un messaggio del programmatore in un noto forum amighista.
Come si può leggere dalla home page, si propone di realizzare un sistema operativo moderno ispirato ad AmigaOS, ma con funzionalità come l’SMP, e che giri sulle ultime versioni dell’architettura ARM (v6 e v7).
In realtà il progetto  originariamente si trovava su un’altra pagina e aveva un nome in …

giovedì 20 settembre 2012 - Commenta
Il legacy di x86 & x64 – parte 5 (i selettori)

Nel precedente articolo è stato analizzato il funzionamento a runtime dei famigerati segmenti della famiglia di CPU x86, e posto in risalto la loro pervasività, essendo utilizzati sempre, persino nella versione a 64 bit, x64, che ne rappresenta il futuro.
I selettori sono la naturale (per x86, s’intende) evoluzione di questo meccanismo, che hanno visto la luce con l’80286, e di cui abbiamo analizzato già il funzionamento in quest’altro articolo (la cui lettura è consigliata prima di proseguire con questa).
Durante l’esecuzione valgono all’incirca le stesse considerazione fatte per i segmenti, a …

giovedì 13 settembre 2012 - 9 Commenti
Il legacy di x86 & x64 – parte 4 (i segmenti)

Torniamo a parlare del fattore “legacy” delle CPU x86, con l’ultimo aspetto che era rimasto in sospeso e che rimane da sviscerare: la segmentazione.
Per inquadrare bene il peso di questa caratteristica è fondamentale analizzare in che modo vengono utilizzati i segmenti nel codice x86 e x64, e l’impatto che possono avere mediamente durante l’esecuzione, sia a livello di specifiche istruzioni o parti di esse che li possono coinvolgere, sia a livello di implementazione nella pipeline d’esecuzione del processore.
Un’introduzione al concetto di segmento si trova in un articolo che è stato …

mercoledì 5 settembre 2012 - 89 Commenti
AmigaOS & co.: da PowerPC a x86 o ARM

Le vicissitudini dei sistemi Amiga “NG” sono state oggetto di attenzione già diverse volte in queste pagine. L’ultimo caso riguarda lo spropositato costo di acquisto della CPU dell’AmigaOne X1000, che è arrivato a toccare i 1000 dollari.
D’altra parte dovendo attingere a del materiale per realizzare macchine a uso “desktop” (sarebbe forse meglio dire “personale”), per la famiglia PowerPC non esistono più delle alternative valide, per cui bisogna ricorrere a costosissimi fondi di magazzino, come quelli citati, oppure al settore embedded, quindi riciclando roba pensata per router et similia.
Nei forum Amiga …