Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Documentation complète sur la compilation de programmes

57 réponses
Avatar
enae
Bonjour,

j'utilise quotidiennement de nombreux programmes pour toute tâche.

Après examen de tutoriels, livres de programmations et autres
ressources, je continue de me poser des questions sur le processus de
compilation de programmes.

Certes, le fichier sources est traduit en langage machine, certes, pour
ce faire il faut utiliser des options -o etc...
Mais existe-t-il réellement un manuel complet (ou ressource
informatique) abordant de façon concrète, claire et en profondeur les
points suivants:
- les différentes étapes du processus de compilation, leur utilité, le
fonctionnement en détail de celles-ci
- toutes les options possibles, chacune étant expliquée en profondeur
- des explications sur l'impact hardware lié à la compilation
- la compilation croisée
- les bonnes pratiques de programmation (exemple: indenter son code et
le commenter)

Je vous remercie d'avance pour votre aide.

10 réponses

1 2 3 4 5
Avatar
Vincent Lefevre
On 2016-01-01 23:43:48 +0100, wrote:
On Friday 01 January 2016 23:29:25 Vincent Lefevre wrote:
> On 2016-01-01 22:50:37 +0100, wrote:
> > Qui a écrit que l'Assembleur n'était plus beaucoup utilisé :
> > KolibriOS est un système d'exploitation, tout petit mais incroyablement
> > optimisé (OS Libre, publié en majorité sous licence GPL v2).
> > Ces performances sont atteintes grâce à l'écriture du coeur de KolibriOS
> > (noyau et pilotes) en langage * assembleur FASM * :
> > https://fr.wikipedia.org/wiki/FASM
> > Du fait de cette optimisation, il ne nécessite que quelques megaoctets
> > d'espace disque et seulement 8Mo de mémoire vive.
> > Le système démarre en moins de 10 secondes sur un PC à 100€, de
> > l'allumage à l'affichage de l'interface graphique.
> > Les applications se lancent instantanément, sans avoir à supporter
> > de pointeur en forme de sablier.

> La rapidité et le peu de mémoire nécessaire sont probablement plus
> dûs à la simplicité du système qu'au fait que ce soit programmé en
> assembleur.

Qu'en sais tu ?



Le gain de programmer en assembleur par rapport à une compilation C
est toujours limité. Si tu essaies de réécrire GNU Linux et toutes
ses fonctionnalités en assembleur, tu n'arriveras jamais à tenir avec
8 Mo de mémoire vive.

Tu sembles vouloir saborder KolibriOS sans le connaître.
Pourquoi KolibriOS serait-il "simple" ? :



cf son site web. Le support hardware est très limité. Il n'y a aucune
info concernant l'accessibilité, la localisation, le multi-utilisateur,
la virtualisation, tout ce qui est associé à la sécurité, etc.

Si tu as des infos, n'hésite pas à compléter:

https://en.wikipedia.org/wiki/KolibriOS

alors fais la comparaison de vitesse avec des mini distributions Linux...
également réputées pour leur simplicité, je dirai plutôt "dépouillé".
Leur site indique : "système d'exploitation tout petit mais incroyablement
optimisé" (mais pas "simplicité).



Tu crois tout ce que dit la pub?

L'assembleur étant le langage le plus proche du processeur (langage machine),
il a comme première qualité la rapidité de ses programmes.



C'est assez simpliste comme remarque, surtout pour les x86, où
la rapidité, donc la façon dont on doit coder en assembleur,
dépend vraiment du processeur. C'est d'ailleurs pour ça que GMP
a du code assembleur pour chaque variante x86. Il y a d'ailleurs
toujours des questions ouvertes sur pourquoi tel code est plus
rapide qu'un autre code plus simple sur processeur Intel (les
processeurs AMD testés ont un comportement normal):

https://communities.intel.com/message/257079
https://software.intel.com/en-us/forums/intel-isa-extensions/topic/533786

--
Vincent Lefèvre - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
Avatar
jdd
Le 01/01/2016 22:50, a écrit :

En savoir plus, installer KolibriOS :
http://kolibrios.org/fr/

Tiens, pour 2016, ça va nous changer de Linux :-)




I could run kolibrios live iso on virtualbox, but couldn't make a usb
pen drive. DD the img file do not make the pen bootable, and even from
widows I couldn't make the instructions work.

any hint?

thanks
jdd
Avatar
Bernard Schoenacker
Le Sat, 2 Jan 2016 09:54:44 +0100,
jdd a écrit :

Le 01/01/2016 22:50, a écrit :

> En savoir plus, installer KolibriOS :
> http://kolibrios.org/fr/
>
> Tiens, pour 2016, ça va nous changer de Linux :-)
>

I could run kolibrios live iso on virtualbox, but couldn't make a usb
pen drive. DD the img file do not make the pen bootable, and even
from widows I couldn't make the instructions work.

any hint?

thanks
jdd




bonne année jdd,

tu as encore abusé se la "Suze" ...

j'ai essayé kolibri avec virtualbox et il faut décompacter l'image iso
et lancer dans virtualbox le live cdrom ...

mode opératoire:

wget http://builds.kolibrios.org/eng/latest-iso.7z
p7zip -d latest-iso.7z

obtenir kolibri.iso

utiliser la procédure avec virtualbox


à partir de windows:

copier le lien dans wackget
décompacter avec 7zip
utiliser image writer ou directement via virtualbox

http://wiki.pcbsd.org/index.php/Burning_the_Installation_Media/9.2/fr

utiliser image writer :

https://launchpad.net/win32-image-writer/


slt
bernard
Avatar
andre_debian
On Saturday 02 January 2016 02:11:57 Vincent Lefevre wrote:

> > > Qui a écrit que l'Assembleur n'était plus beaucoup utilis é :
> > > KolibriOS est un système d'exploitation, tout petit mais
> > > incroyablement optimisé Ces performances sont atteintes
> > > grâce à l'écriture du coeur de KolibriOS
> > > (noyau et pilotes) en langage * assembleur FASM * :

> > La rapidité et le peu de mémoire nécessaire sont proba blement plus
> > dûs à la simplicité du système qu'au fait que ce soit programmé en
> > assembleur.
>
> Qu'en sais tu ?
Le gain de programmer en assembleur par rapport à une compilation C
est toujours limité. Si tu essaies de réécrire GNU Linux e t toutes
ses fonctionnalités en assembleur, tu n'arriveras jamais à teni r avec
8 Mo de mémoire vive.
cf son site web. Le support hardware est très limité. Il n'y a aucune
info concernant l'accessibilité, la localisation, le multi-utilisate ur,
la virtualisation, tout ce qui est associé à la sécurità ©, etc.

> alors fais la comparaison de vitesse avec des mini distributions Linux. ..
> également réputées pour leur simplicité, je dirai p lutôt "dépouillé".
> Leur site indique : "système d'exploitation tout petit mais incroy ablement
> optimisé" (mais pas "simplicité) :

Tu crois tout ce que dit la pub?



Il ne s'agit pas d'une pub sur un OS, émanant d'une entreprise à profit,
c'est une initiative formidable de développeurs sous licence Libre GPL V2,
permettre à de vieux PC moribonds d'utiliser un OS rapide édulcor é et
dépouillé, en utilisant le langage assembleur, ce qui est trà ¨s original.

> L'assembleur étant le langage le plus proche du processeur
> (langage machine),
> il a comme première qualité la rapidité de ses programme s.

C'est assez simpliste comme remarque, surtout pour les x86, où
la rapidité, donc la façon dont on doit coder en assembleur,
dépend vraiment du processeur. C'est d'ailleurs pour ça que GMP
a du code assembleur pour chaque variante x86. Il y a d'ailleurs
toujours des questions ouvertes sur pourquoi tel code est plus
rapide qu'un autre code plus simple sur processeur Intel (les
processeurs AMD testés ont un comportement normal):



Tu réponds comme si KolibriOS devait être un système ultra p ro.
Il répond à un besoin, tout le monde n'a pas besoin de sécur ité.
Maintenant, que le travail est bien lancé, comme il est Libre,
des développeurs peuvent l'améliorer.
Tu sembles nier le principe de l'Opensource :
télécharger le code source, en prendre connaissance,
l'améliorer, et le remettre à disposition.

On s'en fout des états d'âmes sur l'assembleur :
c'est une initiative originale, à découvrir, qui peut donner des idées,
il n'y a rien d'autres à dire.

André
Avatar
jdd
Le 02/01/2016 12:47, a écrit :

il n'y a rien d'autres à dire.




un peu quand même, on peut aussi l'essayer.

http://kolibrios.org

déjà, la page de garde fait la promo du google of code... 2014, ensuite
le format de l'image est prévu pour disquette, accessoire que mon
ordinateur vieux de 5 ans ne possède plus.

Ensuite, ca marche sur cd, ca se lance sans problème sur virtualbox ou
une machine relle, mais je n'ai pas réussi à faire une clé usb bootable,
pas même sous windows, encore moins sous linux, ou les instructions (qui
ne fonctionnent pas) sont pour le moins bizarres qui demandent de copier
un secteur de boot sur /dev/sdb1 (oui sdb1, pas sdb).

une fois lancé, on a une interface pas mal mais qui semble être utile
pour développer ou jouer...

le meilleur c'est qu'on a le net

ca ressemble donc surtout à un concept dont les concepteurs se lassent.

Pour les appareils légers, puppy linux et sa version française

http://toutoulinux.free.fr/

sont aussi rapides et un peu mieux suivis

jdd
Avatar
andre_debian
Le 02/01/2016 12:47, a écrit :
> il n'y a rien d'autres à dire.



On Saturday 02 January 2016 13:03:41 jdd wrote:
un peu quand même, on peut aussi l'essayer.
http://kolibrios.org
déjà, la page de garde fait la promo du google of code... 2014, ensuite
le format de l'image est prévu pour disquette, accessoire que mon
ordinateur vieux de 5 ans ne possède plus.
Ensuite, ca marche sur cd, ca se lance sans problème sur virtualbox ou
une machine relle, mais je n'ai pas réussi à faire une clé usb bootable,
pas même sous windows, encore moins sous linux, ou les instructions (qui
ne fonctionnent pas) sont pour le moins bizarres qui demandent de copier
un secteur de boot sur /dev/sdb1 (oui sdb1, pas sdb).
une fois lancé, on a une interface pas mal mais qui semble être utile
pour développer ou jouer...
le meilleur c'est qu'on a le net
ca ressemble donc surtout à un concept dont les concepteurs se lasse nt.
Pour les appareils légers, puppy linux et sa version française
http://toutoulinux.free.fr/
sont aussi rapides et un peu mieux suivis



Le projet KolibriOS souffre de certaines erreurs et imperfections,
sans doute de jeunesse, espérons que l'équipe s'étoffera et y remédiera.

Ce qui m'a fait tilter est que les codes de ce système d'exploitation
sont écrits en Assembleur ASM, ce que je ne pensais pas possible
pour un tel projet.

Je voulais répondre aux "détracteurs" de l'Assembleur qui semblai ent le
condamner comme étant pratiquement plus utilisé et réservà © à des applis
processeuir 8 bits du moyen-âge, et.. la preuve que non !

Les vieilles méthodes peuvent renaître de leurs cendres,
tel aussi par exemple le langage Cobol...

André
Avatar
jdd
Le 02/01/2016 18:54, a écrit :

Le projet KolibriOS souffre de certaines erreurs et imperfections,
sans doute de jeunesse, espérons que l'équipe s'étoffera et y remédiera.



il date quand même de 2004 :-)


Ce qui m'a fait tilter est que les codes de ce système d'exploitation
sont écrits en Assembleur ASM, ce que je ne pensais pas possible
pour un tel projet.



c'est vrai que c'est une performance. Tout est possible, à condition de
le vouloir


Je voulais répondre aux "détracteurs" de l'Assembleur qui semblaient le
condamner comme étant pratiquement plus utilisé et réservé à des applis
processeuir 8 bits du moyen-âge, et.. la preuve que non !



pqs sûr que ce soit une preuve, il faudrait que ce système ai du succès


Les vieilles méthodes peuvent renaître de leurs cendres,
tel aussi par exemple le langage Cobol...




un compilateur ne fait rien d'autre que d'écrire de l'assembleur :-)

j'avais cité le FORTH

https://fr.wikipedia.org/wiki/Forth_%28langage%29

http://www.forth.org/

http://www.forth.com/

parce qu'il est très facile de passer de la version de haut niveau à
celle en assembleur

mais je crois que la puissance des machines actuelles est telle quelle
est plus grande que les besoins de la plupart des utilisateurs. Fut un
temps où je recompilais le noyau pour gagner un peu de vitesse, je ne
l'ai pas fait depuis longtemps...

jdd
Avatar
Sylvain L. Sauvage
Le samedi 2 janvier 2016, 19:27:30 jdd a écrit :
[…]
j'avais cité le FORTH
[…]
parce qu'il est très facile de passer de la version de haut
niveau à celle en assembleur



À condition d’avoir un processeur à pile… ( FILO, pas de Volta
;o)

--
Sylvain Sauvage
Avatar
Yves Rutschle
On Sat, Jan 02, 2016 at 06:54:50PM +0100, wrote:
Ce qui m'a fait tilter est que les codes de ce système d'exploitation
sont écrits en Assembleur ASM, ce que je ne pensais pas possible
pour un tel projet.



Bien sûr que c'est possible, par définition on peut tout
faire en assembleur. La question, c'est de savoir si c'est
efficace, si c'est le meilleur outil pour le travail, etc.

Je voulais répondre aux "détracteurs" de l'Assembleur qui semblaient le
condamner comme étant pratiquement plus utilisé et réservé à des applis
processeuir 8 bits du moyen-âge, et.. la preuve que non !



En l'occurence, la petite taille et la performance n'ont pas
de rapport avec la technologie utilisée. C'est petit et
rapide parce que c'est largement moins complet et complexe
qu'un Linux ou Windows moderne, et s'ils avaient rempli le
même cahier des charges en C, ils seraient sans doute
arrivés au même résultat à 10% près. Dans l'embarqué, on a
des tas de systèmes d'exploitation qui prennent quelques ko
(kilo-octets, oui, moins de 100), et qui sont pourtant écris
en C: par contre, ils chargent des binaires, gèrent le
multi-tâche et les espaces mémoires de processus , et ça
s'arrête à peu près là.

J'en prendrai pour preuve le système sur 1 disquette que QNX
avait publié vers 1999: interface graphique, navigateur Web,
ça gérait tout ça dans un mouchoir de poche et à toute
vitesse. En C.

Les vieilles méthodes peuvent renaître de leurs cendres,
tel aussi par exemple le langage Cobol...



Se lancer dans la programmation d'un navigateur Web en
assembleur, c'est pas de la vieille méthode, c'est de
l'inconscience. Mais bon, chacun son truc, y'en a bien qui
programment en brainfuck (on doit aussi pouvoir faire un
navigateur dans ce langage, d'ailleurs...)

Y.
Avatar
andre_debian
On Saturday 02 January 2016 19:27:30 jdd wrote:
mais je crois que la puissance des machines actuelles est telle quelle
est plus grande que les besoins de la plupart des utilisateurs. Fut un
temps où je recompilais le noyau pour gagner un peu de vitesse, je n e
l'ai pas fait depuis longtemps...



Distributions ultra légères : KolibriOS, Toutou-Linux... :
sauf pour redonner jeunesse à des vieux PC antédiluviens,
ou pour dépanner sa distribution principale en rade.

(avec Knoppix Live, le boot est beaucoup trop long).

André
1 2 3 4 5