[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFR] man://manpages-de/man2/execve.2.po (Teil 1/3)



Hallo Helge und Mitlesende,

die Handbuchseiten-Sektion 2 für Systemaufrufe ist definitiv nicht das
Terrain, wo ich mich einbringen mag. Aber nachdem ich ein paar
Verbesserungswürdigkeiten identifiziert habe, turne ich jetzt über
diesen Morast.

Viele Grüße
Markus
----------------------------------------------------------------------

Helge Kreutzmann schrieb am 25. Dezember 2017 um 22:05

> #. type: TH
> #, no-wrap
> msgid "Linux Programmer's Manual"
> msgstr "Linux-Programmierhandbuch"

eigentlich müsste es Linux-Programmierer-Handbuch heißen

> #. type: Plain text
> msgid "execve - execute program"
> msgstr "execve - Programme ausführen"

s/Programme/Programm

> #. type: Plain text
> msgid "For details of the latter case, see \"Interpreter scripts\" below."
> msgstr ""
> "Für Details über den zweiten Fall lesen Sie »Interpreter-Skripte« weiter "
> "unten."

Alternativ:
Einzelheiten zu letzterem Fall finden Sie in »Interpreter-Skripte«
weiter unten.


> #. type: Plain text
> msgid ""
> "I<argv> is an array of argument strings passed to the new program.  By "
> "convention, the first of these strings (i.e., I<argv[0]>)  should contain "
> "the filename associated with the file being executed.  I<envp> is an array "
> "of strings, conventionally of the form B<key=value>, which are passed as "
> "environment to the new program.  The I<argv> and I<envp> arrays must each "
> "include a null pointer at the end of the array."
> msgstr ""
> "I<argv> ist ein Feld von Argumentenzeichenketten, die an das neue Programm "
> "übergeben werden. Per Konvention sollte die erste dieser Zeichenketten (d.h. "
> "I<argv[0]>) den Dateinnamen, der zu der ausgeführten Datei gehört, "
> "enthalten. I<envp> ist ein Feld von Zeichenketten, das per Konvention die "
> "Form B<Schlüssel=Wert> haben sollte, das an die Umgebung des neuen Programms "
> "übergeben wird. Die Felder I<argv> und I<envp> müssen jeder einen Null-"
> "Zeiger am Ende des Feldes enthalten."

s/Argumentenzeichenketten/Argumente-Zeichenketten

- ohne n, weil sich Feld von auf "Zeichenkette" bezieht, nicht auf "Argumente"
- miit Bindestrich, weil das Wort so schon monströs/grenzwertig ist.



> #. type: Plain text
> msgid ""
> "B<execve>()  does not return on success, and the text, initialized data, "
> "uninitialized data (bss), and stack of the calling process are overwritten "
> "according to the contents of the newly loaded program."
> msgstr ""
> "B<execve>() kehrt bei Erfolg nicht zurück und Text, initialisierte Daten, "
> "uninitalisierte Daten (bss) und Stack des aufrufenden Prozesses werden "
> "entsprechend des Inhalts des neu geladenen Programms überschrieben."

Endlich mal eines der Mysterien, mit denen die Handbuchseiten aus
Abschnitt 2 und anderen aufwarten. Hier also ein Programm, that "does
not return". Schade drum. Wirft eigentlich die Frage auf, ob es sich
lohnt, über so ein Programm Handbuchseiten zu verfassen, wenn man es
kein zweites Mal aufrufen kann, weil es ja nicht zurückgekommen
ist. Vielleicht meint der Autor aber auch, dass das Programm bei
ordnungsgemäßem Verlauf diesen nicht eigens meldet.


> #. type: Plain text
> msgid ""
> "If the current program is being ptraced, a B<SIGTRAP> signal is sent to it "
> "after a successful B<execve>()."
> msgstr ""
> "Falls das aktuelle Programm mit ptrace verfolgt wird, wird nach einem "
> "erfolgreichen B<execve>() ein Signal an es gesandt."

B<SIGTRAP> ist verloren gegangen.


> #. type: Plain text
> msgid ""
> "If the set-user-ID bit is set on the program file pointed to by I<filename>, "
> "then the effective user ID of the calling process is changed to that of the "
> "owner of the program file.  Similarly, when the set-group-ID bit of the "
> "program file is set the effective group ID of the calling process is set to "
> "the group of the program file."
> msgstr ""
> "Falls das Bit »set-user-ID« auf dem durch I<filename> verwiesenen Programm "
> "gesetzt ist, dann wird die effektive Benutzer-ID des aufrufenden Programms "
> "zu der des Eigentümers der Programmdatei geändert. Ähnlich wird die "
> "effektive Gruppen-ID des aufrufenden Prozesses auf die Gruppe der "
> "Programmdatei gesetzt, wenn das Bit »set-group-ID« auf der Programmdatei "
> "gesetzt ist."

s/
Falls das Bit »set-user-ID« auf dem durch I<filename> verwiesenen Programm
gesetzt ist, dann .../
Falls bei der Programmdatei, auf die I<filename> zeigt, das Bit »set-user-ID«
gesetzt ist, dann...


> #. type: Plain text
> msgid ""
> "the underlying filesystem is mounted I<nosuid> (the B<MS_NOSUID> flag for "
> "B<mount>(2)); or"
> msgstr ""
> "Das unterliegende Dateisystem ist I<nosuid> eingehängt (der Schalter "
> "B<MS_NOSUID> für B<mount>(2)). Oder"

Den deutschen Lesern des Dokuments könnte man das
"underlying"/"unterliegende" vielleicht ersparen, er wird schon
wissen, dass er nur dank eines Dateisystems Dateien von einem
Speichermedium lesen kann.

s/
Das unterliegende Dateisystem ist I<nosuid> eingehängt/
Das Dateisystem wurde mit der Option I<nosuid> eingebunden


> #. type: Plain text
> msgid ""
> "The capabilities of the program file (see B<capabilities>(7))  are also "
> "ignored if any of the above are true."
> msgstr ""
> "Die Capabilities der Programmdatei (siehe B<capabilities>(7)) werden auch "
> "ignoriert, wenn eine der obigen Bedingungen zu trifft."

s/zu trifft/zutrifft


> #. type: Plain text
> msgid ""
> "If the executable is an a.out dynamically linked binary executable "
> "containing shared-library stubs, the Linux dynamic linker B<ld.so>(8)  is "
> "called at the start of execution to bring needed shared objects into memory "
> "and link the executable with them."
> msgstr ""
> "Falls das Programm eine dynamisch gelinkte Programmdatei im a.out-Format "
> "ist, die Laufzeitbibliothekenstümpfe enthält, dann wird der dynamische "
> "Linker B<ld.so>(8) von Linux am Anfang der Ausführung aufgerufen, um die "
> "benötigten Laufzeitobjekte in den Speicher zu bringen und das Programm mit "
> "ihnen zu verlinken."

"Laufzeitbibliothekenstümpfe" finde ich ausgesprochen scheußlich. Mein
Anspruch an einen Übersetzer wäre hier nicht, mit Wortbildungsoptionen
zu arbeiten, sondern den eigenen Lesern nahezubringen, was Sache
ist. "stub" musste ich im Wörterbuch nachschauen. Darin heißt es, das
sind auch die Teile eines Scheckhefts, die nach Herausreißen eines
Schecks zurückbleiben und auch Belegcharakter haben. Insofern könnten
die "Stümpfe" hier Stellen sein, wo dann Programmcode aus einer
Laufzeitbibliothek auszuführen ist. "dynamisch gelinkt" und "Stümpfe
enthältend" würden damit auf denselben Sachverhalt abheben, Zweiteres
wäre eine Paraphrasierung von Ersterem. Sollte der Sachverhalt korrekt
erfasst sein, ließe sich der mit Wenn beginnende Nebensatz sicher
einleuchtend ins Deutsche übertragen.


> #. type: Plain text
> msgid ""
> "If the executable is a dynamically linked ELF executable, the interpreter "
> "named in the PT_INTERP segment is used to load the needed shared objects.  "
> "This interpreter is typically I</lib/ld-linux.so.2> for binaries linked with "
> "glibc (see B<ld-linux.so>(8))."
> msgstr ""
> "Falls das Programm ein dynamisch gelinktes ELF-Programm ist, wird der in dem "
> "Segment PT_INTERP benannte Interpreter zum Laden der gemeinsamen Objekte "
> "verwandt. Dieser Interpreter ist typischerweise I</lib/ld-linux.so.2> für "
> "Programme, die mit der Glibc gelinkt sind (siehe B<ld-linux.so>(8))."

s/
die mit der Glibc gelinkt/ 
die Glibc gelinkt/                    oder
die mit der Bibliothek Glibc gelinkt/



> #. type: Plain text
> msgid ""
> "The dispositions of any signals that are being caught are reset to the "
> "default (B<signal>(7))."
> msgstr ""
> "Die Zuordnung aller Signale, die gefangen werden, wird auf die Vorgabe "
> "zurückgesetzt (B<signal>(7))."

Wenn sich "caught" auf "signals" bezieht, kann man sich den
Relativsatz sparen, indem man mit einer Partizip-Konstruktion arbeitet

s/
aller Signale, die gefangen werden/
aller empfangenen Signale



> #. type: Plain text
> msgid "Any alternate signal stack is not preserved (B<sigaltstack>(2))."
> msgstr ""
> "Jeder alternative Signal-Stack wird nicht erhalten (B<sigaltstack>(2))."

"Alternierend", also sich abwechselnd mit zwei Gegenständen
beschäftigen, könnte hier die zutreffende Übersetzung sein.


> #. type: Plain text
> msgid "Memory mappings are not preserved (B<mmap>(2))."
> msgstr ""

"Speicherplatz-Zuordnungen werden nicht erhalten (B<mmap>(2))."

> 
> #. type: Plain text
> msgid "Attached System\\ V shared memory segments are detached (B<shmat>(2))."
> msgstr ""

"Die Verbindung zu Speichersegmenten, die mit System\\ V gemeinsam genutzt werden, wird gelöst (B<shmat>(2))."


> #. type: Plain text
> msgid "POSIX shared memory regions are unmapped (B<shm_open>(3))."
> msgstr ""

"Die Muppets räumen alle ihre in den durch POSIX erschlossenen
Speicherbereichen liegenden Stellungen"

 
> #. type: Plain text
> msgid "Open POSIX message queue descriptors are closed (B<mq_overview>(7))."
> msgstr ""
> "Offene POSIX-Nachrichtenwarteschlangendeskriptoren werden geschlossen "
> "(B<mq_overview>(7))."

Bindestriche werden manchmal völlig unsach-gerecht zum Ein-satz ge-
bracht.


> #. type: Plain text
> msgid ""
> "(Since Linux 2.4.36 / 2.6.23)  If a set-user-ID or set-group-ID program is "
> "being executed, then the parent death signal set by B<prctl>(2)  "
> "B<PR_SET_PDEATHSIG> flag is cleared."
> msgstr ""
> "(Seit Linux 2.4.36 / 2.6.23) Falls ein »set-user-ID«- oder »set-group-ID«-"
> "Programm ausgeführt wird, dann wird das durch den Schalter B<prctl>(2) "
> "B<PR_SET_PDEATHSIG> gesetzte Todessignal des Elternprozesses zurückgesetzt."

R.I.P., dear parent process




Reply to: