Frage zum INhalt von /dev [geklaert]

  • Themenstarter Themenstarter sw33tlull4by
  • Beginndatum Beginndatum
S

sw33tlull4by

Guest
Hi!
Also:
Ich benutze Fedora Core 7 und habe mich letztens mit dem Inhalt von /dev auseinderngesetzt.
Folgendes:
/dev/pts/
enthaelt ja die virtuellen Consolen, die z.Z. geoeffnet sind.
echo "hallo dies ist ein test">/dev/pts/1
gibt also auf dem 1. virtuellen Terminal die Nachricht aus.
Ich nehme also an das /dev/tty´
dann die realen Terminals sind.
Ich nehme weiter an das /dev/tty' fuer Desktopbenutzer unwichtig sind, und somit geloescht werden koennen, liege ich das richtig oder haben sie funktionen welche Ich nicht kenne.
Des weiteren habe ich mal versucht Nachrichten auf /dev/tty´ umzuleiten, und es ist nur bei tty angekommen, alle anderen echo´s wurden verschluckt.
Abschliessend habe ich versucht auf systty zu senden, aber da ist auch nichts passiert und als ich man systty eingegeben habe ist mir mein System zusammengebrochen, er hat naehmlich immer nur newlines ausgeworfen, als wenn cih in der Bash enter druecken wuerde.und das System war nicht mehr anspechbar, was ist da passiert?
logs waren unauffaellig und es gab auch keine Kernelpanic nachdem ich den Stecker gezogen hatte und das System neu hochfuhr.
mfg

sw33t
 
1. Du kannst die tty nicht einfach löschen. Die sind nach einem Reboot durch das devfs eh wieder da. Du müsstest die Erstellung also verhindern.
2. /dev/tty (ohne Nummer) ist das sogenannte Control-TTY, das von jedem Prozess (mit Ausnahme von Daemon-Prozessen) benötigt wird.
3. Das systty wird ggf. vom Init-Subsystem verwendet.
4. Es gibt keinen Grund die TTY zu löschen, da sie eh keinen Platz wegnehmen.
 
o.k. Wenn es immer wieder erstllt wird kann ich mich ja ein bischen damit vergnuegen*g*
Aus vorsicht:gibt es eine LIste von Systemdateien welche sich nicht mehr selbststaendig erstellen wenn
neu gebootet wird?

BTW ich wollte nicht /dev/tty (hatte mir schon sowas gedacht, denn bei echo"test">/dev/tty wurd das ja auch auf die aktuelle Konsole ausgegeben) loeschen sondern /dev/ttyX da das so wie ich das sehe ja Devicefiles sind fuer echte Terminals, welche ich ja nicht besitze und wenn ich mich per ftp,ssh oder oder oder darauf verbinde habe ich ja auch eine virtuelle shell.

Das die kaum Platz wegnehmen ist zwar ein gutes Argument, aber ich habe ein paar schlechte Nachrichte erhalten und muss nun Frust abbauen, und da mein Sandsack z.Z. nicht da ist befriedige ich halt meinen Spieltrieb auf merkwuerdige fuer das System fiese weise, und ich lerne dabei ja auch noch was ueber das Zusammenspiel der einzelnen Komponenten von Linux.

BTW:
Vielen dank fuer die schnelle Antwort.mfg

sw33t
 
Schau in deine /etc/inittab und du wirst feststellen, dass du eben doch auch "normale" TTY hast. So werden Bootmeldungen auf tty1 ausgegeben. Auf tty7 wird dein XServer gestartet usw.
 
Ich finde es immer wieder erstaunlich wieviel du ueber Linux weisst.
Hab sie gefunden und mir angeschaut.
Du spielst wahrscheinlch auf diesen Teil der /etc/inittab an:
Code:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
Das sind soweit ich weiss die einzelnen Runlevels und jeder von ihnen bekommt
ein eigenes Terminal zugewiesen und keinen Deamon.
Ich habe aber bei mir 63 ttys in /dev
und ich frage mich wofuer man soviele Terminals braucht, wenn die tty5 meinetwegen den XServer aufruft und dann fuer den User eine Konsole erstellt(wenn er will) und sie dann unter /dev/pts ablegt.
Nenn mich naiv aber ich glaube nciht das man irgendwann mal in die verlegenheit kommen wird 63 Runlevels erstellen zu muessen.
Es geht mir also gerade nur um den Grund dafuer...
mfg

sw33t

//edit
Das man ein Terminal braucht und keinen Deamon davon um ein Runlevel zu etablieren leuchtet mir ein und ist auch logischauch das man in diesem Fall 6 braucht, damit man dazwischen bei bedarf wechseln kann.
 
Es sind nicht die Runlevel, sondern die Terminals, die du erreichst, wenn du z.B. mit Strg+Alt+F1 deinen XServer verlässt (und z.B. damit auf tty1 landest). Klar brauchen die wenigsten eine solche Anzahl an TTY, da es ja für Remote-Verbindungen die Pseudo-TTY (pty) gibt, aber die ersten 10 sollte man normalerweise unangetastet lassen, wenn man nicht wirklich ganz genau weiss was man da tut.
 
Vielen dank fuer die Einfuerhung bezueglich der ttys
Ich meinte das auch das die Runlevels auf der Terminals laufen, denn die Runlevels sind meines Wissens nach nur abstrakte Beschreibungen fuer bestimmte Zustaende in welche das Betriebssystem beim Booten versetzt wird.
Das mit dem alt-strg-f1 werder ich gleich mal ausprobieren.^^
mfg
sw33t
 
So meinte ich das gar nicht:
Ich gebe dir mal eine komplette zusammenfassung dessen was ich glaube zu verstehen.
Also, du hast 7tty´s definiert, 1-6 fuer verschiedene sachen und 7 fuer den Xseverbzw client, also die graphische Umgebung.
Per Bootstrap wird das Os geladen, und dann kommt der Kernel und laedt sich alle treiber, bzw bekommt sie geladen(wissen wie du siehst etwas schummerig), Da der Kernel nun aber noch Taub und Stumm ist, werden mal eben 7 tty´s erstellt, auf dennen der Kernel nun eingaben entgegennehmen kann und diverse Sachen ausgibt.
Dann wartet das OS darauf das sich ein Benutzer einloggt.
Und je nachdem unter welchem tty das ist, werden unterschiedliche sachen in den Kernel geladen,je nachdem was unter /etc/rc.d/* steht.(aehnlich der .bash-profile unter ~ fuer die pts)
Und da tty7 ja die Graphische umgebung laedt und die sich dann mit meinem Nick und Login anmeldet erscheint unter who nur etwas wenn ich auch noch inder Bash bin, und dann nur unter /dev/pts/*
, wenn ich mich aber dann auch noch unter tty einlogge und who eingebe sehe ich dann /dev/pts/* das tty unter welchem ich das aufrufe , aber kein KDM da who sich ja auf benutzer bezieht sich aber die graphische Umgebung beim kernel angemeldet hat.
DIe pts gibt es fuer die Bash unter tty7 da diese ,wenn sie ein eigenes tty bekommen wuerden gar nicht mehr unter der graphischen Oberflaeche laufen wuerden, und fuer die remote Logins, damit sie keine eigene tty bekommen und den Regeln des Prozesses unterliegen der ja in einer bestimmten tty oder pts gestartet wurde.
Ich bin mir sicher das iein Haufen vom dem Falsch ist,und wir koennen uns hier die Finger wund schreiben, deswegen waere ich schon zufrienden wenn du mir sagen koenntest unter was ich genau suchen soll, denn dieses Thema ist so rudimentaer und vielfaeltig das es dazu irgendwie nichts brauchbars fuer mich gibt, denn die Begruendung fuer etwas wie KWrited brauche ich mir nicht nochmal herzuleiten, und was anderes ist nachdem was ich so weiss schwer zu finden, ausser Fehlermeldungen und Problembehandlungen welche ja nicht auf das wie funktioniert was mit welchem eingehen.
mfg

sw33t
 
Da hast du einiges falsch verstanden. Du liegst bis zum Starten ja ganz richtig, aber danach nicht mehr. Der Kernel erstellt die TTY beim booten. In der inittab wird dann lediglich definiert welche Programme auf den TTY laufen sollen, normalerweise ein sogenanntes Getty-Programm, das den Login zur Verfügung stellt. Loggt sicht dort ein User ein, startet das Getty-Programm die in der /etc/passwd eingetragene Shell auf dem TTY, auf dem es läuft. Die Shell stellt dann Funktionen wie Input, Output, Prozessmanagement usw. zur Verfügung wobei das TTY als Interface zum Kernel und somit zur Hardware wie Keyboard und Monitor fungiert. Die Prozesse, die durch das Init-System (also die in den rcX.d-Ordnern definiert sind) gestartet werden, können im Prinzip auch ohne I/O starten, nur würde man dann beim Boot-Prozess nichts sehen. Deswegen geben sie ihren Output auf dem Control-TTY (/dev/tty) aus und die meisten Systeme sind so konfiguriert, dass dieser auf /dev/tty1 umgeleitet wird, sobald dieses zur Verfügung steht.

Auch der XServer ist nur ein Prozess, der einfach mit einem grafischen Login anstelle eines Getty-Programms meist auf TTY7 gestartet wird.

Man könnte also sagen, dass die TTY einfach Interfaces zwischen Kernel und Programmen darstellen, die vorwiegend für Input/Output-Operationen der Peripherie wie Monitor und Tastatur genutzt werden.

Die PTY hingegen sind virtuelle TTY, die z.B. von grafischen Terminals und Remote-Verbindungen genutzt werden. Es gibt daneben noch weitere TTY-Typen wie die seriellen TTY, die für den Input/Output von seriellen Geräten verwendet werden, also Interfaces zwischen einem Anschluss am Rechner und dem Kernel zur Verfügung stellen.

Informationen zum Bootprozess von Linux bekommst du z.B. unter http://www.yergol.com/articles/linux/linuxbootpr.htm Den Rest wirst du aus verschiedenen Dokus entnehmen müssen wie z.B. der Linux-Kernel-Doku, der Doku für sysvinit u.a.
 
Vielen dank fuer die ausfuerhliche erklaerung, und vor allem der Internetseite(wie gut das ich fluessig Englisch spreche^^) und den Stichworten nach dennen ich genau suchen muss damit ich besser finde was ich suche.
mfg

sw33t
 
Zurück
Oben