Slash Boxes

SoylentNews is people

posted by janrinok on Friday November 12 2021, @04:53PM   Printer-friendly
from the leopards-don't-change-their-spots dept.

Software analyst Geoff Chappell was the expert hired by Caldera to dig into the infamous AARD code. Recently he made a review of the discovery, publication, earlier work, personal work, and scale of effort involved in analyzing the AARD code, from a historical perpective. He doesn't adress the ethical or political repercussions of the code. However, being a principal in the analysis, he is able to set the record straight on some technical and legal facts.

The AARD code is from back when MS Windows was still just a graphical shell on top of a text-based disk operating system (DOS) and existed briefly as some XOR-encrypted, self-modifying, deliberately obfuscated machine code and using a variety of undocumented DOS structures and functions. The purpose of the code was to detect competing DOSes, specifically, the then popular DR-DOS, and throw up an unnecessary warning when detected.

Some programs and drivers in some pre-release builds of Windows 3.1 include code that tests for execution on MS-DOS and displays a disingenuous error message if Windows is run on some other type of DOS. The message tells of a "Non-fatal error" and advises the user to "contact Windows 3.1 beta support". Some programs in the released build include the code and the error message, and even execute the code, performing the same tests, but without acting on the result to display the error message.

The code in question has become known widely as the AARD code, named after initials that are found within. Although the AARD code dates from the start of the 1990s, it returned to controversy at the end of the 1990s due to its appearance in a suit at law between Caldera and Microsoft. Caldera was by then the owner, after Digital Research and Novell, of what had been DR DOS. It has ever since been treated as a smoking gun in analyses of anti-competitive practices by Microsoft.

It is not my intention here to comment on the rights or wrongs that I may or may not perceive in the AARD code's existence. However, I must declare a financial interest: in 1999 when this note was first published, I was engaged indirectly by Caldera to assist with their understanding of MS-DOS and Microsoft Windows for the suit just mentioned.

What I do intend here is to put on the public record a few points of history.

The AARD code, during its short tenure, was particularly effective in scaring the public away from DR-DOS.

Original Submission

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Informative) by DannyB on Friday November 12 2021, @07:09PM (10 children)

    by DannyB (5839) Subscriber Badge on Friday November 12 2021, @07:09PM (#1195723) Journal

    There were so many systems better then MSDOS and Windows;

    People now don't realize it, but that is exactly right. There were several superior systems available for the PC.

    sad that none of them took off and deposed MS

    There is a reason for that. [] I wrote that just earlier this morning. I'll repost some here:

    Bill Gates shrewdly asked and got IBM to agree to letting Microsoft rebrand PC DOS as MS DOS and sell it independently. I'm sure IBM couldn't see any possible harm in that. After all it is only IBM who makes the IBM PC. Apple, Tandy and other computer makers' computers won't be compatible with MS-DOS.

    Interesting thing though. The IBM PC was made out of off the shelf parts. Nothing custom. Easy to clone -- other than creating your own BIOS that just happens to have the same entry points for the same functions.

    Once PC clones were born. There was a market for MS-DOS.

    Now here is where Microsoft first turns evil. Hey, Mr PC Clone maker, if you want a license for MS-DOS, you have to pay for a copy of MS-DOS for EVERY computer you sell -- whether or not that computer comes with MS-DOS or not.

    What this did is make it impossible for other OSes (and there were some) to compete with MS-DOS. The customer still had to pay for MS-DOS even if they didn't want it and wanted a Brand X operating system.

    I had some thoughts about lasers, but they were incoherent.
    Starting Score:    1  point
    Moderation   +2  
       Informative=2, Total=2
    Extra 'Informative' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   4  
  • (Score: 0) by Anonymous Coward on Friday November 12 2021, @07:45PM (9 children)

    by Anonymous Coward on Friday November 12 2021, @07:45PM (#1195738)

    there were mac clones but apple squashed them?
    on topic: too young to care back then: joystick works? check! sound blaster works? check? himem and emm386 loaded all drivers above 640 kb leaving enough low mem for wing commander? check!

    my "luv" for m$ started to crumble when internet explorer became "unremovable" in win98se.
    using wine now and noticed i forgot windows stuff already "f#ck me! look at that registry thing!" lolz

    • (Score: 2) by bzipitidoo on Friday November 12 2021, @10:11PM (3 children)

      by bzipitidoo (4388) on Friday November 12 2021, @10:11PM (#1195760) Journal

      What killed it for me was not just MS's untrustworthy code and ways. It was the Borland C++ compiler. Had several really horrendous bugs. Like, if your program used more than 64K RAM, the Borland C++ executable would just reuse the same 64K segment! This bug persisted to at least version 4.5, and I think into 5.0. One option was to pay lots more money for MS Visual C++. Switched to gcc on Linux, and never looked back.

      • (Score: 2) by DannyB on Friday November 12 2021, @10:23PM

        by DannyB (5839) Subscriber Badge on Friday November 12 2021, @10:23PM (#1195766) Journal

        The one C++ compiler that was a disaster for me, on Power Mac, was the Symantec C++ compiler version 8. Prior to that it worked great. And I also had used THINK C and MetroWerks CodeWarrior.

        What really did it in for me (mid-late 90's) was that no two platforms C++ compiler implemented the same subsets of the language. Thus I couldn't expect to make some large subset of my code generic across both Mac and PC.

        Now I'm sure that situation changed over time. But by then I had moved on to (something else) and then to Java.

        I had some thoughts about lasers, but they were incoherent.
      • (Score: 0) by Anonymous Coward on Saturday November 13 2021, @03:20PM (1 child)

        by Anonymous Coward on Saturday November 13 2021, @03:20PM (#1195932)
        You should have bought the conpiler and the manuals, instead of purating it. You eere limited to 64k in tiny memory model (combines code and data into one segment) mode, 128k (separate code and data segments ) in small memory model, then you had compact, medium, large, and huge memory models.

        Reminds me of the time I was talking with the guys at Matrox, and they were complaining that Borland was optimizing away certain variables and replacing them with static values. This was actually a defect in the Microsoft compiler, which didn't have a "volitile" keyword for variables modified outside the programs control, such as an external clock or video hardware. So they wouldn't optimize out any variables that COULD be replaced by static values.

        That you thought the 64k limit was a compiler defect shows that you were incompetent. It was VERY easy to seitch memory model, especially in the IDE.

        • (Score: 3, Interesting) by bzipitidoo on Saturday November 13 2021, @10:40PM

          by bzipitidoo (4388) on Saturday November 13 2021, @10:40PM (#1195987) Journal

          You troll, but I'll respond anyway.

          I did buy it. Why did you assume otherwise? And I tried every one of those memory models, hoping to fix the problem. Not even "huge" avoided the flaw. Borland C++ is a toy compiler, okay for small school projects that stay well under 64K data. Even if your contention is correct that it was an intentional crippling to punish piracy, such treacherous design is stupidly risky. A false positive can too easily happen, and screw the paying customer. Sneakily injecting a flaw that could take much time to discover, rather than up-front telling the user of a licensing problem, is the height of treachery. Damned unfair to downstream users who had no part in any alleged piracy of the compiler by the developers. One has to wonder what else the compiler is doing? Maybe inserting back doors in the binary? Compilers must never abuse that trust. One reason it took me so long to figure out the problem is that I trusted the compiler, and thought that whatever was wrong was my mistake, in my code.

          One flaw in version 2 that was fixed by 4.5 was its inability to handle the =<< and =>> shift assignment operators. Version 2 would throw up a screen of x86 assembly showing either SHL AX,n or SHR AX,n respectively, and those instructions aren't supposed to have a immediate amount, it can be only a shift of 1, or the amount in CL. At least, that's the way it was in pre-64bit days, not sure now with the frequent extensions of the x86 instruction set. Easily worked around by using the slightly more verbose notation "y = x >> 1;" but not something to inspire confidence in the compiler.

    • (Score: 2) by DannyB on Friday November 12 2021, @10:20PM (4 children)

      by DannyB (5839) Subscriber Badge on Friday November 12 2021, @10:20PM (#1195765) Journal

      The only Mac cone was blessed by Apple.

      After much pressure, Apple finally decided to allow third parties to build Mac clones. One company bit. I can't remember for sure, but I think the name was Power Computing. (I can't swear to that.)

      We got one for testing. It worked. But it felt like a cheap PC clone. Not like a Mac. The software was the same. But the experience was not. Like a PC clone, you could be sure that the company had paid people to sharpen the edges of the metal inside the case so that you would cut your hand open if you dared open the case to insert a peripheral card into a slot. That was typical of PC clones. Why go to the expense of sharpening all of those metal edges? Or needing tools to open the case.

      With a Mac, you could safely open the case with your bare hands. No tools. Not even a screwdriver. The case was hinged. You flipped the top over exposing the inside. Everything was neatly arranged and accessible. As though someone had put actual thought into the user experience for someone adding or removing a card, or servicing a drive.

      I had some thoughts about lasers, but they were incoherent.
      • (Score: 0) by Anonymous Coward on Saturday November 13 2021, @12:23AM

        by Anonymous Coward on Saturday November 13 2021, @12:23AM (#1195799)

        The sharp edges are a result of the stamping method used to make the cases. IBM, Apple, and the better clone case makers either rolled the edges afterwards or ran a dremel over them to remove the burs, but that costs money so the cheap case makers never bothered. It wasn't until the metal got thin enough that severe injuries happened and lawsuits forced them to change around the late 90's to early 2k's.

      • (Score: 0) by Anonymous Coward on Saturday November 13 2021, @11:53AM (2 children)

        by Anonymous Coward on Saturday November 13 2021, @11:53AM (#1195901)

        haha, "open a mac". new generation reading this today are like: "what is "open a mac"?"

        • (Score: 2) by DECbot on Saturday November 13 2021, @03:18PM (1 child)

          by DECbot (832) on Saturday November 13 2021, @03:18PM (#1195931) Journal

          That's what Apple geniuses do at the tech bar when you crack your screen. It requires lasers, special tools, and UV ovens.

          cats~$ sudo chown -R us /home/base
          • (Score: 0) by Anonymous Coward on Saturday November 13 2021, @03:25PM

            by Anonymous Coward on Saturday November 13 2021, @03:25PM (#1195933)
            On the iPhone it requires a hair dryer and a few guitar picks. No genius there. And the glue is necessary for water resistance - gaskets would require thicker cases to distribute the pressure evenly along the gasket, fasteners, wtc.

            Not everyone wants a phone the size of an Otterbox in their pocket.