J'ai un vieux petit programme qui tournait sous DOS...Ce programme accède à la mémoire vidéo pour des questions de rapidités....
Peut on accéder à la mémoire vidéo sous Linux ? Si oui comment ?
La réponse est non, c'est le noyau qui accède à la mémoire vidéo et en général c'est le serveur X qui donne les ordres au noyau. Donc si tu veux que ton programme tourne sur X ce n'est pas possible. Mais après conversion, peut-être que tu te rendra compte que le gain de temps n'en vaut pas l'effort nécessaire à accéder à la mémoire vidéo.
Pour une approche plus proche du dos, tu peux faire tourner ton programme sur le framebuffer, mais l'accès ne se fait pas de la même façon que sous dos et ton appli ne fonctionnera pas en même temps que le serveur X.
Une troisième possibilité qui te permettra de faire tourner ton programme sans y toucher est de faire tourner dos (ou freedos) un émulateur style qemu (ou vmware).
Petits compléments sur ce qui est dit plus haut.
à l'époque du DOS il était impératif (et possible) d'accéder directement au matériel car 1/ les interfaces disponibles (via interruptions) était extremement lentes et 2/ un seul programme tournait sur une machine à un instant t.
Actuellement sur les OS récents, le multi-tache est la priorité pour cela une couche d'abstraction est mise en place afin de gérer le partage du matériel. Mais en contre partie ces interfaces sont bien plus efficaces que celles disponibles à l'époque.
j'ai pour ma part il y a longtemps porté un soft fait avec turbo pascal qui utilisait le mode VGA 16 couleurs, vers freepascal sous linux. Cela a été trés simple : freepascal propose la libsvga qui permet de passer à 16M de couleurs pour le même prix ;-)
Par contre l'accés mémoire vidéo se fait avec des droits majeurs : SUID ROOT (chmod +s binaire). Cette programmation est aujourd'hui révolue, mais peut encore aider pour porter des applications métier, sur poste monotâche.
# Non, mais peut-etre
Posté par peck (site web personnel) . Évalué à 6.
Pour une approche plus proche du dos, tu peux faire tourner ton programme sur le framebuffer, mais l'accès ne se fait pas de la même façon que sous dos et ton appli ne fonctionnera pas en même temps que le serveur X.
Une troisième possibilité qui te permettra de faire tourner ton programme sans y toucher est de faire tourner dos (ou freedos) un émulateur style qemu (ou vmware).
# Complements.
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 4.
à l'époque du DOS il était impératif (et possible) d'accéder directement au matériel car 1/ les interfaces disponibles (via interruptions) était extremement lentes et 2/ un seul programme tournait sur une machine à un instant t.
Actuellement sur les OS récents, le multi-tache est la priorité pour cela une couche d'abstraction est mise en place afin de gérer le partage du matériel. Mais en contre partie ces interfaces sont bien plus efficaces que celles disponibles à l'époque.
# oui, avec libsvga
Posté par ʭ ☯ . Évalué à 4.
Par contre l'accés mémoire vidéo se fait avec des droits majeurs : SUID ROOT (chmod +s binaire). Cette programmation est aujourd'hui révolue, mais peut encore aider pour porter des applications métier, sur poste monotâche.
⚓ À g'Auch TOUTE! http://afdgauch.online.fr
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.