KBe
Anmeldungsdatum: 4. April 2007
Beiträge: 177
Wohnort: DD
|
Beim Booten kommt gelegentlich als erstes die Ausschrift
open dev/null failed no such file or direktory
Dann denkt er eine Weile nach und es geht alles in Ordnung.
Also kein Problem. Ich wüsste aber doch gern den Grund und ob man etwas in Ordnung bringen sollte. kbe
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Vielleicht will ein Script Ausgaben unterdrücken (nach /dev/null umleiten), obwohl /dev/null noch gar nicht initialisiert (eingerichtet) worden ist. Du kannst das ganze z.B. so erforschen - Betonung auf "du":
grep "/dev/null" /var/log/syslog /var/log/dmesg /var/log/messages
Mehr Infos in Wiki, Manpages, den Foren...
|
KBe
(Themenstarter)
Anmeldungsdatum: 4. April 2007
Beiträge: 177
Wohnort: DD
|
Danke, aber damit bin ich klar gekommen. Habe wie blind im Wiki und Foren rumgesucht.
Ist dev/null das Bootdevice?
kbe
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Nein, völlig unwichtig ist das für vieles, für manches aber vielleicht doch nötig. Gib es mal in Google ein. Du wirst es schon selbst herausfinden, wie jeder andere auch, der Doku sucht, weil er eine Frage hat. Das Ergebnis meines Befehls kannst du ja mal hierher kopieren, wenn du damit nicht zurechtkommst.
|
borgiborgi
Anmeldungsdatum: 10. August 2009
Beiträge: 386
Wohnort: 3rd stone from the sun
|
/dev/null ist das Linux/UNIX-Datengrab. Ein "schwarzes Loch" in das man alle Daten werfen kann die man nicht mehr benötigt. Sorry, wenn ich protestiere aber /dev/null ist alles andere als unwichtig. Das wird in fast jedem Script verwendet... Gruß borgiborgi EDIT: man null verrät mehr dazu.
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Deswegen stirbt das System nicht, wenn man es mal nicht nutzt - dürfte aber Errors hageln, wenn man sie nicht wegwerfen kann (mangels /dev/null) UND nicht wegwirft. Also wichtig ja, aber das ist eine Frage des Blickwinkels. Es ist jedenfalls kein Gerät und auch keine Software, aber auch keine normale Datei. 😉 $ ls -hal /dev/null
crw-rw-rw- 1 root root 1, 3 2011-01-12 06:07 /dev/null man null
ist da wirklich interessant:
NULL(4) Gerätedateien NULL(4)
BEZEICHNUNG
null, zero - Daten-Vernichter
BESCHREIBUNG
Daten welche an die Geräte null oder zero gelangen, werden ungeachtet
ihres Inhaltes, vernichtet.
Lesen aus der Gerätedatei null liefert immer ein Dateiende (EOF) zurück,
während zero immer das Zeichen \0 zurück gibt.
null und zero werden generiert durch:
mknod -m 666 /dev/null c 1 3
mknod -m 666 /dev/zero c 1 5
chown root.mem /dev/null /dev/zero
NOTIZ
Ist das lesen und schreiben auf diesen Gerätedateien nicht für alle
Benutzer erlaubt, können diverse Programme sonderbar reagieren.
DATEIEN
/dev/null
/dev/zero
SIEHE AUCH
mknod(1), chown(1).
Linux 21. November 1992 NULL(4)
Also es ist wichtig, ich verwende es auch oft, aber man könnte Linux auch ohne bauen oder es könnte einen Ausfall verkraften - die Manpage scheint dies zu bestätigen, aber nennt unkonkretisiert Nebenwirkungen. Nichts anders wollte ich ausdrücken. Dass es auch dazu eine Manpage gibt und diese nicht /dev/null heißt, ist gut zu wissen, dann kann man das das nächste mal gleich so hinlegen und das Benutzen von manpages für weitere Fragen anregen. Übrigens, deutsche Manpages installiert man so:
sudo apt-get install manpages-de
Die englischen kann man dann so aufrufen:
man -L en begriff
Da steht manchmal mehr drin. Nachschlagen kann man die Optionen auch in:
man man
😉
|
borgiborgi
Anmeldungsdatum: 10. August 2009
Beiträge: 386
Wohnort: 3rd stone from the sun
|
Benno-007 schrieb: Es ist jedenfalls kein Gerät
Doch. Das c bezeichet diese Art der Gerätedatei. c ist ein character-device.
$ ll /dev/null
crw-rw-rw- 1 root root 1, 3 2011-01-26 20:02 /dev/null und auch keine Software,
Richtig. aber auch keine normale Datei. 😉
Nee, ein character-device eben.
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Das c wollte ich nochmal nach-Manpagen, bevor ich Mist brabbel. Trotzdem ist es kein Gerät, sondern nur eine spezielle Datei. Es ist keine Hardware, also kein Gerät. Ein virtuelles Gerät vielleicht. Aber dann auch nur der Name dazu. Das Gerät wird über diesen Namen angesprochen, aber es ist keins. Auch wenn es so gekennzeichnet ist, dass der Name auf so ein Gerät verweist. Aber vielleicht denke ich mir das auch nur so. Mir ist es eigentlich herzlichst egal, da es wichtigere Themen hier gibt, als Begrifflichkeiten ganz genau auf der Goldwage abzuwägen und Sichtweisen und Interpretationen zu erörtern (oder Fakten zu ermitteln). ☺
|
borgiborgi
Anmeldungsdatum: 10. August 2009
Beiträge: 386
Wohnort: 3rd stone from the sun
|
Benno-007 schrieb: Das c wollte ich nochmal nach-Manpagen, bevor ich Mist brabbel. Trotzdem ist es kein Gerät, sondern nur eine spezielle Datei. Es ist keine Hardware, also kein Gerät. Ein virtuelles Gerät vielleicht. Aber dann auch nur der Name dazu. Das Gerät wird über diesen Namen angesprochen, aber es ist keins. Auch wenn es so gekennzeichnet ist, dass der Name auf so ein Gerät verweist. Aber vielleicht denke ich mir das auch nur so. Mir ist es eigentlich herzlichst egal, da es wichtigere Themen hier gibt, als Begrifflichkeiten ganz genau auf der Goldwage abzuwägen und Sichtweisen und Interpretationen zu erörtern (oder Fakten zu ermitteln). ☺
Unter Linux/UNIX ist ALLES eine Datei. Gruß borgiborgi
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Ja, aber dann öffne doch mal /dev/null:
$ cat /dev/null
# oh, nix drin...
$ less /dev/null
/dev/null is not a regular file (use -f to see it)
# machen wir...
$ less -f /dev/null
# da war aber vor dem Verlassen mit q auch nix drin...
$
Was ich meine ist, es ist eben nur ein Name ohne Inhalt. Es frisst nur Inhalt. Das ist die Aufgabe dieses Zeichen-orientierten Gerätes. Deswegen ist ja auch nix drin, weil es ein Gerätedatei ist. Wahrscheinlich reden und denken wir aneinander vorbei. Wie schon gesagt, das ist interessant, aber mir reicht diese Erkenntnis, keine Zeit jetzt, die Manpage auch noch offen, um nochmals mknode näher anzusehen... Da erfährt man dann vielleicht noch etwas mehr auch dazu... Anderes Beispiel: /dev/sr0 - das ist aber nicht das CDROM, oder es ist die Frage, wie man "was ist etwas" definiert. Ich erreiche das CDROM über diese Gerätedatei, aber es ist nicht identisch. Aber vielleicht kann und sollte man es doch gleichsetzen. Trotzdem verbirgt sich dahinter noch etwas, z.B. bei mir:
$ lshw -c disk
WARNING: you should run this program as super-user.
*-cdrom
description: DVD-RAM writer
product: CDDVDW SH-S223Q
vendor: TSSTcorp
physical id: 0.0.0
bus info: scsi@2:0.0.0
logical name: /dev/cdrom
logical name: /dev/cdrw
logical name: /dev/dvd
logical name: /dev/dvdrw
logical name: /dev/scd0
logical name: /dev/sr0
version: SB03
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration: ansiversion=5 status=ready
*-medium
physical id: 0
logical name: /dev/cdrom
Man kann das Gerät über mehrere Namen ansprechen, folglich ist es nicht gleich dem Gerät. Oder? Aber letztendlich ist das nur eine überflüssige Ansichtssache. Wir können uns da gerne einigen oder auch jeder das so sehen, wie er mag. 😉
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Hier sieht man auch nochmal schön die logischen (ausgedachten und mit mknod angelegten bzw. anlegbaren) Namen für das (phyische) Gerät:
$ ls -hal /dev | head -n20
insgesamt 8,0K
drwxr-xr-x 17 root root 3,8K 2011-01-26 13:24 .
drwxr-xr-x 30 root root 4,0K 2011-01-11 00:33 ..
crw-rw----+ 1 root audio 14, 12 2011-01-12 06:07 adsp
crw-rw----+ 1 root audio 14, 4 2011-01-12 06:07 audio
-rw-r--r-- 1 root root 1,3K 2011-01-15 19:17 .blkid.tab
drwxr-xr-x 2 root root 760 2011-01-12 06:07 block
drwxr-xr-x 2 root root 80 2011-01-12 06:06 bsg
drwxr-xr-x 3 root root 60 2011-01-12 06:06 bus
lrwxrwxrwx 1 root root 3 2011-01-26 13:24 cdrom -> sr0
lrwxrwxrwx 1 root root 3 2011-01-26 13:24 cdrw -> sr0
drwxr-xr-x 2 root root 3,2K 2011-01-26 13:24 char
crw------- 1 root root 5, 1 2011-01-12 06:07 console
lrwxrwxrwx 1 root root 11 2011-01-12 06:07 core -> /proc/kcore
crw-rw---- 1 root root 10, 58 2011-01-12 06:07 cpu_dma_latency
drwxr-xr-x 6 root root 120 2011-01-12 06:06 disk
crw-rw----+ 1 root audio 14, 3 2011-01-12 06:07 dsp
lrwxrwxrwx 1 root root 3 2011-01-26 13:24 dvd -> sr0
lrwxrwxrwx 1 root root 3 2011-01-26 13:24 dvdrw -> sr0
crw-rw---- 1 root root 10, 61 2011-01-12 06:07 ecryptfs
$ ls -hal /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 2011-01-26 13:24 /dev/sr0
Das sind alles symbolische Links (mit ln -s angelegt) für Blockgerät /dev/sr0. Unter meinem vorherigen Befehl wurden die Namen aber alle als "logical name" zusammengefasst und in einen Topf geworfen. Nun gut, spannend ist es schon, auch mal um die Ecke zu denken oder zu schauen, wie andere denken oder mehr darauf zu achten, wie man sich ausdrückt und was man von Äußerungen anderer denkt. Und die verwendeten Befehle mal unter diesem Gesichtspunkt zum Ausleuchten zu benutzen.
|
KBe
(Themenstarter)
Anmeldungsdatum: 4. April 2007
Beiträge: 177
Wohnort: DD
|
Na da komme ich doch erst recht nicht mit.
Ich habe die vorgeschlagenen Befehle ausgeführt. Alles kommt wie beschrieben. Einiges gelernt nicht alles habe ich verstanden. Jetzt weiß ich auch was die Manpages sind.
Um das /dev/null mache ich mir also keine Gedanken mehr.
Es wird sowieso nicht bei jedem Booten angemeckert.
Trotzdem besten Dank Benno-007 und Borgiborgi für die interessante philosophische Diskussion.
kbe
|
borgiborgi
Anmeldungsdatum: 10. August 2009
Beiträge: 386
Wohnort: 3rd stone from the sun
|
Dir ist vielleicht das Datum im Listing von /dev/null aufgefallen. Die device-files unterhalb von /dev werden beim Systemstart jedes mal dynamisch neu erzeugt. Eine Fehlermeldung bzgl. einer fehlenden Device-Datei legt daher die Vermutung nah, daß ein Prozess beim Booten schon darauf zugreifen will bevor es angelegt wurde. Sofern keine weiteren Probleme auftreten kannst Du die Meldung wohl ignorieren. Aber gut wenn Du was gelernt hast. Gruß borgiborgi
|
Shmoikel
Anmeldungsdatum: 27. Januar 2011
Beiträge: 27
Wohnort: Labor 122
|
Ich dachte immer, /dev/null sei eine Spezialdatei, bei der EoF (end of file) ganz am Anfang steht und deswegen alles, was angehängt wird nichtig ist.
|
borgiborgi
Anmeldungsdatum: 10. August 2009
Beiträge: 386
Wohnort: 3rd stone from the sun
|
Shmoikel schrieb: Ich dachte immer, /dev/null sei eine Spezialdatei, bei der EoF (end of file) ganz am Anfang steht und deswegen alles, was angehängt wird nichtig ist.
Ja, so steht's auch in der manpage.
|