File Extensions

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

File Extensions

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

Code: Alles auswählen

/lib/modules/"kernelversion"/"different groups"/ usw. 
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

Benutzeravatar
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

Hi,

was sagt denn

Code: Alles auswählen

file /pfad/datei.ko
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"

Benutzeravatar
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 :D

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]

Antworten