Je me alors deux questions :
A-t-on toujours affaire à de « vrais PC » compatibles 16 bits où on peut lancer le sytème avec une disquette DOS ?
La réponse est oui, du moment que tu trouves une disquette encore vivante et que ton PC dispose d'un lecteur de disquettes. Quant aux carte mères, elles ont encore, le plus souvent, un contrôleur de lecteur de disquettes compatible avec les premiers PC. Même les BIOS sont compatibles avec ceux de l'IBM PC. C'est marrant pour les claviers PS/2 dont les scan codes sont convertis des codes "AT" vers les codes "XT", logiciellement, par le BIOS. Certains BIOS supportent aussi les claviers USB. Les disques durs, qu'ils soient PATA ou SATA ou même les clés USB, peuvent être exposés, par le BIOS, comme les disques de l'IBM AT. Par contre, les OS accédant directement au matériel auront besoin des pilotes appropriés (par exemple, les vieux OS comme Win95 n'ont pas, par défaut, de pilotes pour dd SATA, quoique Win95 peut toujours recourir à l'accès par le BIOS, malheureusement très lent).
Un PC moderne 64 bits, démarre toujours en mode réel 16 bits, avec un adressage limité à 1Mo de RAM. Si on active la ligne A20 on peut gagner 64K-16 octets.
On peut toujours exécuter un OS 16 bits en mode réel, ou un OS en mode protégé 16 bits.
On peut aussi utiliser un OS 32 bits comme Windows 95, qui gère à la fois des segments 16 et 32 bits en mode protégé, ainsi que du Virtual86 et il peut même repasser en mode réel pour certaines opérations.
J'ai un Athlon 64 sur lequel j'ai déja démarré MS-DOS en mode réel, sans problème.
Par contre, là où le bas blesse, c'est que pour bénéficier du mode 64 bits, les OS doivent passer dans un nouveau mode du processeur (le mode LONG), dans lequel il est facile de faire coopérer des segments 64 bits et 32 bits, mais dans lequel les segments 16 bits de code ne peuvent être directement accessible à partir du code 64 bits, car il n'existe pas de call gates pour sauter d'un segment 64 bits à un segment 16 bits (pour un programme Windows 3.x). Je suppose que l'on doit quand même pouvoir exécuter du code 16 bits en passant par l'intermédiaire d'un segment 32 bits, mais ça doit ralentir considérablement l'exécution, et puis il y a peut-être des problèmes de gestion des interruptions matérielles. Quant au Virtual86 (pour les applications MS-DOS) il n'est pas supporté en mode LONG.
Vu que les ordinateurs 32 bits ont longtemps continué à faire tourner des applications 16 bits, pensez-vous, par analogie, que les logiciels 64 bits resteront rares ?
ça dépend de l'OS.
Linux a vite migré au 64 bits, puisqu'il suffit de recompiler, avec des correctifs mineurs, toutes les applications open source. Quelques grosses bouses commerciales, comme Flash Player ont longtemps posé problème.
Quant à Windows, la migration sera beaucoup plus lente, puisqu'il s'agit d'une plateforme vivant principalement sur des binaires.
Même si les nouvelles applications peuvent être 64 bits, les anciennes resteront pour toujours 32 bits.
Je considère qu'il s'est déja écoulé beaucoup de temps (environ 5 ans) entre l'apparition des premiers x86-64 et maintenant, et il y a encore beaucoup de logiciels actuels 32 bits.
Il faut aussi prendre en compte le fait que le nombre de logiciels 16 bits, était déja énorme au temps des premiers OS Win32 (Windows NT 3.x, puis Windows 95), mais, pour le 32 bits, ce chiffre est encore plus gigantesque.
Mais, seul l'avenir nous dira.