Microsoft ouvre les sources de… MS-DOS 4.0

Vous vous souvenez peut-être, Microsoft avait ouvert les sources de MS-DOS 1.25 et 2.0, il y a dix ans, pour les confier au Computer History Museum. Le code avait été publié dans un dépôt GitHub quatre ans plus tard. Ce dernier contient désormais le code de MS-DOS 4.0, toujours sous licence MIT.

L’histoire de cette version du système est intéressante. En effet, la mouture commercialisée n’est pas celle initialement développée. La version d’origine disposait d’un multitâche préemptif. Ce dernier permettait à un programme, avec un développement idoine, de fonctionner en tâche de fond.

Lorsque le projet a été présenté en 1986, il n’a cependant pas créé l’enthousiasme. À sa sortie commerciale en 1988, le système sera nettement plus classique dans son approche.

Le code publié sur le dépôt GitHub contient bien ce multitâche préemptif qui avait été abandonné. Le travail de récupération et de publication a été réalisé conjointement avec IBM. Microsoft donne des détails intéressants dans son annonce.

Commentaires (30)


Ouch, c'est à 95% de l'assembleur ! À part quelques commandes en C (fdisk, join, ...), tout le reste est en assembleur, même edlin.
En effet, c'était le cas de la plupart des OS de l'époque.
Ouais ça pique !
Oui, et la partie en C a été écrite par des fans de Pascal. :phiphi:
Ils ont osé ça :

#define BEGIN {
#define END }

Quelle horreur tous ces BEGIN et END. :censored:

TheBexFr

Oui, et la partie en C a été écrite par des fans de Pascal. :phiphi:
Ils ont osé ça :

#define BEGIN {
#define END }

Quelle horreur tous ces BEGIN et END. :censored:
Ils tapaient peut-être avec un clavier 85 touches. { Et } n'existaient pas sur le mien.

Wosgien

Ils tapaient peut-être avec un clavier 85 touches. { Et } n'existaient pas sur le mien.
je n'avais pas pensé à cette option. Cependant, après vérification, le clavier IBM modèle F, dans ses premières versions US avait bien les accolades...

TheBexFr

Oui, et la partie en C a été écrite par des fans de Pascal. :phiphi:
Ils ont osé ça :

#define BEGIN {
#define END }

Quelle horreur tous ces BEGIN et END. :censored:
Il y a eu une mode comme ça à un moment où ceux qui ont appris le Pascal ont été mis au C.

Mais c'est passé. :D

fred42

Il y a eu une mode comme ça à un moment où ceux qui ont appris le Pascal ont été mis au C.

Mais c'est passé. :D
oui, et il n'y avait visiblement pas que l'accolade qui ne leur convenait pas, le switch case aussi visiblement :
#define SELECT if(FALSE){
#define CASE(x) }else if((x)){
#define OTHERWISE }else{
#define ENDSELECT }

TheBexFr

Oui, et la partie en C a été écrite par des fans de Pascal. :phiphi:
Ils ont osé ça :

#define BEGIN {
#define END }

Quelle horreur tous ces BEGIN et END. :censored:
Et encore, ça pourrait être pire. Tu pourrais avoir un

#define if while

Et là, tu ne comprends pas pourquoi ton programme s'arrête boucle sur le premier if à true :francais:
Modifié le 02/05/2024 à 08h38

Historique des modifications :

Posté le 02/05/2024 à 08h38


Et encore, ça pourrait être pire. Tu pourrais avoir un

#define if while

Et là, tu ne comprends pas pourquoi ton programme s'arrête sur le premier if à true :francais:

HS total: c'est normal que le brief n'apparaisse plus dans la liste des news ?
J'ai juste la colonne de droite, qui ce matin avait 2 news, et la 3 maintenant, c'est un bug ?
Je plussoie ! C'est tout de même bien pratique d'avoir un article regroupant le brief du jour
Ce n'est pas un bug, le brief est sur le point de changer, vous en aurez des nouvelles très (très) bientôt :chinois:

Vincent Hermann

Ce n'est pas un bug, le brief est sur le point de changer, vous en aurez des nouvelles très (très) bientôt :chinois:
Merci, mais ça aurait été bien de communiquer avant ces premiers changements.
Personnellement, je n'aime pas la disparition de l'article récapitulatif où l'on pouvait tout lire d'un coup juste en appuyant sur la barre espace.

Ce n'est plus "Le Brief" mais des brèves à lire séparément.

fred42

Merci, mais ça aurait été bien de communiquer avant ces premiers changements.
Personnellement, je n'aime pas la disparition de l'article récapitulatif où l'on pouvait tout lire d'un coup juste en appuyant sur la barre espace.

Ce n'est plus "Le Brief" mais des brèves à lire séparément.
Nous travaillons sur une mise à jour qui va sortir de façon imminente, elle sera assortie d'un message d'explication 😊

Vincent Hermann

Ce n'est pas un bug, le brief est sur le point de changer, vous en aurez des nouvelles très (très) bientôt :chinois:
Suite à la migration surprise de nextinpact.com vers next.ink, n'avait-il pas été promis de prévenir désormais les lecteurs _avant_ les changements ?

alex.d.

Suite à la migration surprise de nextinpact.com vers next.ink, n'avait-il pas été promis de prévenir désormais les lecteurs _avant_ les changements ?
Je veux bien ta source, je n’ai pas le souvenir d’avoir particulièrement dit ça mais je peux me tromper.
Des changements il y en a eu énormément et sur une base quotidienne depuis la reprise du coup il va falloir m’expliquer la différence entre le bon et le mauvais changement.
Et du reste, j’ai aussi du mal à comprendre le principe du délai de prévenance.

Ferd

Je veux bien ta source, je n’ai pas le souvenir d’avoir particulièrement dit ça mais je peux me tromper.
Des changements il y en a eu énormément et sur une base quotidienne depuis la reprise du coup il va falloir m’expliquer la différence entre le bon et le mauvais changement.
Et du reste, j’ai aussi du mal à comprendre le principe du délai de prévenance.
il va falloir m’expliquer la différence entre le bon et le mauvais changement.


C'est comme le bon et le mauvais chasseur.

:humour::pastaper:

fdorin

il va falloir m’expliquer la différence entre le bon et le mauvais changement.


C'est comme le bon et le mauvais chasseur.

:humour::pastaper:
C’était un peu la référence implicite oui 😁

Ferd

Je veux bien ta source, je n’ai pas le souvenir d’avoir particulièrement dit ça mais je peux me tromper.
Des changements il y en a eu énormément et sur une base quotidienne depuis la reprise du coup il va falloir m’expliquer la différence entre le bon et le mauvais changement.
Et du reste, j’ai aussi du mal à comprendre le principe du délai de prévenance.
J'ai peut-être un peu sur-interprété tout le lyrisme autour de l'importance de "la communauté", avec par exemple (parmi d'autres) :

"*On parle de la refonte du site comme d’un gros truc, mais à mon avis, ce qui sera le plus difficile, c’est de repenser cette relation, de commencer à avoir une vision d’architecte de communauté, presque.
Que l’aridité de l’information soit compensée par des interactions luxuriantes.*"

alex.d.

J'ai peut-être un peu sur-interprété tout le lyrisme autour de l'importance de "la communauté", avec par exemple (parmi d'autres) :

"*On parle de la refonte du site comme d’un gros truc, mais à mon avis, ce qui sera le plus difficile, c’est de repenser cette relation, de commencer à avoir une vision d’architecte de communauté, presque.
Que l’aridité de l’information soit compensée par des interactions luxuriantes.*"
Nan mais si en plus vous tombez dans le piège de ma rhétorique de vendeur de cravates on n'est pas rendus 😉

Plus sérieusement, nous n'en sommes pas encore à cette étape-là du programme.
Quand je parle de cultiver la communauté, et développer les interactions, je parle évidemment des interactions entre vous (enfin entre nous, lectrices et lecteurs) !
Je pense à un vrai petit réseau social interne, bien fait, qui permette d'avoir des dialogues sur tout avec tout le monde, qui commencent sous les articles, et qui peuvent donner lieu à des échanges qui se déplacent dans une section dédiée.
Qu'on puisse invoquer les gens depuis un message.
Qu'il y ait des MPs, un feed, qu'on puisse suivre des profils qui nous intéressent.
Et qu'il y ait des liens bien intégrés avec le Fediverse, idéalement.
Rien de bien révolutionnaire en somme, juste de quoi vous mettre à l'aise.
Et complètement optionnel au demeurant.

Je ne pensais pas à un site autogéré à base de démocratie totale.
Non pas que je sois anti-démocratie dans l'absolu, c'est même plutôt l'inverse.
Mais ce modèle appliqué à un site qui déchaine les passions les plus contradictoires est la garantie d'une apocalypse rapide et douloureuse.
Modifié le 29/04/2024 à 17h23

Historique des modifications :

Posté le 29/04/2024 à 16h47


Nan mais si en plus vous tombez dans le piège de ma rhétorique de vendeur de cravates on n'est pas rendus 😉

Plus sérieusement, nous n'en sommes pas encore à cette étape-là du programme.
Quand je parle de cultiver la communauté, et développer les interactions, je parle évidemment des interactions entre vous !
Je pense à un vrai petit réseau social interne, bien fait, qui permette d'avoir des dialogues sur tout avec tout le monde, qui commencent sous les articles, et qui peuvent donner lieu à des échanges qui se déplacent dans une section dédiée.
Qu'on puisse invoquer les gens depuis un message.
Qu'il y ait des MPs.
Et qu'il y ait des liens avec le Fediverse, idéalement.
Rien de révolutionnaire en somme, juste de quoi vous mettre à l'aise.
Et complètement optionnel au demeurant.

Je ne pensais pas à un site autogéré à base de démocratie totale.
Non pas que je sois anti-démocratie dans l'absolu, c'est même plutôt l'inverse, mais juste que ce modèle appliqué à un site qui déchaine les passions les plus contradictoires est la garantie d'une apocalypse rapide et douloureuse.

Posté le 29/04/2024 à 16h50


Nan mais si en plus vous tombez dans le piège de ma rhétorique de vendeur de cravates on n'est pas rendus 😉

Plus sérieusement, nous n'en sommes pas encore à cette étape-là du programme.
Quand je parle de cultiver la communauté, et développer les interactions, je parle évidemment des interactions entre vous !
Je pense à un vrai petit réseau social interne, bien fait, qui permette d'avoir des dialogues sur tout avec tout le monde, qui commencent sous les articles, et qui peuvent donner lieu à des échanges qui se déplacent dans une section dédiée.
Qu'on puisse invoquer les gens depuis un message.
Qu'il y ait des MPs, un feed, qu'on puisse suivre des profils qui nous intéressent.
Et qu'il y ait des liens bien faits avec le Fediverse, idéalement.
Rien de révolutionnaire en somme, juste de quoi vous mettre à l'aise.
Et complètement optionnel au demeurant.

Je ne pensais pas à un site autogéré à base de démocratie totale.
Non pas que je sois anti-démocratie dans l'absolu, c'est même plutôt l'inverse, mais juste que ce modèle appliqué à un site qui déchaine les passions les plus contradictoires est la garantie d'une apocalypse rapide et douloureuse.

Ferd

Nan mais si en plus vous tombez dans le piège de ma rhétorique de vendeur de cravates on n'est pas rendus 😉

Plus sérieusement, nous n'en sommes pas encore à cette étape-là du programme.
Quand je parle de cultiver la communauté, et développer les interactions, je parle évidemment des interactions entre vous (enfin entre nous, lectrices et lecteurs) !
Je pense à un vrai petit réseau social interne, bien fait, qui permette d'avoir des dialogues sur tout avec tout le monde, qui commencent sous les articles, et qui peuvent donner lieu à des échanges qui se déplacent dans une section dédiée.
Qu'on puisse invoquer les gens depuis un message.
Qu'il y ait des MPs, un feed, qu'on puisse suivre des profils qui nous intéressent.
Et qu'il y ait des liens bien intégrés avec le Fediverse, idéalement.
Rien de bien révolutionnaire en somme, juste de quoi vous mettre à l'aise.
Et complètement optionnel au demeurant.

Je ne pensais pas à un site autogéré à base de démocratie totale.
Non pas que je sois anti-démocratie dans l'absolu, c'est même plutôt l'inverse.
Mais ce modèle appliqué à un site qui déchaine les passions les plus contradictoires est la garantie d'une apocalypse rapide et douloureuse.
Qu'on puisse invoquer les gens depuis un message.


Beetlejuice Beetlejuice Beetlejuice !!!!

Ferd

Je veux bien ta source, je n’ai pas le souvenir d’avoir particulièrement dit ça mais je peux me tromper.
Des changements il y en a eu énormément et sur une base quotidienne depuis la reprise du coup il va falloir m’expliquer la différence entre le bon et le mauvais changement.
Et du reste, j’ai aussi du mal à comprendre le principe du délai de prévenance.
je pense que c'est plus la notion de changement qui perturbe nos p'tites habitudes ou pas 😅
Là j'avoues, suis un poil perdu/dérouté ce matin pour comprendre ce qui est article et news et où j'en suis de ma lecture... j'ai perdu le "grisé" des articles déjà lus/ouverts (et comme certains sont intéressants mais longs, je peux avoir des onglets sous le coude un moment au milieu de beaucoup d'onglets... donc c'était sympa de savoir ceux déjà lus/ouverts... mais j'imagine que ca reviendra sans doute après la mutation 🙂)

Vincent Hermann

Ce n'est pas un bug, le brief est sur le point de changer, vous en aurez des nouvelles très (très) bientôt :chinois:
Si ce n'est pas un bug, c'est donc une feature ? :D

127.0.0.1

Si ce n'est pas un bug, c'est donc une feature ? :D
J'ai l'impression de lire un intégrateur au taff...
A chaque bug, il me clôture l'incident avec réponse "c'est pas un bug c'est développé comme çà"
Modifié le 29/04/2024 à 14h07

Historique des modifications :

Posté le 29/04/2024 à 14h07


J'ai l'impression de lire un intégrateur au taff...
A chaque bug, clôture incident avec réponse "c'est pas un bug c'est développé comme çà"

Il semblerait que, au contraire de ce qui a été annoncé, il n'y ait pas le source pour la partie multitâche préemptif ; cet article apporte des éclairages assez intéressants sur tout ça : https://lunduke.locals.com/post/5565411/ms-dos-4-0-source-code-fails-to-compile
oui, c'est "MS-DOS Version 4.00" et pas "MS-DOS 4.0".

Subtile différence.

127.0.0.1

oui, c'est "MS-DOS Version 4.00" et pas "MS-DOS 4.0".

Subtile différence.
Bah en plus MS-DOS 4.0 semble ne pas avoir été très répandu... Je viens de fouiller un peu car j'avais des souvenirs de la version 4.01 mais aucun de la 4.0 (alors qu'à l'époque j'étais joueur et me débrouillais pour récupérer/tester toutes les différentes versions que je pouvais dans l'espoir de transformer ma 2cv en Ferrari 🤣) et il semble que la version correctrice a très rapidement pris la place de la version initiale...

SebDel71

Bah en plus MS-DOS 4.0 semble ne pas avoir été très répandu... Je viens de fouiller un peu car j'avais des souvenirs de la version 4.01 mais aucun de la 4.0 (alors qu'à l'époque j'étais joueur et me débrouillais pour récupérer/tester toutes les différentes versions que je pouvais dans l'espoir de transformer ma 2cv en Ferrari 🤣) et il semble que la version correctrice a très rapidement pris la place de la version initiale...
Ah, de tête j'ai eu cette version là en fac pour simuler/reproduire les mouvements d'un palet autoporteur attaché à un élastique.

L'écran était avec texte en orange, 2 disquettes 5"1/4 (DOS 4.0 +Turbo Pascal 4, et fichier de données, de tête).

La fac avait encore plus périmé que mon 386 sous DOS 5.0 :roll:

nostaligie:phibee:

SebDel71

Bah en plus MS-DOS 4.0 semble ne pas avoir été très répandu... Je viens de fouiller un peu car j'avais des souvenirs de la version 4.01 mais aucun de la 4.0 (alors qu'à l'époque j'étais joueur et me débrouillais pour récupérer/tester toutes les différentes versions que je pouvais dans l'espoir de transformer ma 2cv en Ferrari 🤣) et il semble que la version correctrice a très rapidement pris la place de la version initiale...
Dos 4 utilisait trop de mémoire conventionnelle. Trop difficile de lancer un soft,notamment les jeux.
Fermer