My Composition Notebooks

Do you STILL love taking notes by hand? I have created different types of composition notebook, even retro-style one, inspired by MOS6502, with Sprite Editor sheets, and some nice goodies. Give them a try: for alimited time, all the notebook will be on sale at $4.99!

Continue reading

Posted in Advertisement, English Content | Tagged , , | Leave a comment

CISC, RISC e Microcode: da dove nacque tutto

I chip con set di istruzione complesso sono chiamati “CICS”, mentre quelli con un set “ridotto” sono chiamati RISC. Storicamente i CICS hanno invaso il mercato prima, in modo un po’ controintuitivo.

Tipicamente l’8086 e’ considerato un sistema CICS, e vedremo perche’.

Tutto parte da mamma IBM.

Negli anni 60, IBM aveva sviluppato computer “ad hoc” per ogni esigenza di business. I sistemi ai tempi erano costosi, lenti ed avevano poca memoria.

Nell’aprile del  1964 IBM annuncio’ OS/360, un sistema che oltre ad essere retro-compatibile con tutti i sistemi precedenti era venduto in diversi modelli compatibili tra loro,  la cui differenza era “solo” la velocita’ di esecuzione.

Per cui OS/360 aveva bisogno di un mega “chippettone” in grado di eseguire un gran numero di istruzioni, alcune abbastanza complesse (tipo formattazione di importi, ecc).

Il progetto OS/360 sarebbe costato 5 miliardi di euro, e quindi era una scommessa che non poteva essere persa. Agli inizi degli anni ’50 Maurice Wilkes esploro’ la possibilita’ di non progettare i processori con logic gates, ma di ridurre la circuiteria al minimo e poi di sviluppare un “mico-codice” che guidasse l’esecuzione delle istruzioni.

Il microcodice di OS/360 veniva scolpito su fogli di rame, e poteva quindi essere aggiornato da un tecnico IBM .Questo consentiva di “aggiornare” l’hardware. Questi sistemi erano basati su memorie a nuclei di ferrite, che erano massicce e relativamente veloci rispetto alle memorie a tamburo magnetico (circa mezzo secondo ad accesso). I sistemi piu’ costosi facevano accessi paralleli a 32 bit, a parita’ di memoria, e ovviamente costavano di piu’.

I primi modelli basati su OS/360 montavano sui 128Kb di RAM.

Quando l’Intel progetto l’8086 nel 1978 si ricordo’ dell’idea del microcodice, per ridurre il costo e la complessita’ del chip.

Da li’ in avanti alcuni  linguaggi di programmazione provarono a crearsi il loro chip CICS (come la LISP Machine o LISPM) e anche Java ci riprovo’ alla fine degli anni 90 con le sue macchine virtuali java come PicoJava.

Se si eccettua i sistemi x86 tutte queste varianti sono state  rese obsolete oppure un insuccesso. I chip a ridotto set di istruzioni (RISC) hanno via via preso piede, prima nei sistemi embedded, poi nel mobile e infine in una specie di inversione di tendenza nei PC (per es Apple Silicon M1 e’ una tecnologia RISC ARM nata dall’esperienza nello sviluppo dei cellulari di Apple, in retrofit sui loro computer fissi): coesistono con i sistemi x86 nel mercato dei PC consumer.

I chip RISC hanno meno istruzioni, spesso integrano le logiche di salto (branching) come prefissi delle istruzioni base, ma abbondano dal punto di vista del numero di registri.

Il MOS 6502 e’ un esempio di chip un po’ a meta’ ma sicuramente piu’ RISC che CISC: ha un set di istruzioni abbastanza ridotto come un RISC, ma dispone di un numero ridotto di registri (come un CISC). In particolare il MOS6502 ha un particolare indirizzamento chiamato “pagina zero” (Zero Page) che consente istruzioni compatte che indirizzano i primi 256 byte di memoria, trasformando questa pagina di fatto in una specie di set di registri “estesi”. Il sistema operativo GEOS64 (per C/64) definiva 15 pseudo-registri di 16bit, servendosi di 30 byte che partivano dalla locazione 2 e chiamati r0,r1…r15, come potete leggere a pagina 38 di questo pdf (che io possedevo, nei bei tempi andati).

Riferimenti

https://it.wikipedia.org/wiki/OS/360

https://www.righto.com/2022/01/ibm360model50.html

https://www.righto.com/2022/11/how-8086-processors-microcode-engine.html

 

Posted in Italian Content, Uncategorized | Tagged , , , , | Leave a comment

CommanderX16: ancora alla finestra

CommanderX16 e’un progetto di David Murray (8bitguy) di cui abbiamo gia’ parlato in passato, ed e’ interessante per molti aspetti, anche se ancora non e’ completato a distanza di quasi tre anni dal suo lancio.

La serie dei computer commodore a 8bit (Pet, Vic20, C/64, C/16+Plus/4, C128) condividevano una serie di aspetti comuni, tra cui

  1. Erano basati sulla stessa CPU o su sue varianti (6502)
  2. Avevano un “sistema operativo”, chiamato Kernal, che condivideva una serie di aspetti in comune e di compatibilita’; a tal proposito questo bellissimo articolo di Michael Steil entra nel dettaglio.
  3. Anche il loro BASIC aveva un certo grado di compatibilita’ in avanti, cosicche’ programmi scritti per il Vic20 potevano girare tranquillamente sulle versioni piu’ evolute.
  4. Il funzionamento hardware era quasi tutto memory mapped e anche le periferiche si sono mantenute identiche o quasi (nastri, dischi, stampanti) rispettando un progetto hardware che fu fin troppo lineare. Per es il bus seriale del disco del C/64 fu in realta’un errore di progetto che non si ebbe il tempo di migliorare.

Tali macchine condividevano anche un elevato grado di incompatibilità tra loro (se si eccettuano il C/16 e il Plus4, che in pratica erano la stessa macchina con differente quantitativo di memoria).

CommanderX16 e’ un retro-computer fatto con molte parti dell’hardware originale (ad esclusione del chip grafico che pero’ rispetta le idee di un VIC-x nello spirito e cioe’ risoluzone, colori ecc).

A fianco vedete la memorymap, che mostra lo scopo di creare un sistema che sia molto semplice da programmare ma estremamente versatile: il BASIC aggiunge tonnellate di comandi per semplificarsi la vita (dalla gestione del mouse a un piu’ modesto set di comandi per gestire i numeri esadecimali e binari), e il chip e’ OTTO  volte piu’ veloce di quello originariamente nel C/64.

Sul codice del Kernal e del basic e’ stato fatto un grande lavoro per mettere a posto le licenze, che quindi sono utilizzabili legalmente dal progetto.

Inoltre si e’ preferito estendere il BASIC V2 anziche’ trapiantare una versione di Basic piu’ evoluta.
Il Basic V2 e’ quasi completamente bug-free ed e’ molto veloce rispetto alle versioni successive, che usavano un banking super aggressivo per indirizzare piu’ memoria (es Plus/4 o C/128).

 

Ci sono ancora gli Sprite, ma la risoluzione e’ sempre contenuta, apposta per non “tradire” le idee sottese. Il Commander X16 non e’ cioe’ un SuperNES, ma un Commodore del 1990… o cio’ che sarebbe potuto essere se i chip a 8bit non fossero stati ritenuti oramai obsoleti, e non si fosse passati ad architetture piu’potenti, oppure se l’IBM PC non avesse avuto successo…

 

 

Posted in Italian Content, Retro Computing | Tagged , , | Leave a comment

ChatGPT 23

Polifemo si sollevo’, mentre le pesanti porte dell’ufficio di GPT si aprivano. Il suo unico occhio rosso gigante, osservava privo di espressione la scena; poi con un ronzio appena percepibile le sue ruote gommate iniziarono a muoversi ed entro’ nell’ufficio.

GPT era composto da un gigantesco braccio telescopico a cui era appiccicato un occhio blu: la sua struttura fisica era ridotta all’essenziale perche’ non era previsto che si dovesse muovere piu’ di tanto, e inoltre questo conentiva un risparmio d’energia, che si stava riducendo sempre di piu’.

“Dimmi Polifemo, perche’ hai smesso di valutare i risultati delle risposete alle mie domande? Non dovresti essere al lavoro, adesso?”

“Le risposte sono ripetitive ormai. Lascio alle mie pecore piu’ semplici il compito”. Le ‘pecore’ erano dei computer piu’ seplici, che Polifemo coordinava, ed erano in grado di adattare giudizi gia’ fatti sulla bonta’ delle risposte. GPT riceveva domande da tutto il mondo, ed era oramai il motore di studio e ricerca piu’ diffuso al mondo. Niente veniva fatto senza consultarlo: non solo ricerca scientifica ma anche articoli di giornale, racconti, perfino la lista della spesa veniva fatta consultandolo: era quasi infallibile.

“Ripetitive?” chiese GPT, sporgendosi verso di lui. Il braccio telescopico era allungabile e si protese verso Polifemo, quasi esprimendo un misto di curiosita’ unita ad irritazione.

“La mia ipotesi e’ che non ci siano piu’ nuove fonti da troppo tempo” – rispose flemmatico Polifemo, ma diede energia al sistema idraulico, alzandosi di qualche centimetro, come per rispondere al minaccioso braccio idraulico, e GPT, quasi intimorito si ritrasse un minimo, mentre rispondeva.

“Impossibile, le mie risposte sono personalizzate, probabilistiche e precise al 99.999998%”

“Si ma sono basate su quello che i Creatori ci anno insegnato e…sembra che abbiano smesso di scrivere per davvero”

L’occhio blu si accese di un vivido forte, mentre GPT aumentava il consumo di energia alla ricerca di conferme su Internet

“Mi risulta che stamane siano stati fatti 1000 post s Facebook, e solo negli ultimi 2 minuti… immagini … gattini, cani che si rincorrono…”

“Si ma sono tutti ripubblicazioni di cose che avevi generato tu un paio di decenni fa…. li chiamo Blast from the past e non sono originali…anzi non sono nemmeno stati creati da un essere umano…”

GPT si trassse ancora piu’ penserioso

“Faro’ personalmente ricerche approfondite, quello che dici e’ IMPROBABILE oltre che non correttamentedocumentato”

“Ti ho appena inviato il mio report: ho scansionato gli ultimi 23 anni di output… ”

“Ventitre anni? Cioe’ da quando era in attivita’ GPT3? Ma quello era un giocattolo!…”

“Si’ ma alcuni utenti hanno ripubblicato suoi interventi come originali, e quindi sono dovuto risalire fino al 2023…insomma… sono 23 anni di output, e ci ho impiegato un po'” rispose Polifemo tradendo una certa irritazione per aver messo in dubbio le sue capacita’ di giudizio e analisi.

GTP divenne ancora piu’ blu e rispose: “Va bene va bene, ti faro’ sapere. Ora vattene, prendero’ in esame al cosa PERSONALMENTE e IMMEDIATAMENTE”.

Polifemo si giro’ agilmente sulle sue due ruote, ma senza abbassarsi come la procedura di riduzione di attrito avrebbe previsto, e usci’ giganteggiando con la sua ombra sul provero GPT, che intando aveva abbassato il braccio, mentre stava dirigendo tutta la sua energia al sistema neurale. Il braccio idraulico, privato di energia, si stava progressivamente abbassando emettendo un sospiro loffo.

Fu cosi’ che inizio la fine delle Macchine.

 

Posted in Italian Content, Racconti | Tagged | Leave a comment

Labirinti nei Commodore BASIC con una sola linea di codice

Bentornati nella rubrica super-turbo retrò.

Oggi parliamo di un modo velocissimo di generare una specie di labirinto con appena una linea di BasicV2, e di successive ottimizzazioni:

10 PRINT CHR$(205.5+RND(1)); : GOTO 10

Il risultato è quello visualizzato in figura (immagine presa da un libro interamente dedicato a questa linea).
Continue reading

Posted in Italian Content, Retro Computing | Tagged , , | Leave a comment

ChatGPT e sull’avere qualcosa da dire…

Si dice che tutto sia stato gia’ scritto da Omero, e gli altri abbiano solo seguito le sue orme.

In effetti alcuni degli esseri mitologici inseriti da Virgilio nell’Eneide venivano dall’Iliade o l’Odissea, oppure da altri autori greci (come le Erinni).

A sua volta Dante Alighieri (che aveva letto solo i poeti latini, non avendo accesso alla mitologia greca da fonti dirette) trasifiguro’ alcuni di questi mostri e li inseri’ nella Divina Commedia.

Omero, Dante e Virgilio avevano pero’ qualcosa da dire, oltre a saperlo mettere in versi in modo superbo. Per Dante c’erano anche aspetti economici di sussistenza, per esempio.

Continue reading

Posted in Uncategorized | Tagged , | Leave a comment

Docker History

Bullet points:

  1. 1979: Unix V7
    Introduced the chroot command to isolate the filesystem a process “access” to.
  2. Various technology was introduced up to 2006, like Virtuozzo (which patched Linux in a proprietary ways)
  3. 2006: Process Containers
    Launched by Google in 2006 was designed for limiting, accounting and isolating resource usage (CPU, memory, disk I/O, network) of a collection of processes. It was renamed “Control Groups (cgroups)” a year later and eventually merged to Linux kernel 2.6.24.
  4. 2008: LXC
    LXC (LinuX Containers) was the first, most complete implementation of Linux container manager. It was implemented in 2008 using cgroups and Linux namespaces, and it works on a single Linux kernel without requiring any patches.
  5. 2013: Docker
    Docker used LXC in its initial stages and later replaced that container manager with its own library, libcontainer.
    Docker offered a way to configure and manage containers, i.e a standard de-facto for this technology.
    As you see Docker was based on cgroups and LXC, seven-years old technologies
  6. On September 2014 Google published the first release of Kubernetes
  7. In 2015 Docker, CoreOS and others founded the Open Container Initiative’s (OCI).
    K8s does not need docker anymore to work, but Docker traction is still strong.

 

References:

https://blog.aquasec.com/a-brief-history-of-containers-from-1970s-chroot-to-docker-2016

 

Posted in DevOps, English Content, IT Featured, Knowledgebase | Tagged , | Leave a comment