[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Franchir le pas ...



gc a écrit :
> Bonjour,
>
Bonjour,
>
> Je suis développeur (depuis 1984) indépendant, actuellement je
> travaille essentiellement sous XP mais, étant souvent prescripteur de
> mes clients, je me pose régulièrement la question de Linux.
>
Ca tombe bien que ce soit un vendredi cette fois, je vais pouvoir me
lacher un peu !
> A chaque fois je bute sur l'opacité et le formalisme de l'entrée,
On essait d'abord, on se pose les questions après... et dans tous les
cas google est votre ami http://www.google.com/linux
> et je renonce considérant que l'investissement de compréhension de
> l'organisation, de la terminologie et de la philosophie sera trop élevé.
La philosophie ? Le partage...

L'organisation ? Il y a un noyau (Linux), et des applications qui
tournent dessus (essentiellement GNU et un peu de BSD...). Chaque projet
fournit généralement son code source sous forme d'archive compressée
qu'il faut compiler sur son système.

Comme tout ça est librement distribuable, il y a des distributions comme
Debian dont le rôle essentiel est de fournir une infrastructure pour la
distribution, l'installation, et l'utilisation des logiciels libres :
Des médias d'installation (cdrom, images de disquettes, etc.), des
dépots internet où les logiciels sont fournis sous forme de paquets.

Il y a des paquets source et des paquets binaires. Un paquet source
permet de produire un ou plusieurs paquets binaires. Les paquets source
contiennent le code source, des meta-données comme les dépendences de
compilation, des règles pour la génération des paquets binaires, des
scripts de configuration et des méta-données à inclure dans ceux-ci.

Les paquets binaires debian sont des archives compressées portant
l'extension .deb. L'utilitaire pour les manipuler est dpkg :
dpkg -i paquet.deb        installe un paquet.
dpkg -r paquet.deb       supprime un paquet mais conserve ses fichiers
de configuration.
dpkg -P paquet.deb       supprime complètement un paquet.
dpkg-reconfigure paquet        reconfigure un paquet.
dpkg-buildpackage       produit des paquets binaires à partire d'un
paquet source.
etc.

Le système de gestion des paquets de debian s'appel APT (advenced
package tool), il gère le téléchargement, l'installation et les mises à
jour des logiciels et de leurs dépendances et est garant de la cohérence
du système de ce point de vue. La liste des dépots utilisés par apt se
trouve dans le fichier /etc/apt/source.list.
apt-get update        met à jour la base de donnée des paquets.
apt-get install paquet       télécharge et installe un paquet et ses
dépendances.
apt-get remove paquet       supprime un paquet.
apt-get --purge remove paquet        supprime un paquet et ses fichiers
de configuration.
apt-get source paquet         télécharge et décompresse le code source
d'un paquet.
apt-get build-dep paquet      télécharge et installe les dépendances de
compilation d'un paquet.
apt-cache search mot-clé      liste les paquets dont la description
contient le mot-clé
apt-cache show paquet      Affiche les meta-données d'un paquet
(description, dépendances, mainteneur, etc.)

Bien sûr il existe des frontaux graphiques à ces outils mais je n'est
pas le temps d'écrire un bouquin avec plus de captures d'écran que de
texte pour vous les décrire... C'est une des raison essentielle du
succès de la ligne de commande sous linux, c'est bien plus facile à
documenter !
> Et cela bien avant d'aborder le maquis du code, qui me semble
> largement équivalent de ce que l'on connaît chez Microsoft.
>
Quel est donc l'outil permettant de télécharger le code source de
windows ? J'aurais justement quelques bugs à y corriger et quelques
améliorations à y apporter...
> Mes applications étant liées au monde industriel j'ai par exemple
> besoin d'accéder directement aux différents périphériques, lesquels
> souvent sont des cartes PCI particulières ou des chaînes de terminaux
> USB/RS485 ; quel est l'équivalent des pilotes (DDK), où trouver
> l'organisation mémoire et l'interface logicielle permettant d'écrire
> les miens ?
Les pilotes sont soit dirrectement dans le noyau (Linux est un noyau
monolithique) soit sous forme de modules dans
/lib/modules/[kernel-version]/.

Le mieux est de se faire une idée en re-compilant le noyau :
http://www.debian.org/doc/manuals/reference/ch-kernel.fr.html
ou du moins en explorant le menu de configuration de celui-ci (make
menuconfig). Jeter un coup d'oeuil au code des parties qui vous intéressent.

Puis poser les questions (concernant le développement) sur LKML (linux
kernel mailng list).
> Comment comprendre (sans analyser tout le code du noyau) la méthode
> pour obtenir le 10000eme. de seconde ?
Je ne sais pas, ce n'est pas ma spécialité, linux n'est pas un noyau
temps réel de base.  Je vais peut être dire des bêtises mais il me
semble que le timer des noyaux debian est à 250Hz, et on peut le passer
à 1KHz maximum dans la configuration du noyau avant de le recompiler. Il
existe un patch realtime pour le noyau mais je ne sais pas ce que ça
vaut. Une recherche dans google avec le mot clé realtime devrait mieux
vous renseigner que moi sur la question.
> et particulièrement pour une application sur laquelle je viens d'être
> consulté, comment est organisé l'écriture directe sur l'écran,
Le plus simple est d'utiliser le framebuffer du noyau :
Dans /boot/grub/menu.lst ajouter vga=791 à la fin de la ligne kernel
puis redémarrer. 791 correspond à du 1024x768 16 bits/pixels, pour
d'autres modes voir google. On obtient ainsi un périphérique /dev/fb0.
Se loguer sur tty1.
Créer un fichier texte ($ nano echequier) avec le contenu suivant :
#! /usr/bin/perl
my $sq = (768/8);
my $m = (1024-768);
my $w = "ÿÿ";
my $b = "  ";

for($j=0;$j<768;$j++){
        for($i=0;$i<8;$i++){
                if($i%2){ print "$w"x$sq }
                else{ print "$b"x$sq}
                print "  "x$m if($i==7);
        }
        if($j>0 && !($j%$sq)){my $t = $w; $w = $b; $b = $t;}
}

Le rendre éxécutable :
$ chmod +x echequier
L'executer en redirigeant la sortie vers le framebuffer :
$ ./echequier > /dev/fb0

Et voilà un echequier !
> c'est-à-dire puis-je connaitre les points d'entrées des pilotes
> graphiques, ou bien il y a-t-il une couche graphique standard avant
> celle de l'interface ?
Je crois que je viens de répondre...
>
> Voilà, mon approche peut vous sembler un peu naïve, mais le passage
> vers Linux, qui est attirant sur un plan "politique" m'apparaît comme
> plus discutable sur un plan technique, et, me concernant sur un plan
> économique.
>
Sur le plan technique, l'avantage est que l'on ne dépend pas de choses
qu'on ne maîtrise pas, s'il y a un bug il peut être corrigé rapidement
kit à le faire soi-même et on peut généralement l'analyser et le
contourner simplement. La contrepartie est qu'on ne peut pas s'en
décharger sur les autres, plus de "j'y peut rien, c'est de la faute de
microsoft"...

Sur le plan économique c'est vrai qu'il faut du temps pour apprendre, et
qu'on ne peut pas vendre d'est millions d'exemplaires d'une application,
encore que... En générale on vend sa capacité à la mettre en oeuvre, à
l'adapter aux besoins / demandes du client, du support. Souvent il
existe déjà une application proche de ce que l'on doit réaliser qu'il
suffit d'adapter et du coup on gagne énormément de temps...
> Je ne sais pas si je frappe à la bonne porte pour ce genre de
> considérations, néanmoins je vous remercie par avance de votre réponse.
>
Si vous souhaitez découvrir linux en tant que plateforme de
développement, le mieux serait peut-être de commencer par installer une
Gentoo (distribution source, on compile tout soi-même), l'installation
se fait entièrement à la main ce qui permet de découvrir l'architecture
d'un système GNU/Linux et de se familiariser un peu avec les outils de
développement (compilateur, etc.). Leur documentation est une véritable
mine d'or. Il faut compter environ une semaine en y passant une ou deux
heures chaque soir pour installer un poste bureautique complet. Ne pas
essayer de se lancer la dedan sur un week-end car la compilation des
grosses applications (serveur graphique, environnement de bureau, suite
bureautique, navigateur web) prend généralement plusieurs heures, donc à
lancer avant d'aller se coucher.
> Bonne après-midi.
>
> Gérard Couvert (Toulouse)
>
>
Bon week-end.

Hugues Larrive (95)

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: