33:
205:, for example), are sufficiently similar. Hardware (besides the CPU, such as for graphics) and peripherals that an application accesses may also be a factor for full compatibility, although many hardware differences are hidden by modern APIs (often partly supplied by the OS itself and partly by specific
196:
usually implies object-code compatibility. This means that newer computer hardware and/or software has (practically) every feature of the old, plus additional capabilities or performance. Older executable code will thus run unchanged on the newer product. For a compiled program running directly on a
538:
Classic
Startup is a Mach-O application that runs Mac OS 9 within its address space. It provides a hardware abstraction layer between Mac OS 9 and Mac OS X by virtualizing traps, system calls, and interrupts. It runs in a protected memory environment, with multiple Mac OS 9 processes within it
381:, which is done to run software within the alternative OS in the case when the host OS is not compatible. Sometimes virtualization is provided with the host OS (or such software can be obtained), which effectively makes the host OS compatible with programs. For example,
278:
produced for another processor can be correctly executed and has (much) the same effect as on the other processor. This is quite common among many processor families, although it is rather uncommon among the ubiquitous small
349:
family of OSes using Wine for application compatibility and reimplementing the
Windows kernel for additional compatibility such as for drivers whereas Linux would use Linux drivers, not Windows drivers.
303:
Binary compatible operating systems are OSes that aim to implement binary compatibility with another OS, or another variant of the same brand. This means that they are ABI-compatible (for
238:
Most OSes provide binary compatibility, in each version of the OS, for most binaries built to run on earlier versions of the OS. For example, many executables compiled for
592:
201:(ABI) compatibility with another system. However, it also often implies that APIs that the application depends on, directly or indirectly (such as the
436:—but this did not make Mac OS X a binary compatible OS with Mac OS 9. Instead, the Classic environment was actually running Mac OS 9.1 in a
326:
is not compatible with
Windows. This does not mean that Linux cannot be binary compatible with Windows applications. Additional software,
97:
585:
50:
567: – a set of open-source tools for analysis of ABI and backward binary compatibility implementing KDE Techbase Policies
69:
17:
76:
578:
500:
83:
219:
Binary compatibility is a major benefit when developing computer programs that are to be run on multiple OSes. Several
65:
531:
182:
116:
754:
173:
For a compiled program on a general operating system, binary compatibility often implies that not only the CPUs (
759:
355:
54:
366:
by translating Linux system calls into BSD ones. This enables the application and libraries code that run on
601:
454:
308:
304:
198:
186:
174:
283:
built around such processors. Full machine code compatibility would here imply exactly the same layout of
554:
706:
90:
670:
480:
274:
For a digital processor implemented in hardware, binary compatibility means that (a large subset of)
159:
618:
316:
311:
running the OSes have to be the same or compatible. Otherwise, programs can be employed within a
558:
374:
167:
155:
43:
295:(sometimes on the border to a general computer, such as a mobile phone), this may be different.
675:
460:
449:
291:, counter/timers, external interfaces and so on. For a more complex embedded system using more
193:
410:
177:) of the two computers are binary compatible, but also that interfaces and behaviours of the
685:
335:
8:
650:
633:
433:
235:-derived ones, since most binary executables are not commonly distributed for such OSes.
728:
716:
623:
470:
414:
402:
733:
570:
527:
475:
465:
373:
Note that a binary compatible OS is different from running an alternative OS through
292:
288:
284:
711:
504:
390:
178:
163:
437:
382:
327:
280:
140:
721:
665:
638:
523:
189:(ABIs) corresponding to those APIs, are sufficiently equal, i.e. "compatible".
748:
655:
406:
339:
206:
129:
Ability of a computer system to run the same code as another computer system
645:
359:
323:
275:
247:
148:
564:
262:
ran on much newer versions of
Windows up to Windows 10 for as long as the
216:
of the software must be used to make non-binary-compatible programs work.
680:
660:
239:
202:
136:
197:
CPU under an OS, a "binary compatible operating system" primarily means
628:
398:
346:
251:
243:
144:
561:) for not breaking binary compatibility between releases of a library.
386:
343:
255:
170:
is necessary before the program can be run on the compatible system.
32:
429:
421:
378:
363:
312:
152:
425:
351:
331:
224:
213:
393:
version of
Windows 7 and enable old software to still work in a
394:
228:
367:
263:
232:
231:, offer binary compatibility with more popular OSes, such as
220:
417:
allow other OSes to be run on
Windows, Linux, and macOS.
259:
557:– a compendium of C++ development rules of thumb (with
600:
298:
57:. Unsourced material may be challenged and removed.
440:, running as a normal process inside of Mac OS X.
330:, is available that does that to some degree. The
746:
539:layered on top of a single Mac OS X BSD process.
307:). As the job of an OS is to run programs, the
586:
269:
158:(CPU), that another computer system can run.
593:
579:
358:family have binary compatibility with the
432:and earlier application software through
117:Learn how and when to remove this message
14:
747:
520:Mac OS X Internals: A Systems Approach
370:-based OSes to be run on BSD as well.
334:development effort seeks to create an
574:
517:
55:adding citations to reliable sources
26:
319:mechanism to make them compatible.
299:Binary compatible operating systems
143:, meaning that it can run the same
24:
342:OS that is binary compatible with
183:application programming interfaces
25:
771:
548:
162:, on the other hand, means that
31:
139:compatible) is a property of a
42:needs additional citations for
511:
501:"Mac OS X System Architecture"
493:
13:
1:
518:Singh, Amit (June 29, 2006).
486:
309:instruction set architectures
187:application binary interfaces
602:Application binary interface
455:Application binary interface
305:application binary interface
258:, and many applications for
199:application binary interface
7:
526:. Section 2.11.8: Classic.
443:
66:"Binary-code compatibility"
10:
776:
707:Foreign function interface
285:interrupt service routines
270:Binary compatible hardware
212:In other cases, a general
702:Binary-code compatibility
694:
671:Position-independent code
609:
481:Multi-architecture binary
354:and other members of the
160:Source-code compatibility
133:Binary-code compatibility
18:Binary code compatibility
397:virtual machine running
153:general-purpose computer
428:had the ability to run
156:central processing unit
755:Backward compatibility
503:. 2002. Archived from
461:Computer compatibility
450:Backward compatibility
389:allows users to run a
135:(binary compatible or
760:Computing terminology
555:KDE Techbase Policies
420:For another example,
411:Parallels Workstation
223:-based OSes, such as
686:Virtual method table
51:improve this article
651:Memory segmentation
317:dynamic translation
250:can also be run on
194:backward-compatible
624:Calling convention
565:ABI Analysis Tools
507:on August 2, 2002.
471:Plug compatibility
415:Windows Virtual PC
403:VMware Workstation
293:abstraction layers
289:hardware registers
742:
741:
734:Year 2038 problem
476:Video game remake
466:Bug compatibility
322:For example, the
127:
126:
119:
101:
16:(Redirected from
767:
712:Language binding
595:
588:
581:
572:
571:
542:
541:
515:
509:
508:
497:
281:embedded systems
185:(APIs), and the
179:operating system
175:instruction sets
122:
115:
111:
108:
102:
100:
59:
35:
27:
21:
775:
774:
770:
769:
768:
766:
765:
764:
745:
744:
743:
738:
690:
611:
605:
599:
551:
546:
545:
534:
516:
512:
499:
498:
494:
489:
446:
438:virtual machine
383:Windows XP Mode
301:
272:
266:was supported.
145:executable code
141:computer system
130:
123:
112:
106:
103:
60:
58:
48:
36:
23:
22:
15:
12:
11:
5:
773:
763:
762:
757:
740:
739:
737:
736:
731:
726:
725:
724:
714:
709:
704:
698:
696:
695:Related topics
692:
691:
689:
688:
683:
678:
673:
668:
666:Opaque pointer
663:
658:
653:
648:
643:
642:
641:
631:
626:
621:
615:
613:
607:
606:
598:
597:
590:
583:
575:
569:
568:
562:
550:
549:External links
547:
544:
543:
532:
524:Addison-Wesley
510:
491:
490:
488:
485:
484:
483:
478:
473:
468:
463:
458:
452:
445:
442:
375:virtualization
300:
297:
271:
268:
207:device drivers
168:interpretation
128:
125:
124:
39:
37:
30:
9:
6:
4:
3:
2:
772:
761:
758:
756:
753:
752:
750:
735:
732:
730:
727:
723:
720:
719:
718:
715:
713:
710:
708:
705:
703:
700:
699:
697:
693:
687:
684:
682:
679:
677:
674:
672:
669:
667:
664:
662:
659:
657:
656:Name mangling
654:
652:
649:
647:
644:
640:
637:
636:
635:
632:
630:
627:
625:
622:
620:
617:
616:
614:
608:
603:
596:
591:
589:
584:
582:
577:
576:
573:
566:
563:
560:
559:some examples
556:
553:
552:
540:
535:
533:0-321-27854-2
529:
525:
521:
514:
506:
502:
496:
492:
482:
479:
477:
474:
472:
469:
467:
464:
462:
459:
456:
453:
451:
448:
447:
441:
439:
435:
431:
427:
423:
418:
416:
412:
408:
407:VMware Fusion
404:
400:
396:
392:
388:
384:
380:
376:
371:
369:
365:
361:
357:
353:
348:
345:
341:
340:free software
337:
333:
329:
325:
320:
318:
314:
310:
306:
296:
294:
290:
287:, I/O-ports,
286:
282:
277:
267:
265:
261:
257:
253:
249:
245:
241:
236:
234:
230:
226:
222:
217:
215:
210:
208:
204:
200:
195:
190:
188:
184:
180:
176:
171:
169:
165:
164:recompilation
161:
157:
154:
150:
146:
142:
138:
134:
121:
118:
110:
107:November 2013
99:
96:
92:
89:
85:
82:
78:
75:
71:
68: –
67:
63:
62:Find sources:
56:
52:
46:
45:
40:This article
38:
34:
29:
28:
19:
701:
646:Machine code
537:
519:
513:
505:the original
495:
419:
372:
360:Linux kernel
324:Linux kernel
321:
315:or a faster
313:CPU emulator
302:
276:machine code
273:
248:Windows 2000
237:
218:
211:
192:A term like
191:
172:
149:machine code
147:, typically
132:
131:
113:
104:
94:
87:
80:
73:
61:
49:Please help
44:verification
41:
681:System call
661:Object code
612:conventions
344:Microsoft's
336:open-source
240:Windows 3.1
203:Windows API
137:object-code
749:Categories
676:Relocation
629:Call stack
487:References
399:Windows XP
347:Windows NT
252:Windows XP
244:Windows 95
77:newspapers
619:Alignment
387:Windows 7
379:emulation
256:Windows 7
181:(OS) and
444:See also
430:Mac OS 9
422:Mac OS X
364:usermode
722:dynamic
634:Library
434:Classic
426:PowerPC
424:on the
352:FreeBSD
332:ReactOS
225:FreeBSD
214:porting
91:scholar
729:Loader
717:Linker
639:static
610:Parts,
530:
413:, and
395:32-bit
391:64-bit
229:NetBSD
151:for a
93:
86:
79:
72:
64:
604:(ABI)
457:(ABI)
368:Linux
264:NTVDM
233:Linux
98:JSTOR
84:books
528:ISBN
385:for
328:Wine
221:Unix
70:news
377:or
362:in
356:BSD
260:DOS
254:or
246:or
227:or
209:).
166:or
53:by
751::
536:.
522:.
409:,
401:;
338:,
242:,
594:e
587:t
580:v
405:/
120:)
114:(
109:)
105:(
95:·
88:·
81:·
74:·
47:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.