Английская Википедия:AARD code
Шаблон:Short description Шаблон:Use dmy dates
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 message in the latter case. This XOR-encrypted, self-modifying, and deliberately obfuscated machine code used a variety of undocumented DOS structures and functions to perform its work. The code was present in the installer, in WIN.COM, and in several other executables in the operating system.[1]
Discovery
The AARD code was originally discovered by Geoff Chappell on 17 April 1992 and then further analyzed and documented in a joint effort with Andrew Schulman.[2][3][4][5][6] The name was derived from Microsoft programmer Aaron R. Reynolds (1955–2008),[7] who used "AARD" to sign his work; "AARD" was found in the machine code of the installer.[8][9] Microsoft disabled the AARD code for the final release of Windows 3.1, but did not remove it, so that it could have become reactivated later by the change of a single byte in an installed system.[5]
DR-DOS publisher Digital Research released a patch named "business update" in 1992 to enable the AARD tests to pass on its operating system.[10][11][12]
Memos
The rationale for the AARD code came to light when internal memos were released during the United States v. Microsoft Corp. antitrust case in 1999. Internal memos released by Microsoft revealed that the specific focus of these tests was DR-DOS.[1][13][14] At one point, Microsoft CEO Bill Gates sent a memo to a number of employees, reading "You never sent me a response on the question of what things an app would do that would make it run with MS-DOS and not run with DR-DOS. Is there Шаблон:Sic feature they have that might get in our way?"[12][15] Microsoft Senior Vice President Brad Silverberg later sent another memo, stating: "What the [user] is supposed to do is feel uncomfortable, and when he has bugs, suspect that the problem is DR-DOS and then go out to buy MS-DOS."[12][15]
Following the purchase of DR-DOS by Novell and its renaming to "Novell DOS", Microsoft Co-President Jim Allchin stated in a memo, "If you're going to kill someone there isn't much reason to get all worked up about it and angry. Any discussions beforehand are a waste of time. We need to smile at Novell while we pull the trigger."[16][12][15]
Lawsuit and settlement
Novell DOS changed hands again. The new owner, Caldera, Inc., began a lawsuit against Microsoft over the AARD code, Caldera v. Microsoft,[12][17][18][19] which was later settled.[15][20][21][22] It was originally believed that the settlement was around $150 million,[23] but in November 2009 the Settlement Agreement was released, and the total was revealed to be $280 million.[24][21][22][25]
See also
References
Further reading
- Шаблон:Cite web
- Шаблон:Cite web
- Шаблон:Cite web (Details and initial discovery)
- Шаблон:Cite journal (Caldera v. Microsoft details)
- Шаблон:Cite web (Site with email excerpts from Microsoft and an example of tripping the AARD code (XMS error))
- ↑ 1,0 1,1 Ошибка цитирования Неверный тег
<ref>
; для сносокReynolds_1991
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокChappell_1999_AARD-1
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокChappell_1999_AARD-2
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокSchulman_1993_AARD
не указан текст - ↑ 5,0 5,1 Ошибка цитирования Неверный тег
<ref>
; для сносокSchulman_1994_Undocumented-DOS
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокEgbert_1998
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокLegacy_2008_Reynolds
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокDellert_1998
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPournelle_2000_Monopoly
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокCW_1992
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокPaul_2000_History
не указан текст - ↑ 12,0 12,1 12,2 12,3 12,4 Ошибка цитирования Неверный тег
<ref>
; для сносокCaldera_1999_Statement_of_facts
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокLea_1999_Register
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокBridis_1988
не указан текст - ↑ 15,0 15,1 15,2 15,3 Ошибка цитирования Неверный тег
<ref>
; для сносокcnet
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокAllchin_1993
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокCaldera_Fullstory_Tech
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокCaldera_1999_FactRel
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокTLJ
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокLea_2000_Settlement
не указан текст - ↑ 21,0 21,1 Ошибка цитирования Неверный тег
<ref>
; для сносокCaldera_Microsoft_2000_Settlement
не указан текст - ↑ 22,0 22,1 Ошибка цитирования Неверный тег
<ref>
; для сносокMicrosoft_2009_Memorandum
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокWilcox_2000
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGroklaw_2009_NovellWP
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокGomes_2000_Settlement
не указан текст