www.wikidata.de-de.nina.az
Eine COM Datei ist eine ausfuhrbare Datei in CP M MS DOS und zu MS DOS kompatiblen Betriebssystemen Der Name leitet sich aus der Dateinamenserweiterung COM ab die fur das englische Wort command Befehl steht Viele Shell Werkzeuge wie die MS DOS Version von a href More Kommandozeilenbefehl html title More Kommandozeilenbefehl more a nutzen dieses Format wie auch kleine fruhe Anwendungen wie das Spiel Alley Cat von IBM Inhaltsverzeichnis 1 Binarformat 1 1 CP M 80 1 2 MS DOS 1 3 Austausch beider Formate 2 Plattform Unterstutzung 3 Vorrang bei der Ausfuhrung 4 Missbrauch 5 EinzelnachweiseBinarformat BearbeitenDas COM Format ist vielleicht das einfachste Format ausfuhrbarer Dateien uberhaupt es enthalt keine Metadaten nur Code und Daten und wird an Offset 0x0100 eines Segmentes geladen und ausgefuhrt Durch die Art nach der das Segmentierungsmodell arbeitet ist keine Relokation vonnoten Die Einfachheit hat jedoch ihren Preis Die Dateien sind auf Grossen von maximal 65 280 0xFF00 Bytes beschrankt und speichern Code und Daten in einem einzigen Segment Dies stellte auf 8 Bit Architekturen kein Problem dar ist jedoch der Hauptgrund warum das Format nach der Einfuhrung von 16 Bit Architekturen und spater 32 Bit und 64 Bit Architekturen mit ihren weitaus grosseren segmentierten Speichern bald aus der Mode kam und heute ungebrauchlich ist CP M 80 Bearbeiten Auf den fur CP M 80 typischen Intel 8080 CPU Architekturen konnen nur 65 536 Bytes Speicher adressiert werden Adressbereich 0x0000 bis 0xFFFF CP M reserviert die erste Seite dieses Speichers 0x0000 bis 0x00FF fur das System und ein Anwendungsprogramm muss exakt an Adresse 0x0100 geladen werden um ausgefuhrt zu werden COM Dateien eignen sich perfekt fur dieses Modell Es ist nicht moglich mehr als ein Programm oder einen Befehl gleichzeitig auszufuhren nur das an 0x0100 geladene Programm wird ausgefuhrt Ist das erste Byte einer CP M COM Datei 0xC9 so zeigt dies fur CP M 3 das Vorhandensein eines 256 Byte Headers an Da 0xC9 der 8080 Befehl fur return ist wird die COM Datei sofort beendet wenn sie auf einer fruheren Version von CP M ausgefuhrt wird die diese Erweiterung nicht unterstutzt MS DOS Bearbeiten Auf einer fur MS DOS notigen Intel 8086 Architektur sind 1 024 KiB Arbeitsspeicher direkt adressierbar durch jede Segmentadresse 0x0000 bis 0xFFFF kann auf einen jeweils 64 KiB grossen Ausschnitt des Speichers zugegriffen werden siehe Speichersegmentierung des 8086 Prozessors Die COM Dateien werden in ein beliebiges freies Segment ab Offset 0x0100 geladen Das Betriebssystem nutzt die 256 Byte am Anfang des Segments fur das Program Segment Prefix PSP Mehrere Programme konnen gleichzeitig geladen werden da DOS jedoch ein Singletasking System ist werden die Programme verschachtelt ausgefuhrt wobei das jeweils hohere Programm erst nach dem Beenden des tieferen Programmes fortgesetzt wird Nur spezielle TSR Programme wechseln sich sozusagen mit dem zuletzt gestarteten Programm ab Die Dateinamenserweiterung COM wird unter MS DOS teilweise auch fur eigentlich falsch benannte MZ Dateien verwendet Beispiele fur solche Dateien sind die Programme COMMAND COM und EDIT COM einiger DOS Versionen MZ Dateien haben fur gewohnlich die Erweiterung EXE engl executable ausfuhrbar DOS ignoriert aber den genutzten Dateinamen und unterscheidet die beiden Formate durch die Magische Zahl der MZ Dateien Austausch beider Formate Bearbeiten Die Gemeinsamkeiten von COM Dateien unter CP M 80 und MSDOS sind mit der gleichen Ladeadresse 100h und der Lage der Kommandozeile bei Programmaufruf 80h FFh erschopft Es weist weder der Maschinencode Ahnlichkeiten auf noch die Schnittstelle zum Betriebssystem oder die Ausgabe von Zeichen auf dem Bildschirm Diskettenformate waren weiterhin inkompatibel meist schon auf Hardware Ebene Fat COM Dateien wurden nicht unterstutzt und waren zur damaligen Zeit auch kein Thema Plattform Unterstutzung BearbeitenCP M 80 Programme konnen unter MS DOS nicht nativ ausgefuhrt werden Unter Windows bis Windows 9x wird das darunter liegende DOS System verwendet 32 Bit Windows NT Systeme konnen DOS Programme nicht nativ sondern nur mit Hilfe der Virtual DOS Machine ausgefuhrt werden den 64 Bit Windows Versionen fehlt diese Schicht weswegen auf alternative Emulatoren wie DOSBox zuruckgegriffen werden muss OS 2 nutzte auch eine Emulationsschicht Vorrang bei der Ausfuhrung BearbeitenFinden sich in einem Ordner sowohl eine COM als auch eine EXE Datei gleichen Namens so zieht COMMAND COM aus MS DOS oder kompatiblen die COM Datei vor 1 Ist die Ausfuhrung der EXE Datei gewunscht so kann das ab MS DOS Version 4 00 durch die Angabe des gesamten Dateinamens mit der Erweiterung explizit erzwungen werden Beispiel Liegt im aktuellen Verzeichnis sowohl eine FOO COM als auch eine FOO EXE so startet der Befehl FOO die COM Datei und nur FOO EXE die EXE Datei Computerviren werden manchmal verbreitet indem dieses Verhalten ausgenutzt wird Der Virus wird dabei in vom Virus selbst angelegten Wirtsdateien mit Namen wie z B MEM COM platziert Es wird dann darauf spekuliert dass im selben Ordner wie eine korrespondierende EXE Datei platziert der Benutzer durch den kurzeren Befehl MEM ohne Erweiterung anstatt des Originals MEM EXE in MS DOS enthaltenes Programm zur Speicheranzeige den Virus ausfuhrt Viren die sich so verhalten nennt man Companionviren Missbrauch BearbeitenProgrammierer von Computerviren nutzen auch aus dass com heute mit der gleichnamigen Top Level Domain assoziiert wird indem sie ihre Programme www com nennen Wird eine solche Datei als E Mail versandt wird dem unbedarften Windowsnutzer eine Domain nach dem Muster www example com angezeigt der dann entgegen seinen Erwartungen nicht oder nicht nur die Seite www example com offnet sondern die Datei www example mit der Endung com ausfuhrt Einzelnachweise Bearbeiten Microsoft KB35284 Order of Precedence in Locating Executable Files englisch Abgerufen von https de wikipedia org w index php title COM Datei amp oldid 213952040