Meta tags:
Headings (most frequently used words):
edit, and, binaries, apple, fat, binary, cp, dos, multi, combined, for, apollo, linux, navigation, architecture, com, files, universal, tools, contents, windows, similar, concepts, see, also, notes, references, further, reading, menu, compound, executables, next, style, 80, 86, sys, crash, protected, system, fatelf, fatpack, heterogeneous, computing, objects, function, versioning, personal, namespaces, views, search, contribute, print, export, languages, nextstep, mach, mac, os,
Text of the page (most frequently used words):
the (413), and (192), for (102), from (101), dos (100), file (90), retrieved (73), original (70), archived (69), #binary (67), code (65), with (58), 2021 (49), com (49), fat (47), 2022 (45), files (45), this (44), binaries (44), that (41), which (40), architecture (38), not (37), are (37), program (35), system (33), pdf (32), executable (31), edit (28), driver (28), can (27), apple (27), under (26), multi (25), both (25), 2020 (23), used (23), but (23), programs (23), universal (22), also (22), use (21), different (21), powerpc (20), have (20), operating (20), instruction (20), one (20), bit (20), was (19), sys (19), device (19), format (19), version (18), time (18), applications (18), processors (18), x86 (18), you (17), linux (17), multiple (17), some (17), usa (17), run (16), into (16), byte (16), systems (16), pages (15), support (15), type (15), these (15), self (15), intel (15), software (15), computer (15), runtime (14), well (14), architectures (14), header (14), similar (14), versions (14), containing (13), matthias (13), mac (13), feature (13), will (13), first (13), same (13), all (12), 2019 (12), org (12), windows (12), paul (12), loaded (12), its (12), cpu (12), 2009 (12), fatelf (12), z80 (12), page (11), between (11), machine (11), data (11), set (11), would (11), end (11), has (11), when (11), 8080 (11), start (11), next (11), executables (11), command (10), number (10), possible (10), loader (10), 1997 (10), 2018 (10), cuda (10), control (10), such (10), elliott (10), platforms (10), may (9), inc (9), create (9), dynamic (9), country (9), drivers (9), supported (9), they (9), heterogeneous (9), 2010 (9), ascii (9), many (9), new (9), jump (9), john (9), archive (9), 8086 (9), compatible (9), ebh (9), platform (9), were (9), nextstep (9), wikipedia (8), more (8), does (8), freekeyb (8), mouse (8), line (8), image (8), dev (8), method (8), include (8), based (8), compiler (8), gpu (8), computing (8), however (8), size (8), through (8), processor (8), combined (8), about (7), what (7), tools (7), dead (7), while (7), target (7), keyboard (7), other (7), there (7), works (7), specific (7), embedded (7), single (7), user (7), nvidia (7), 2016 (7), 2014 (7), utilities (7), issn (7), environment (7), any (7), than (7), work (7), order (7), been (7), int (7), mach (7), apollo (7), function (7), offset (7), extension (7), using (6), statements (6), 2017 (6), need (6), newsgroup (6), freedos (6), 2002 (6), load (6), larger (6), only (6), style (6), just (6), form (6), 2012 (6), isbn (6), doi (6), 2007 (6), 2011 (6), character (6), characters (6), because (6), space (6), entry (6), opcode (6), 1998 (6), since (6), example (6), identical (6), bytes (6), archives (6), sequence (6), independent (6), common (6), families (6), thereby (6), hard (6), sometimes (6), object (6), called (6), transition (6), 68k (6), text (5), non (5), articles (5), build (5), library (5), 2001 (5), elimination (5), comp (5), call (5), necessary (5), programming (5), dynamically (5), users (5), performance (5), corporation (5), application (5), concept (5), kernel (5), txt (5), contains (5), each (5), jay (5), could (5), thus (5), their (5), had (5), exit (5), wordstar (5), although (5), either (5), written (5), pmsfx (5), fatbin (5), source (5), address (5), magic (5), 20h (5), resource (5), crash (5), introduced (5), stack (5), c9h (5), concurrent (5), portable (5), developers (4), available (4), link (4), special (4), changes (4), article (4), read (4), references (4), language (4), formats (4), 2005 (4), features (4), 1996 (4), four (4), how (4), like (4), dependencies (4), routines (4), remove (4), changing (4), being (4), configuration (4), options (4), modules (4), particular (4), tiny (4), framework (4), generate (4), techniques (4), relocating (4), gcc (4), gnu (4), lto (4), collection (4), 978 (4), ieee (4), international (4), conference (4), parallel (4), multi2sim (4), yuan (4), proceedings (4), reference (4), wang (4), hong (4), journal (4), june (4), fatpack (4), ryan (4), gordon (4), california (4), within (4), terminate (4), digital (4), interface (4), sage (4), rst (4), executed (4), z3txt (4), make (4), ibmbio (4), older (4), 1994 (4), chapter (4), release (4), names (4), out (4), another (4), point (4), them (4), calling (4), extracting (4), cpm (4), later (4), supports (4), combine (4), see (4), arm (4), macintosh (4), structure (4), tidbits (4), contain (4), higher (4), types (4), variants (4), even (4), originally (4), protected (4), compatibility (4), return (4), zero (4), elf (4), sections (4), allow (4), share (4), drive (4), two (4), arm64 (4), running (4), native (4), free (4), openstep (4), terms (3), last (3), upload (3), main (3), navigation (3), search (3), account (3), personal (3), hidden (3), april (3), december (3), short (3), description (3), cs1 (3), german (3), location (3), 2006 (3), gotham (3), frederick (3), narkive (3), tunney (3), justine (3), alexandra (3), roberts (3), reading (3), die (3), resident (3), msdos (3), goes (3), deal (3), provide (3), itself (3), initialization (3), depending (3), switches (3), images (3), sub (3), fix (3), level (3), able (3), distributed (3), case (3), defines (3), various (3), cases (3), assembly (3), without (3), small (3), still (3), allowing (3), model (3), memory (3), assembler (3), manual (3), console (3), project (3), packages (3), optimized (3), internals (3), compilation (3), simulation (3), massachusetts (3), 1109 (3), simulator (3), acm (3), guide (3), february (3), icculus (3), virtual (3), several (3), word (3), exact (3), marker (3), disk (3), rather (3), conventions (3), functions (3), dec (3), pdp (3), 1992 (3), carlson (3), art (3), bill (3), corner (3), ark (3), 13960 (3), module (3), never (3), followed (3), must (3), warm (3), boot (3), 0748 (3), 9331 (3), tcj (3), part (3), 1988 (3), 2003 (3), opendos (3), update (3), alpha (3), including (3), provided (3), 1995 (3), needed (3), install (3), old (3), tricky (3), config (3), overlays (3), very (3), info (3), legal (3), pma (3), smaller (3), extract (3), produce (3), pmarc (3), dskwrite (3), runs (3), those (3), protection (3), way (3), opcodes (3), 04h (3), 01h (3), mips (3), inside (3), creating (3), manager (3), notes (3), gnustep (3), engineering (3), shipped (3), message (3), inappropriately (3), bios (3), problem (3), early (3), extensions (3), newer (3), jumping (3), ret (3), c3h (3), cmd (3), plus (3), devised (3), alternative (3), speed (3), libraries (3), llvm (3), versioning (3), purpose (3), choose (3), development (3), distribution (3), web (3), additionally (3), convention (3), gracefully (3), cause (3), wrong (3), rosetta (3), targeted (3), ppc (3), generally (3), continued (3), compiled (3), compound (3), statement (2), view (2), contact (2), privacy (2), policy (2), september (2), links (2), download (2), wikidata (2), information (2), help (2), contents (2), talk (2), categories (2), unsourced (2), potentially (2), dated (2), list (2), long (2), test (2), https (2), fat_binary (2), amigaos (2), making (2), news (2), cosmopolitan (2), once (2), further (2), und (2), daß (2), ein (2), nicht (2), released (2), specify (2), extent (2), screen (2), almost (2), before (2), makes (2), layout (2), installed (2), relocation (2), individual (2), included (2), specified (2), large (2), high (2), combinations (2), dispatch (2), tables (2), tsr (2), instructions (2), overhead (2), amount (2), keep (2), relocate (2), done (2), alt (2), supporting (2), most (2), utilizing (2), pre (2), analysis (2), alongside (2), discarding (2), granular (2), underlying (2), hardware (2), relaxing (2), meta (2), unicode (2), frinke (2), axel (2), clang (2), 4503 (2), david (2), amd (2), 2013 (2), 176 (2), george (2), fung (2), wilson (2), aamodt (2), tor (2), ispass (2), columbia (2), flow (2), nvcc (2), developer (2), mark (2), 2004 (2), perry (2), collins (2), jamison (2), chinya (2), gautham (2), jiang (2), tian (2), xinmin (2), girkar (2), milind (2), lueh (2), guei (2), 1535 (2), technology (2), exoskeleton (2), 1145 (2), exochi (2), github (2), joe (2), thom (2), ubuntu (2), proof (2), gmane (2), november (2), placing (2), after (2), therefore (2), uses (2), allocated (2), directory (2), osborne (2), 1ah (2), real (2), returned (2), operation (2), research (2), full (2), vol (2), equipment (2), monitor (2), eds (2), result (2), should (2), cost (2), contained (2), string (2), null (2), now (2), name (2), length (2), zcpr (2), press (2), falls (2), caldera (2), readme (2), nwdostip (2), novell (2), undocumented (2), author (2), points (2), mpdostip (2), undokumentierte (2), für (2), tips (2), details (2), add (2), normal (2), directives (2), always (2), present (2), find (2), correct (2), advantage (2), usually (2), segment (2), 100h (2), difference (2), leave (2), where (2), psp (2), mode (2), announce (2), cutemouse (2), jmp (2), ffffh (2), probably (2), issue (2), gsx (2), reason (2), 100 (2), quite (2), 21h (2), e0h (2), seasip (2), three (2), effects (2), fatbnsea (2), converts (2), multiface (2), unix (2), fbmake (2), 706k (2), speaks (2), garbage (2), simeon (2), cran (2), myz80 (2), emulator (2), xchg (2), pms (2), valid (2), might (2), wilkinson (2), william (2), albert (2), richard (2), 1999 (2), specifically (2), general (2), identifying (2), confused (2), 90h (2), 3ah (2), 24h (2), 77h (2), 0eh (2), b2h (2), 02h (2), gadget (2), georgia (2), 1986 (2), heath (2), 2000 (2), programmer (2), approach (2), abi (2), tevanian (2), avadis (2), demoney (2), michael (2), enderby (2), kevin (2), wiebe (2), douglas (2), snyder (2), garth (2), redwood (2), city (2), patent (2), apparatus (2), pef (2), 1090 (2), 7017 (2), publishing (2), engst (2), adam (2), 256 (2), domain (2), wiki (2), packaging (2), java (2), differently (2), structures (2), stub (2), invoked (2), nlsfunc (2), accidentally (2), database (2), otherwise (2), whereas (2), 8088 (2), directly (2), c7h (2), prepared (2), hold (2), issuing (2), dedicated (2), behaviour (2), initial (2), near (2), eventually (2), bdos (2), shellcode (2), targeting (2), camouflaged (2), alphanumeric (2), hex (2), position (2), cross (2), perform (2), hand (2), automatically (2), chosen (2), according (2), addition (2), glibc (2), paths (2), intended (2), achieved (2), store (2), stored (2), known (2), objects (2), cpus (2), gpus (2), gpgpu (2), compile (2), execution (2), concepts (2), emulation (2), useful (2), machines (2), instead (2), required (2), implementation (2), logo (2), beginning (2), interpreted (2), overlay (2), avoid (2), developed (2), stubs (2), display (2), utility (2), executing (2), ibmdos (2), unpredictable (2), results (2), typically (2), fixed (2), executes (2), ffffffffh (2), shared (2), already (2), 68000 (2), appropriate (2), generations (2), incorrect (2), signature (2), leads (2), erroneously (2), msx (2), decoded (2), 103h (2), 03h (2), methods (2), preceded (2), reads (2), starting (2), 2dh (2), announced (2), natively (2), silicon (2), xcode (2), every (2), resources (2), calls (2), motorola (2), pcs (2), integer (2), fat_arch (2), struct (2), nfat_arch (2), unneeded (2), drives (2), scheme (2), microprocessors (2), ran (2), fork (2), nov (2), cookie, statistics, mobile, disclaimers, additional, apply, site, agree, registered, trademark, profit, organization, wikimedia, foundation, creative, commons, attribution, sharealike, license, edited, utc, português, 日本語, italiano, galego, español, deutsch, čeština, languages, printable, print, export, item, cite, permanent, related, here, recent, community, portal, learn, contribute, donate, random, current, events, history, views, english, namespaces, log, contributions, logged, menu, defined, dmy, dates, matches, volume, value, sources, index, php, title, oldid, 1110848613, münch, multimedia, threaded, tasking, haage, partner, gmbh, develop, warpup, amiga, stormc, αcτµαlly, pδrταblε, εxεcµταblε, ape, hacker, libc, your, anywhere, communiqué, brandneue, der, jeweils, notwendigen, bestandteile, des, treibers, erst, zum, installationszeitpunkt, zusammenbastelt, reloziert, keine, ungenutzten, oder, datenbereiche, mehr, bleiben, wenn, jemand, bestimmtes, benötigt, dynamischen, ann, beta, unique, installation, components, want, don, loadable, modularization, late, linkage, seen, far, saver, macros, calculator, anything, else, taking, completely, fragments, requested, functionality, relocates, codepages, builds, video, adapter, due, around, fifty, settings, uncountable, resulting, endless, technique, manages, resolve, restricted, exclude, somewhat, limited, whole, classical, middle, over, handle, analyze, fixup, automated, conditional, declare, optional, having, least, left, track, conditionals, moving, parts, ctrl, del, configurable, successor, k3plus, off, shelf, automatic, post, processing, dependency, implements, reconfigurability, minimize, footprint, downto, close, selected, locale, sixty, hundreds, unlimited, complexity, dynamics, who, conventional, canonical, modifying, morphing, macro, codes, layouts, published, 1991, enhanced, bahena, victor, rodriguez, power, clear, transparent, wennborg, hans, documentation, attributes, overview, ubal, rafael, jang, byunghyun, mistry, perhaad, schaa, dana, minneapolis, minnesota, 1182, 21st, pact, kaeli, 210, wrapper, 173, bakhoda, ali, wong, henry, symposium, boston, 163, 174, 4919648, analyzing, workloads, detailed, sham, ivan, vancouver, british, canada, warp, formation, scheduling, efficient, braun, lorenz, fröning, holger, modeling, benchmarking, pmbs, denver, colorado, 7281, 5977, pmbs49563, 00014, flux, lightweight, profiler, trm, 06721, 001_v11, helpmanual, fatbinary, note, 06762, 001_v6, technical, walkthrough, pro, tip, understand, jit, caching, harris, cudafatformat, ptxomp, vii, pearce, lisa, yakoushkin, sergey, tera, scale, 185, 196, 864x, itj, 1103, accelerator, yang, nick, 156, 166, 1273442, 1250753, sigplan, notices, core, multithreaded, mulder, sijmen, sjmulder, brockmeier, zonker, weekly, lwn, net, anatomy, alleged, failure, osnews, halts, holwerda, windisch, eric, subject, newsgroups, patches, specification, october, superuser, differences, encoding, bc_programmer, hope, forum, copy, merges, tags, hogan, 1982, transient, commands, berkeley, marks, 128, adding, waste, 127, seldom, likely, occur, cannot, assumes, reached, record, basic, unit, records, relies, content, locate, 931988, mcgraw, hill, pacific, grove, 1979, denoted, ignored, condition, operations, 207, dependent, modes, duplex, 1969, 431, handbook, communicating, sharing, monitors, table, characteristics, teletypewriters, maynard, 1965, pre00, multiprogramming, kibler, lincoln, t70v9g87h, protect, ourself, against, outside, chance, identifiers, category, rcps, fcps, descriptor, bridger, mitchell, jetldr, validate, sure, kind, stated, mistakes, damaged, detected, stands, follows, terminated, 12345678, progname, pad, spaces, 123, eng, z3envs, regular, independence, march, mcewen, chris, plainfield, jersey, socrates, t4dn54d22, zcpr3, montana, t1wd4v943, whatsnew, comprehensive, yet, maintained, sites, html, converted, zip, eigenschaften, externer, kommandos, 157, zukünftiges, calderas, habe, ich, den, startcode, von, modifiziert, fälschlicherweise, als, normales, programm, gestartet, ohne, absturz, zur, kommandozeile, zurückkehrt, wann, diese, sicherheitsfunktion, offizielle, einzug, halten, wird, ist, jedoch, noch, abzusehen, nwdos, tricks, rund, mit, blick, auf, bugs, workarounds, lst, ctmouse, our, advanced, really, preserves, improve, flexibility, execute, prior, regardless, require, back, times, protocol, consume, less, basically, parse, magics, overcome, remainder, loadhighing, true, safely, overwrite, meant, replace, pending, ffh, lineback, nathan, toastytech, shots, necasek, michal, suspect, flag, clearly, shown, switching, narrow, abstracted, switch, chooses, ovr, museum, again, lopushinsky, jim, produces, unpackable, zxcc, combines, m3c4sea, m3conv, snapshots, sna, pmsfx21x, unpacking, unpack, themselves, sizes, sp2bmsea, stop, canvas, bmp, spectrum, generic, mentions, package, asm, get, fossies, fresh, open, fatbn101, 22k, creates, msodball, convert, floppy, discs, amstrad, micros, hensa, brehm, andrew, desertpenguin, christw, ones, look, disassembly, translates, 3rd, thing, microsoft, money, crashes, during, import, transactions, payee, downloaded, transaction, chen, raymond, idea, better, registers, mov, means, ends, away, fun, defb, 0ebh, 018h, treated, sends, 011ah, 0130h, mixed, 44h, seligman, cory, drushel, harston, jonathan, graham, scenario, describes, pips, authors, chunks, logic, 2ah, a9h, rop, gadgets, cha, sang, kil, pak, brian, 17th, communications, security, ccs, chicago, illinois, pittsburgh, pennsylvania, atlanta, 547, 558, 0244, 1866307, 1866369, institute, carnegie, mellon, university, lipton, brumley, 1987, company, joseph, michigan, zenith, group, hug, 885, 2085, remark, something, singh, amit, 13270226, pearson, education, 5604905a, 1993, 5432937a, 241, comments, 240, diet, printing, chelmsford, 005809, a03, fedora, packagingdrafts, pero, nicola, 2008, devanbu, premkumar, fong, philip, stubblebine, stuart, kyoto, japan, 131, 0270, 5257, 8186, 8368, icse, 671109, 20th, trusted, organized, incompatible, offsets, databases, improved, parser, capable, headed, nevertheless, displaying, janus, why, listed, default, reducing, risk, attribute, neither, nor, keyb, avoided, choosing, conflicting, retained, reasons, third, party, wired, expect, alias, retf, popping, decodes, pop, 80186, 80188, cbh, suitable, conditions, mechanisms, differ, alternatively, passing, aligned, exited, falling, terminating, interrupt, preferable, complicated, emulates, equivalent, previously, planted, retn, implicitly, reaching, structured, translated, api, 8085, isn, conflictive, exe, batchjobs, multiuser, 386, flexos, 286, readable, side, effect, pic, linear, pointer, let, snippets, conditionally, ddce, math, capability, examples, loading, openblas, mkl, wish, keeping, fmv, piece, decides, detecting, capabilities, ability, versioned, semantic, cpuid, involves, delaying, too, intermediate, representation, optimization, m2s, extended, kepler, fermi, southern, islands, evergreen, ati, opencl, compute, unified, enable, sass, streaming, actually, aka, sim, cubin, ptx, specialized, compilers, chi, integration, sequencer, suite, extends, isas, initiate, cores, multithreading, pragma, openmp, following, approaches, assigning, dispatches, desktop, demonstrates, includes, tries, packed, integrated, mainline, citation, network, usb, sticks, helpful, cloud, partition, booted, experimentation, root, across, layer, bsd, browser, plug, ins, box, someday, legacy, centrally, shell, scripts, separated, trees, anymore, lib64, lib32, lib, distributions, longer, separate, downloads, technically, concatenation, indicating, abstraction, etc, abis, distantly, fashion, soft, eof, opened, prevents, displayed, printed, tops, vms, wright, z3env, described, above, incorporate, safety, crafted, follow, certain, recognized, external, identification, netware, patterns, reflect, actual, trying, prompt, bootstrap, loaders, directive, nls, whose, requirement, reject, per, sufficient, portion, 0100h, 0000h, designed, requires, internal, carried, except, situation, loads, shares, normally, confuse, much, ports, adapt, differing, sequences, 6502, overlapping, meanings, meaningful, rejects, avoiding, attached, extra, indicate, graceful, gencom, rsx, exiting, simply, z80asm, slr, error, correctly, fully, functional, built, corresponding, started, few, branch, locations, sees, 154h, straight, his, derivative, modifies, created, yoshihiko, mino, representing, 18h, 70h, 6dh, 73h, extractable, 52h, headers, attempting, scp, smooth, added, translation, allowed, removed, greater, wider, forward, migration, existing, supplied, play, role, fairly, steep, encouraged, offer, obvious, years, greatly, outstripped, double, dwarf, becomes, minor, fact, often, duplicated, thin, ditto, lipo, translator, promoted, perhaps, distinguish, previous, acquired, became, instance, 970, darwin, libtool, arch, argument, convenient, distribute, stores, subfiles, starts, unsigned, integers, identify, second, instances, alignment, subtype, fat_header, risc, led, creation, strip, era, percentage, overall, usage, stripping, members, significant, smoothed, transparently, evolving, emulated, slower, took, storage, cfm, classic, sr10, cmpexe, bundled, prism, 680x0, alternatives, solve, selecting, bundles, distributing, place, compiling, union, directories, plan, apks, android, installer, usual, section, implementations, own, forks, expanded, fattened, consequently, sets, multiarchitecture, encyclopedia, wayback
Text of the page (random words):
in 2005 apple announced another transition from powerpc processors to intel x86 processors apple promoted the distribution of new applications that support both powerpc and x86 natively by using executable files in multi architecture binary format 12 apple calls such programs universal applications and calls the file format universal binary as perhaps a way to distinguish this new transition from the previous transition or other uses of multi architecture binary format universal binary format was not necessary for forward migration of pre existing native powerpc applications from 2006 to 2011 apple supplied rosetta a powerpc ppc to x86 dynamic binary translator to play this role however rosetta had a fairly steep performance overhead so developers were encouraged to offer both ppc and intel binaries using universal binaries the obvious cost of universal binary is that every installed executable file is larger but in the years since the release of the ppc hard drive space has greatly outstripped executable size while a universal binary might be double the size of a single platform version of the same application free space resources generally dwarf the code size which becomes a minor issue in fact often a universal binary application will be smaller than two single architecture applications because program resources can be shared rather than duplicated if not all of the architectures are required the lipo and ditto command line applications can be used to remove versions from the multi architecture binary image thereby creating what is sometimes called a thin binary in addition multi architecture binary executables can contain code for both 32 bit and 64 bit versions of powerpc and x86 allowing applications to be shipped in a form that supports 32 bit processors but that makes use of the larger address space and wider data paths when run on 64 bit processors in versions of the xcode development environment from 2 1 through 3 2 running on mac os x 10 4 through mac os x 10 6 apple included utilities which allowed applications to be targeted for both intel and powerpc architecture universal binaries could eventually contain up to four versions of the executable code 32 bit powerpc 32 bit x86 64 bit powerpc and 64 bit x86 however powerpc support was removed from xcode 4 0 and is therefore not available to developers running mac os x 10 7 or greater in 2020 apple announced another transition this time from intel x86 processors to apple silicon arm64 architecture to smooth the transition apple added support for the universal 2 binary format universal 2 binary files are multi architecture binary files containing both x86 64 and arm64 executable code allowing the binary to run natively on both 64 bit intel and 64 bit apple silicon additionally apple introduced rosetta 2 dynamic binary translation for x86 to arm64 instruction set to allow users to run applications that do not have universal binary variants cp m and dos edit combined com style binaries for cp m 80 and dos edit cp m 80 mp m 80 concurrent cp m cp m plus personal cp m 80 scp and msx dos executables for the intel 8080 and z80 processor families use the same com file extension as dos compatible operating systems for intel 8086 binaries nb 1 in both cases programs are loaded at offset 100h and executed by jumping to the first byte in the file 13 14 as the opcodes of the two processor families are not compatible attempting to start a program under the wrong operating system leads to incorrect and unpredictable behaviour in order to avoid this some methods have been devised to build fat binaries which contain both a cp m 80 and a dos program preceded by initial code which is interpreted correctly on both platforms 14 the methods either combine two fully functional programs each built for their corresponding environment or add stubs which cause the program to exit gracefully if started on the wrong processor for this to work the first few instructions sometimes also called gadget headers 15 in the com file have to be valid code for both 8086 and 8080 processors which would cause the processors to branch into different locations within the code 15 for example the utilities in simeon cran s emulator myz80 start with the opcode sequence ebh 52h ebh 16 17 an 8086 sees this as a jump and reads its next instruction from offset 154h whereas an 8080 or compatible processor goes straight through and reads its next instruction from 103h a similar sequence used for this purpose is ebh 03h c3h 18 19 john c elliott s fatbin 20 21 22 is a utility to combine a cp m 80 and a dos com file into one executable 16 23 his derivative of the original pmsfx modifies archives created by yoshihiko mino s pmarc to be self extractable under both cp m 80 and dos starting with ebh 18h 2dh 70h 6dh 73h 2dh to also include the pms signature for self extracting pma archives 24 16 23 17 thereby also representing a form of executable ascii code another method to keep a dos compatible operating system from erroneously executing com programs for cp m 80 and msx dos machines 14 is to start the 8080 code with c3h 03h 01h which is decoded as a ret instruction by x86 processors thereby gracefully exiting the program nb 2 while it will be decoded as jp 103h instruction by 8080 processors and simply jump to the next instruction in the program similar the cp m assembler z80asm by slr systems would display an error message when erroneously run on dos 16 some cp m 80 3 0 com files may have one or more rsx overlays attached to them by gencom 25 if so they start with an extra 256 byte header one page in order to indicate this the first byte in the header is set to magic byte c9h which works both as a signature identifying this type of com file to the cp m 3 0 executable loader as well as a ret instruction for 8080 compatible processors which leads to a graceful exit if the file is executed under older versions of cp m 80 nb 2 c9h is never appropriate as the first byte of a program for any x86 processor it has different meanings for different generations nb 3 but is never a meaningful first byte the executable loader in some versions of dos rejects com files that start with c9h avoiding incorrect operation similar overlapping code sequences have also been devised for combined z80 6502 16 8086 68000 16 or x86 mips arm binaries 15 combined binaries for cp m 86 and dos edit cp m 86 and dos do not share a common file extension for executables nb 1 thus it is not normally possible to confuse executables however early versions of dos had so much in common with cp m in terms of its architecture that some early dos programs were developed to share binaries containing executable code one program known to do this was wordstar 3 2x which used identical overlay files in their ports for cp m 86 and ms dos 26 and used dynamically fixed up code to adapt to the differing calling conventions of these operating systems at runtime 26 digital research s gsx for cp m 86 and dos also shares binary identical 16 bit drivers 27 combined com and sys files edit dos device drivers typically with file extension sys start with a file header whose first four bytes are ffffffffh by convention although this is not a requirement 28 this is fixed up dynamically by the operating system when the driver loads typically in the dos bios when it executes device statements in config sys since dos does not reject files with a com extension to be loaded per device and does not test for ffffffffh it is possible to combine a com program and a device driver into the same file 29 28 by placing a jump instruction to the entry point of the embedded com program within the first four bytes of the file three bytes are usually sufficient 28 if the embedded program and the device driver sections share a common portion of code or data it is necessary for the code to deal with being loaded at offset 0100h as a com style program and at 0000h as a device driver 29 for shared code loaded at the wrong offset but not designed to be position independent this requires an internal address fix up 29 similar to what would otherwise already have been carried out by a relocating loader except for that in this case it has to be done by the loaded program itself this is similar to the situation with self relocating drivers but with the program already loaded at the target location by the operating system s loader crash protected system files edit under dos some files by convention have file extensions which do not reflect their actual file type nb 4 for example country sys 30 is not a dos device driver nb 5 but a binary nls database file for use with the config sys country directive and the nlsfunc driver 30 the pc dos and dr dos system files ibmbio com and ibmdos com are special binary images loaded by bootstrap loaders not com style programs nb 5 trying to load country sys with a device statement or executing ibmbio com or ibmdos com at the command prompt will cause unpredictable results nb 4 nb 6 it is sometimes possible to avoid this by utilizing techniques similar to those described above for example dr dos 7 02 and higher incorporate a safety feature developed by matthias r paul 31 if these files are called inappropriately tiny embedded stubs will just display some file version information and exit gracefully 32 31 33 30 additionally the message is specifically crafted to follow certain magic patterns recognized by the external netware dr dos version file identification utility 30 31 nb 7 a similar protection feature was the 8080 instruction c7h rst 0 at the very start of jay sage s and joe wright s z system type 3 and type 4 z3env programs 34 35 as well as z3txt language overlay files 36 which would result in a warm boot instead of a crash under cp m 80 if loaded inappropriately 34 35 36 nb 2 in a distantly similar fashion many binary file formats by convention include a 1ah byte ascii z near the beginning of the file this control character will be interpreted as soft end of file eof marker when a file is opened in non binary mode and thus under many operating systems including the pdp 6 monitor 37 and rt 11 vms tops 10 38 cp m 39 40 dos 41 and windows 42 it prevents binary garbage from being displayed when a file is accidentally printed at the console linux edit fatelf universal binaries for linux edit fatelf logo fatelf 43 was a fat binary implementation for linux and other unix like operating systems technically a fatelf binary was a concatenation of elf binaries with some meta data indicating which binary to use on what architecture 44 additionally to the cpu architecture abstraction byte order word size cpu instruction set etc there is the advantage of binaries with support for multiple kernel abis and versions fatelf has several use cases according to developers 43 distributions no longer need to have separate downloads for various platforms separated lib lib32 and lib64 trees are not required anymore in os directory structure the correct binary and libraries are centrally chosen by the system instead of shell scripts if the elf abi changes someday legacy users can be still supported distribution of web browser plug ins that work out of the box with multiple platforms distribution of one application file that works across linux and bsd os variants without a platform compatibility layer on them one hard drive partition can be booted on different machines with different cpu architectures for development and experimentation same root file system different kernel and cpu architecture applications provided by network share or usb sticks will work on multiple systems this is also helpful for creating portable applications and also cloud computing images for heterogeneous systems 45 a proof of concept ubuntu 9 04 image is available 46 as of 2021 update fatelf has not been integrated into the mainline linux kernel citation needed 47 48 windows edit fatpack edit although the portable executable format used by windows does not allow assigning code to platforms it is still possible to make a loader program that dispatches based on architecture this is because desktop versions of windows on arm have support for 32 bit x86 emulation making it a useful universal machine code target fatpack is a loader that demonstrates the concept it includes a 32 bit x86 program that tries to run the executables packed into its resource sections one by one 49 similar concepts edit the following approaches are similar to fat binaries in that multiple versions of machine code of the same purpose are provided in the same file heterogeneous computing edit since 2007 some specialized compilers for heterogeneous platforms produce code files for parallel execution on multiple types of processors i e the chi c for heterogeneous integration compiler from the intel exochi exoskeleton sequencer development suite extends the openmp pragma concept for multithreading to produce fat binaries containing code sections for different instruction set architectures isas from which the runtime loader can dynamically initiate the parallel execution on multiple available cpu and gpu cores in a heterogeneous system environment 50 51 introduced in february 2007 nvidia s parallel computing platform cuda compute unified device architecture is a software to enable general purpose computing on gpus gpgpu its llvm based compiler nvcc can create elf based fat binaries containing so called ptx virtual assembly as text which the cuda runtime driver can later just in time compile into some sass streaming assembler binary executable code for the actually present target gpu the executables can also include so called cuda binaries aka cubin files containing dedicated executable code sections for one or more specific gpu architectures from which the cuda runtime can choose from at load time 52 53 54 55 56 57 fat binaries are also supported by gpgpu sim de a gpu simulator introduced in 2007 as well 58 59 multi2sim m2s an opencl heterogeneous system simulator framework originally only for either mips or x86 cpus but later extended to also support arm cpus and gpus like the amd ati evergreen southern islands as well as nvidia fermi kepler families 60 supports elf based fat binaries as well 61 60 fat objects edit gnu compiler collection gcc and llvm do not have a fat binary format but they do have fat object files for link time optimization lto since lto involves delaying the compilation to link time the object files must store the intermediate representation ir but on the other hand machine code may need to be stored too for speed or compatibility an lto object containing both ir and machine code is known as a fat object 62 function multi versioning edit even in a program or library intended for the same instruction set architecture a programmer may wish to make use of some newer instruction set extensions while keeping compatibility with an older cpu this can be achieved with function multi versioning fmv versions of the same function are ...
|