In DOS memory management, the upper memory area (UMA) refers to memory between the addresses of 640 KB and 1024 KB (0xA0000–0xFFFFF) in an IBM PC or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU's 1024 KB address space for ROM, RAM on peripherals, and memory-mapped input/output. For example, the monochrome video memory area runs from 704 to 736 KB (0xB0000–B7FFF).
However, even with video RAM, the ROM BIOS and I/O ports for expansion cards, much of this 384 KB of address space was unused. As the 640 KB memory restriction became ever more of an obstacle, techniques were found to fill the empty areas with RAM. These areas were referred to as upper memory blocks (UMBs).
In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer.
In real mode, the segmentation architecture of the Intel 80286
and subsequent processors identifies memory locations with a 16-bit
segment and a 16-bit offset, which is resolved into a physical address
via (segment) x 16 + (offset). Although intended to address only 1 Megabyte (MB) (220 bytes) of memory, segment:offset addresses at FFFF:0010
and beyond reference memory beyond 1 MB (FFFF0 + 0010 = 100000
).
So this mode can actually address the first 65520 bytes of extended
memory as part of the 64 KB range starting 16 bytes before the 1 MB
mark—FFFF:0000 (0xFFFF0)
to FFFF:FFFF (0x10FFEF)
. The Intel 8086 and Intel 8088 processors, with only 1 MB of memory and only 20 address lines, wrapped around at the 20th bit, so that address FFFF:0010
was equivalent to 0000:0000
.[1]
(Does this make sense? I'll explain later)
To allow running existing DOS programs which relied on this feature to access low memory on their newer IBM PC AT computers, IBM added special circuitry on the motherboard to simulate the wrapping around. This circuit was a simple logic gate which could disconnect the microprocessor's 21st addressing line, A20, from the rest of the motherboard. This gate could be controlled, initially through the keyboard controller, to allow running programs which wanted to access the entire RAM.[1]
- Low memory (the first 64 KB of memory)
- Extended memory (XMS)
- Expanded memory (EMS)
- Unreal mode
The Microsoft Java Virtual Machine (MSJVM) is a discontinued proprietary Java virtual machine from Microsoft. It was first made available for Internet Explorer 3 so that users could run Java applets when browsing on the World Wide Web. It was the fastest Windows-based implementation of a Java virtual machine for the first two years after its release.[1] Sun Microsystems, the creator of Java, sued Microsoft in October 1997 for incompletely implementing the Java 1.1 standard.[2] It was also named in the United States v. Microsoft Corp antitrust civil actions, as an implementation of Microsoft's "Embrace, extend and extinguish" strategy. In 2001, Microsoft settled the lawsuit with Sun and discontinued its Java implementation.
https://en.wikipedia.org/wiki/Java_virtual_machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages and compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required of a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.
The JVM reference implementation is developed by the OpenJDK project as open source code and includes a JIT compiler called HotSpot. The commercially supported Java releases available from Oracle Corporation are based on the OpenJDK runtime.
The United States v. Microsoft Corp antitrust civil actions
The U.S. government's interest in Microsoft began in 1992 with an inquiry by the Federal Trade Commission over whether Microsoft was abusing its monopoly on the PC operating system market. The commissioners deadlocked with a 2–2 vote in 1993 and closed the investigation, but the Department of Justice led by Janet Reno opened its own investigation on August 21 of that year, resulting in a settlement on July 15, 1994 in which Microsoft consented not to tie other Microsoft products to the sale of Windows but remained free to integrate additional features into the operating system. In the years that followed, Microsoft insisted that Internet Explorer (which, in addition to OEM versions of Windows 95, appeared in the Plus! Pack sold separately[3][4]) was not a product but a feature which it was allowed to add to Windows, although the DOJ did not agree with this definition.
Antitrust trial
Microsoft's proprietary extensions to Java were used as evidence in the United States v. Microsoft Corp. antitrust civil actions.
A Memorandum of the United States in Support of Motion for Preliminary Injunction in the case of United States of America vs. Microsoft claimed that Microsoft wanted to kill Java in the marketplace.
In short, Microsoft feared and sought to impede the development of network effects that cross-platform technology like Netscape Navigator and Java might enjoy and use to challenge Microsoft's monopoly. Another internal Microsoft document indicates that the plan was not simply to blunt Java/browser cross-platform momentum, but to destroy the cross-platform threat entirely, with the "Strategic Objective" described as to "Kill cross-platform Java by grow[ing] the polluted Java market."[3]
IBM PC DOS (an acronym for IBM personal computer disk operating system) is a discontinued operating system for the IBM Personal Computer, manufactured and sold by IBM from the early 1980s into the 2000s. Before version 6.1, PC DOS was an IBM-branded version of MS-DOS. From version 6.1 on, PC DOS became IBM's independent product.
The IBM task force assembled to develop the PC decided that critical components of the machine, including the operating system, would come from outside vendors. This radical break from company tradition of in-house development was one of the key decisions that made the IBM PC an industry standard. At that time the private company Microsoft, founded five years earlier by Bill Gates, was eventually selected for the operating system.
IBM wanted Microsoft to retain ownership of whatever software it developed, and wanted nothing to do with helping Microsoft, other than making suggestions from afar. According to task force member Jack Sams
The reasons were internal. We had a terrible problem being sued by people claiming we had stolen their stuff. It could be horribly expensive for us to have our programmers look at code that belonged to someone else because they would then come back and say we stole it and made all this money. We had lost a series of suits on this, and so we didn't want to have a product which was clearly someone else's product worked on by IBM people. We went to Microsoft on the proposition that we wanted this to be their product.[1][citation needed][page needed]
IBM first contacted Microsoft to look the company over in July 1980. Negotiations continued over the months that followed, and the paperwork was officially signed in early November.[2][page needed]
Although IBM expected that most customers would use PC DOS,[3] the IBM PC also supported CP/M-86, which became available six months after PC DOS,[4] and UCSD p-System operating systems.[5] IBM's expectation proved correct: one survey found that 96.3% of PCs were ordered with the $40 PC-DOS compared to 3.4% with the $240 CP/M-86.[6]
Microsoft first licensed,[7] then purchased[8] 86-DOS from Seattle Computer Products (SCP), which was modified for the IBM PC by Microsoft employee Bob O'Rear with assistance from SCP (later Microsoft) employee Tim Paterson.[9] O'Rear got 86-DOS to run on the prototype PC in February 1981. 86-DOS had to be converted from 8-inch to 5.25-inch floppy disks and integrated with the BIOS, which Microsoft was helping IBM to write.[10] IBM had more people writing requirements for the computer than Microsoft had writing code. O'Rear often felt overwhelmed by the number of people he had to deal with at the ESD (Entry Systems Division) facility in Boca Raton, Florida.
Perhaps the first public mention of the operating system was in July 1981, when Byte discussed rumors of a forthcoming personal computer with "a CP/M-like DOS ... to be called, simply, 'IBM Personal Computer DOS.'"[11] 86-DOS was rebranded IBM PC DOS 1.0 for its August 1981 release with the IBM PC. The initial version of DOS was largely based on CP/M-80 1.x and most of its architecture, function calls and file-naming conventions were copied directly from the older OS. The most significant difference was the fact that it introduced a different file system, FAT12. Unlike all later DOS versions, the DATE and TIME commands were separate executables rather than part of COMMAND.COM. Single-sided 160 kilobyte (kB) 5.25" floppies were the only disk format supported.
In late 1981 Paterson, now at Microsoft, began writing PC DOS 1.10. It debuted in May 1982 along with the Revision B IBM PC. Support for the new double-sided drives was added, allowing 320 kB per disk. A number of bugs were fixed, and error messages and prompts were made less cryptic. The DEBUG utility was now able to load files greater than 64k in size.
Phillip Walter Katz (November 3, 1962 – April 14, 2000) was a computer programmer best known as the co-creator of the Zip file format for data compression, and the author of PKZIP, a program for creating zip files that ran under DOS. A copyright lawsuit between System Enhancement Associates (SEA) and Katz's company, PKWARE, Inc., was widely publicized in the BBS community in the late 1980s. Phil Katz's software business was very successful, but he struggled with social isolation and chronic alcoholism in the last years of his life.
PKARC and PKWARE
Katz left Allen-Bradley in 1986 to work for Graysoft, a Milwaukee-based software company. At the time, he had worked on an alternative to Thom Henderson's ARC, named PKARC. ARC was written in C, with the source code available on System Enhancement Associates' bulletin board system (BBS). PKARC, written partially in assembly language, was much faster. Katz had a special flair for optimizing code. Besides writing critical code in assembly language, he would write C code to perform the same task in several different ways and then examine the compiler output to see which produced the most efficient assembly code. He first publicly released only PKXARC, an extraction program, as freeware. Its much greater speed caused it to spread very quickly throughout the BBS community. Strong positive feedback and encouragement prompted Katz to release his compression program, PKARC, and eventually to make his software shareware. Katz founded PKWARE, Inc. (Phil Katz Software) in 1986, with the company's operations located in his home in Glendale, Wisconsin,[2] but he remained at Graysoft until 1987.Lawsuits
In the late 1980s, a dispute arose between System Enhancement Associates (SEA), maker of the ARC program, and PKWARE. SEA sued Katz for trademark and copyright infringement. The most substantial evidence at trial was from an independent software expert, John Navas, who was appointed by the court to compare the two programs. He stated that PKARC was a derivative work of ARC, pointing out that comments in both programs were often identical, including spelling errors.[3]
On August 2, 1988, the plaintiff and defendants announced a settlement of the lawsuit, which included a confidential cross-license agreement. Under the agreement, SEA licensed PKWARE for all the ARC-compatible programs published by PKWARE during the period beginning with the first release of PKXARC in late 1985 through July 31, 1988, in return for an undisclosed payment. PKWARE agreed to pay SEA to obtain a license that allowed the distribution of PKWARE's ARC-compatible programs until January 31, 1989, after which PKWARE would not license, publish or distribute any ARC compatible programs or utilities that process ARC compatible files. In exchange, PKWARE licensed SEA to use its source code for PKWARE's ARC-compatible programs. PKWARE also agreed to cease any use of SEA's trademark "ARC" and to change the names or marks used with PKWARE's programs to non-confusing designations. The remaining details of the agreement were sealed. In reaching the settlement, the defendants did not admit any fault or wrongdoing.[4] The Wisconsin court order showed the defendants were ordered to pay damages to the plaintiff for the defendants' acts. Namely, the defendants were found to be infringing the plaintiff's copyrights, infringing trademark, as well as performing acts of unfair trade practices and unfair competition.[5]As you can see, Segment F000: is embedded inside this instruction, thus the reason its location is often referenced as F000:FFF0. Although the location of this far jump instruction is essentially 'set in stone' for all PC BIOS, it's not a requirement that where it jumps to next always be the same; yet every PC BIOS we've ever examined always jumps to "F000:E05B".
Of the twelve IBM engineers assigned to create the IBM Personal Computer (model 5150), David J. Bradley[7] developed the code for its BIOS. So he's the one who, among all its other details, decided where in Memory the BIOS would place and execute the code from the first sector of the IBM PC's first floppy diskette's Boot Record. The location he chose was 0x7C00 (or 0000:7C00 in Segment:Offset notation). Unlike the first 'jump address' mentioned above (to Offset 0xE05B), later BIOS authors could not have chosen a different location in Memory for loading the initial bootstrap routines without having their code become incompatible with existing boot diskettes! So IBM (and all the PC-clone companies which followed) continued to use that same location in Memory for their hard disk drive's Master Boot Records (MBRs).