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)
signature.asc
Description: OpenPGP digital signature