3 ms·
The MMU is limited by the fact that it is bolted onto MC68000 which nominally does not support MMU in todays sense. The article you linked says that while code
by dfox 4y ago
The MMU is limited by the fact that it is bolted onto MC68000 which nominally does not support MMU in todays sense. The article you linked says that while code was on demand swapped ("paged" in UNIX terms) by OS (which they "empirically determined" to be possible on the CPU), data segments had to be swapped for process as a whole (with the process having ability to mark some of them as not needed at the time). This probably means that caring about how the memory model works was mostly opt-in for the user code. Original Macintosh does not have any kind of MMU and emulates this through software, which enables one to have "half-dereferenced segments" and thus requires segment locking.
- rjsw 4y agoThe Lisa could run UNIX, unlike the original Macintosh.
- tablespoon 4y agohttps://en.wikipedia.org/wiki/Apple_Lisa#Third-party_software https://en.wikipedia.org/wiki/Apple_Lisa#Third-party_softwar...: > For most of its lifetime, the Lisa never went beyond the original seven applications that Apple had deemed enough to "do everything",[citation needed] although UniPress Software did offer UNIX System III for $495.[32] > The company known as the Santa Cruz Operation (SCO) offered Microsoft XENIX (version 3), a UNIX-like command-line operating system, for the Lisa 2 — and the Multiplan spreadsheet (version 2.1) that ran on it.[33]
- Someone 4y agoIn hindsight. I wasn’t clear, but my comment was triggered by > I’ve not seen any references to locking handles so they don’t move during operations. That doesn’t make sense to me. If memory blocks never move, why go through the trouble and performance hit of double indirection? That led to me guessing the MMU was involved, but it may not have been. The Lisa did have movable memory blocks, though, at least in LisaWrite. https://www.folklore.org/StoryView.py?project=Macintosh&story=Hungarian.txt https://www.folklore.org/StoryView.py?project=Macintosh&stor...: “The Lisa word processor team had developed a memory manager with relocatable blocks, accessing memory blocks indirectly through "handles", so the blocks could be moved as necessary to reduce fragmentation.”
- dfox 4y agoThe hardware can do the segmentation model that was designed around what the OS needed, because of how it was designed, there is nothing that precludes you from doing your own additional handle/segment mechanism in user space. And well, there certainly was reasons why you would want to do that.
- msla 4y agoIn theory, at least, swapping and paging are different ways to design a VM: https://stackoverflow.com/questions/4415254/difference-swapping-and-paging https://stackoverflow.com/questions/4415254/difference-swapp... > Swapping refers to copying the entire process address space, or at any rate, the non-shareable-text data segment, out to the swap device, or back, in one go (typically disk). > Whereas paging refers to copying in/out one or more pages of the address space. In particular, this is at a much finer grain. For example, there are ~250,000 4 KB pages in a 1 GB RAM address space. Since swapping is obsolete, that term has fallen into disuse, but we're talking about obsolete systems here: > Hardware-wise, swapping can be performed without any memory management HW whatsoever, although the early machines employed a simple memory mapping scheme (e.g. base and bound, or a simple one level fixed size page mapping table (e.g. divide the 64 KB data address space into 8, 8KB pages in a larger physical address space (256 KB ... 4 MB)). > In contrast, paging requires page-granularity virtual memory page table entries, which typically encode the physical address of the page, PTE bits such as valid, read, write, etc. The machine also needs to automatically (transparently to the application program) fetch and interpret page table entries as necessary to map each virtual address to its physical address, and/or take a page fault exception to enable the OS to make the page accessible and/or schedule an I/O to load it to physical RAM.