Alfonso Maruccia

MS-DOS è roba da museo

Microsoft cede il codice sorgente del suo vecchio sistema operativo a un museo californiano, assieme a quello del primo Word. Tutti potranno dare un'occhiata a come è iniziata la fortuna di Redmond

Roma - MS-DOS finisce al Computer History Museum (CHM), organizzazione californiana a cui Microsoft ha deciso di donare il codice sorgente delle prime, storiche versioni del sistema operativo a riga di comando con in più Word per Windows come "bonus".

L'iniziativa congiunta Microsoft-CHM arriva a non molta distanza - storicamente parlando - dal trentesimo anniversario di MS-DOS, un prodotto che ha gettato le fondamenta dell'impero del colosso di Redmond nonostante le umili origini e la relativa semplicità dei 300 chilobyte di codice sorgente (con 12 chilobyte di memoria RAM come requisito base per l'esecuzione).

Al CHM sono stati in particolare donati i file sorgente (assieme a quelli compilati) di MS-DOS 1.1, MS-DOS 2.0 e Word for Windows 1.1a, e il museo li ha a sua volta messi a disposizione del vasto pubblico per il download e lo studio senza particolari vincoli di sorta. Resta implicito, naturalmente, il divieto di servirsi del codice per qualsivoglia progetto commerciale fuori dalla sfera dell'accademia.
Il presidente di CHM sottolinea l'importanza di avere a disposizione i file sorgente originali delle primissime versioni di MS-DOS, perché preservando tali listati si può "capire come il software si sia evoluto dalle sue radici primitive fino a diventare una parte cruciale della nostra civiltà". Dal canto suo, Microsoft sottolinea invece le ridotte dimensioni dell'azienda quando i suoi 100 impiegati (contro le decine di migliaia di oggi) lavoravano in collaborazione con IBM a MS-DOS e al "Progetto Chess" (IBM 5150, il primo PC della storia): oggi Redmond è invece impegnata a costruirsi un futuro fatto di servizi e mobile, ripartendo da lì per creare una prospettiva a Windows e all'industria PC.

Alfonso Maruccia
Notizie collegate
  • AttualitàI primi 30 anni dell'MS-DOSStorico compleanno dell'altrettanto storico sistema operativo dei PC IBM e compatibili. Microsoft acquistò l'OS originale per pochi spiccioli e lo trasformò nelle fondamenta del suo impero
123 Commenti alla Notizia MS-DOS è roba da museo
Ordina
  • Un sistema operativo datato 1980/83 scritto completamente in assembler, incasinatissimo, codice non rientrante ... cioè ... il C è del 71 !
    non+autenticato
  • - Scritto da: Quelo
    > Un sistema operativo datato 1980/83 scritto
    > completamente in assembler, incasinatissimo,
    > codice non rientrante ... cioè ... il C è del 71
    > !

    Peccato che a quei tempi ancora non eri in fase produttiva. Avresti saputo certamente fare scelte migliori.
    non+autenticato
  • - Scritto da: Quelo
    > Un sistema operativo datato 1980/83 scritto
    > completamente in assembler, incasinatissimo,
    > codice non rientrante ... cioè ... il C è del 71
    > !
    P.S. doveva girare su questo:
    http://en.wikipedia.org/wiki/IBM_Personal_Computer
    Leggi BENE il minimo di memoria...
    non+autenticato
  • > P.S. doveva girare su questo:
    > http://en.wikipedia.org/wiki/IBM_Personal_Computer
    > Leggi BENE il minimo di memoria...

    Lo so, ne ho uno a casa.
    non+autenticato
  • - Scritto da: Quelo
    > > P.S. doveva girare su questo:
    > >
    > http://en.wikipedia.org/wiki/IBM_Personal_Computer
    > > Leggi BENE il minimo di memoria...
    >
    > Lo so, ne ho uno a casa.

    Ciò che Wikipedia non dice è che la tastiera costava 400 mila lire pesava più un chilo, era blindata in metallo, e i tasti lavoravano con un proximity e un processore a parte della INTEL il famoso 8051.

    Un'altra cosa che non dice è che le periferiche erano realizzate con porte logiche TTL Dual in Line e la scheda CGA era lunga quasi 40 centimetri con tanto di schemi forniti sul manuale tecnico.
    non+autenticato
  • - Scritto da: Quelo
    > - Scritto da: Quelo
    > > > P.S. doveva girare su questo:
    > > >
    > >
    > http://en.wikipedia.org/wiki/IBM_Personal_Computer
    > > > Leggi BENE il minimo di memoria...
    > >
    > > Lo so, ne ho uno a casa.
    >
    > Ciò che Wikipedia non dice è che la tastiera
    > costava 400 mila lire pesava più un chilo, era
    > blindata in metallo, e i tasti lavoravano con un
    > proximity e un processore a parte della INTEL il
    > famoso
    > 8051.
    Ed era fantasticaOcchiolino
    non+autenticato
  • > Ed era fantasticaOcchiolino

    Ed indistruttibile... non si rompeva neanche a martellate !
    già e il feedback favoloso... in pratica era un vero e proprio allenamento per i polpastrelli... tant'è che dopo qualche settimana, i bicipidi venivano alle dita !!!
    Oggi con questo schifo di tastiere a corsa corta non sai mai se hai premuto o no un tasto.
  • - Scritto da: Quelo
    > Un sistema operativo datato 1980/83 scritto
    > completamente in assembler, incasinatissimo,
    > codice non rientrante ... cioè ... il C è del 71
    > !

    Hai presente quanta RAM c'era nei PC nei primi anni 80? Si sceglieva l'assembly semplicemente perché potevi ottimizzare al massimo sia l'uso della memoria che la dimensione del compilato (assemblato, in questo caso) sia le prestazioni.

    Sull'Amiga i giochi al 99% erano scritti in assembly anche fino a metà anni 90! E i compilatori C esistevano eccome!
  • >
    > Hai presente quanta RAM c'era nei PC nei primi
    > anni 80? Si sceglieva l'assembly semplicemente
    > perché potevi ottimizzare al massimo sia l'uso
    > della memoria che la dimensione del compilato
    > (assemblato, in questo caso) sia le
    > prestazioni.
    >

    Conosco bene quanta RAM c'era nei primi PC perché ne ho uno, un modello BASE (pre XT) che dovrebbe stare bene in un museo, anche se col tempo è stato taroccato.

    Il modello BASE dove girava il DOS 1.0 (che ammetteva solo eseguibili entro i 64k con estensione) aveva 64K di ram.

    Il Borland Turbo Pascal, che era molto usato a livello didattico, era un ambiente IDE completo con editor, compilatore e linker integrati in un unico prodotto ed occupava circa 62K di Floppy Disk (rigorosamente 5 1/4 da 360K l'uno).

    Per quanto riguarda il prodotto di un compilatore C (che sicuramente la Microsoft avrebbe potuto permettersi di usare), pur ammettendo che all'epoca i compilatori non erano così ottimizzati, il risultato a livello di prestazioni non è molto lontano dall'assembler puro.

    Diciamo che riflettendoci bene, per quello che doveva fare il DOS (inteso come MSDOS.SYS) forse il C sarebbe stato d'impaccio, visto che non era altro che una implementazione dell'interrupt 21H con il passaggio dei valori tramite registri, ma da lì a scriversi il command.com e roba tipo il chkdsk in assebler è veramente da farsi del male.
    non+autenticato
  • - Scritto da: Quelo
    > Diciamo che riflettendoci bene, per quello che
    > doveva fare il DOS (inteso come MSDOS.SYS) forse
    > il C sarebbe stato d'impaccio, visto che non era
    > altro che una implementazione dell'interrupt 21H
    > con il passaggio dei valori tramite registri, ma
    > da lì a scriversi il command.com e roba tipo il
    > chkdsk in assebler è veramente da farsi del
    > male.
    O esserne capaciA bocca aperta
    non+autenticato
  • - Scritto da: Quelo
    > Un sistema operativo datato 1980/83 scritto
    > completamente in assembler, incasinatissimo,
    > codice non rientrante ... cioè ... il C è del 71
    > !

    Accomodati.
    Ci sono ottimi emulatori di macchine dell'epoca con 64K di memoria, in cui puoi divertirti a scrivere sistemi operativi in C a piacimento.
    Poi ci farai sapere quanto spazio resta per le applicazioni (se ne resta).
  • Davvero era il primo PC della storia il PC-IBM 5150 allora gli altri erano tablet?
  • > Davvero era il primo PC della storia il PC-IBM
    > 5150 allora gli altri erano
    > tablet?

    Dipende solo dalla definizione di personal computer (all'epoca andava forte anche l'etichetta home computer, che significava più o meno la stessa cosa).
    I francesi dicono che il primo PC era il Micral N del 1973, gli italiani l'Olivetti Programma 101, del 1965.A bocca aperta
    Questo sito ironizza sulla mania di ricercare esempi di personal computer sempre più indietro nel tempo:

    http://www.blinkenlights.com/pc.shtml
    -----------------------------------------------------------
    Modificato dall' autore il 27 marzo 2014 14.28
    -----------------------------------------------------------
  • - Scritto da: Leguleio
    > > Davvero era il primo PC della storia il
    > PC-IBM
    > > 5150 allora gli altri erano
    > > tablet?
    >
    > Dipende solo dalla definizione di personal
    > computer (all'epoca andava forte anche
    > l'etichetta home computer, che significava più o
    > meno la stessa
    > cosa).
    > I francesi dicono che il primo PC era il Micral N
    > del 1973, gli italiani l'Olivetti Programma 101,
    > del 1965.
    >A bocca aperta
    > Questo sito ironizza sulla mania di ricercare
    > esempi di personal computer sempre più indietro
    > nel
    > tempo:
    >
    > http://www.blinkenlights.com/pc.shtml
    LOL si carino... e ogni tanto mi ci perd/evo anch'io nel pignolare sul "prima c'era"... ma se uno non vuole fare +- infinite elocubrazioni storico-tecnologiche conviene attenersi alla "media standard" ...

    primo homebrew : prezzo subumano, circuiti, interruttori, ecc: altair
    primo home : prezzo/uso umano + TV : apple ][
    primo personal : prezzo/uso umano^2 + monitor + app da ufficio : ibm 5150
    primo micro/mini: qui e' piu' un casino...Sorride intendendosi per micro o minicomputer, quella roba dipartimentale possibilmente venduta in piu' di 10 pezziCon la lingua fuori   io dico DEC PDP-8 ..Con la lingua fuori

    il Micral per es sarebbe anche stato 'personal' se non fosse costato (rapido calcolo, magari errato) come 10 anni di stipendio di un operaio...
    Il bellissimo Programma-101 era "personal & computer" forse solo per ricchi contabiliSorride ... essendo fondamentalmente una calcolatrice elettronica con output su carta
    non+autenticato
  • ci sarebbero stati anche commodore, apple e chissa quali altre marche che non ricordo.

    Di sicuro il cp/m non era per "home", o meglio non solo.
  • - Scritto da: Guido Gonzato
    > Notizia vecchia:
    >
    > http://tech.slashdot.org/story/14/03/25/186232/mic

    Quindi /. ne ha finalmente imbroccata una su Microsoft?
    non+autenticato
  • Nei sorgenti di word, dentro la directory "Opus" c'è il file "style.c". Un po' in bassi si trova la funzione:

    BOOL FDlgDefineStyle(dlm, tmc, wNew, wOld, wParam)
    DLM dlm;
    TMC tmc;
    WORD wNew, wOld, wParam;

    Ok, a parte la notazione storica della definizione dei parametri, questa funzione è lunga 717 righe... non so se mi spiego. Il primo parametro, dlm (e che vuol dire "dlm"? "Dialog Mode"?) serve per selezionare il blocco da eseguire in un mega switch per l'esecuzione della funzionalità invocata. In più ci sono alcune label e dei goto per gestire situazioni particolari (in luogo delle più moderne eccezioni?).

    Si può anche notare il continuo ricorso a prefissi nei nomi, tipo notazione ungherese. E poi ci sono cose di questo tipo:

    fRet = fFalse;

    dove fRet è BOOL. Perché fFalse? Vuol dire "flag false"?A bocca aperta

    Insomma, codice d'altri tempi!A bocca aperta

    Mi chiedo: ma questo coso com'è diventato il word moderno?A bocca aperta

    P.S.: anche il secondo parametro, cioè "tmc", è usato per selezionare l'operazione da eseguire attraverso un ulteriore livello di switch.


    P.S.2: ...e c'è pure il continuo ricorso a globaliA bocca aperta
    -----------------------------------------------------------
    Modificato dall' autore il 27 marzo 2014 10.37
    -----------------------------------------------------------
    FDG
    10893
  • - Scritto da: FDG
    > Mi chiedo: ma questo coso com'è diventato il word
    > moderno?
    >A bocca aperta
    >
    Riscrivendolo in giava e colorandolo qua e laA bocca aperta
    non+autenticato
  • - Scritto da: FDG

    >
    > P.S.2: ...e c'è pure il continuo ricorso a
    > globali
    >A bocca aperta

    La ram era quella che era.
    L'uso di globali era una necessita' all'epoca.
    Impensabile pensare di far proliferare variabili ridondanti gonfiando lo stack ad ogni chiamata a subroutine.
  • - Scritto da: panda rossa

    > La ram era quella che era.
    > L'uso di globali era una necessita' all'epoca.

    Infatti ho scritto "codice d'altri tempi". Anche se non sono sicuro che il problema fosse passare un puntatore in più (e magari qualche altro parametro in meno).
    FDG
    10893
  • - Scritto da: FDG
    > - Scritto da: panda rossa
    >
    > > La ram era quella che era.
    > > L'uso di globali era una necessita'
    > all'epoca.
    >
    > Infatti ho scritto "codice d'altri tempi". Anche
    > se non sono sicuro che il problema fosse passare
    > un puntatore in più (e magari qualche altro
    > parametro in
    > meno).

    Sono sicuro io di quello.
    Era prassi comune quella di riservare un'area di memoria a tutte le variabili globali, che poi veniva salvata direttamente su file, per essere ricaricata paro paro quando il programma ripartiva.

    Poca ram, poco spazio su disco, quindi o cosi' o pomi'.

    Parliamo di tempi in cui un hard disk da 8 mega era un costosissimo lusso opzionale, e i computer viaggiavano con due floppy. A: col sistema operativo e B: col programma e i dati salvati sul disco medesimo.
  • - Scritto da: panda rossa

    > Sono sicuro io di quello.
    > Era prassi comune quella di riservare un'area di
    > memoria a tutte le variabili globali, che poi
    > veniva salvata direttamente su file, per essere
    > ricaricata paro paro quando il programma
    > ripartiva.

    Si, ma stai andando indietro. Quello di cui parlo è Word 1.1 per windows, uscito nel 1990.

    Edit: comunque, ci sono una serie di cose che non mi convincono nel tuo ragionamento. Intanto, si parla di Word 1.1 per windows, software che a mia memoria gestiva più documenti e non solo uno. Poi, se la questione della memoria può aver senso quando si considera la struttura dati scelta e le modalità di gestione della stessa, meno quando si parla del modo in cui vengono mantenuti i riferimenti a questa struttura dati. Quindi, ammesso che il salvataggio su Word fosse effettuato registrando in blocco una zona di memoria, sarebbe stato ininfluente a fini dell'occupazione di memoria se il riferimento questo blocco fosse stato fissato all'inizio o fornito come parametro alla funzione di salvataggio. Al massimo ci si sarebbe dovuti occupare della potenziale frammentazione della memoria applicativa con strutture dati in grado di gestire più documenti di dimensione variabile. Ma il problema sarebbe stato a prescindere dovuto alle strutture dati scelte e al metodo di gestione della memoria. Ma ho l'impressione, considerando quello che ho visto fino ad ora nel codice scaricato e i miei ricordi sul software, che il problema fosse stato risolto tenendo in memoria solo parte del documento, cioè quella su cui si stava lavorando, lasciando sul file il resto e che quindi il salvataggio fosse gestito per differenze, cioè registrando solo le parti modificate.

    Comunque, è un interessante oggetto di studio.
    -----------------------------------------------------------
    Modificato dall' autore il 27 marzo 2014 18.25
    -----------------------------------------------------------
    FDG
    10893
  • - Scritto da: FDG
    > - Scritto da: panda rossa
    >
    > > Sono sicuro io di quello.
    > > Era prassi comune quella di riservare
    > un'area
    > di
    > > memoria a tutte le variabili globali, che poi
    > > veniva salvata direttamente su file, per
    > essere
    > > ricaricata paro paro quando il programma
    > > ripartiva.
    >
    > Si, ma stai andando indietro. Quello di cui parlo
    > è Word 1.1 per windows, uscito nel
    > 1990.
    Prova a leggerti qualcuno dei suoi articoli:
    http://blogs.msdn.com/b/oldnewthing/
    sono molto illuminanti
    non+autenticato
  • - Scritto da: 2014

    > Prova a leggerti qualcuno dei suoi articoli:
    > http://blogs.msdn.com/b/oldnewthing/
    > sono molto illuminanti

    Il GDI aveva una gestione delle region indecente. Non so se fosse per problemi di memoria. Sicuramente non potevano usare l'eccellente metodo usato dal QuickDraw visto che Apple aveva provveduto a proteggerlo con un brevetto (il lupo perde il pelo...Occhiolino).
    FDG
    10893
  • - Scritto da: FDG
    > - Scritto da: 2014
    >
    > > Prova a leggerti qualcuno dei suoi articoli:
    > > http://blogs.msdn.com/b/oldnewthing/
    > > sono molto illuminanti
    >
    > Il GDI aveva una gestione delle region indecente.
    > Non so se fosse per problemi di memoria.
    > Sicuramente non potevano usare l'eccellente
    > metodo usato dal QuickDraw visto che Apple aveva
    > provveduto a proteggerlo con un brevetto (il lupo
    > perde il pelo...
    >Occhiolino).

    Non penso che il nostro amico intendesse riferirsi alle region. Quello e' semplicemente l'articolo piu' recente del blog.
    non+autenticato
  • - Scritto da: Alceste
    > - Scritto da: FDG
    > > - Scritto da: 2014
    > >
    > > > Prova a leggerti qualcuno dei suoi
    > articoli:
    > > > http://blogs.msdn.com/b/oldnewthing/
    > > > sono molto illuminanti
    > >
    > > Il GDI aveva una gestione delle region
    > indecente.
    > > Non so se fosse per problemi di memoria.
    > > Sicuramente non potevano usare l'eccellente
    > > metodo usato dal QuickDraw visto che Apple aveva
    > > provveduto a proteggerlo con un brevetto (il
    > lupo
    > > perde il pelo...
    > >Occhiolino).
    >
    > Non penso che il nostro amico intendesse
    > riferirsi alle region. Quello e' semplicemente
    > l'articolo piu' recente del
    > blog.
    EsattoOcchiolino
    non+autenticato
  • - Scritto da: FDG
    > - Scritto da: panda rossa
    >
    > > Sono sicuro io di quello.
    > > Era prassi comune quella di riservare
    > un'area
    > di
    > > memoria a tutte le variabili globali, che poi
    > > veniva salvata direttamente su file, per
    > essere
    > > ricaricata paro paro quando il programma
    > > ripartiva.
    >
    > Si, ma stai andando indietro. Quello di cui parlo
    > è Word 1.1 per windows, uscito nel
    > 1990.

    Ah, pensavo parlassimo del dos.

    > Edit: comunque, ci sono una serie di cose che non
    > mi convincono nel tuo ragionamento. Intanto, si
    > parla di Word 1.1 per windows, software che a mia
    > memoria gestiva più documenti e non solo uno.

    Word 5 per windows sicuramente gestiva piu' documenti. (ce l'ho funzionante sotto dosbox).

    L'1.1 sinceramente non lo ricordo. Forse era ancora per windows 1.0, con interfaccia a caratteri.
    Pero' potrebbe essere...

    > Poi, se la questione della memoria può aver senso
    > quando si considera la struttura dati scelta e le
    > modalità di gestione della stessa, meno quando si
    > parla del modo in cui vengono mantenuti i
    > riferimenti a questa struttura dati. Quindi,
    > ammesso che il salvataggio su Word fosse
    > effettuato registrando in blocco una zona di
    > memoria, sarebbe stato ininfluente a fini
    > dell'occupazione di memoria se il riferimento
    > questo blocco fosse stato fissato all'inizio o
    > fornito come parametro alla funzione di
    > salvataggio.

    No, effettivamente no.
    Word ha sempre salvato i documenti in formato doc, e sempre salvato le configurazioni dell'applicazione nel file.ini.

    Quello che dicevo io era riferito ad un'epoca precedente.

    > Al massimo ci si sarebbe dovuti
    > occupare della potenziale frammentazione della
    > memoria applicativa con strutture dati in grado
    > di gestire più documenti di dimensione variabile.
    > Ma il problema sarebbe stato a prescindere dovuto
    > alle strutture dati scelte e al metodo di
    > gestione della memoria. Ma ho l'impressione,
    > considerando quello che ho visto fino ad ora nel
    > codice scaricato e i miei ricordi sul software,
    > che il problema fosse stato risolto tenendo in
    > memoria solo parte del documento, cioè quella su
    > cui si stava lavorando, lasciando sul file il
    > resto e che quindi il salvataggio fosse gestito
    > per differenze, cioè registrando solo le parti
    > modificate.
    >
    > Comunque, è un interessante oggetto di studio.

    Il vi funziona ad oggi ancora cosi'.
    Tiene in memoria solo la pagina di file che e' visibile a video e per il resto swappa.
    Era una esigenza necessaria all'epoca, ma che ancora oggi si dimostra imbattibile quando si ha a che fare con files di log di 100 mega a botta.
  • M$ deve avere un grande senso dell'umorismo per arrivare a "mettere a disposizione i sorgenti del DOS"; è come "mettere a disposizione una foto di Sara Tommasi nuda"!

    Bastava avere qualche conoscenza di Assembly e si poteva disassemblare e leggere facilmente il sorgente del DOS; non a caso, gli sviluppatori di virus ci andavano a nozze.
    Tra le cose più esilaranti, mi ricordo che nell'header dei file EXE c'era una campo a 16 bit chiamato Signature; il file veniva suddiviso in gruppi di 16 bit (WORD), veniva calcolata la somma dei valori contenuti in tutte queste WORD e il risultato veniva messo nel campo Signature. Al momento di eseguire l'EXE, il DOS ricalcolava questa somma e, se i conti non tornavano, mostrava il famoso messaggio "eseguibile corrotto". Questa era la "sofisticata" protezione antivirus dei file EXE!
    I virus si attaccavano in fondo ai file EXE, ricalcolavano e modificavano opportunamente il campo Signature e così diventavano invisibili; quando l'ignaro utente lanciava l'eseguibile, il DOS non si accorgeva di nulla e il virus poteva agire indisturbato.
    non+autenticato
  • ma il ripristino del sistema durava una manciata di minuti incluso fdisk e format della partizione attiva.
    non+autenticato
  • - Scritto da: Alvaro Vitali
    > Tra le cose più esilaranti, mi ricordo che
    > nell'header dei file EXE c'era una campo a 16 bit
    > chiamato Signature; il file veniva suddiviso in
    > gruppi di 16 bit (WORD), veniva calcolata la
    > somma dei valori contenuti in tutte queste WORD e
    > il risultato veniva messo nel campo Signature. Al
    > momento di eseguire l'EXE, il DOS ricalcolava
    > questa somma e, se i conti non tornavano,
    > mostrava il famoso messaggio "eseguibile
    > corrotto". Questa era la "sofisticata" protezione
    > antivirus dei file
    > EXE!

    Veramente quello che descrivi era il checksum del file ai fini di coerenza . All'epoca i supporti di memorizzazione non erano il massimo, idem per le trasmissioni telematiche; avviare un file eseguibile corrotto in DOS significava l'inevitabile crash di sistema.
  • - Scritto da: Albedo 0,9
    >
    > Veramente quello che descrivi era il checksum del
    > file ai fini di coerenza . All'epoca i supporti
    > di memorizzazione non erano il massimo, idem per
    > le trasmissioni telematiche; avviare un file
    > eseguibile corrotto in DOS significava
    > l'inevitabile crash di sistema.

    Era un checksum che doveva garantire l'integrità del file, in generale. I virus dilagavano anche perché potevano facilmente ricalcolare il valore del campo Signature tenendo conto della maggiore dimensione dovuta all'aggiunta del codice del virus stesso.
    non+autenticato
  • - Scritto da: Alvaro Vitali
    > - Scritto da: Albedo 0,9
    > >
    > > Veramente quello che descrivi era il
    > checksum
    > del
    > > file ai fini di coerenza . All'epoca i
    > supporti
    > > di memorizzazione non erano il massimo, idem
    > per
    > > le trasmissioni telematiche; avviare un file
    > > eseguibile corrotto in DOS significava
    > > l'inevitabile crash di sistema.
    >
    > Era un checksum che doveva garantire l'integrità
    > del file, in generale. I virus dilagavano anche
    > perché potevano facilmente ricalcolare il valore
    > del campo Signature tenendo conto della maggiore
    > dimensione dovuta all'aggiunta del codice del
    > virus
    > stesso.

    Il campo "signature" caratterizzava quei due bytes MZ iniziali, mentre ciò che descrivi si chiamava "checksum" o "negative checksum".

    Tutto il discorso sul proliferare dei virus A CAUSA di quel campo secondo me è una baggianata, proprio perché ricordo che per accodarsi a file EXE (non COM, i quali erano facilissimi da infettare) occorreva del lavoro più complesso rispetto al banale checksum, dato il sistema di rilocazione.

    Rispolverando infatti ho trovato questo: http://vxheavens.com/lib/vbw04.html
    Nota l'elenco numerato al paragrafo "To infect an .EXE file using the generic appending method, one must do the following:".
  • contenuto non disponibile
  • - Scritto da: unaDuraLezione
    >
    > togli pure 'secondo me' e sostituisci
    > 'baggianata' con 'cagata pazzesca'.

    Cerchiamo di non scrivere fesserie.
    Siccome è passato troppo tempo, ho semplicemente confuso il campo Signature ('MZ' per i file EXE) con il campo CheckSum (magari stavo pensando alla signature dei virus).
    Il discorso che ho fatto mi sembrava abbastanza comprensibile: se un virus si "appiccica" ad un EXE, deve necessariamente modificare il campo Checksum per non farsi scoprire; in più, è necessario modificare anche gli altri campi LastPageSize e PageCount (anche perché, nelle ultime versioni del DOS, il campo Checksum veniva opportunamente ignorato).
    non+autenticato
  • contenuto non disponibile
  • - Scritto da: unaDuraLezione
    > - Scritto da: Alvaro Vitali
    >
    > > Cerchiamo di non scrivere fesserie.
    > > Siccome è passato [...]
    >
    > Ascolta, il checksum a quei tempi era tutto
    > 'grasso che
    > cola'.
    > L'unico metodo reale per evitare che un virus si
    > agganci ad un exe è usare firme e certificati,
    > far girare processi in ring differenti (quelli
    > atti a validare e dare il permesso di esecuzione)
    > e così
    > via.
    > Tutto ciò era totalmente fuori dalla portata
    > degli scopi di un OS primordiale e
    > fondamentalmente disconnesso ( connesso in LAN
    > quando andava bene) quale MSDOS. Per non palrare
    > dei 640kb di RAM... a momenti manco ci stanno i
    > certificati e il programma per
    > usarli.
    > Facile parlare col senno di poi...

    Quoto, cazzo se quoto.
    non+autenticato
  • - Scritto da: Alvaro Vitali
    > - Scritto da: unaDuraLezione
    > >
    > > togli pure 'secondo me' e sostituisci
    > > 'baggianata' con 'cagata pazzesca'.
    >
    > Cerchiamo di non scrivere fesserie.
    > Siccome è passato troppo tempo, ho semplicemente
    > confuso il campo Signature ('MZ' per i file EXE)
    > con il campo CheckSum (magari stavo pensando alla
    > signature dei
    > virus).
    > Il discorso che ho fatto mi sembrava abbastanza
    > comprensibile: se un virus si "appiccica" ad un
    > EXE, deve necessariamente modificare il campo
    > Checksum per non farsi scoprire ; in più, è
    > necessario modificare anche gli altri campi
    > LastPageSize e PageCount (anche perché, nelle
    > ultime versioni del DOS, il campo Checksum veniva
    > opportunamente
    > ignorato).

    Per permettere che l'eseguibile continuasse a funzionare , altrimenti si andava in crash.

    Più chiaro così?
  • - Scritto da: Albedo 0,9

    > non COM, i quali erano facilissimi da

    che tempi

    mi ricordo quando, non avendo nè un assembler nè un compilatore ( erano gli inizi degli anni '90, quella roba costava più dell'oro ), realizzavo i COM a mano

    scrivevo il programma in assembly sul foglio, poi lo traducevo in esadecimale aiutandomi col libro di Coffron ( che aveva una sezione con la lista dei codici mnemonici e le relative rappresentazioni binarie delle istruzioni dell'8086 ), infine infilavo i codici in una serie di DATA in un programma BASIC, che poi usavo per scrivere il file COM su disco

    dopo un paio di settimane decisi di realizzare un assembler tutto mio, almeno evitavo di tradurre gli mnemonici a mano

    qualche anno dopo misi le mani su una versione di turbo pascal 6.0, alcuni mesi dopo riuscii a procurarmi quickbasic 4.5

    N.B. il basic che usavo era il GW-BASIC, successivamente smanettai un pò col Qbasic che però mancava anche lui di un compilatore

    poi l'IDE proprio non mi andava giù, per cui usavo il GW-BASIC anche con le nuove versioni del DOS, fino a che non scoprii i due compilatori succitati
    non+autenticato
CONTINUA A LEGGERE I COMMENTI
1 | 2 | 3 | Successiva
(pagina 1/3 - 11 discussioni)