I've never used NetWare 5.x 6.x but if I remember correctly versions 3 and 4 required you to boot to DOS partition and then load NetWare server files from it. I could never understand the logic behind it. Why wouldn't NetWare just boot into its own partition and load the necessary server files from it?
-
3Would there really be any significant benefit to doing so? Making your own OS, even as simple as DOS, is a lot of effort. Just having a boot loader isn't enough, and isn't trivial either (keep in mind you only have 446 bytes to load and execute the disk drivers and anything else you need to do an actual boot). Each PC had its own quirks you had to deal with in the tiny amount of code you had available. Using DOS (or OS/2) meant they got a compatibility layer for free.– LuaanJul 3, 2019 at 8:05
-
1(and "for free" is literal - don't forget that DOS was included with pretty much any PC you bought; it wasn't until MS-DOS 5.0 that you actually bought DOS)– LuaanJul 3, 2019 at 8:17
-
@Luaan NetWare was its own operating system.– user722Jul 3, 2019 at 17:14
-
@RossRidge Yes, it was. But it was still an OS that was started by running a DOS executable. Mind, I'm sure they could have find the extra few weeks (or months, as they flesh out the kinks among various PC-compatibles) to replace DOS entirely; my point is that it would be a pointless waste of time, and they had better ways to spend their time.– LuaanJul 4, 2019 at 6:58
2 Answers
In order to load files from the SYS volume NetWare needs to have a device driver for the kind of disk your SYS volume lives on. Considering that you might put your SYS volume on an MFM drive, or RLL, or ESDI, or SCSI, or IDE, or any of a variety of different RAID controllers, we are talking about a lot of different devices your bootloader needs to be able to handle.
Being able to load the device driver from a DOS partition simplified things quite a bit. While none of the NetWare servers in my care were ever configured to do so, I suppose you could theoretically boot from a floppy containing server.exe and your disk device driver so that 100% of your hard disk capacity could be dedicated to NetWare volumes.
On top of the driver issue, NetWare supported large volume sizes (larger than your system BIOS might support). Booting from DOS avoided the need to be careful to place your SYS volume within the first 504 MB of the first physical drive (or whatever your particular BIOS limitations were). Instead you just had to create a small DOS partition somewhere your BIOS could boot from, and you were then free to put your SYS volume anywhere else you liked, and make it any size you like, even placing it somewhere your BIOS didn't support booting from.
-
The BIOS supports MFM. RLL and IDE drives natively. Pretty much all ESDI, SCSI, and RAID controllers had BIOS extension ROMs so they could boot MS-DOS or any other operating system. The bootloaders for MS-DOS, Xenix, OS/2, Linux, etc... didn't need support a lot of different devices, they just used the BIOS.– user722Jul 3, 2019 at 17:11
-
@RossRidge Yes, but you had to deal with the drive's logical structure, which widely varied between hard drives, not to mention floppies. I'm not sure if NetWare provided their own disk drivers for the post-bootloader system, but it would make sense to use ones already made for DOS if possible, saving quite a bit of effort (mainly ensuring compatibility). It's also handy that if something fails, you can boot into DOS and use some diagnostic tools etc. - programming "direct to the metal" has many disadvantages (I've made my own toy OS, so I had lots of fun with that - before VMs).– LuaanJul 4, 2019 at 7:02
From Network World:
NetWare never ran on top of DOS. A server was booted to DOS solely to run the NetWare boot loader (a DOS program). It didn't need to do that, it could have booted directly but that would have required Novell to build its own BIOS loader to initialize all of the hardware. The NetWare designers felt that there was no need to reinvent the wheel, so let DOS handle that.
Novell was not the only operating system vendor to use MS-DOS as a boot loader: Microsoft did much the same for 16- and 32-bit Windows, especially from Windows 95 onwards where returning to DOS was not a standard feature. (Windows NT and its successors did not use DOS as a loader.)
This paper from Drew Major et al. doesn't explain why they used DOS for booting but does offer insight into Novell's design philosophy:
The NetWare operating system is designed specifically to provide service to clients over a computer network. This design has resulted in a system that differs in several respects from more general-purpose operating systems.
I would imagine booting from DOS to be one of those differences that places convenience and simplicity over traditional OS goals.
If you're interested in learning more of the design of NetWare, this paper is a good place to start.
Finally, Novell did eventually write their own boot loader.
-
1With Windows 95, 98 and ME, MS-DOS was an integral part of the operating system. Windows NT, 2000, XP, Vista, 7, 8, 10 don't use MS-DOS as a bootloader.– user722Jul 3, 2019 at 18:45
-
I'm aware NT didn't use DOS, I'll edit my answer to reflect that. I don't know that I would call DOS an "integral part of the operating system" of the other line since Win32's drivers overrode much of the DOS and BIOS services once loaded. Jul 3, 2019 at 19:15
-
2In the early years, it wasn't uncommon to use DOS as a boot loader for Linux as well. LOADLIN, used in conjunction with a UMSDOS file system on top of a FAT partition, allowed (relatively) easy sharing of data between the two systems, and starting the Linux kernel (and subsequently the Linux init, but at that point the Linux kernel was in control of the system) from the DOS command line.– userJul 4, 2019 at 7:24