20

I'm currently working on research related to the history of file systems.

Apparently the Master Boot Record was introduced with MS-DOS 2 in 1983, which was also the first DOS that supported hard disks.

MBR lasted for years, in part because we've only started hitting its limits in the early 2000s.

Given the constraints of the time, I'm curious why IBM and Microsoft added support for partitions right from the start. I believe dual boot was not yet a thing and neither was disk imaging. FAT16 apparently supported disks up to 4GB. MS-DOS at this time seems very utilitarian, so this was a surprising feature to me.

Why were partitions such an early feature, and how did people use them?

8
  • 27
    More suitable for retrocomputing.stackexchange.com
    – AlexD
    Commented Feb 25 at 8:21
  • DOS started with FAT12 and a maximum partition size of 16 MB., although I can't say that was the reason.
    – tdelaney
    Commented Feb 25 at 16:33
  • 2
    Logical partitions has been a thing IBM has supported for decades with their mainframes, specifically, with MVS from 1974.
    – Ramhound
    Commented Feb 25 at 18:34
  • 1
    If you are doing research on the history of file systems why are you asking questions about the MBR? If you consider storage as a layered system with partition tables, file systems and files you are not operating on the right level.
    – r2d3
    Commented Feb 26 at 9:16
  • 1
    @Ramhound On mainframes and large servers, "logical partitioning" can refer to partitioning not just the storage, but the entire server: for example, you might be able to split a 8-CPU server logically into two 4-CPU servers that will be able to run entirely separate operating systems in parallel. But this question seems to be about storage partitioning specifically.
    – telcoM
    Commented Feb 26 at 10:35

6 Answers 6

38

While MS-DOS 2.0 added the MBR format, it actually didn't support using multiple partitions. Multiple partition support wasn't added until MS-DOS 3.3 in 1987.

Instead, the partition table was for dual-booting. From the PC-DOS 2.0 Manual:

If you intend to use part of the fixed disk with another operating system, then you should go to "Partitioning Your Fixed Disk" in this chapter.

The other operating system would typically be Xenix. From Xenix User's Handbook (1984):

Hard Disk Partitions

For this discussion, we assume that only two operating systems are to be resident on the hard disk. These two systems will be XENIX and MS-DOS.

In a sense the MBR was just crammed in to what would have been the boot sector on a floppy disk. Both floppy disks and hard drive MBR begin their first sector with executable code that the BIOS will load on boot. MBR just chooses to use the last 64 bytes of that sector to store information about partitions, and then pass control to the first sector of the partition.

IBM PC was surprisingly welcoming of alternate operating systems right from the start. The IBM PC/XT 5160 Guide to Operations even mentions in second paragraph of Section 3. Operating your IBM Personal Computer XT:

If you choose to write your own operating system, the IBM Personal Computer XT Technical Reference manual will provide valuable information.

5
  • So many good answers, but I went with this one as it has a great source.
    – Evert
    Commented Feb 26 at 0:22
  • 1
    The quote from the IBM PC guide is just perfect.
    – Samveen
    Commented Feb 26 at 3:33
  • 1
    I think one place I worked at in 1989, had a copy of the technical reference. It was an A5 ring binder, with a purple hard cover. A remember a listing of the BIOS in one of the appendixes.
    – Neil
    Commented Feb 26 at 11:55
  • 13
    Loving the casualness of that statement... "If you choose to write your own operating system".
    – fooquency
    Commented Feb 26 at 17:46
  • 2
    "IBM PC was surprisingly welcoming of alternate operating systems right from the start"; actually, from day 1, they supported PC-DOS, CPM-86 (and USCD Pascal system)" - initially, it wasn't clear whether PC-DOS or CPM-86 would prevail...
    – poncho
    Commented Feb 26 at 19:42
22

Just because you don't need dual boot doesn't mean you don't need partitions.

One argument that existed then and still is relevant is that you may want to put the operating system and user data on different partitions for multiple reasons.

Also, DOS was designed for floppy disks, not hard drives. When hard drives were introduced, they were significantly larger than floppy disks, and the larger size exposed issues in the filesystems that made it inefficient or impossible to use the larger sizes without partitioning the disk into pieces.

Over time, these filesystems (FAT12, FAT16) were updated to handle larger sizes (FAT32 ext2fs), and eventually replaced with new filesystems with new larger limits (fat+ ext4) ...that were eventually still not big enough. History repeats. (exfat ntfs xfs zfs)

These issues existed then, and they still exist today, and we partition disks now for the same reasons...and a few more.

7
  • Thank you, this makes a lot of sense! Regarding size limits, from what I understand FAT16 at that time was already able to support disks well beyond what was available at that time, is this wrong? Maybe I missed something!
    – Evert
    Commented Feb 25 at 4:20
  • 4
    Fat16 max capacity was increased by increasing block size, which makes storage of small files extremely inefficient... so there was benefit to making smaller partitions that didn't need the larger block size. This was fixed with vfat, and fixed again with xfat.
    – user10489
    Commented Feb 25 at 4:23
  • As for separating the OS and user data; I used to run MS-DOS 5 and I feel this was less of a concern because the OS didn't take over the whole disk, so it was relatively easy to install a completely new OS because all you need is SYS and write new utilities to C:\DOS. Needing to wipe your entire disk to install a OS feels like something that became more of a concern later, but also could be wrong here...
    – Evert
    Commented Feb 25 at 4:23
  • 1
    ok, the block size issue makes sense. I guess the block size dictates the minimum size any file will take up?
    – Evert
    Commented Feb 25 at 4:25
  • 1
    Filesystems typically have a max addressible number of blocks, which is why block size was increased, bypassing that limit. Yes, minimum file size is a multiple of the block size.
    – user10489
    Commented Feb 25 at 4:26
19

The original FAT16 (partition type 0x04) didn't support partition sizes larger than 32 MB due to cluster size limits. The FAT16 partition type 0x06 does support larger partition sizes and was introduced in 1987 in Compaq PC-DOS 3.31 and later became available in MS-DOS 4.0

Another benefit of having partitions is that it was possible to allocate outer HDD cylinders to one partition and inner cylinders to another. Outer cylinders were faster and it also reduced HDD head seek time within the partition cylinders.

9
  • 1
    I forgot about partitioning for speed! But that wasn't true until variable sectors per track became a thing.
    – user10489
    Commented Feb 25 at 12:29
  • I think outer cylinders becama faster somewhat later
    – fraxinus
    Commented Feb 25 at 21:06
  • 2
    @fraxinus, pretty sure that effect is geometry based and was there since the start of the Universe
    – user28434
    Commented Feb 25 at 21:46
  • @user28434 the variable number of sectors per cylinder and the related variable read/write timing in hard disks became a thing in e.g. late 1990s, until then the timing and the data rate were constant over the whole disk
    – fraxinus
    Commented Feb 26 at 6:14
  • @user28434, the correction is right, originally disks used CHS addressing with a constant number of sectors per cylinder and constant sector size. With constant revolution speed, you get a constant transfer speed. The outer cylinders had larger gaps between sectors and wasted a lot of space. This changed by the mid-90s with the introduction of Zone Bit Recording.
    – AlexD
    Commented Feb 26 at 6:19
6

From PC-DOS :

PC-DOS 3.30

The final version of the "classic PC-DOS family," PC-DOS 3.30, had a few major improvements. First, multiple partitions were supported, still up to 32 MB each.

Quick anecdote, in the late 80s, most hard drive came in either 20 or 40 MB in size. 32 MB drives were rare. So, using PC-DOS or MS-DOS 3.30 most owners would partition a 40 MB drive into a 32 and an 8 MB partition and largely ignore the 8 MB partition. The reason for this is if you didn't know the ins and out of fdisk, this is how it would partition the drive by default even though if you just either read the documentation or played around with the settings, you would find that you could easily partition it into 2 equal 20 MB partitions.

This suggests that multiple partitions were created to allow the usage of disks larger than 32MB without waste.

Actually, it stands to reason that disk formats were driven by the evolution in disk technology. Larger disks meant the evolution of partitions, extended partitions, MBR and now GPT.

Other sources about the subject :

3

The block size issue was a big deal, and not just with MS-DOS. I remember (though details are bit fuzzy - this was around 1985) MP/M-86 on an Altos 586-20 to increase the number of file blocks from 1,024 to 2,048 because 1,024 just wasn't enough.

FAT16 allowed for roughly 2^16 = 64k files. The exact number varied depending on various factors and was slightly less, but basically 64k. By the early 1990s, 1 Gig. was not that unusual. 1 Gig. at 64k clusters = 16k per cluster. Even worse is if you have 1.5 Gig. and 32k per cluster.

For databases and other large files that's fine. For a mix of large and small files it was generally fine. But if you have a lot of small files then it would be a major waste of precious storage space, and In these types of situations, partitions can really improve utilization of the available space. While multiple physical drives often provided better performance, they often cost more and require more space and power, so a single large drive with multiple partitions can work quite well.

1
  • 8
    in 1990 typical HDD size was around 20-40 MB. 1GB was more common in 1995.
    – AlexD
    Commented Feb 25 at 8:38
-12

There really weren't "PC users" in the 1980s in the sense that we think. Most PCs were glorified Wang terminals with lower resolution displays and used only to run WordPerfect.

Most systems design was still proprietary and interoperability was minimal. "PC" Storage continued to remain primitive, primarily due to most decisions made by a small number of vendors that were more concerned about threatening the commercial storage business.

I worked on a BSD Unix Sun workstation clone in the late 1980s that simply had just way better storage than PCs. That and I believe the Mac also used SCSI.

Windows wasn't really considered a serious general purpose product until Windows 3.0 in 1990 anyway.

5
  • 2
    Standard 20-40 MB HDD in the late 80s was quite a lot of storage. You could run a lot of software other than WordPerfect - 1-2-3, dBase, Norton Commander, Turbo Pascal and not counting games.
    – AlexD
    Commented Feb 25 at 11:19
  • 8
    Even if true, nothing in this addresses the asked question. Commented Feb 25 at 20:01
  • 5
    What alternate reality are you from! Also completely missed the mark with your answer.
    – Evert
    Commented Feb 26 at 0:21
  • I think the view represented in this answer is only true in a very narrow industrial environment. Doesn't make it wrong, just narrow.
    – user10489
    Commented Feb 26 at 0:32
  • 2
    My company encountered significant pressure to port our product to MS-DOS from about 1985 and we had PCs on the desk from around 1986. And we were in Australia, which was very slow to adopt MS-DOS.
    – user207421
    Commented Feb 27 at 6:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .