Ja das is
Reinhard Foerster schrieb:
Zumindest bei mir gibt es kein /dev/pts. Lies dir mal die Hilfe in der Kernelkonfiguration zum Punkt 'Character devices' --> 'Unix98 PTY support' durch. Ganz schlau werde ich daraus allerdings auch nicht. Da die Unix98- PTYs erst mit glibc-2.1 auftreten, wuerde ich mal in der Doku zur glibc schmoekern.
Reinhard
Mir ist das auch schon ins Auge gefallen. Ich habe einen Kernel der zu laufen scheint (nach 4 Versuchen). Ich muß den Kernel aber nochmal compilieren, Bei dem letzten geht das Netzwerk nicht. Man muß aufpassen es gibt 2 Stellen wo das in der Kernelkonfiguration (make_menuconfig) auftaucht. Das 2. unter Dateisysteme habe ich übersehen.
unter Zeichenorientierte Geraete: "Unix PTY98 Support" bei Dateisysteme: "/dev/pts/filesystem for Unix98 PTYs"
Vielleicht läuft der den ich jetzt mache reibungslos. In einer halben Stunde weiß ich es. Andreas
Hallo,
ein paar Worte zur Beseitigung aller Klarheiten:
/dev/pts ist ein Filesystem, wo der Kernel die Pseudo-Terminals verwaltet. Pseudo-Terminals sind Geraete, dis sich aus Sicht der Programme wie ein Terminal verhalten (es sieht aus, als saesse da jemand an einer Tastatur und kann die Ausgaben des Programms lesen), aber letztlich wird der Nutzer von einem Programm emuliert (z.B. telnetd). Dass dieses Programm in den meisten Faellen von einem Menschen kontrolliert wird (im Beispiel ueber ein telnet, was ueber ein Netzwerk Verbindung mit dem telnetd hat), faellt nicht weiter auf ;-)
Wenn der telnetd startet, muss er sich zuerst ein Pseudo-Terminal besorgen, mit dem er dann weiterarbeiten kann. Bis zur glibc 2.0 wurde dazu eine der Geraetedateien /dev/pty[p-s]? genutzt, wobei abgesichert werden muss, dass nicht zwei Programme dasselbe Geraet belegen. Diese Absicherung war wohl nicht 100-prozentig hinzubekommen, deshalb der "UNIX98 PTY support". Hier wird durch den Kernel unter Nutzung von /dev/ptmx ein Pseudo-Terminal an den anfordernden Prozess zugewiesen (im Gegensatz zur pty-Variante, wo der Prozess sich eine freie Datei sucht), also ist jedes Terminal /dev/pts/* genau einmal vergeben.
Zusammengefasst: glibc2.1 nutzt /dev/pts/*, wenn vorhanden, sonst (meines Wissens nach) /dev/pty*, genau wie glibc2.0 und Vorlaeufer.
Ich muß den Kernel aber nochmal compilieren, Bei dem letzten geht das Netzwerk nicht. Man muß aufpassen es gibt 2 Stellen wo das in der Kernelkonfiguration (make_menuconfig) auftaucht. Das 2. unter Dateisysteme habe ich übersehen.
Steht aber in der Hilfe zu "Unix PTY98 Support". Naja, man kann ja nicht alles sehen...
Holger
lug-dd@mailman.schlittermann.de