[HN Gopher] Analysis of Lisa Clascal source-code
___________________________________________________________________
Analysis of Lisa Clascal source-code
Author : soapdog
Score : 58 points
Date : 2023-02-05 10:40 UTC (1 days ago)
(HTM) web link (eschatologist.net)
(TXT) w3m dump (eschatologist.net)
| Someone wrote:
| FTA: Just like Macintosh, Lisa has a Memory Manager whose heap is
| largely organized in terms of relocatable blocks referenced by
| handles rather than fixed blocks referenced by pointers [...]
| What I find interesting is that, unlike the Memory Manager on
| Macintosh, I've not seen any references to locking handles so
| they don't move during operations.
|
| I'm not sure that is correct. The Lisa had a MMU (http://bitsaver
| s.org/pdf/apple/lisa/development_history/arti...), and swapped
| data into and out of RAM, and data may have moved to different
| addresses when swapped out and swapped in again.
| manv1 wrote:
| The 030 was the first real MMU 68k.
| dfox wrote:
| 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.
| Someone wrote:
| In 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=Maci
| ntosh&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 wrote:
| The 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 wrote:
| In theory, at least, swapping and paging are different ways
| to design a VM:
|
| 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.
| rjsw wrote:
| The Lisa could run UNIX, unlike the original Macintosh.
| tablespoon wrote:
| 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]
| actionfromafar wrote:
| Pascal code is yellow on blue background.
| soapdog wrote:
| Thats Turbo Pascal, right? Been there, still miss it.
| actionfromafar wrote:
| I still maintain that Borland's text IDEs are the best ever
| produced. If I could have it today (+ a language server) I'd
| switch in a heartbeat.
| pjmlp wrote:
| Depends on which version. :)
| retrac wrote:
| I got to take a computer science course in high school. My
| teacher was one of the best I've had; she had been educated in
| the subject with punch cards, on the other side of the Iron
| Curtain. In the first class, she informed us that we would not
| be using the computers in the lab for the first half of the
| year. Half of the class dropped the course after that. I did
| not, and it changed my life.
|
| Pascal for me will always be blue on a whiteboard, semicolons
| optional.
| unkeptbarista wrote:
| I think it displayed correctly for me. Still I switched to
| reader mode for comfort, due to the small font size and narrow
| column.
___________________________________________________________________
(page generated 2023-02-06 23:02 UTC)