Franchir le pas ...

Le
gc
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.

A chaque fois je bute sur l'opacité et le formalisme de l'entrée, et je
renonce considérant que l'investissement de compréhension de
l'organisation, de la terminologie et de la philosophie sera trop élevé.
Et cela bien avant d'aborder le maquis du code, qui me semble largement
équivalent de ce que l'on connaît chez Microsoft.

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 ?
Comment comprendre (sans analyser tout le code du noyau) la méthode pour
obtenir le 10000eme. de seconde ? et particulièrement pour une
application sur laquelle je viens d'être consulté, comment est organisé
l'écriture directe sur l'écran, 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 ?

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.

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.

Bonne après-midi.

Gérard Couvert (Toulouse)


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sébastien NOBILI
Le #9719581
Le vendredi 08 février 08 à 13:56, 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.

[...]

| 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.

J'ai peur que cette liste ne soit pas bien adaptée à vos besoins. On y
traite en général de problèmes d'utilisation du système (mise en place
de services, configuration de bureau, etc.) dont le niveau technique
peut être élevé, mais rarement du code proprement dit, bien que certains
abonnés soient développeurs et puissent ponctuellement déboguer du code.

Il existe des listes de développeurs Debian
(http://lists.debian.org/devel.html) mais j'ai peur que ces listes
soient trop orientées développement du projet Debian (intégration de
patchs spécifiques, correction de bugs dans les paquets amonts).
Pour ce qui est des questions d'accès au matériel, je pense que les
listes de diffusion du noyau Linux (http://lkml.org/) pourront vous
aider (c'est une simple supposition, je n'y suis pas abonné).

Une fois le pas franchi (si vous décidez de le franchir), tous vos
problèmes relatifs à l'utilisation proprement dite du système
trouveront certainement réponse ici.

| Bonne après-midi.

De même et bon courage.

| Gérard Couvert (Toulouse)

Seb


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Jean-Yves F. Barbier
Le #9719541
gc a écrit :
........

salut,

j'aurais tendance à te conseiller de contacter un développeur, tel
que par exemple, celui qui a créé Gambas (pcq c'est un français)

le plus gros PB de Linux est l'atomisation des docs, mais son avantage est
que *tout* y est documenté...... Donc, cela nécessite un investissement
perso assez conséquent mais gratifiant en fin de compte.

Pour ce qui est des cartes PCI spécifiques, il serait intéressant de savoir
si le constructeur a déjà un driver Linux dans ses cartons; à moins que ça
ne puisse se résoudre à coup de peek & poke; ou du moins leurs équivalents
sous Linux;-)

JY
--
panic("Foooooooood fight!");
-- In the kernel source aha1542.c, after detecting a bad segment list


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Sylvain Sauvage
Le #9719501
gc, vendredi 8 février 2008, 13:56:42 CET

Bonjour,



’jour,

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.

A chaque fois je bute sur l'opacité et le formalisme de
l'entrée, et je renonce considérant que l'investissement de
compréhension de l'organisation, de la terminologie et de la
philosophie sera trop élevé. Et cela bien avant d'aborder le
maquis du code, qui me semble largement équivalent de ce que
l'on connaît chez Microsoft.



Opacité ? Formalisme ?

Un bon début pour comprendre la philosophie Unix :
http://www.faqs.org/docs/artu/index.html
par ESR (Eric S. Raymond), fort connu pour ses essais, notamment
celui-ci et « La Cathédrale et le Bazar » et Fetch mail.

Ce texte décrit justement très bien l’organisation et l es
motifs (à la fois « raisons » et « rà ©pétitions ») de l’univers
Unix et donc de celui de Linux.

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 ?
Comment comprendre (sans analyser tout le code du noyau) la
méthode pour obtenir le 10000eme. de seconde ? et
particulièrement pour une application sur laquelle je viens
d'être consulté, comment est organisé l'écriture dire cte sur
l'écran, 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 ?



Ok, donc tu es plus intéressé par la programmation système et
même noyau.

Une intro :
http://www.ibm.com/developerworks/linux/library/l-linux-kernel/

Plus complets :
http://www.advancedlinuxprogramming-fr.org/doku.php
http://lwn.net/Kernel/LDD3/
http://www.kroah.com/lkn/
http://lwn.net/Articles/driver-porting

Pour ce qui est de l’écriture directe sur l’écr an, ça dépend
de ce que l’on entend par « directe » et par « écran ». Est-ce
qu’il s’agit d’une application qui va tourner seule sur un
écran ? écran texte ? graphique ? Qu’a-t-e lle besoin de faire
sur l’écran ? etc.
Pour faire simple et te donner des pistes de recherche :
— écrire dans un écran texte se limite à envoyer du texte et
quelques caractères de contrôle dans un fichier ;
– un « framebuffer » (écran graphique gà ©ré par le noyau) peut
être géré « à la main » avec un p ériphérique (un fichier dans
/dev) ou à l’aide de bibliothèques ;
— il y a un tas de bibliothèques pour faire des applications
fenêtrées ou plein écran, avec ou sans OpenGL, qui discute nt
avec X11, KDE, Gnome ou un framebuffer (certaines permettent
de choisir à l’exécution), etc.

Le problème du libre est plus un problème de choix que
« d’opacité ».

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 un plan technique, les logiciels libres sont beaucoup plus
agréables !
D’accord, certaines docs sont sommaires ou difficiles à
trouver et même si « use the source » n’es t pas la réponse la
plus agréable quand on débute (on ne sait pas où et quoi
regarder, comment ça peut répondre aux besoins, etc.), c’ est
tout de même fort pratique de pouvoir s’inspirer de ce qui a
déjà été fait ou de vérifier comment sont mises en œuvre les
API que l’on utilise.

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.



Pas vraiment :o) les autres réponses t’ont donné et te
donneront sûrement d’autres pistes…

--
Sylvain Sauvage
Basile STARYNKEVITCH
Le #9719481
Sylvain Sauvage wrote:
gc, vendredi 8 février 2008, 13:56:42 CET
Bonjour,



’jour,

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.



Sur un plan technique, les logiciels libres sont beaucoup plus
agréables !
D’accord, certaines docs sont sommaires ou difficiles à
trouver et même si « use the source » n’est pas la réponse la
plus agréable quand on débute (on ne sait pas où et quoi
regarder, comment ça peut répondre aux besoins, etc.), c’est
tout de même fort pratique de pouvoir s’inspirer de ce qui a
déjà été fait ou de vérifier comment sont mises en œuvre les
API que l’on utilise.




Non, "use the source" est une réponse essentielle. Quand tu ne comprends
pas bien une fonction, ... tu peux toujours (et tu devrais penser à) en
regarder le code source.

Sinon, j'ai aussi un conseil: avant de te mettre à programmer dans le
noyau Linux, apprends à bien connaître et utiliser les appels systèmes
Posix (ou SuS, ou Unix). Il existe d'excellents livres à ce sujet, dont
l'indispensable advanced unix programming http://basepath.com/aup/ et
http://www.advancedlinuxprogramming.com/alp-folder


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Basile STARYNKEVITCH
Le #9719471
Basile STARYNKEVITCH wrote:

Sinon, j'ai aussi un conseil: avant de te mettre à programmer dans le
noyau Linux, apprends à bien connaître et utiliser les appels systèmes
Posix (ou SuS, ou Unix). Il existe d'excellents livres à ce sujet, dont
l'indispensable advanced unix programming http://basepath.com/aup/



C'est un bon livre, mais je voulais parler de Advanced Programming in
the UNIX Environment du regretté R.Stevens dont la deuxième édition est
http://www.informit.com/store/product.aspx?isbn21525949 (complétée
par S.Rago.

et http://www.advancedlinuxprogramming.com/alp-folder



Et tu pourrais même faire comme je l'avais fait il y a plus de 20 ans
sur SunOS3: apprendre Unix dans les pages de man (la section 2
notamment) et aussi en lisant les includes (à l'époque, le noyau était
propriétaire, sur Sun3) mais ca prend du temps.

Sinon, il existe pleins de bons livres sur le noyau Linux.

Bonnes lectures
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Hugues LARRIVE
Le #9719461
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigAE6D5113DBED990AA2410BB7
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

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 éle vé.


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 comm e
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, de s
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 mis es à
jour des logiciels et de leurs dépendances et est garant de la cohére nce
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 sou rce
d'un paquet.
apt-get build-dep paquet télécharge et installe les dépendance s 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, lesq uels
souvent sont des cartes PCI particulières ou des chaînes de termina ux
USB/RS485 ; quel est l'équivalent des pilotes (DDK), où trouver
l'organisation mémoire et l'interface logicielle permettant d'écrir e
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éres sent.

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. I l
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'êt re
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 vgay1 à 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é rapidem ent
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, e t
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 oeuv re, à
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 u ne
Gentoo (distribution source, on compile tout soi-même), l'installation
se fait entièrement à la main ce qui permet de découvrir l'architec ture
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éritab le
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, don c à
lancer avant d'aller se coucher.
Bonne après-midi.

Gérard Couvert (Toulouse)




Bon week-end.

Hugues Larrive (95)


--------------enigAE6D5113DBED990AA2410BB7
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHrKHaNdTZuHWpgVIRAizvAJ47XsBQ/InCFIxJMWgpU469cpeeEgCeNvfP
wbAtThUEIVFcK/pYJ8k8ptY =4WoK
-----END PGP SIGNATURE-----

--------------enigAE6D5113DBED990AA2410BB7--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Sylvain Sauvage
Le #9719441
Basile STARYNKEVITCH, vendredi 8 février 2008, 18:51:40 CET

Sylvain Sauvage wrote:
> gc, vendredi 8 février 2008, 13:56:42 CET
>> Bonjour,
>
> ’jour,
>
>> 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.
>
> Sur un plan technique, les logiciels libres sont beaucoup
> plus agréables !
> D’accord, certaines docs sont sommaires ou difficiles à
> trouver et même si « use the source » n’est pas la réponse la
> plus agréable quand on débute (on ne sait pas où et quoi
> regarder, comment ça peut répondre aux besoins, etc.), c⠀™est
> tout de même fort pratique de pouvoir s’inspirer de ce qui a
> déjà été fait ou de vérifier comment sont mise s en œuvre les
> API que l’on utilise.


Non, "use the source" est une réponse essentielle. Quand tu ne
comprends pas bien une fonction, ... tu peux toujours (et tu
devrais penser à) en regarder le code source.



C’est exactement ce que je disais…

Sinon, j'ai aussi un conseil: avant de te mettre à programmer
dans le noyau Linux, apprends à bien connaître et utiliser les
appels systèmes Posix (ou SuS, ou Unix). Il existe
d'excellents livres à ce sujet, dont l'indispensable advanced
unix programming http://basepath.com/aup/ et
http://www.advancedlinuxprogramming.com/alp-folder



C’est pour ça que j’ai donné un lien vers la tr aduction…

--
Sylvain Sauvage
Publicité
Poster une réponse
Anonyme