I'm not so sure what's lame about all of this stuff
I think the term "shell" may be part of the issue---it leads people to expect something like /bin/bash . It's just the program that the OS starts when it boots, is all.
The shell files concept is very similar to .system files in ProDOS (and maybe SOS if I understand correctly). Unix kernels may not be much different either---after all, their "shell" is traditionally init(8 ), although booting with
init=/bin/whatever_you_want is an option on many systems if you prefer a different root process. Lately, most Linux distributions have changed the "shell" to systemd(1), which is either a good thing or not depending on your outlook. But you could boot Linux into a custom program if you felt like it, and though I don't know for certain, I suspect this is basically what Android phones do.
Anyway, it is correct that the Office System is a shell, and so is the Workshop. The Workshop's shell presents a text-based menu interface that resembles the
UCSD p-System interface very closely, and this shell can also run the exec files that Ray mentioned. That said, there's nothing stopping someone from writing a different shell that looked and worked much like bash or PowerShell... well, except for memory usage perhaps (cf. PDF page 16 of the
Workshop User's Guide). There's also nothing to prevent someone from writing any other kind of standalone program in the Workshop and renaming it to SHELL.Whatever and having that be a shell listed in the Environments window --- even if it does something useless like compute the Mandelbrot set over and over again.
More info about Lisa OS process structure starting from PDF page 69 of
the OS reference manual.
Both the exec file system and the Workshop menu interface seem to be part of the StdUnit library (see reference manual PDF page 312 on), which makes some sense because they work with each other. I don't think the OS requires that your program to use StdUnit, however, and if you were writing your own shell from scratch, you'd probably be abandoning those features/conveniences, since I expect they depend rather heavily on functionality built into the Workshop shell itself. (Same for the ProgComm library also mentioned in the reference manual.)
I feel like I should take a second to defend the
exec file system, which is wonky but not lame in my opinion; I think it's rather powerful! It's a rather elaborate Pascal-like scripting language with flow control, subroutines (as separate files), string manipulation, and file I/O! It actually surprises me a little bit how much it can automate the Workshop interface. See chapter 9 of the User's Guide.
Regarding:
Interestingly the early software documents also state that the Operating System loads the SHELL file, which can be deleted and replaced at will. I wonder if that's how the Lisa development team were able to so quickly go from a text-based environment to a graphical one in Busy Being Born.
I think this is probably not the case. Development of the OS and I think (but am not sure) some of the foundations and apps for the Office System took place in the Monitor, an earlier operating environment that resembled the p-System even more closely. In the Monitor, the menu interface was much more intrinsic to the kernel, if my reading of the source code on bitsavers is not mistaken. The Monitor was a pretty low-overhead operating system, much like DOS in many respects, with no memory protection and (I think) only marginal support for running more than one program at once. So, if you were developing an application that needed to draw graphics, there was nothing stopping you from having it write to the framebuffer in RAM. In fact, there is at least one Lisa graphical environment that does exactly this: Lisa Smalltalk-80! You start it up in the Monitor and it basically takes over the whole computer. I'm not sure you can even quit it.
On that note, one thing I'm not so sure of are the details of when and how programs running the Lisa OS secure access to the video memory. Details of this are surely buried deep in things like the QuickDraw libraries and other Office System libraries perhaps. There isn't really the concept of "user space" and "kernel space" in the Lisa OS like there is in Unix, I don't think, but there are some kinds of memory protection, and I'm not sure of their nature. Deciding what part of the stack should do the drawing and how that element should be commanded was a design choice that different vendors approached differently---
here is a workshop proceedings where people are comparing their choices in a pre-X Unix world (scroll down to the bottom for figures). I'm not sure what the Lisa engineers chose.
Since it's the Lisa, I assume that they selected the most complicated option that would fit within the system's overall constraints.
(PS: Do click around in that workshop proceedings---it's a fascinating time capsule and features
a few well-known names in attendance. You'll see mentioned here and there some people describing interest in Apple's contributions to the art, but this is a very Unixey crowd indeed!)
(PPS: for people who do read it---I've been enjoying exploring a Whitechapel MG-1... it's running right now, here in the same room as my Lisas
)