|
|
|
|
|
by verisimilitudes
1339 days ago
|
|
Multics used segments and Lisp Machines had a single address space. UNIX breaks down quickly without multiple fake single address spaces for each program. > Programs just have to be compiled relocatable. Yes, and with unrestricted memory access, one program can crash the entire system. > You know, like what happens with shared libraries: which are written in C, and get loaded at different addresses in the same space, yet access their own functions and variables just fine. That is except when one piece manipulates global state in a way with which another piece can't cope, and at best the whole thing crashes. Dynamic linking in UNIX is so bad some believe it can't work, and instead use static linking exclusively. |
|
So do MS-DOS, Mac OS < 9, and others: any non-MMU OS.
> Yes, and with unrestricted memory access, one program can crash the entire system.
That's true in any system with no MMU that runs machine-language native executables written in assembly language or using unsafe compiled languages.
Historically, there existed partition-based memory management whereby even in a single physical address space, programs are isolated from stomping over each other.
https://en.wikipedia.org/wiki/Memory_management_(operating_s...