HOME

TheInfoList



OR:

Computer hardware or software is said to be bug compatible if it exactly replicates even an undesirable feature of a previous version. The phrase is found in the
Jargon File The Jargon File is a glossary and usage dictionary of slang used by computer programmers. The original Jargon File was a collection of terms from technical cultures such as the MIT AI Lab, the Stanford AI Lab (SAIL) and others of the old ARPANET A ...
. An aspect of maintaining
backward compatibility Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially i ...
with an older system is that such systems' client programs often do not only depend on their specified interfaces but also bugs and unintended behaviour. That must also be preserved by the newer replacement. Besides the significantly higher complexity that needs to be maintained during the natural evolution of the code or interface, it can sometimes cause performance or security issues, and the inconsistencies in the behaviour of interfaces can sometimes lead to new bugs in the software using it, creating difficult to resolve multi-directional cross dependencies between various pieces of code.


Examples


DOS

Examples can be found in
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
/ PC DOS: When MS-DOS/PC DOS 3.1 and higher (including
Windows 9x Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subs ...
) and
OS/2 OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 ...
detect certain
FAT OEM label A FAT file system is a specific type of computer file system architecture and a family of industry-standard file systems utilizing it. The FAT file system is a legacy file system which is simple and robust. It offers good performance even in ...
s, they do not trust some
BIOS Parameter Block In computing, the BIOS parameter block, often shortened to BPB, is a data structure in the volume boot record (VBR) describing the physical layout of a data storage volume. On partitioned devices, such as hard disks, the BPB describes the volume ...
(BPB) values and recalculate them from other disk geometry parameters in order to work around several off-by-one calculation errors caused by some of their formatter software under earlier issues of these systems. While this undocumented behaviour allows them to cope with these incorrectly formatted volumes specifically, it limits the flexibility of disk geometries they can work with in general and can cause them to trash validly formatted volumes created by third-parties if they deviate from the defaults used by
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
and IBM. When MS-DOS/PC DOS 5.0 and higher are running on 286 or higher processors, the resident executable loader contains code specially designed to detect and fix certain widespread applications and stub loaders (such as programs linked with older versions of Microsoft's
EXEPACK Executable compression is any means of compressing an executable file and combining the compressed data with decompression code into a single executable. When this compressed executable is executed, the decompression code recreates the original ...
or Rational Systems' 386 DOS extenders) by patching the loaded program image before executing it. Under certain conditions an underlying DOS also patches Windows (
WINA20.386 WINA (1070 AM) is a news/talk/sports formatted broadcast radio station licensed to Charlottesville, Virginia, serving Charlottesville and Albemarle County, Virginia. WINA is owned and operated by the Charleston Radio Group subsidiary of Saga ...
). Over the course of development,
DR-DOS DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-D ...
also had to be modified to not only emulate many undocumented peculiarities and undesirable properties of MS-DOS and PC DOS (like having to use certain misleading filenames such as IBMBIO.COM,
IBMDOS.COM IBMDOS.COM is the filename of the DOS kernel. Loaded and initially invoked by the DOS BIOS in IBMBIO.COM during the boot process, it contains the hardware-independent parts of the operating system, including the embedded FAT12, FAT16 and ...
or COUNTRY.SYS for files which do not follow the specs for executables under DOS, or having to introduce a
directory path A path is a string of characters used to uniquely identify a location in a directory structure. It is composed by following the directory tree hierarchy in which components, separated by a delimiting character, represent each directory. The del ...
length-limited
Current Directory Structure In computing, the working directory of a process is a directory of a hierarchical file system, if any, dynamically associated with each process. It is sometimes called the current working directory (CWD), e.g. the BSD getcwd function, or just c ...
(CDS) internally), but also actual bugs in the kernel and several drivers, in order to make certain other drivers and applications run on DR-DOS, when they were tested on specific versions of MS-DOS only.


Windows

Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, which has traditionally emulated many old system bugs to allow older low-level programs to run, is another example. As a result,
Wine Wine is an alcoholic drink typically made from fermented grapes. Yeast consumes the sugar in the grapes and converts it to ethanol and carbon dioxide, releasing heat in the process. Different varieties of grapes and strains of yeasts are m ...
, which makes it possible to run many Windows applications on other platforms, also needs to maintain bug compatibility with Windows. When Microsoft phased out support for 16-bit code in Windows by no longer including
NTVDM Virtual DOS machines (VDM) refer to a technology that allows running 16-bit/32-bit DOS and 16-bit Windows programs when there is already another operating system running and controlling the hardware. Overview Virtual DOS machines can operate ei ...
in 64-bit editions of the operating system, the executable loader was modified to recognize some specific 16-bit stub launchers and installers and replace them on-the-fly with equivalent code stubs that run on 64-bit processors.


Other

During development of its
IBM PC compatible IBM PC compatible computers are similar to the original IBM PC, XT, and AT, all from computer giant IBM, that are able to use the same software and expansion cards. Such computers were referred to as PC clones, IBM clones or IBM PC clones. ...
,
Compaq Compaq Computer Corporation (sometimes abbreviated to CQ prior to a 2007 rebranding) was an American information technology company founded in 1982 that developed, sold, and supported computers and related products and services. Compaq produced ...
engineers found that ''
Microsoft Flight Simulator ''Microsoft Flight Simulator'' is a series of amateur flight simulator programs for Microsoft Windows operating systems, and earlier for MS-DOS and Classic Mac OS. It was an early product in the Microsoft application portfolio and differed sig ...
'' would not run because of what
subLOGIC Sublogic Corporation (stylized as subLOGIC) is an American software development company. It was formed in 1977 by Bruce Artwick, and incorporated in 1978 by Artwick's partner Stu Moment as Sublogic Communications Corporation. Sublogic is best kno ...
's
Bruce Artwick Bruce Arthur Artwick (born January 1, 1953) is an American software engineer. He is the creator of the first consumer flight simulator software. He founded Sublogic after graduating from the University of Illinois at Urbana–Champaign in 1977, ...
described as "a bug in one of
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
's chips", forcing them to make their computer bug-compatible with the IBM PC. Another hardware example is found in the design of the
IBM Personal Computer/AT The IBM Personal Computer/AT (model 5170, abbreviated as IBM AT or PC/AT) was released in 1984 as the fourth model in the IBM Personal Computer line, following the IBM PC/XT and its IBM Portable PC variant. It was designed around the Intel 8028 ...
A20 address line to emulate the behaviour in older processors.
Microsoft Excel Microsoft Excel is a spreadsheet developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro (comp ...
has always had a deliberate leap year bug, which falsely treats 29 February 1900 as an actual date, to ensure backward compatibility with
Lotus 1-2-3 Lotus 1-2-3 is a discontinued spreadsheet program from Lotus Software (later part of IBM). It was the first killer application of the IBM PC, was hugely popular in the 1980s, and significantly contributed to the success of IBM PC-compatibles i ...
. Hyrum Wright, an engineer at
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
, talks about this problem that he observed firsthand while working on C++ core libraries. It was
Titus Winters Titus Caesar Vespasianus ( ; 30 December 39 – 13 September 81 AD) was Roman emperor from 79 to 81. A member of the Flavian dynasty, Titus succeeded his father Vespasian upon his death. Before becoming emperor, Titus gained renown as a mili ...
, also an engineer at Google, who popularized this concept on a larger scale as " Hyrum's Law".


See also

*
AARD code The AARD code was a segment of code in a beta release of Microsoft Windows 3.1 that would determine whether Windows was running on MS-DOS or PC DOS, rather than a competing workalike such as DR-DOS, and would result in a cryptic error messag ...
*
Plug compatible Plug compatible refers to " hardware that is designed to perform exactly like another vendor's product." The term PCM was originally applied to manufacturers who made replacements for IBM peripherals. Later this term was used to refer to IBM-com ...
*
Software bug A software bug is an error, flaw or fault in the design, development, or operation of computer software that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and correcting bugs i ...
*
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...


Notes


References

{{reflist, refs= {{cite news , url=https://archive.org/stream/1985-01-computegazette/Compute_Gazette_Issue_19_1985_Jan#page/n33/mode/2up , title=Bruce Artwick / The Designer Behind Flight Simulator II , work=Compute!'s Gazette , date=January 1985 , access-date=2014-07-06 , author-last=Yakal , author-first=Kathy , page=32 {{cite web , url=http://www.jargon.net/jargonfile/b/bug-compatible.html , title=Bug-compatible - www.jargon.net , access-date=2010-02-03 {{cite book , author-first1=Andrew , author-last1=Schulman , author-first2=Ralf D. , author-last2=Brown , author-link2=Ralf D. Brown , author-first3=David , author-last3=Maxey , author-first4=Raymond J. , author-last4=Michels , author-first5=Jim , author-last5=Kyle , title=Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 , publisher=
Addison Wesley Addison-Wesley is an American publisher of textbooks and computer literature. It is an imprint of Pearson PLC, a global publishing and education company. In addition to publishing books, Addison-Wesley also distributes its technical titles through ...
, edition=2 , date=1994 , orig-year=November 1993 , isbn=0-201-63287-X , location=Reading, Massachusetts , url-access=registration , url=https://archive.org/details/undocumenteddosp00andr_0 (xviii+856+vi pages, 3.5"-floppy) Errata

https://web.archive.org/web/20190417212906/https://www.pcjs.org/pubs/pc/programming/Undocumented_DOS/#errata-2nd-edition]
{{cite web , title=Need DOS 6.22 (Not OEM) , author-first=Matthias R. , author-last=Paul , date=2002-02-20 , work=alt.msdos.programmer , url=https://groups.google.com/d/msg/alt.msdos.programmer/MAv9LuYQjs8/HuYCph4KsQYJ , access-date=2006-10-14 , url-status=live , archive-url=https://archive.today/20170909145248/https://groups.google.com/forum/%23!msg/alt.msdos.programmer/MAv9LuYQjs8/HuYCph4KsQYJ , archive-date=2017-09-09 {{cite web , title=Re: masm .com (PSP) related trouble , author-first=Matthias R. , author-last=Paul , date=2002-10-07 , work=alt.lang.asm , url=https://groups.google.com/d/msg/alt.lang.asm/PNOd9zfYow0/vXbab16j4XwJ , access-date=2017-09-03 , url-status=live , archive-url=https://archive.today/20170903231100/https://groups.google.com/forum/%23!msg/alt.lang.asm/PNOd9zfYow0/vXbab16j4XwJ , archive-date=2017-09-03 {{cite web , url=https://wiki.winehq.org/Wine_Features , title=WineFeatures - The Official Wine Wiki , access-date=2010-02-03 {{cite web , title=Treiber dynamisch nachladen (Intra-Segment-Offset-Relokation zum Laden von TSRs in die HMA) , trans-title=Loading drivers dynamically (Intra-segment offset relocation to load TSRs into the HMA) , author-first=Matthias R. , author-last=Paul , date=2002-02-02 , work=de.comp.os.msdos , language=German , url=https://groups.google.com/d/msg/de.comp.os.msdos/tdvpBoMVN6A/a_zqDxGk22IJ , access-date=2017-07-02 , url-status=live , archive-url=https://archive.today/20170909085006/https://groups.google.com/forum/%23!msg/de.comp.os.msdos/tdvpBoMVN6A/a_zqDxGk22IJ , archive-date=2017-09-09 (NB. Gives a comprehensive overview on the history and "nature" of the High Memory Area, HMA and the non-obvious design constraints to be observed when developing resident system extensions to be loaded into the HMA.) Excel incorrectly assumes that the year 1900 is a leap year
Retrieved 2019-05-01.
{{cite web , title=bug-for-bug compatible , url=http://www.catb.org/jargon/html/B/bug-for-bug-compatible.html , website=catb.org, quote=Same as bug-compatible, with the additional implication that much tedious effort went into ensuring that each (known) bug was replicated. {{cite journal , last1=Pontin , first1=Jason , title=Windows 95's third delay; needs polish , journal=InfoWorld , date=26 December 1994 , volume=16 , issue=52 , page=18 , url=https://books.google.com/books?id=gDgEAAAAMBAJ&pg=PA18 , publisher=InfoWorld Media Group, Inc. {{cite newsgroup , title=Fix for CauseWay DOS extender under DR-DOS 7.0x EMM386.EXE , author-first=Matthias R. , author-last=Paul , newsgroup=comp.os.msdos.programmer , date=2002-04-01 , url=https://groups.google.com/d/msg/comp.os.msdos.programmer/Bl1jt_NvtUw/ZfiqL0PhyZIJ , access-date=2018-09-19 , url-status=live , archive-url=https://archive.today/20180919133247/https://groups.google.com/forum/%23!msg/comp.os.msdos.programmer/Bl1jt_NvtUw/ZfiqL0PhyZIJ , archive-date=2018-09-19 {{cite web , title=Re: d-devOn GRAFTABL and DISPLAY.SYS (Was: Changing codepages in FreeDOS) , author-first=Matthias R. , author-last=Paul , date=2001-08-18 , work=freedos-dev , url=https://marc.info/?l=freedos-dev&m=99816495921290&w=2 , access-date=2017-09-04 , url-status=live , archive-url=https://archive.today/20170904165516/https://marc.info/?l=freedos-dev&m=99816495921290&w=2 , archive-date=2017-09-04 {{cite web , title=Application Installation on 64-bit Systems , publisher=
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, date=2018-05-31 , url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa384143(v=vs.85).aspx , access-date=2016-05-26 , url-status=live , archive-url=https://web.archive.org/web/20210722222436/https://docs.microsoft.com/en-us/windows/win32/winprog64/application-installation?redirectedfrom=MSDN , archive-date=2021-07-22
{{cite web , title=64-bit versions of Windows do not support 16-bit components, 16-bit processes, or 16-bit applications , publisher=
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, id=KB896458 , date=2020-09-08 , orig-date=2011-09-11 , version=2.0 , url=https://support.microsoft.com/en-us/kb/896458 , access-date=2016-05-26 , url-status=live , archive-url=https://web.archive.org/web/20210912195009/https://docs.microsoft.com/en-US/troubleshoot/windows-client/application-management/x64-windows-not-support-16-bit-programs , archive-date=2021-09-12
{{cite newsgroup , title=Cluster Size , author-first=Wally , author-last=Bass , date=1994-02-14 , newsgroup=comp.os.msdos.programmer , url=https://groups.google.com/d/msg/comp.os.msdos.programmer/ZGE7qkh4eI0/1vssg3Yt3nkJ , access-date=2006-10-14 , url-status=live , archive-url=https://archive.today/20170909144921/https://groups.google.com/forum/%23!msg/comp.os.msdos.programmer/ZGE7qkh4eI0/1vssg3Yt3nkJ , archive-date=2017-09-09 {{cite book , date=1992-01-12 , title=Programmer's Technical Reference for MSDOS and the IBM PC , author-first=Dave , author-last=Williams , id=DOSREF , isbn=1-878830-02-3 , url=http://www.o3one.org/hwdocs/bios_doc/dosref22.html , access-date=2012-01-08 (NB. The author mentions that DOS 4.0 checks the OEM label, but denies that DOS 3.2 checks it as well (although it does).) {{cite web , title=NOVOLTRK.REG , author-first=Matthias R. , author-last=Paul , date=2004-08-25 , work=www.drdos.org , url=http://www.ibiblio.org/pub/micro/pc-stuff/freedos/win9x/NOVOLTRK.ZIP , access-date=2011-12-17 , url-status=dead , archive-url=https://web.archive.org/web/20160304124755/http://www.ibiblio.org/pub/micro/pc-stuff/freedos/win9x/NOVOLTRK.ZIP , archive-date=2016-03-04}

/ref> {{cite web , title=DOS COUNTRY.SYS file format , type=COUNTRY.LST file , author-first=Matthias R. , author-last=Paul , date=2001-06-10 , edition=1.44 , orig-date=1995 , url=http://www.columbia.edu/~em36/wpdos/MatthiasPaulCPI.zip , access-date=2016-08-20 , url-status=live , archive-url=https://web.archive.org/web/20160420065252/http://www.columbia.edu/~em36/wpdos/MatthiasPaulCPI.zip , archive-date=2016-04-20 {{cite web , author-first=Matthias R. , author-last=Paul , title=Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT , url=http://www.uni-bonn.de/~uzs180/download/ibmbioa3.zip , date=1997-10-02 , access-date=2009-03-29 , url-status=dead , archive-url=https://web.archive.org/web/20031004074600/http://www-student.informatik.uni-bonn.de/~frinke/ibmbioa3.zip , archive-date=2003-10-04}

/ref> {{cite book , title=DR-DOS 7.03 WHATSNEW.TXT - Changes from DR-DOS 7.02 to DR-DOS 7.03 , publisher=
Caldera, Inc. Caldera was a US-based software company founded in 1994 to develop Linux- and DOS-based operating system products. Caldera Caldera, Inc. was a Canopy-funded software company founded in October 1994 and incorporated on 25 January 1995 by f ...
, ref={{harvid, Caldera, 1998 , date=1998-12-24 , url=http://www.lookas.net/ftp/incoming/darbui/Justas/DRDOS/WHATSNEW.TXT , access-date=2019-04-08 , url-status=dead , archive-url=https://web.archive.org/web/20190408142232/http://www.lookas.net/ftp/incoming/darbui/Justas/DRDOS/WHATSNEW.TXT , archive-date=2019-04-08
{{cite book , title=NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds , work=MPDOSTIP , author-first=Matthias R. , author-last=Paul , date=1997-07-30 , orig-year=1994-05-01 , edition=3 , version=Release 157 , language=de , url=http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm , access-date=2014-08-06 , url-status=live , archive-url=https://web.archive.org/web/20170910194752/http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm , archive-date=2017-09-10 (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.
A yet older version 155 from 1997-05-13 of the 1997-07-15 distribution archive. -->
/ref> {{cite book , title=NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7 , work=MPDOSTIP , chapter=Chapter 1.3.xi: Überlange Pfade , author-first=Matthias R. , author-last=Paul , date=1997-06-07 , orig-year=April 1994 , version=Release 85 , language=de , url=http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdos7un.htm , access-date=2016-11-07 , url-status=live , archive-url=https://web.archive.org/web/20161107122352/http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdos7un.htm , archive-date=2016-11-07 Software bugs Backward compatibility