DR-DOS

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Vanished user 3.1415926535897932384626433 (talk | contribs) at 07:55, 12 June 2010 (→‎PalmDOS: Sp). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(Enhanced) DR-DOS
File:DR-DOS-8.PNG
DeveloperOriginally by Digital Research, now developed by DRDOS, Inc. and The DR-DOS/OpenDOS Enhancement Project
OS familyDOS
Working stateCurrent
Source modelMixed; primarily closed source, some versions open source
Latest releaseDR-DOS 8.1, Enhanced DR-DOS 7.01.07 / Oct 2005, Mar 2005
Kernel typeMonolithic kernel
Default
user interface
CLI, GUI available separately
LicenseProprietary
Official websiteDRDOS, Inc. / The DR-DOS/OpenDOS Enhancement Project

DR-DOS (originally DR DOS up to including 6.0) is a DOS-type operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Digital Research's Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86.

History

Origins in CP/M

Digital Research's original CP/M for the 8-bit Intel 8080 and Z-80 based systems spawned numerous spin-off versions, most notably CP/M-86 for the Intel 8086/8088 family of processors. Although CP/M had dominated the market, and was shipped with the vast majority of non-proprietary-architecture personal computers, the IBM PC in 1981 brought the beginning of what was eventually to be a massive change.

IBM originally approached Digital Research, seeking an x86 version of CP/M. However, there were disagreements over the contract, and IBM withdrew. Instead, a deal was struck with Microsoft, who purchased another operating system, 86-DOS, from Seattle Computer Products. This became Microsoft MS-DOS and IBM PC DOS. 86-DOS' command structure and application programming interface imitated that of CP/M. Digital Research threatened legal action, claiming PC/MS-DOS to be too similar to CP/M. IBM settled by agreeing to sell their x86 version of CP/M, CP/M-86, alongside PC DOS. However, PC DOS sold for $60, while CP/M-86 had a $240 price tag. The proportion of PC buyers prepared to spend four times as much to buy CP/M-86 was very small, and the availability of compatible application software, at first decisively in Digital Research's favor, was only temporary.[1]

Digital Research fought a long losing battle to promote CP/M-86, and eventually decided that they could not beat the Microsoft-IBM lead in application software availability, so they modified CP/M-86 to allow it to run the same applications as MS-DOS and PC DOS. Initially, they sold DOS Plus, which ran applications for both platforms. It did not perform well, and Digital Research made another attempt, this time a fully DOS system. The new disk operating system was launched in 1988 as DR DOS.

Although DRI was based in Monterey, California, USA, all of the operating system work on Concurrent DOS, Multiuser DOS, DOS Plus, DR DOS and PalmDOS was done in DRI's European Development Center (EDC) in Hungerford, UK.

First DR DOS version

The first DR DOS version was released in May 1988. Version numbers were chosen to reflect features relative to MS-DOS; the first version promoted to the public was DR DOS 3.31, which offered features comparable to Compaq MS-DOS 3.31 with large disk support (FAT16B aka "BIGDOS"). DR DOS 3.31 reported itself as "PC DOS 3.31", the internal BDOS (Basic Disk Operating System) kernel version was reported as 6.0, single-user nature, reflecting its origin as derivative of Concurrent DOS 6.0 with the multitasking and multiuser stuff as well as CP/M API support stripped out and the XIOS replaced by an IBM-compatible DOS-BIOS. The system files were named DRBIOS.SYS (for the DOS-BIOS) and DRBDOS.SYS (for the BDOS kernel), the disk OEM label used was "DIGITAL".

Although DR DOS offered some extended command line tools with command line help, verbose error messages, sophisticated command line history and editing (HISTORY directive) as well as support for file and directory passwords built right into the kernel, DR DOS was cheaper to license than MS-DOS. Also, DR DOS was ROMable right from the start. As a result, DRI was approached by a number of PC manufacturers who were interested in a third-party DOS, and this prompted several updates to the system.

At this time, MS-DOS was only available to OEMs bundled with hardware. Consequently, DR DOS achieved some immediate success when it became possible for consumers to buy it through normal retail channels since 3.4x.

Known versions are DR DOS 3.31 (BDOS 6.0, 1988-06, OEM only), 3.32 (BDOS 6.0, 1988-08-17, OEM only), 3.33 (BDOS 6.0, 1988-09-01, OEM only), 3.34 (OEM only), 3.35 (BDOS 6.0, 1988-10-21, OEM only), 3.40, 3.41 (BDOS 6.3, 1989-06, OEM and retail), most of them existed in several flavors for different OEMs. While most OEMs just kept the DR DOS name designation, one OEM version is known to be called EZ-DOS 3.41.

Version 5.0

DR DOS version 5.0 (code-named "Leopard") was released in May 1990, still reporting itself as "PC DOS 3.31" for compatibility purposes, but internally indicating a single-user BDOS 6.4 kernel. (Version 4 was skipped to avoid being associated with the relatively unpopular MS-DOS 4.0.) This introduced ViewMAX, a GEM based GUI file management shell, and bundled disk-caching software, and also offers vastly improved memory management. For compatibility purposes, the DR DOS 5.0 system files were now named IBMBIO.COM (for the DOS-BIOS) and IBMDOS.COM (for the BDOS kernel), and the OEM label in boot sectors was changed to "IBM  3.3".

First, the DR DOS kernel and structures such as disk buffers can be located in the High Memory Area (HMA), the first 64KB of extended memory which are accessible in real mode due to an incomplete compatibility of the 80286 with earlier processors. This freed up the equivalent amount of critical "base" or conventional memory, the first 640KB of the PC's RAM – the area in which all MS-DOS applications run.

Additionally, on Intel 80386 machines, DR DOS's EMS memory manager allowed the OS to load DOS device drivers into upper memory blocks, further freeing base memory. For more information on this, see the article on the Upper Memory Area (UMA).

DR DOS 5.0 was the first DOS to integrate such functionality into the base OS (loading device drivers into upper memory blocks was possible using QEMM and MS-DOS). As such, on a 386 system, it could offer vastly more free conventional memory than any other DOS. Once drivers for a mouse, multimedia hardware and a network stack were loaded, an MS-DOS machine typically might only have 300 to 400KB of free conventional memory – too little to run most late-1980s software. DR DOS 5.0, with a small amount of manual tweaking, could load all this and still keep all of its conventional memory free – allowing for some necessary DOS data structures, as much as 620KB out of the 640KB.

Because DR DOS leaves so much conventional memory available, some programs fail to load as they start "impossibly" low in memory – inside the first 64KB (known as "low memory"). DR DOS 5.0's new MEMMAX -L command works around this by leaving a small empty space at the start of the memory map.

Competition from Microsoft

Faced with substantial competition in the DOS arena, Microsoft responded with an announcement of a yet-to-be released MS-DOS 5.0 in May 1990. This would be released in 1991 and include similar advanced features to those of DR DOS. It included matches of the DR's enhancements in memory management.

Almost immediately in May 1991, DR responded with DR DOS 6.0, code-named "Buxton". DR DOS 6.0, while already at BDOS level 6.7 internally, would still report itself as "PC DOS 3.31" to normal DOS applications for compatibility purposes. This bundled in SuperStor on-the-fly disk compression, to maximize available hard disk space, and file deletion tracking and undelete functionality.

DR DOS 6.0 also includes a task-switcher named TASKMAX, supporting the industry standard task-switching API to run multiple applications at the same time. In contrast to Digital Research's Multiuser DOS (successor of Concurrent DOS in the multi-user products line), which would run DOS applications in pre-emptively multitasked virtual DOS machines, the DR DOS 6.0 task switcher would freeze background applications until brought back into the foreground. While it runs on x86-machines, it is able to swap to XMS memory on 286+ machines. TASKMAX did support some Copy & Paste facility between applications. Via the task-switcher API graphical user interfaces such as ViewMax or PC/GEOS could register as task manager menu and thereby replace the TASKMAX text mode menu, so that users could switch between tasks from within a GUI.

Microsoft responded with MS-DOS 6.0, which again matched some features of DR DOS 6.0.

A pre-release version of Windows 3.1 was designed to return a non-fatal error message if it detected a non-Microsoft DOS. This check came to be known as the AARD code[2]. With the detection code disabled, Windows ran perfectly under DR DOS and its successor Novell DOS. The code was present but disabled in the released version of Windows 3.1[3]

Patching to counter Microsoft

It was a simple matter for Digital Research to patch DR DOS 6.0 to circumvent the AARD 'authenticity check' in Windows 3.1 beta by rearranging the order to two internal tables in memory (with no changes in functionality), and the patched version was on the streets within six weeks of the release of Windows 3.1. With improved marketing and packaging, very advanced memory management, disk compression and the Super PC-Kwik caching software, DR DOS 6.0 was an outstanding value and easily the most successful version. [citation needed]

PalmDOS

In 1992 Digital Research also embarked on a spin-off product code-named "Merlin" and later released as NetWare PalmDOS 1, which, as its name implies, was a very resource light DR DOS 6.0 derivative aimed at the emerging Palmtop/PDA market.

PalmDOS was the first operating system in the family to sport the new BDOS 7.0 kernel with native DOS compatible internal data structures instead of emulations thereof. Replacing the DOS emulation on top of a CP/M kernel by a true DOS compatible kernel helped a lot in improving compatibility with some applications using some of DOS' internal data structures and also was the key in reducing the resident size of the kernel code even further - a particular requirement for the PDA market. On the other hand, introducing a genuine Current Directory Structure (CDS) imposed a limit on the depth of working directories down to 66 characters (as in MS-DOS/PC DOS), whereas previous issues of DR DOS had no such limitation due to their internal organization of directories as relative links to parent directories instead of as absolute paths.

As well as a ROM-executing kernel, PalmDOS had palmtop-type support for features such as PCMCIA PC Cards, Power Management (BatteryMAX and the IDLE$ device driver with its patented dynamic idle detection by Roger Gross and John Constant), MINIMAX task switcher support for PIM (Personal Information Modules) applications stored and executed from ROM via XIP (Execute In-Place), etc.

The PCMCIA stack for PalmDOS was partially written by Ian Cullimore.

Contribution by Novell

Networking giant Novell bought Digital Research with a view to using DR's product line as a lever in their comprehensive strategy to break the Microsoft monopoly. (This was part of a massive and ultimately disastrous spending spree for Novell: they bought WordPerfect Corporation at about the same time, some of Borland's products, and invested heavily in Unix as well.) The planned DR DOS 7.0, internally named "Panther", intended to trump Microsoft's troubled MS-DOS 6.0, was repeatedly delayed, while Novell was working on an Unix-like multi-user security extension (compatible with its Multiuser DOS) and two new graphical user interfaces (ViewMAX/3, a derivative of GEM, and "StarTrek", a true port of Apple's MacOS 7.1 to run under the new DR DOS multitasker named "Vladivar").

When DR DOS eventually arrived, renamed Novell DOS 7, and without these three components, it was a disappointment to some. It was larger and introduced many new bugs, and the main functional addition was Novell's second attempt at a peer-to-peer networking system, Personal NetWare (PNW). This worked and was better than its predecessor, NetWare Lite, but it was incompatible with Microsoft's networking system, now growing popular with support in Windows for Workgroups, OS/2 and Windows NT. A considerable amount of manual configuration was needed to get both to co-exist on the same PC, and Personal NetWare never achieved much success.

Novell DOS 7 introduced much advanced memory management including new support for DPMI (DOS Protected Mode Interface) and DPMS (DOS Protected Mode Services) as well as more flexible loadhigh options. It also introduced support for "true" pre-emptive multitasking of multiple DOS applications in virtual DOS machines (VDM), similar to Multiuser DOS, but now on the basis of a natively DOS compatible environment, similar to Windows 386 Enhanced Mode without GUI. By default, the bundled TASKMGR would behave similar to the former DR DOS 6.0 TASKMAX. However, if EMM386 was loaded with the option /MULTI, EMM386 would load a natively 32-bit 386 Protected Mode operating system core providing API support for pre-emptive multitasking, multi-threading, hardware virtualization and domain management of virtual DOS machines. This API could be used by DR DOS-aware applications. If TASKMGR was run later on, it would use these APIs to instance the current 16-bit DOS system environment, create virtual DOS machines and run applications in them instead of using its own Real Mode task-switcher support. The multitasker was compatible with Windows, so that tasks started before launching Windows could be seen as tasks unter Windows as well.

After Novell

Novell DOS 7 required several bug-fix releases and was not completely stable when the next development occurred. Realising eventually that their formidable networking skills did not translate into other areas, Novell wound down further development on Novell DOS 7 in 1994 and stopped maintenance at the end of 1995 after more than 15 updates. When Caldera approached Novell looking for a DOS operating system to bundle with their OpenLinux distribution, Novell sold the product line off to Caldera in 1996, by which time it was of little commercial value.

Between the now-Caldera owned DR-DOS and competition from IBM's PC DOS 6.3, Microsoft moved to make it impossible to use or buy the subsequent Windows version, Windows 95, with any DOS product other than their own. Claimed by them to be a purely technical change, this was later to be the subject of a major lawsuit brought in Salt Lake City by Caldera.[4] Microsoft lawyers tried repeatedly to have the case thrown out but without success. Immediately after the completion of the pre-trial deposition stage (where the parties list the evidence they intend to present), there was an out-of-court settlement for an undisclosed sum.[5] This was revealed in November 2009 to be $280 million dollars.

In 1997, the US-based Caldera, Inc. opened a new subsidiary Caldera UK Ltd. in Andover, UK, nearby the former Digital Research and Novell EDC. Caldera UK hired some of the original developers of the operating system as well as some new talents to continue work on the operating system and besides other features subsequently add a TCP/IP stack, a graphical HTML 3.2 web-browser DR-WebSpyder with LAN and modem dialup, a Posix pthreads extension, long filename (LONGNAME) as well as LBA and FAT32 support (DRFAT32). They also worked on DR-DOS "WinGlue"/"WinBolt", versions of DR-DOS compatible with Windows 95, 98 and 98 SE, which remain unreleased up to the present, but played an important role in the court case.

Caldera UK released parts of the operating system as open source, under the name "Caldera OpenDOS". OpenDOS was released as version 7.01 and 7.02, and the source was then closed again. (Version 7.02 was called "Caldera OpenDOS 7.02" while in beta testing; by the time it was released in December 1997, it was branded "Caldera DR-OpenDOS 7.02". The next release came in March 1998; it was branded "Caldera DR-DOS 7.02") Another version was released, 7.03, before Caldera US closed the successful UK operation at the beginning of 1999 in the attempt to cut costs and move the development into the US (which never worked out due to total lack of expertise in this field at Caldera, Inc.) and transferred the DR-DOS line to a branch company, Caldera Thin Clients, which would later become Lineo. Lineo would later re-release 7.03, still branded as "Caldera DR-DOS"[6] The licence terms of this release were incompatible with most if not all existing open source licences. Later releases of DR-DOS remain closed source.

The last Lineo version was OEM DR-DOS 7.04/7.05, still branded as "Caldera DR-DOS".[7][8] This was an embedded system consisting only of the kernel and command shell. It was built for Seagate Technology's Seatools, with a buggy implementation of FAT32 and large hard disk support.[9]

Recent versions

In 2002, Lineo was bought out, and some of Lineo's former managers purchased the name and formed a new company, DeviceLogics. They have continued to sell DR-DOS for use in embedded systems. DR-DOS 8.0 was released on 30 March 2004 featuring FAT32 and large disk support, the ability to boot from ROM or Flash, multitasking and a DPMI memory manager. This version was based on the kernel from version 7.03.[10] The company then split into Devicelogics Inc. and DRDOS Inc, which released DR-DOS 8.1 (with better FAT32 support) in autumn 2005. This version was not based upon version 8.0, but was a complete rewrite. Both 8.0 and 8.1 have now been pulled (because of the discoveries outlined below), and replaced with Caldera DR-DOS 7.03.

Aside from selling copies of the operating system, the DR DOS Inc. website lists a buyout option for DR-DOS; the asking price is $25,000.[11]

The OpenDOS 7.01 source code is still actively being developed by The DR-DOS/OpenDOS Enhancement Project, founded in July 2002 in an attempt to bring the functionality of DR-DOS up to parity with modern PC operating systems. The project's efforts have resulted so far in adding native support for large disks (LBA) and the FAT32 filesystem. There were also several other enhancements, including improved memory management and support for the new FAT+ filesystem extension which allows files of almost 256 GB in size on normal FAT partitions. The project remains in active development as of August 2009.

Controversies

In October 2005, it was discovered that DR-DOS 8.1 included several utilities from FreeDOS and other sources and that the kernel was an outdated version of the Enhanced DR-DOS kernel. DR DOS Inc. failed to comply with the GNU General Public License (GPL) by not crediting the FreeDOS utilities to their authors and including the source code.[10] After complaints from FreeDOS developers (including the suggestion to provide the source code, and hence comply with the GPL), DR DOS Inc. instead pulled all 8.x versions (including the unaffected DR-DOS 8.0) from their website.

See also

Notes

References

  • Digital Research Inc., (1990). "DR DOS 5.0 Retail box with lid". . :Digital Research Inc. Part Number 1176-6114-001
  • Digital Research Inc., (May 1990). "DR DOS 5.0 User Guide". 1st Edition. :Digital Research Inc. (501 pages) Part Number 1176-2004-002
  • Digital Research Inc., (May 1990). "ViewMAX User Guide". 1st Edition. :Digital Research Inc. (88 pages) Part Number: 1174-2004-002
  • Digital Research Inc., (August 1990). "DR DOS 5.0 Release Notes". Digital Research Inc. (11 pages) Part Number: 1176-1001-002
  • Digital Research Inc., (August 1991). "DR DOS 6.0 Software performance report". Digital Research Inc. (A5 – 1 fold) Part No. 000-1200-00
  • Digital Research Inc., (August 1991). "DR DOS 6.0 User Guide". 2nd edition. Digital Research Inc. (698 pages) Part Number. 1182-2004-002
  • Digital Research Inc., (August 1991). "ViewMAX User Guide". 2nd edition. Digital Research Inc. (106 pages) Part Number. 1192-2054-002

External links