Jump to content

Universal Binaries


RQSTR

Recommended Posts

En voyant le terme Universal Binaries j'ai eu une illusion d'utopiste, et j'ai bien du chercher pour être sûr d'avoir tort. Naturellement, j'avais tort. Snif.

J'ai rêvé un temps -soit peu, que l'UB était un nouveau langage véritablement universel! Et qu'entendais-je sous ceci? Ben oui! Un langage où, par exemple, en achetant Photoshop en UB (soit dans un an! :transpi: merci Adobe et Apple), qu'allait bien m'importer la plateforme, il fonctionnerait! Que l'OS soit Windows, OSX, Linux, etc. Alors là, vive le switch, vive la réelle concurrence!

Mais un rêve, c'est un rêve.

Link to comment
Share on other sites

Universal Binaries ne concerne que Mac OS X PPC et Intel.

Et ce n'est pas une histoire de concurrence ou pas, qu'un exécutable soit compatible tout ou pas.

Le fonctionnement même des OS, leur librairies, leurs routines, leurs interfaces sont différentes, donc un seul exécutable ne peux pas être compatible tout (ou très difficilement).

Nombre de logiciels, surtout libre et OpenSource, existent pour plusieurs OS, généralement UNIX/Mac OS X, Linux, Windows. Seulement, le logiciel est compilé différemment pour chaque système, ce qui donne pour chaque système un exécutable différent.

Si tu veux des précisions, n'hésite pas :transpi:

Link to comment
Share on other sites

Je ne sais pas quel est ton degré de connaissance en informatique, mais en tant que programmeur, je dois avouer que ce serai un monde parfait aussi... Tu développe une seule appli et elle tourne partout... :transpi:

Ceci dit, il faut avouer que c'est déjà pas mal ce qu'ils ont fait.

Un binaire qui tourne sur deux architecture complètement différentes (vraiment très différentes :byebye: Je ne vais pas me lancer dans le jeux des 14^2398 erreurs entre un PowerPC et une machine x86, mais vraiment ça n'a absoluement rien à voir) c'est vraiment bien.

Après si tu veux des applis qui tournent "indifférements" sous Mac/Linux/Unix/Windows ben il y a tout de suite moins de monde... c'est soit des langage de scripts (genre Python/Perl/shell et autre...) soit des binaires qui s'executent sur des machines virtuelles (comme Java ou .Net). Mais le problème se pose dès que tu veux utiliser des biliothèque non standard, donc a installer sur chaque machine... bref le début du bonheur quoi. :transpi:

Donc les UB c'est vraiment pas mal quand même :byebye:

Link to comment
Share on other sites

Universal Binaries ne concerne que Mac OS X PPC et Intel.

Et ce n'est pas une histoire de concurrence ou pas, qu'un exécutable soit compatible tout ou pas.

Le fonctionnement même des OS, leur librairies, leurs routines, leurs interfaces sont différentes, donc un seul exécutable ne peux pas être compatible tout (ou très difficilement).

Nombre de logiciels, surtout libre et OpenSource, existent pour plusieurs OS, généralement UNIX/Mac OS X, Linux, Windows. Seulement, le logiciel est compilé différemment pour chaque système, ce qui donne pour chaque système un exécutable différent.

Si tu veux des précisions, n'hésite pas :transpi:

Oui oui je sais... je ne faisais que relater un bref rêve qui m'est survenu en découvrant le terme "Universal" :) Mais merci pour ces précisions!

Donc les UB c'est vraiment pas mal quand même

Oui c'est une bonne initiative! (en même temps ils n'avaient pas le choix, commercialement parlant).

Link to comment
Share on other sites

Je précise qu'une application UB est un "paquet" contenant un exécutable PPC et un exécutable Intel, pas un exécutable compatible les deux :)

Certes, mais pour l'utilisateur c'est pareil :)

Et c'est bien ça l'important ^^

Il est à noté que dans un but de prouesse techinque il est possible de faire des binaires compatible pour Linux ET Windows (pour x86 seulement hein :)).

/!\ attention pour geek only :transpi: /!\

En fait il faut partir sur la base que les binaires pour windows ont un entête, et ceux pour linux non.

De là, tu fais un binaires au format windows presque classique qui s'éxécute normalement sous windows.

Et tu te débrouilles pour très vite détecter en assembleur si tu es sous windows ou pas.

Si tu es sous windows tu continues.

Si tu es sous Linux tu dépiles tes instructions (qui ressemblait pas à grand chose il faut le dire) et tu te rebranche là où il faut.

L'interet ? Auncun je pense... car pour l'utilisation de librairie c'est vite le bordel. De plus ton binaire n'est qu'un "package" qui contient les deux binaires pour les deux bonnes plateformes.

La seule utilité que je verai à la rigueur à ce truc là, c'est que tu peux faire un virus pour Linux et Windows dans le même fichier, ce qui augmenterai sensiblement son risque de propagation. Toutefois, cela signifie que ton virus repose sur l'explotation de failles présentes dans 2 OS complètement différents (sachant aussi qu'une distrib linux est assez différentes d'une autres (pas forcement les même noyau avec les même modules...)) bref difficilement utilisable même dans ce contexte là.

Pour l'instant, il n'y a que les applications Java qui sont multi-plateforme et encore, il faut quelques adaptations.

C'est vrai, même si Mono commence à faire un peu surface (plateforme .Net pour Unix/Linux/Mac pour ceux qui ne connaissent pas).

Le prix est une certaine lourdeur, et même une lourdeur certaine.

Complètement d'accord !

Perso, j'ai beaucoup de mal avec Java.

Le but est louable, mais c'est vraiment trop de la merde à mon goût...

Link to comment
Share on other sites

Ouai, svp évitez le Java.... mais vraiment ! :up:

RQSTR : Dans ce cas, le C est universel, ce sont les API et les librairies que tu utilises avec qui le sont moins.

Et puis outre les lib, tu as le problème de l'architecture processeur si t'utilises du compilé tu auras forcément plusieurs exec, sauf pour les cas cité au dessus par weepdoo ^^

Link to comment
Share on other sites

Les sources qui respectent Posix, c'est pas mal aussi, comme format : "universel". Je ne connais pas grand chose en programmation mais j'ai compris que tout source qui respecte Posix peut être compilé sur toute machine unix...

Mais pour ça, faut avoir installé XCode..

Au fait, ce qui est marrant avec Apple, c'est qu'ils n'arrêtent pas de faire des passerelles : Classic (ce n'est pas vraiement une passerelle, mais bon), Carbon, Rosetta, UB... C'est lourd mais intelligent.

F

Link to comment
Share on other sites

Dans ce cas, le C est universel, ce sont les API et les librairies que tu utilises avec qui le sont moins.

Oula... euh comment dire... en théorie oui, en pratique, même sur la même machine, en changeant de compilateur ça marche pas forcement :francais:

Donc le C c'est bien (mieux que le C++ (mieux que le Java (je troll si je veux :sm:)) mais il faut savoir ce qu'on fait et vraiment bien programmer pour que ce soit portable (même entre différents unix)

Toutefois, suivant la machine (même en respectant les standards de codages) tu as parfois des trucs à modifier d'un Unix à l'autre. Solaris / HP / Aix / Bsd / Linux ... c'est compatible dans les grandes lignes, mais tu as toujours des problèmes d'un OS à l'autre sans même parler des archis où tu passes de Sparc à x86 PowerPC dans tous les sens...

Les sources qui respectent Posix, c'est pas mal aussi, comme format : "universel". Je ne connais pas grand chose en programmation mais j'ai compris que tout source qui respecte Posix peut être compilé sur toute machine unix...

Toujours c'est en théorie...

Même GCC n'est pas toujours complètement rétrocompatible.

Mais c'est vrai que programmer suivant les standard Posix simplifie grandement les choses... mais ça fait pas tout :humour:

Mais pour ça, faut avoir installé XCode..

Il ne respect pas le standard pour toi à ce que je sache ^^

Mais je dois avouer que je suis toujours super fan d'emacs :cartonrouge: donc je n'aie jamais vraiment beaucoup utilisé xcode...

Pour ceux que ça intéresse, je vous invite à prendre un projet open source multi plateforme (genre Gaim au hazard) et de regarder les .h (en général) et dedans vous devriez vite trouver plein de macro de fou pour s'adapter à chaque plateforme... et c'est que le début... bref c'est pas toujours très simple de faire du dev multi plateforme.

Message à tout ceux qui developpent des appli open source multi plateforme: MERCI !!!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...