Английская Википедия:AARD code

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description Шаблон:Use dmy dates

Файл:Windows 3.10.068 setup AARD code.png
An example of the error messages the AARD would produce.

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

Шаблон:Reflist

Further reading

  1. 1,0 1,1 Ошибка цитирования Неверный тег <ref>; для сносок Reynolds_1991 не указан текст
  2. Ошибка цитирования Неверный тег <ref>; для сносок Chappell_1999_AARD-1 не указан текст
  3. Ошибка цитирования Неверный тег <ref>; для сносок Chappell_1999_AARD-2 не указан текст
  4. Ошибка цитирования Неверный тег <ref>; для сносок Schulman_1993_AARD не указан текст
  5. 5,0 5,1 Ошибка цитирования Неверный тег <ref>; для сносок Schulman_1994_Undocumented-DOS не указан текст
  6. Ошибка цитирования Неверный тег <ref>; для сносок Egbert_1998 не указан текст
  7. Ошибка цитирования Неверный тег <ref>; для сносок Legacy_2008_Reynolds не указан текст
  8. Ошибка цитирования Неверный тег <ref>; для сносок Dellert_1998 не указан текст
  9. Ошибка цитирования Неверный тег <ref>; для сносок Pournelle_2000_Monopoly не указан текст
  10. Ошибка цитирования Неверный тег <ref>; для сносок CW_1992 не указан текст
  11. Ошибка цитирования Неверный тег <ref>; для сносок Paul_2000_History не указан текст
  12. 12,0 12,1 12,2 12,3 12,4 Ошибка цитирования Неверный тег <ref>; для сносок Caldera_1999_Statement_of_facts не указан текст
  13. Ошибка цитирования Неверный тег <ref>; для сносок Lea_1999_Register не указан текст
  14. Ошибка цитирования Неверный тег <ref>; для сносок Bridis_1988 не указан текст
  15. 15,0 15,1 15,2 15,3 Ошибка цитирования Неверный тег <ref>; для сносок cnet не указан текст
  16. Ошибка цитирования Неверный тег <ref>; для сносок Allchin_1993 не указан текст
  17. Ошибка цитирования Неверный тег <ref>; для сносок Caldera_Fullstory_Tech не указан текст
  18. Ошибка цитирования Неверный тег <ref>; для сносок Caldera_1999_FactRel не указан текст
  19. Ошибка цитирования Неверный тег <ref>; для сносок TLJ не указан текст
  20. Ошибка цитирования Неверный тег <ref>; для сносок Lea_2000_Settlement не указан текст
  21. 21,0 21,1 Ошибка цитирования Неверный тег <ref>; для сносок Caldera_Microsoft_2000_Settlement не указан текст
  22. 22,0 22,1 Ошибка цитирования Неверный тег <ref>; для сносок Microsoft_2009_Memorandum не указан текст
  23. Ошибка цитирования Неверный тег <ref>; для сносок Wilcox_2000 не указан текст
  24. Ошибка цитирования Неверный тег <ref>; для сносок Groklaw_2009_NovellWP не указан текст
  25. Ошибка цитирования Неверный тег <ref>; для сносок Gomes_2000_Settlement не указан текст