Bonjour, je cherche à comprendre ce qu'est exactement un programme compilé en C.
Prenons l'exemple d'un programme en C compilé sur XP et qui n'utilise que la bibliothèque stdio. Il est écrit en langage machine mais utilise les dlls comme msvrct par exemple. Le programme est donc dépendant de ces dlls et ne peut fonctionner sans. Est-ce que c'est bien à cause de ça (et uniquement) qu'il ne fonctionnera pas sous Linux par exemple? C'est une vraie question que je me pose.
Je veux dire que si le programme ne nécessitait aucune dll, serait-il pour autant portable, tel quel, sur un autre OS avec le même processeur?
Je me demande aussi: si on "collait" l'ensemble du code machine que représente le programme (exécutable + multiples dlls chargées) est qu'il serait compréhensible par le processeur seul?
En bref un programme compilé dialogue directement avec le processeur sans passer par l'OS?
Tout ça pour demander: comment créer un programme qui marche sans os (lancé par un programme de boot par ex) à partir d'un compilateur C?
Partager