[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