Una stampante può avere appena 400 KB di RAM, nessun driver proprietario per Windows o macOS e comparire comunque nell’elenco dei dispositivi disponibili quando si seleziona il comando Stampa. Un ricercatore indipendente, Nishant Joshi, lo ha dimostrato trasformando un piccolo lettore e-ink programmabile in una stampante di rete riconosciuta automaticamente da macOS.
Il progetto è interessante soprattutto per ciò che insegna. Oggi per stampare non è necessario basarsi sul vecchio modello nel quale ogni produttore distribuisce un pacchetto software capace di insegnare al sistema operativo come comunicare con uno specifico dispositivo. Standard come IPP, IPP Everywhere, AirPrint e Mopria permettono invece alla stampante di descrivere autonomamente le proprie capacità e al computer di inviarle documenti usando linguaggi e formati concordati.
Il sistema operativo non deve già “conoscere” la stampante: può chiederle direttamente che cosa sa fare.
Un lettore e-ink diventa una stampante
Joshi è partito da uno Xteink X3, piccolo dispositivo con display e-ink basato su hardware programmabile. L’obiettivo iniziale non era costruire una stampante tradizionale: voleva semplicemente poter aprire un documento sul Mac, premere Stampa e selezionare il lettore dall’elenco delle stampanti.
Per riuscirci ha implementato sul dispositivo un piccolo server IPP (Internet Printing Protocol). Il firmware dichiara al Mac caratteristiche molto semplici: stampa monocromatica, risoluzione di 300 DPI, una sola copia, stampa su un solo lato e supporto per Apple Raster e PWG Raster.
Il dispositivo si annuncia inoltre in rete come servizio _ipp._tcp attraverso mDNS. Acronimo di Multicast DNS, mDNS permette ai dispositivi presenti sulla stessa rete locale di individuarsi e risolvere nomi senza appoggiarsi a un server DNS centrale: le richieste sono inviate in multicast e i dispositivi interessati rispondono direttamente. In questo caso, mDNS consente al dispositivo di pubblicizzare la propria presenza come servizio IPP, così che macOS possa trovarlo senza che l’utente debba conoscere o inserire manualmente l’indirizzo IP corrispondente.
macOS individua un servizio compatibile, ne interroga le capacità, converte il documento da stampare in un formato che la destinazione dichiara di saper elaborare e lo trasmette.
IPP non è semplicemente “un modo per spedire un file alla stampante”
L’Internet Printing Protocol nasce per modellare una stampante come un vero servizio di rete. IPP definisce oggetti, attributi, operazioni, stati dei job e meccanismi attraverso i quali client e stampante possono negoziare ciò che devono fare.
Prima di stampare, ad esempio, un client può utilizzare Get-Printer-Attributes per interrogare il dispositivo: la risposta può descrivere formati supportati, caratteristiche dei supporti, opzioni di stampa, stato della periferica e altre proprietà.
Quando arriva il momento di stampare, l’operazione Print-Job permette invece di inviare sia gli attributi del lavoro sia il documento vero e proprio. IPP contempla inoltre operazioni distinte per creare il job, inviare successivamente il documento e consultarne lo stato. La comunicazione IPP viaggia attraverso HTTP e può utilizzare TLS. Non è quindi semplicemente un socket nel quale riversare byte: è un protocollo strutturato con richieste, risposte, attributi e gestione dello stato.
Nel caso del progetto sviluppato da Joshi, l’ostacolo più importante è la memoria. Una pagina a 300 DPI occuperebbe circa 8,4 MB usando un byte per pixel, mentre lo Xteink X3 dispone complessivamente di soli 400 KB di RAM, parte dei quali già riservati al sistema. Joshi ha quindi modificato il flusso di elaborazione per decodificare, ridimensionare e trasformare l’immagine riga per riga, scrivendo progressivamente il risultato direttamente nel buffer del display.
Da IPP a IPP Everywhere
IPP da solo non risolve completamente il problema dei driver. Si può infatti avere una stampante perfettamente compatibile con IPP che accetta soltanto un linguaggio di descrizione delle pagine: il computer deve così possedere qualcosa capace di produrre esattamente quel formato.
Printer Working Group, l’organizzazione che mantiene le specifiche IPP, definisce IPP Everywhere come uno standard che permette a PC e dispositivi mobili di individuare e utilizzare stampanti di rete o USB senza software specifico del produttore.
Una stampante IPP Everywhere non si limita a “parlare IPP”: aderisce anche a un insieme di requisiti comuni relativi alla scoperta del dispositivo, ai formati documentali e alle funzionalità esposte.
Tra gli elementi richiesti da IPP Everywhere figurano IPP 2.0, usato per gestire il dialogo tra computer e stampante, e DNS-SD, che permette di individuare automaticamente il dispositivo e i servizi che offre sulla rete locale.
Per quanto riguarda invece il contenuto da stampare, lo standard prevede il supporto a PWG Raster, un formato raster standardizzato dal Printer Working Group pensato proprio per la stampa driverless: il sistema operativo converte la pagina in una rappresentazione composta da pixel già pronta per essere elaborata dalla stampante, evitando la dipendenza da linguaggi proprietari.
Per i dispositivi a colori entra in gioco anche JPEG JFIF, utile soprattutto per immagini e contenuti fotografici, mentre il supporto al formato PDF è raccomandato ma non costituisce il requisito minimo fondamentale.
Secondo il Printer Working Group, circa il 98% delle stampanti oggi vendute supporta già IPP 2.0 e DNS-SD anche se questo non implica una certificazione IPP Everywhere.
AirPrint: la versione Apple della stampa senza driver
AirPrint è probabilmente l’esempio più conosciuto di stampa driverless: Apple lo descrive esplicitamente come una tecnologia che permette di stampare da iPhone, iPad, Mac e Apple Vision Pro senza scaricare o installare driver aggiuntivi.
La tecnologia della Mela utilizza IPP per la comunicazione e Bonjour per l’individuazione dei dispositivi. Apple documenta, ad esempio, URI del tipo:
ipp://myprinter.local.:631/ipp/port1
e specifica che i dispositivi AirPrint individuano stampanti IPP che espongono le caratteristiche previste, compreso il supporto URF, Universal Raster Format.
Il Mac può quindi scoprire il dispositivo, ottenere le sue capacità e convertire la pagina nel formato raster previsto senza installare il classico pacchetto da centinaia di megabyte distribuito dal produttore.
È sostanzialmente ciò che succede nel progetto Xteink: Joshi ha implementato quel minimo insieme di funzionalità sufficiente a fare apparire il dispositivo come una destinazione di stampa compatibile.
Mopria fa qualcosa di simile nel mondo Windows e Android
Mopria applica un concetto analogo su un insieme più ampio di piattaforme. La Mopria Alliance riunisce produttori come Brother, Canon, Epson, HP, Konica Minolta, Kyocera e Xerox, definendo specifiche comuni per stampa e scansione. La tecnologia è integrata nel servizio di stampa predefinito di Android e costituisce oggi un elemento centrale anche dell’architettura di stampa Windows.
Su Windows la conseguenza pratica è importante: una stampante Mopria può utilizzare Microsoft IPP Class Driver, evitando l’installazione del driver tradizionale fornito dal produttore. In un altro articolo abbiamo visto come Windows 11 privilegi la stampa senza driver appoggiandosi a IPP e Mopria.
Microsoft ha introdotto il modello ai tempi di Windows 10 21H2 per i dispositivi compatibili Mopria collegati sia via rete sia via USB. Personalizzazioni e funzioni specifiche del produttore possono essere aggiunte attraverso le Print Support Apps.
Si separano così due elementi che per decenni erano praticamente inseparabili: il protocollo necessario per stampare e l’interfaccia software specifica del produttore.
Windows sta progressivamente mettendo da parte i driver V3 e V4
Nel 2026 Microsoft ha accelerato l’abbandono dei tradizionali driver di stampa Windows V3 e V4.
Dal 15 gennaio 2026, per Windows 11 e Windows Server 2025 Microsoft non accetta più automaticamente nuovi driver di stampa attraverso Windows Update: eventuali nuove pubblicazioni da parte dei vari produttori entrano in un processo di revisione e devono rientrare nelle eccezioni previste. Tra i casi ammessi figurano dispositivi che non possono ottenere la certificazione Mopria, fax, versioni ARM64 e driver destinati ai sistemi Windows precedenti.
Un altro passaggio importante è scattato il 1° luglio 2026: il sistema di gestione dei driver Windows preferisce ora sempre Microsoft IPP Class Driver incorporato rispetto ai driver del produttore disponibili attraverso Windows Update.
Dal 1° luglio 2027, inoltre, Microsoft prevede di non accettare più aggiornamenti dei driver di stampa di terze parti attraverso Windows Update, salvo correzioni legate alla sicurezza. I vecchi pacchetti potranno comunque continuare a essere installati manualmente dal produttore. Microsoft sta insomma spostando il modello predefinito verso IPP più Mopria più Microsoft IPP Class Driver integrato.
Windows Protected Print Mode o Modalità di stampa protetta
Quando la Modalità di stampa protetta risulta attiva in Windows, il sistema operativo elimina dall’ambiente di stampa i driver di terze parti e consente l’utilizzo delle stampanti compatibili tramite il moderno stack IPP. Se una stampante Mopria era stata precedentemente configurata usando il driver del produttore, può essere reinstallata utilizzando Windows Ready Print.
Microsoft indica anche una ragione di sicurezza. I vecchi driver di stampa introducono nel sistema molto codice sviluppato da terze parti: alcune componenti possono interagire con lo spooler e devono analizzare formati, comandi e strutture specifiche della stampante. Riducendo il numero di software caricati e utilizzando un insieme limitato di funzionalità, Microsoft sostiene di poter restringere significativamente la superficie d’attacco associata alla stampa.
Il tema non è secondario dopo anni di vulnerabilità legate allo spooler di Windows, delle quali PrintNightmare resta soltanto l’esempio più famoso.
RAW 9100 e LPR: i protocolli storici che IPP sta sostituendo
Prima della diffusione di IPP, la stampa di rete si affidava spesso a protocolli molto più semplici.
Uno dei più comuni è RAW printing, noto anche come AppSocket o JetDirect e generalmente associato alla porta TCP 9100. Il funzionamento è essenziale: il computer apre una connessione con la stampante e invia direttamente il flusso di dati, per esempio attraverso un URI come socket://192.168.1.50:9100.
La semplicità è anche il suo principale limite: RAW 9100 non offre un meccanismo ricco per interrogare le capacità della periferica, negoziare le opzioni di stampa o descrivere in modo standardizzato il lavoro di stampa. Il client deve già sapere quale formato produrre; se la stampante accetta PostScript, PCL o un linguaggio proprietario; serve quindi un componente capace di generare correttamente quel flusso, ruolo storicamente affidato al driver.
Ancora più datato è LPR/LPD, protocollo derivato dai sistemi Unix Berkeley: utilizza normalmente la porta TCP 515 e tratta la stampante soprattutto come una coda remota. Il client invia il lavoro, può interrogare lo stato della coda o richiederne la cancellazione, ma dispone di capacità molto più limitate rispetto a IPP.
LPR distingue tipicamente tra file di controllo e file contenenti i dati da stampare e sopravvive ancora oggi soprattutto per compatibilità con vecchi print server, apparati industriali e infrastrutture Unix consolidate.
L’esperimento della stampante con 400 KB di RAM
La prova svolta da Joshi con il suo dispositivo e-ink rende visibile qualcosa che sulle stampanti commerciali rimane nascosto.
Il dispositivo non usa alcun driver, non esiste un installer e non serve conoscere preventivamente il modello. Il lettore annuncia semplicemente: sono una stampante IPP, queste sono le caratteristiche che supporto e questi sono i formati che posso gestire.
Il fatto che tutto possa funzionare su un microcontrollore con poche centinaia di kilobyte di memoria mostra quanto il modello sia indipendente dalla complessità dell’hardware.
IPP Everywhere, AirPrint e Mopria non eliminano ogni software coinvolto nel processo. Evitano che ogni stampante debba predisporre un proprio modo per spiegare al sistema operativo come stampare.
/https://www.ilsoftware.it/app/uploads/2026/09/funzionamento-stampante-senza-driver-infografica.jpg)