MS-DOS-en, sistema eragile bateragarrietan, eta 8 biteko CP/M-n, COM fitxategiak fitxategi exekutagarrien mota edo formatu sinple dira. Fitxategiaren formatuaren izenak ".com" fitxategien luzapenean du jatorria, fitxategi horietarako erabili izan zen luzapen originala alegia (ez da nahastu behar goi mailako .com domeinuarekin). Hala ere, fitxategiaren formatuaren eta luzapenaren artean ez dago inolako erlaziorik, ez bada CP/ M-n edo MS-DOS-eko bertsio zaharrenetan.

EXE fitxategiek ez bezala, COM fitxategiek oso egitura sinplea dute eta modu zuzen eta linealean gordetzen dute programa memorian. Memoriako segmentu bakar batean sartzen diren programak bakarrik gorde daitezke COM fitxategietan.

Onartzen duten plataformek aldatu

Formatua exekutagarria da Windowsen oinarritutako plataforma berri askotan, baina MS-DOS emulatzen duen azpisistema batean exekutatzen da. Azpisistema hori x64 bertsioetan kendu egin zen.

COM fitxategiak DOS emuladoreetan ere exekuta daitezke, adibidez DOSBOX bezalako emuladoreetan, edo emuladore horiek onartzen dituzten edozein plataformatan. Hasiera batean COM "komandoaren" laburdura zen, .com fitxategiek makinan exekuta zitezkeen oinarrizko komandoen kodea baitzuten.

Nukleoaren zenbait funtzionalitatek, MS-DOS-eko more bertsioak adibidez, eta sistemaren hasierako aplikazio txikiek, IBM Alley Caten jokoak adibidez, formatu hori erabiltzen zuten.

Formatu bitarra aldatu

Formatu exekutagarrien artean COM formatua izango da agian sinpleena, datuak eta kodea bakarrik ditu, eta ez metadaturik. Segmentu baten 0x0100 helbidetik aurrera kargatzen da eta exekutatzen da. memoriaren segmentazioa dela eta, birkokaketa ez da beharrezkoa.

Hala ere, hain sinple izateak kostu bat du: kode bitarrak 65,280 (0xFF00) byteko tamaina maximoa du, eta segmentu bakar batean gorde behar da kode eta datu guztiak. Hori ez zen arazoa 8 biteko lehenengo ordenagailuetan, baina 16 biteko eta, geroago, 32 biteko prozesadore sortu zirenean, arazo hori arrazoi nagusia izan zen formatu hori ez erabiltzeko, segmentatutako memoriak handiagoak baitziren.

Intel 8080 CPUaren arkitekturan, memoriako 65,536 byte bakarrik helbidera daitezke (0x0000 eta 0XFFFF arteko helbideak). [[:es:CP/M| CP/M]-n], memoria horren lehenengo orria, 0x000-tik 0x00FF-ra, sistemak erabiltzeko erreserbatuta zegoen, eta erabiltzailearen programa guztiak 0x0100 helbidean kargatu behar ziren exekutatu ahal izateko. COM fitxategiak eredu horrekin bat datoz ezin hobeki. Kontuan hartu behar da aldi berean programa edo komando bakar bat exekuta zitekeela: 0x0100 helbidean kargatuta zegoen programa bakarrik exekutatzen zen, besterik ez.

MS-DOS-ean eta CP / M-n fitxategiaren formatua bera bada ere, ez du esan nahi CP/M-ren programak MS-DOS-ean zuzenean exekuta daitezkeenik, edo alderantziz. MS-DOS-eko COM fitxategiek x86 aginduak dauzkate; CP/M-eko COM fitxategiek berriz 8080, 8085 edo Z80 aginduak dauzkate. Gainera, MS-DOS-eko COM fitxategiak maiz 21h etenen bidez sortzen diren sistema eragileko deien menpe daude. Prozesadoreen bi familiek exekuta ahalko duten COM fitxategi astun bat sortzea posiblea da

Fitxategiek .COM luzapena izan dezakete, baina ez lehenik deskribatu den formatua. Hau fitxategiaren hasieran kokatzen den "zenbaki magiko" bati esker jakiten da. Adibidez, gaur egun DR-DOS 6-n COMMAND.COM fitxategia DOS-eko formatu exekutagarrian dago, fitxategiaren lehenengo bi byteek adierazita, MZ ( 0x4D5A), hau da, Mark Zbikowskiren inizialak. CP/M 3-n, COM fitxategi baten lehenengo bytea 0xC9 bada, honek 256 byteko goiburu bat dagoela adierazten du, 0xC9 8080 makinarenRET agindua baita. Horrek esan nahi du COM fitxategiaren exekuzioa bertan behera geratuko dela luzapen hori onartzen ez duen CP/M makinaren bertsio batean exekutatzen bada.

Exekutatzeko lehentasuna aldatu

Baldin eta direktorio batek izen bereko bi fitxategi badauzka ( luzapena kontuan hartu gabe), bata COM eta bestea EXE, COM fitxategia lehenago exekutatuko da. Adibidez, direktorio batek bi fitxategi hauek baditu, nota.com eta nota.exe, honako hau jarri beharko da nota.com fitxategia exekutatzeko:

C:\>nota

Erabiltzaileak nota.exe exekutatu nahi badu, fitxategiaren izen guztia esplizituki erabili beharko du:

C:\>nota.exe

Erabilera gaiztoa aldatu

  • Exekuzioaren lehentasunean dagoen arazoa aprobetxatuz, batzuetan birusen sortzaileek notepad.com bezalako izenak erabiltzen dituzte haien birusetarako.Haien ideia hauxe da: fitxategia EXE fitxategiaren direktorioan jartzen bada, komandoaren edo batch fitxategi baten exekuzioak haien programa exekutatuko du erabiltzailea konturatu gabe, notepad.exe testu-editorearen ordez.
  • Birusen sortzaile batzuk COM fitxategien formatuari buruz ezer ez dakiten erabiltzaile berriak erasotzen saiatu dira, punto-com Interneteko domeinuan daukaten konfiantza erabiliz. " www.free-gift.com" izeneko dokumentu bat erantsita duten posta-mezuak bidali dira (euskaraz " www.opari-doan.com" izango litzateke). Erantsitako dokumentuan sakatu zuten Microsoft Windowseko erabiltzaile zuhurtziagabekoak ez ziren http://www.free-gift.com/ web gunea ikusten ari; horren ordez, kontu handiz egindako, eta ziur aski gaiztoa zen www.free-gift izeneko komando bitar bat exekutatzen ari ziren. Horrela, baimen osoa ematen zioten komandoaren egileari, erabiltzailearen makinan nahi zuen guztia egiteko.

Horrek ez du esan nahi gaiztakeriarik dagoenik COM fitxategiaren formatuan; .com komando-fitxategien eta, hamarkada bat edo beranduago, web komertzialen .com guneen arteko talka erakusten duen adibide bat besterik ez da.

Kanpo estekak aldatu