Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Beitrag
von meandtheshell » 01.02.2005 19:48:56
hallo,
ich bin beim Firewallscript schreiben auf folgende Frage gestoßen die mir keine Ruhe lässt - nachdem ich schon hier im Forum gesucht habe und auch Google gefragt habe, aber keine zufriedenstellende Antwort gefunden habe frage ich euch nocheinmal ...
die ganzen Module die der man laden kann liegen ja im Verz
die Module haben die File Extension
einfach weil ich es jetzt wissen möchte - was genau heißt das Akronym / Extension?
Im Netz habe ich bei Wikipedia und Co. schon gesucht - das beste was ich gefunden habe ist
http://www.icdatamaster.com/k.html -
das scheint aber auch kein Treffer zu sein oder seht ihr das anders? welches Wissen habt ihr über diese Extension bzw. für was außer als Extension für Debian Module kennt ihr Sie noch?
lg aus Wien
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 01.02.2005 22:27:55
früher hatten diese Module die Extension .o (wie Object, dh. Module die nicht gelinkt wrucen), jetzt ist daraus .ko geworden, wird wahrscheinlich für Kernel-Object stehen
-
meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Beitrag
von meandtheshell » 01.02.2005 22:53:59
hm - bei der Extension
denke ich eher an Object Files von C/C++ Programmen - wobei der Einwurf mit dem Linken? - macht das Sinn? - gelinkt werden ja eigentlich Object Files und damit dann sozusagen zu einem Executable zusammen gebunden - Module sind ja fertige binär Files ... - wie hast du das mit dem linken gemeint?
lg aus Wien
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 01.02.2005 23:04:00
wenn du dich mit C/C++ Programmen auskennst:
Bei Userprogrammen können .o Dateien (Objects) zu .so Dateien (Shared Objects/Libraries) gelinkt werden. Shared Objects/Libraries werden zum aufrufendem Programm nicht statisch sondern entweder dynamisch oder überhaupt nicht gelinkt (Stichwort dlopen)
Beim Kernel ist es eigentlich fast genauso: .o Dateien (Objects) werden zu Modulen .ko zusammen gelinkt, aber eben nicht mit dem Kernel verlinkt. Letzteres ist auch das was ich oben etwas hatschert ausgedrückt habe
-
roli
- Beiträge: 3174
- Registriert: 10.09.2003 17:39:58
Beitrag
von roli » 03.02.2005 11:00:48
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
-
meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Beitrag
von meandtheshell » 03.02.2005 11:43:31
hallo,
also die Antwort auf (iptable_nat.ko ist eine von vielen mit dieser Extension; hätte auch andere nehmen können - ist aber egal es geht ja um den Typ der Datei)
Code: Alles auswählen
file /lib/modules/"kernelversion"/ ... /iptable_nat.ko
dann bekomme ich folgenden Output in die Kommandozeile:
Code: Alles auswählen
iptable_nat.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
- der String mit Intel ist mir klar = Plattformtype
- der erste mit ELF ... sagt mir nichts; was bedeutet er?
- der ganze Rest macht mich auch nicht großartig schlau - noch nie gesehen - wofür stehen Sie?
danke für eure Antwort und
lg aus Wien
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 03.02.2005 12:17:11
"elf" (executable and linkable format) ist ein binary format, sowie a.out, coff
"32 bit, Intel 80386" ist klar
"version 1 (SYSV)" ist halt die Versionsbezeichnung
"not stripped", heißt das debugging/linking info drinnen ist
das "relocatable" heißt, daß beim Laden, relative Adressen in absolute Adressen umgewandelt werden können. (Die Startadresse wird zu den relativen Adressen dazugezählt)
[edit]
eine ähnliche Ausgabe wirst du bei Programmen, Modulen und bei Objektdateien erhalten. Ein Programm/Modul ist letztendlich auch nur eine Objektdatei
[/edit]