Forcément, sur un système d'exploitation un exécutable c'est :
- des instructions en langage machine directement exécutées par le processeur,
- des appels aux fonctions du noyau,
- des appels aux fonctions des librairies du système.
Pour tout ce qui concerne l'utilisation du matériel, il faut bien passer par ces fonctions : afficher, lire/écrire sur le disque dur, réserver de la mémoire, etc. Même pour utiliser le microprocesseur, sur un système actuel il faut bien en passer par le scheduler du système. On n'a plus le droit de monopoliser le CPU comme dans les années 80.
D'ailleurs, comme le C, le Fortran est un langage normalisé dont la norme parle très très peu du matériel : par exemple, dans la norme Fortran 2008, le mot "byte" apparaît 8 fois en 621 pages (essentiellement pour dans la partie interaction avec le C) et le mot "octet" 3 fois. Sur le long terme (~63 ans pour le Fortran, ~50 pour le C), on ne peut pas s'appuyer sur du matériel qui évolue au fil des décennies, ou sur des concepts liés aux systèmes d'exploitation qui évoluent tout autant. Fortran a tourné avant même que le concept de byte se fixe sur 8 bits...
Donc actuellement, sur un système Linux, un exécutable Fortran fait appel au noyau Linux et à la libc. Mais avant la naissance du C et d'UNIX, il se débrouillait autrement. Et s'il faut tourner sur de nouveaux systèmes sans libc, ça ne changera pas grand chose pour l'utilisateur.
[^] # Re: Performance des compilateurs libres
Posté par vmagnin (site web personnel, Mastodon) . En réponse au journal Des nouvelles de Fortran. Évalué à 7.
Forcément, sur un système d'exploitation un exécutable c'est :
- des instructions en langage machine directement exécutées par le processeur,
- des appels aux fonctions du noyau,
- des appels aux fonctions des librairies du système.
Pour tout ce qui concerne l'utilisation du matériel, il faut bien passer par ces fonctions : afficher, lire/écrire sur le disque dur, réserver de la mémoire, etc. Même pour utiliser le microprocesseur, sur un système actuel il faut bien en passer par le scheduler du système. On n'a plus le droit de monopoliser le CPU comme dans les années 80.
D'ailleurs, comme le C, le Fortran est un langage normalisé dont la norme parle très très peu du matériel : par exemple, dans la norme Fortran 2008, le mot "byte" apparaît 8 fois en 621 pages (essentiellement pour dans la partie interaction avec le C) et le mot "octet" 3 fois. Sur le long terme (~63 ans pour le Fortran, ~50 pour le C), on ne peut pas s'appuyer sur du matériel qui évolue au fil des décennies, ou sur des concepts liés aux systèmes d'exploitation qui évoluent tout autant. Fortran a tourné avant même que le concept de byte se fixe sur 8 bits...
Donc actuellement, sur un système Linux, un exécutable Fortran fait appel au noyau Linux et à la libc. Mais avant la naissance du C et d'UNIX, il se débrouillait autrement. Et s'il faut tourner sur de nouveaux systèmes sans libc, ça ne changera pas grand chose pour l'utilisateur.