Image

DBMS Implementation

Originally posted here on my personal journal.

Why do database servers need operating systems, anyway?

Oracle can run directly against a disk, without involving a file system. Microsoft can't, but I think DB2 and some of the others can, too.

Production database servers don't generally run much else, if anything else, so supporting multiple programs isn't much of a concern. The multi-threading in the database might even work a little better if the DBMS knew everything that was running on the machine.

With nothing else on the machine, the DBMS could directly access whatever memory it wanted to, without going through the extra steps of asking the OS for permission, and the OS checking for memory range violations (general protection fault).

No virtual memory system would be needed, and all caching would be on relational data, not on files.

Without support for running general-purpose programs, there would be a lot less room for security problems. This is especially true if the null-terminated strings were entirely kept off the machine, which is a possibility with only one piece of software.