
IBM System 38 (1984) [pdf] - brudgers
http://www.cs.washington.edu/homes/levy/capabook/Chapter8.pdf
======
shawndumas
I cut my teeth on a S/38 as an operator.

I was the worst data entry person. I have dysgraphia, cannot touch type, and
am a world class champion of bad spelling. Not a good combination for
transcribing acuities from intraocular lens follow ups.

My supervisor was on vacation and the manager needed a report for the FDA so,
eager to help, I set about trying to convince paradox (a 4GL) to give me what
was required.

I got the report to print but the sorting was all wrong. It was in date order
and not grouped by model. Finally, by looking through the in-line help system
(1992, no googling), I figured it out and got the report to my manager.

His reaction was not what I expected; he looked exceedingly perplexed.

"Something wrong?"

"It's grouped!", he replied.

"Isn't that the way it should be?", I responded.

He then proceeded to explain two things; he had been asking for the report
this way for months, and I was going to be terminated that day.

The best part was that, unbeknownst to me, they were shipping the S/38 from
Virginia and needed an operator to work from 12 noon till 3 am and—instead of
being fired—I was just about to be offered a new job!

~~~
fit2rule
I don't get it - why did he fire you for doing what he wanted/needed for
months?

~~~
donut
Keep reading... ;-)

    
    
      and—instead of being fired—I was just about to be offered a new job!

~~~
fit2rule
Ah, he was going to be fired because he was a poor data-entry operator, but
then re-hired because he was an awesome sysadmin. Got it. Makes more sense to
me now .. and I'm pretty sure a lot of us who cut our teeth on that metal in
the 70's and 80's experienced similar things. For my part, I was hired as a
junior developer at a new company once, in my late teens, and told to "figure
out how to programmatically reboot the workstations from a distance" .. took
me 10 seconds with DEBUG.COM and I'd done a job nobody there already could
figure out for weeks. An advantage of having nothing but DEBUG.COM to play
with on my new PC for a while, I suppose .. ;)

~~~
pjc50
How did you do the "from a distance" part of the reboot?

(I once had to rebuild a partition table by hand using nothing but DEBUG.COM
and Peter Norton's book..)

~~~
fit2rule
Partition rebuilding .. heh, yup, been there too.

I created "REBOOT.COM" and then had our master control application call it on
command. The hardest part was working out how to programmatically reboot the
PC - for some reason the mainframe guys couldn't work out that a simple "JMP
FFFF" was all we needed. Scored points that day. :)

~~~
batou
Great stuff.

I miss the days when solutions could be that tight. You could have written
that .com file with a hex editor back then. Now an ELF header and symbol table
is bigger than edit.com

~~~
fit2rule
Well, this was in the very early days of DOS, where it was being used as a
front-end for other bigger systems, so it was considered not much better than
a dumb terminal, albeit re-programmable so .. on these "workstations" that
needed REBOOT.COM installed, we didn't even have DEBUG.COM - only the master
control program (quite literally, a .BAT file), which didn't have a facility
to put new apps on all the little DOS machines - admins had to do it manually.

So we all got used to using COPY CON: C:\REBOOT.COM and some sort of Alt-key
combo for "JMP FFFF", which defeats me since I haven't thought about it in 30
years or so .. but yeah. It was the last manual-install we did as an admin/dev
team, as the reboot was needed so that we could finally add "Remotely
administer Workstation Base Image" to the master control program/.BAT file and
save ourselves endless late nights. ;)

------
rpcope1
It's always amazing to me to see all the hype around containerization and
build once, run anywhere, and a lot of the tech trends happening now and
realize that we've been reinventing the wheel, since products like AS/400
(a.k.a System/38 a.k.a iSeries) have been doing it since before PCs were ever
a thing. It's perhaps even more funny when the reimplementation is inferior to
the original product (which seems to happen with some level of regularity).
It's a shame mid-range IBM iron is both expensive and sort of vendor-locked as
it's really often a rather nice system to build for; system/38 really was
revolutionary and really has influence more than I think we often give it
credit for.

~~~
vezzy-fnord
I agree, though a correction: PCs very much did exist by the time of AS/400,
and particularly when OS/400 (IBM i) introduced LPARs, though analogues have
been around in plenty of IBM's prior systems.

~~~
apaprocki
... and they're still called LPARs today on the modern boxes :)

~~~
ghuntley
Correct and since 2007 LPAR's have been able to be xfered between hosts in a
fashion similar to VMotion.

[http://www.redbooks.ibm.com/redbooks/pdfs/sg247460.pdf](http://www.redbooks.ibm.com/redbooks/pdfs/sg247460.pdf)

Additionally there are WPARs as well which are essentially
application/workload management containers :-)

[https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/s...](https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247955.html?Open)

------
gtrubetskoy
Every IBM AS/400 (and its predecessors S/36, S/38) came with all the manuals
which took up more than one book shelf (IIRC back in the day this made IBM the
largest publisher in the world). In high school I had this minimal wage office
job where my responsibilities were not entirely clear, but I spent a lot of
time reading those manuals, especially the "Structured Query Language/400" and
RPG IV, and eventually negotiated a programming job because I was able to
completely automate the tasks I was given.

Thinking back, I think those "systems" (as IBM referred to them) were pretty
cool. You could upgrade any part of it, including the central processing units
without taking it down, which is pretty remarkable even today. As I recall a
"reboot" was referred to as IPL (Initial Program Load) and you only did those
when IBM said it was necessary - those things never crashed.

~~~
justincormack
Which is why IBM created SGML which led to XML and then HTML...

~~~
walterbell
What does IBM use internally for publishing nowadays?

~~~
antaviana
They use SGML and DITA.

------
chmaynard
This is chapter 8 from Capability-Based Computer Systems, a book by Henry Levy
published by Digital Press. Here's the TOC:

[http://homes.cs.washington.edu/~levy/capabook/](http://homes.cs.washington.edu/~levy/capabook/)

I remember reading this chapter in the mid 80's when I was starting to develop
business software for this minicomputer. The System/38 hardware and OS were
not well understood outside of IBM, and Levy's book gave me some sense of what
was going on under the hood to make the system secure.

~~~
McElroy
Searching for _descriptor-based computer architecture_ after reading your
comment since it reminded me that I was going to, gave me a link to chapter 10
of the book.
[https://homes.cs.washington.edu/~levy/capabook/Chapter10.pdf](https://homes.cs.washington.edu/~levy/capabook/Chapter10.pdf)

------
vezzy-fnord
It's interesting to note how so many of the innovative research OS of the 80s
and 90s were based on firmly object oriented architectures that enabled their
features. This is in spite of OO being much maligned by contemporary FP
evangelists. I'm not aware of what research has been done on FP (pure or
impure) operating systems. I know of House, but it doesn't actually have any
interesting features per se beyond the novelty of being written in Haskell.

~~~
david-given
The much-maligned 286 MMU was object based: segments were referred to by
handle and had a byte-granular length, so out-of-bounds accesses were
impossible.

I once saw a Smalltalk which used the 286 MMU like this. Each Smalltalk object
had its own segment descriptor, effectively exploiting the MMU as a fast and
cheap way to implement the object pointer table. The Smalltalk garbage
collector could move things around behind the scenes and everything still
worked, there being no pointers to update.

Of course, with segment sizes limited to 64kB and a limit of (I think?) 2^13
different segments it wouldn't scale to modern machines, but it was still
pretty nifty for a 16-bit system. It's a shame it never got used to its full
potential.

------
bluedino
We run a System i where I work (the current name of the AS/400 and iSeries).
The old crusty bits are still underneath, but you'd be surprised at what runs
on it.

Ruby, PHP, NodeJS, Apache...it's all there.
[Zend]([http://www.zend.com/en/solutions/modernize-
ibm-i](http://www.zend.com/en/solutions/modernize-ibm-i)) has a completely
supported PHP platform on the i.
[PowerRuby]([http://www.powerruby.com/](http://www.powerruby.com/)) has Rails
and DB2 support.

Check out www.youngiprofessionals.com for more

~~~
_JamesA_
There's also a Stack Overflow ibm-midrange tag [1] that has some moderate
activity.

[1]: [https://stackoverflow.com/questions/tagged/ibm-
midrange](https://stackoverflow.com/questions/tagged/ibm-midrange)

------
GnarfGnarf
The design of the S/38 was original and remarkable. However, it was marred by
that horrible language, RPG (Report Program Generator). RPG was based on a
plugboard tabulator paradigm.

Our local IBM reps said that IBM refused to release an Assembler for the S/38,
keeping the internals a big secret.

~~~
_JamesA_
Not sure about the S/38 but IBM i (AS/400) documentation for programming MI
(machine interface) is available [1].

I once wrote an XMODEM crc16 routine in MI because I didn't have the C
compiler available and I couldn't get RPG to calculate it fast enough to
saturate the modem line.

[1]:
[http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/a...](http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/apiref/MIpgmg.htm)

------
jgeorge
At the time I was a hardware engineer and I installed and upgraded so many
System/34/36/38s I couldn't count them all. It was, by modern standards,
dinosaur-era hardware but I loved working on them every time.

To add the 2nd frame onto a S/38 - the L-shaped frame on the left, held more
I/O cards and I think four more 62ED disk drives (64MB each, IIRC) - there
were data cables that ran from the far corner of the 2nd frame to the extreme
lower right corner of the card cage in the main unit. The cables ran through
every cable channel and card gate in the system, and if the weren't run
exactly the way IBM wanted them to be run, they'd come up about a half an inch
short and you'd have to re-run them again.

Miserable? Nah. Good times.

------
johnwfinigan
Only on topic regarding interesting 1970s OS design, but does anybody have a
reference with a similar level of technical detail to this one, but for the
ICL (now Fujitsu) VME operating system?

