[gull] ADSL sur un systeme linux

Marc SCHAEFER schaefer at alphanet.ch
Thu Oct 12 18:40:37 CEST 2006


On Mon, Oct 09, 2006 at 09:47:03AM +0200, Daniel Cordey wrote:
> m'etais jamais pose la question de savoir pourquoi tout ce qui est net 
> n'utilise pas un device ... :-)

netinet a été ajouté à BSD4.3 (Taoe?) un peu anarchiquement comme
sous-système séparé.

L'implémentation de TCP/IP SYSVRx, quant à elle, était plutôt basée
sur STREAMS: une extension du concept de tubes et de combinaisons
de commandes du shell UNIX à une pile de traitement de protocole
réseau: on pouvait empiler des modules STREAMS dans un ordre à
choisir, pour faire p.ex. du IP sur HDLC sur X.25, etc -- le plus proche
aujourd'hui de ce concept à ma connaissance est celui de `line
discipline'. On transforme un tty en un truc qui supporte PPP en y
activant une `line discipline' PPP.

Il faut aussi dire que sous UNIX, une interface réseau, n'a pas
techniquement les attributs et méthodes d'un périphérique UNIX, ni le
même rôle. Le sens d'interaction est aussi double: un périphérique n'est
généralement pas générateur d'une action, il est interrogé, voire scruté.

Tout est fichier dans /dev, sauf:

   - interface réseau
   - host adapters (p.ex. SCSI)
   - périphériques émulés en user-space (p.ex. via /dev/sgX, l'interface
     générique SCSI, ou certaines caméras USB n'offrant pas d'interface de
     stockage de masse /dev/sdX mais accédées par libgphoto)
   - les handle de widget de X11 (fenêtres, etc)
   - et d'autres que j'oublie certainement

De plus en plus /dev devient d'ailleurs dynamique, et certaines
bibliothèques d'abstraction accèdent via /proc ou /sys des interfaces
privées de pilotes.

P.ex. moi si j'ai besoin de communiquer avec un périphérique (exemple
concret migrer/démigrer des données), j'aurais tendance à allouer un
MAJOR/MINOR, et créer /dev/monperipherique0, puis utiliser ioctl(2) ou
write(2) et read(2). D'ailleurs totalement en statique (évt. sous
MAJOR grep misc /proc/devices) La plupart des développeurs Linux auraient
plutôt tendance à utiliser des interfaces dans /proc ou
/sys: moins classique, plus changeant, mais plus moderne.

-- 
Je lis les messages bien formatés. N'abusez pas du Cc:. Texte == efficace.
Citer n'est pas concaténer. Editez vos messages, ça gagne du temps.
Marc se met au blog `-o ro': http://www.alphanet.ch/schaefer_chronique.html



More information about the gull mailing list