OS for IBM 370 
Author Message
 OS for IBM 370

Two points below:

Quote:


>The IBM assembly *language* is actually unrelated to any particular
>operating system.

Or hardware.  A programmer acquaintance of mine had to develop software
for a radar system in the 1970s.  The radar system was based on bit-slice
hardware (AMD 2900, I think), with a word length of 59 bits.

He used IBM assembler and a whole lot of custom macros to build a
development environment, and loaded the resulting object into the radar
controller.

<snip>

Quote:
>     I know; I run and maintain an experimental OS developed that way. We
were
>     able to wean ourselves from CMS and CP 25 years ago and did all
further
>     development in our own system.  We used the IBM Assembler H in an OS
>     simulation (basically a small number of OS/360-derived SVCs)
environment
>     until the mid-90s; at that point one of us did write a new assembler,
>     primarily for the purpose of experimenting with different features,
and
>     to see how much an already good product could be improved.  This new
>     assembler kept the original object file format (even though we were
very
>     tempted to remove various historical 24-bit restrictions in that

format).

Could you elaborate on this, offline if necessary?  I am aware of one such
effort in a classified environment.

Quote:
>     I'm not familiar with certain S/370 simulation environments like
Assist
>     or Hercules, but they may have similar development-friendly features.

OK, three points.  Hercules is great.  It may not have the exact features
which you seek, but you can get the source to add them.  (The hercules
emulation console does put out a lot of information, to the degree that
some consider it a performance hindrance.)


Fri, 22 Aug 2003 10:25:41 GMT  
 OS for IBM 370

Quote:


>> > >> Source for OS/360 is available for download,
>> > >> only 117 Meg.  There is a pointer to it on the Hercules emulator site
>> > >  ~~~~
>> > > Back in its day the word "only" wasn't used in this context.

>> > Let's see. Assume 2314 disks (I never worked directly with 2311s)...

>> IIRC, it was 29 meg per disk pack, and five disks per 2314, so you
>> should be able to fit it all on one unit.  Of course, you won't have
>> space for anything else to run the company unless you have multiple
>> disk systems.

>> It just amazes how today we think 117 Meg is "nothing".  In the days
>> that OS/360 was written, it was quite a lot.

>> Our S/360-40 DOS operating system required all of 16K core memory.

>Depending on the time frame & your supervisor generation parameters, you
>made have had a 6K supervisor & a 10K problem program area (no
>multi-programming). Pretty common setup early on (no multi-programming).

>> I'm not sure what the low end S/360 minimum memory offering was--16K,
>> or even 8K.  Those numbers sound absurbly low today, but in those days
>> the 1401, the most common machine, maxed out at 16K, and many users
>> had smaller machines.

>The smallest S/360's (I think this includes the Mod 20's, but I'm
>certain about the 30's & up) were 8K. The idea was to use BOS 8K DISK,
>4K supervisor & 4K problem program area. That's the configuration I
>learned Assembler on in 1966.

>LiamD

I've seen one reference that indicates that there was a B series of
S/360 machines which only had 4K of storage.  These were restricted
to the model 20 (which, in my opinion, wasn't really a true S/360 due
to the variances it had from the architecture), and the model 25.  The
model 20, at least, required a special operating system, so the limited
storage size wasn't a constraint to not running one of the real operating
systems.  I'm in the dark about the model 25.

Here's a summary from a table in appendix D of the book 'Programming
the IBM 360' by Clarence B.  Germain (1967):

360 MODELS
#    Core Size  25  30  40  50  65  75  85   91-95  44  67  20
B        4K......X...........................................X.
C        8K......X...X.......................................X.
D       16K......X...X...X...................................X.
E       32K......X...X...X...........................X.........
F       64K..........X...X...X.......................X.........
G      128K..............X...X...X...................X.........
H      256K..............X...X...X...X...............X..X......
I      512K..................X...X...X...X..............X......
J     1024K..................X...X...X...X.....X........X......
K     2048K..............................X.....X........X......
L     4096K..............................X.....X...............
2361  1024K..................X...X...X.........................
2361  2048K..................X...X...X.........................
CD      24K....................................................
DE      48K....................................................

Cycle time(uS)  .9  1.5 2.5 2.0 .75 .75 1.04 .75-.125 1.0 .75 3.6
  per _ bytes    2  1   2   4   8   8   16   8        4   8   1

Dave

P.S. Standard Disclaimer: I work for them, but I don't speak for them.



Fri, 22 Aug 2003 21:34:14 GMT  
 OS for IBM 370

Quote:



>(snip)
>>>S/370 assembler is much easier to learn than many popular processors
>>>today.  The addressing modes are simple, but powerful.
>>>The IBM assemblers have a macro feature much better than newer
>>>processors.   If you are writing your own OS, you may need to
>>>write your own assembler, too.  Much of the assembly language is
>>>related to the operating system.

>>I agree with your characterisation of S/370 assemblers, except for this:

>>The IBM assembly *language* is actually unrelated to any particular
>>operating system.  The assembler as a program does expect a certain
>>environment -- a real or simulated subset of OS/390, effectively.  That
>>is sufficient for cross-assembly from one operating system (development
>>environment) to another (your experimental OS in a test environment).

>I would have thought that before, but, as far as I know, the
>gas with Linux/390 looks much more like other machines assembly
>language than it looks like the language that IBM assemblers
>accept.

>It could, for example, differ in the operand order on the
>instruction, the way of representing registers and offsets,
>the ways of representing address constants or data areas,
>and more.  Hopefully the instruction mnemonics are the same,
>but just about everything else could change, and it could
>still assemble for the same hardware.

That's why I said "IBM assembly language".  A generic assembler is simply
a program that generates machine code from a syntactic description of the
actual instructions to be generated: opcode (via mnemonic) and operands.
Most assemblers also assist with conversion of symbolic names to offsets
and addresses, and track the location counter.  I'm not sure whether gas
supports the concept of USING, or whether the programmer has to code explicit
base and displacement -- gas would still assist in computing the displacement
from symbolic values, I hope.  (I've never used it, so I don't know.)  The
syntax for describing operands can indeed be different.  It would be confusing
but not impossible to use different mnemonics -- but there are likely to be
differences in extended mnemonics (which are not described in PoOps).  Indeed,
even standard instructions may have mnemonics and operand syntax differences
between PoOps and IBM assembler syntax:  consider the relative-branch instrs,
for example.  Btw, the idea for the Jump mnemonic was influenced by Phantasm,
the experimental assembler we developed for the experimental OS mentioned in
my earlier post.

Some non-IBM assemblers are compatible with IBM's syntax, e.g. Tachyon.

Quote:
>It would be nice to have programs that could convert between gas
>output and OS style LRECL=80 object files, in both directions.

>Maybe it is not the OS but the OS philosophy that I was thinking
>about.  

>thanks for the reply,

>-- glen

(Michel)


Sat, 23 Aug 2003 03:46:24 GMT  
 OS for IBM 370

Quote:

>Two points below:


>>The IBM assembly *language* is actually unrelated to any particular
>>operating system.

>Or hardware.  A programmer acquaintance of mine had to develop software
>for a radar system in the 1970s.  The radar system was based on bit-slice
>hardware (AMD 2900, I think), with a word length of 59 bits.

>He used IBM assembler and a whole lot of custom macros to build a
>development environment, and loaded the resulting object into the radar
>controller.

Goes to show what a powerful macro language can do.

Rumour has it that somebody once wrote a crude fortran compiler as a bunch
of Assembler-H macros.  That macro language may have a truly bizarre syntax,
but I think it is Turing-complete, i.e. you can do anything with it (within
the constraints of available storage).  It even supports associative lookup!

I've also heard of groups here at Research that used it to assemble Motorola
MC68K code.

- Show quoted text -

Quote:
><snip>

>>     I know; I run and maintain an experimental OS developed that way. We
>were
>>     able to wean ourselves from CMS and CP 25 years ago and did all
>further
>>     development in our own system.  We used the IBM Assembler H in an OS
>>     simulation (basically a small number of OS/360-derived SVCs)
>environment
>>     until the mid-90s; at that point one of us did write a new assembler,
>>     primarily for the purpose of experimenting with different features,
>and
>>     to see how much an already good product could be improved.  This new
>>     assembler kept the original object file format (even though we were
>very
>>     tempted to remove various historical 24-bit restrictions in that
>format).

>Could you elaborate on this, offline if necessary?  I am aware of one such
>effort in a classified environment.

What did you want to hear about?  The experimental OS?  The experimental
assembler Phantasm?  The issues with the old TEXT file format?  

Quote:
>>     I'm not familiar with certain S/370 simulation environments like
>Assist
>>     or Hercules, but they may have similar development-friendly features.

>OK, three points.  Hercules is great.  It may not have the exact features
>which you seek, but you can get the source to add them.  (The hercules
>emulation console does put out a lot of information, to the degree that
>some consider it a performance hindrance.)

Yep, I've heard good things about Hercules, and if I find time I'd like to
play with it -- in particular, I'd be tempted to add simulation for the
experimental instructions we had in our P/370 microcode to suport direct
access to the MicroChannel, so we could use native device drivers in our
S/370 OS to drive a bitmapped display, full-duplex keyboard and mouse, SCSI
disks and Ethernet. Then I could run my favourite OS on a PC -- probably with
the same performance as the 10-year-old P/370 on a current PC, and benefit
from ever-faster PCs in the future.  (Btw, we first played with these ideas
on a machine called the 37T -- a 150kIPS 4331 with 900K memory and a 64M disk
in a box the size of a washing machine.  I still have one in my office!)

Michel.



Sat, 23 Aug 2003 04:06:03 GMT  
 OS for IBM 370

Quote:
>>He used IBM assembler and a whole lot of custom macros to build a
>>development environment, and loaded the resulting object into the radar
>>controller.

>Goes to show what a powerful macro language can do.

Powerful, indeed!  Way back when, I wrote an 8080 assembler
as a set of macros.  Had a special post-processing step to
translate the object deck to characters, which were then
downloaded into an 8080-based machine that was acting
as a TSO terminal.

A. S. Tepper



Sat, 23 Aug 2003 07:17:00 GMT  
 OS for IBM 370

Quote:

>>>He used IBM assembler and a whole lot of custom macros to build a
>>>development environment, and loaded the resulting object into the radar
>>>controller.

>>Goes to show what a powerful macro language can do.
>Powerful, indeed!  Way back when, I wrote an 8080 assembler
>as a set of macros.  Had a special post-processing step to
>translate the object deck to characters, which were then
>downloaded into an 8080-based machine that was acting
>as a TSO terminal.

I knew someone who had macros for 8080, 6800, and 6502 assembly.

A program to convert the object deck to intel hex format, and
to convert sysprint to look like it should look.  (It put the
generated code on the macro line and removed the macro expansion
lines.)   Then I wrote the macros for 6809 using the same system.

-- glen



Sat, 23 Aug 2003 11:04:36 GMT  
 OS for IBM 370

<snip>

Quote:
>>>     I know; I run and maintain an experimental OS developed that way.

<snip>

Quote:
>>Could you elaborate on this, offline if necessary?  I am aware of one such
>>effort in a classified environment.

>What did you want to hear about?  The experimental OS?  The experimental
>assembler Phantasm?  The issues with the old TEXT file format?

Well, mainly the operating system; what was its purpose, what devices
did it support, and general background information like that, especially
if it is or can be in the public domain.   (Looking for more Hercules
fodder, as if I didn't have enough other operating systems to play
with^H^H^H^H^H evaluate.)  Since the subject of redistribution of IBM
operating systems has never really been resolved, it would be nice
to have one non-IBM operating system available.  (Linux/390 will
probably fit the bill.  MTS might be a possibility too.)

Quote:
>Yep, I've heard good things about Hercules, and if I find time I'd like to
>play with it

Just go do it.  If you have a DSL or cable connection, the download is not
too bad.  http://www.conmicro.cx/hercules/  I was able to download and
install the Windoze version and get to the point of IPLing the MVS 3.8
starter system in about 6 hours, with interruptions.

<snip>

Quote:
>(Btw, we first played with these ideas
>on a machine called the 37T -- a 150kIPS 4331 with 900K memory and a 64M
disk
>in a box the size of a washing machine.  I still have one in my office!)

Hmmm...was this rack-mounted in a mobile configuration for a branch of the
U.S.Government?


Tue, 26 Aug 2003 15:57:29 GMT  
 OS for IBM 370

Quote:




><snip>
>>>>     I know; I run and maintain an experimental OS developed that way.

><snip>
>>>Could you elaborate on this, offline if necessary?  I am aware of one such
>>>effort in a classified environment.

>>What did you want to hear about?  The experimental OS?  The experimental
>>assembler Phantasm?  The issues with the old TEXT file format?

>Well, mainly the operating system; what was its purpose, what devices
>did it support, and general background information like that, especially
>if it is or can be in the public domain.   (Looking for more Hercules
>fodder, as if I didn't have enough other operating systems to play
>with^H^H^H^H^H evaluate.)  Since the subject of redistribution of IBM
>operating systems has never really been resolved, it would be nice
>to have one non-IBM operating system available.  (Linux/390 will
>probably fit the bill.  MTS might be a possibility too.)

I include a description below.  Btw, I was planning on creating a hercules
emulated-disk file with my OS on it, directly bootable if possible.  I even
got a copy of the 1st megabyte of somebody's emulated-disk file to try to
guess the format.  Time is the primary resource that's lacking right now.

Quote:
>>Yep, I've heard good things about Hercules, and if I find time I'd like to
>>play with it

>Just go do it.  If you have a DSL or cable connection, the download is not
>too bad.  http://www.conmicro.cx/hercules/  I was able to download and
>install the Windoze version and get to the point of IPLing the MVS 3.8
>starter system in about 6 hours, with interruptions.

I have a 136M file called hercules.tgz that I got from a colleague who uses  
hercules under Linux on his laptop (with OS/MFT), but haven't had time to
look at it, and I'm not sure I have a machine on which I could use it.  (I
have AIX on PowerPC and NT4 on Intel; at home I have Win98.)

Quote:
><snip>
>>(Btw, we first played with these ideas
>>on a machine called the 37T -- a 150kIPS 4331 with 900K memory and a 64M
>disk
>>in a box the size of a washing machine.  I still have one in my office!)

>Hmmm...was this rack-mounted in a mobile configuration for a branch of the
>U.S.Government?

Nope -- it uses a 3310 enclosure, which normally houses two 64M FBA disks.
We removed one disk and stuffed the cabinet with a 4331 CPU cage, a service
processor coage (bigger than the CPU cage), and a Multibus cage.  It really
does look like an upright washing machine.

I enclose a copy of mail I had sent earlier this year.  This posting may
reach a few more people than private e-mail.  

Date: Tue, 9 Jan 2001 18:28:03 -0500

Subject:  My experimental operating system

The OS is called EM/370 -- EM stands for "Extended Machine", and /370
reflects the fact that it was developed for S/370 (in the mid-70s).
It now runs on S/390.

It is a left-over of a project killed in 1985 ("IBM does not need another
operating system").

It is a true single-user operating system, in that I am at this point
the only user.  (In 1992 there were three users, each running their own
version that had diverged independently after 1985, though most user-level
programs could run on a friend's system after recompilation.)

Most existing documentation is twenty years old.  The project was never
confidential, and parts of it have at times been described at SHARE by
the original author, Chris Stephenson.

EM/370 consists of a kernel that supports multiple independent address spaces,
a file system, and device support (keyboard, display, etc.).  An addr space is
'clean' (no reserved locations, no exposed boundaries) and starts out with an
initial program -- or as a true clone of an existing addr space.  Instructions
include all problem-state S/370 (or S/390) instructions, plus 'extended' instrs
which are in fact instances of DIAG, as an RRS instruction:  a plist register,
a return code register, and a function code.  The extended instructions are
things like file-read, console-write, display-write, handle-interrupt, clone,
create-addrspace, ipl, and so on.  "Extended Machine" refers to this picture:
user-level machine instructions plus extended instructions to access the file
system and I/O devices through an idealised interface.  These extended instrs
are defined as precisely as simple real machine instrs (as in S/390 Principles
of Operation), including exception handling.  (They are actually simpler than
some of the fancy system instructions defined for S/370 in the 80's and 90's.)

YMS (*) is a mini-operating system that runs in an EM/370 address space.  It is
very small, and consists basically of a storage allocator, program loader, and
console/program communication interface of the type found in CMS: a stack of
stacks (like MAKEBUF/DROPBUF), with the lowest level connected to the console.
The program loader distinguishes reusable/recursive/reentrant attributes, and
loads fresh copies only when required.  With good look-aside, the program call
overhead is very small, and an address space typically contains a few hundred
small programs.  There is only one kind of program: nothing is built-in except
for the generic program call interface.  The initial program is typically an
EXEC interpreter (both EXEC 2 -- which has continued to evolve in YMS -- and
Rexx, plus LYSP -- a dialect of LISP) running a shell-like EXEC.  A user's
profile typically invokes the editor and never leaves it: any program can
call any other program without restriction, so why leave the editor?

The general idea is that the programming environment is simple, safe, and
without restrictions other than actual resources (e.g. available storage).
In other words, no limit to stacked lines, EXEC 2 variables (or numbers, for
that matter), file sizes, ...

The file system is exceptionally robust and fast, and -- above all -- *safe*.
In fact, in the absence of physical damage (head crash -- no mirroring), it
is unconditionally safe.  There is NO instant where a crash or power failure
could lead to an inconsistent state.  (It uses shadowing, so there is no such
thing as file system repair, or log rollback, after rebooting the system.)

The cloning capability (like 'fork' in Unix) is quite useful.  The compilers
can compile directly out of the editor, using the in-storage source file, so
a common operation is to clone and compile in the background while continuing
to edit in the foreground.  The editor has a full UNDO mechanism, by the way.

In 1987 I converted the whole thing (kernel, YMS and user programs) to XA,
and a bit later to bimodal, so that the same system could be IPLed on a 370
or on an XA (or ESA) box -- real or virtual.  This entire conversion took
only two weeks, and affected very little other than the kernel.  Indeed,
the only things affecting user programs were IPM vs BALR to snatch CC, and
the length limitation of MVCL and CLCL.  I do have a write-up on this, if
you are interested.  Now I enjoy multiple 2Gbyte addr spaces -- though in
practice I rarely use more than 64M:  I would have to define rather large
temporary paging disks otherwise!

No wonder I never went back to CMS...  By the way, many of the features that
went into VM/SP and distinguished it from VM/370 came from YMS.  So saying
that YMS has CMS-like features is the wrong way around.  Unfortunately, CMS
is a much more complicated system, full of restrictions due to its philosophy
of one-program-at-a-time, and its small-storage origins.  (Unix, by the way,
suffers from the same historical constraints -- but at least it supported
multiple processes from the beginning.  Unlike CMS, it never realised the
benefits attainable from running multiple programs in one process.)

Michel.

(*)  YMS stands for Yorktown Monitoring System, a pun on the original meaning
     of CMS (where C stood for Cambridge, not Conversational).

P.S.  Development of a Personal S/370

  The other part of the original "Individual Computing" project was the
  development of the 37T.  This was the first 370 workstation which was
  designed to be a workstation, not a miniature 370 with the same old
  3270-based user interface.  It was developed at about the same time
  as the XT/370, but had *nothing* in common with that poor creature.

  The 37T consists of a 4331 engine packaged with a 3310 drive, a service
  processor, and a Multibus cage, all in one 3310 enclosure (about the
  size of a washing machine).  The Multibus is what made it an interesting
  creature: it supported a bit-mapped display (SUN), a full-duplex keyboard
  with a mouse, an Ethernet card, etc.  There were machine instructions to
  read and write directly in Multibus space, and EM/370 had device drivers
  for all this.

  I have one in my office, and use it occasionally to edit documents,
  where the mouse, full-duplex keyboard, and large display make editing
  a joy compared to what can be accomplished through a 3270.  The machine
  is severely underpowered by today's standards:  150 Kips, 900K of main
  storage, 64M of disk storage.  But for interactive use it is quite zippy.
  Due to clever programming, its character display is faster than that of a
  Rios (the original 1990 RS/6000, whose CPU was at least 20 times faster).

  Chris Stephenson, the father of EM/370 and YMS, used his 37T (plus two
  others, one as a network interface (YKTEM) and one as a file server)
  as his main (nearly only) computing platform.  His version of EM/370
  has evolved considerably to use real storage even more efficiently;
  his system pages to 16M of expanded storage on the Multibus.  He even
  rewrote part of the 4331 microcode to get some noticeable speed-up.
  Being a constant workstation user, he has done some really
...

read more »



Wed, 27 Aug 2003 01:03:43 GMT  
 OS for IBM 370

<snip>

Quote:
>I have a 136M file called hercules.tgz that I got from a colleague who uses
>hercules under Linux on his laptop (with OS/MFT), but haven't had time to
>look at it, and I'm not sure I have a machine on which I could use it.  (I
>have AIX on PowerPC and NT4 on Intel; at home I have Win98.)

The versions change pretty quickly, and if you have had that one for a few
weeks,
it's out of date :).  WRT the other platforms you mention, Volker Bandke has
a
Win32 distribution (binaries, easy as pie).  I think there is an AIX make
file
around somewhere, too.  See www.egroups.com -- although Yahoo has taken
over egroups, so you have to register blah blah.  The group name is
Hercules-390.

Also at www.conmicro.cx if you just want the files.

<snip>

Quote:
>  The PS/2 still has OS/2 on it, and when EM/370 is up and
>  running, the PS/2 is still counting its memory and won't even start to
>  boot OS/2 until about a minute later.  OS/2 finally comes up 5 minutes
>  after that -- at which point YMS can talk to it if Chris wants to access
>  some OS/2 files, for example.)

Oh yes, there's an OS/2 version around too.

If you want to create a virtual disk with YMS on it, can you create AWSTAPE
format on the P/370 or OS/2?



Wed, 27 Aug 2003 16:37:52 GMT  
 OS for IBM 370

Quote:

>If you want to create a virtual disk with YMS on it, can you create AWSTAPE
>format on the P/370 or OS/2?

I don't have either P/370 or OS/2 anymore; I would have to figure out AWSTAPE
format too.  I was hoping that the virtual disk file format would be easy to
figure out and go directly there.  My OS does have the capability of being
IPLed from tape, and can even mount the next tape file as a R/O file system
-- but why go through that relatively inconvenient intermediate step?

Michel.



Fri, 29 Aug 2003 23:31:07 GMT  
 OS for IBM 370

Quote:



><snip>
>>I have a 136M file called hercules.tgz that I got from a colleague who uses
>>hercules under Linux on his laptop (with OS/MFT), but haven't had time to
>>look at it, and I'm not sure I have a machine on which I could use it.  (I
>>have AIX on PowerPC and NT4 on Intel; at home I have Win98.)

>The versions change pretty quickly, and if you have had that one for a few
>weeks,
>it's out of date :).  WRT the other platforms you mention, Volker Bandke has
>a
>Win32 distribution (binaries, easy as pie).  I think there is an AIX make
>file
>around somewhere, too.  See www.egroups.com -- although Yahoo has taken
>over egroups, so you have to register blah blah.  The group name is
>Hercules-390.

>Also at www.conmicro.cx if you just want the files.

><snip>

>>  The PS/2 still has OS/2 on it, and when EM/370 is up and
>>  running, the PS/2 is still counting its memory and won't even start to
>>  boot OS/2 until about a minute later.  OS/2 finally comes up 5 minutes
>>  after that -- at which point YMS can talk to it if Chris wants to access
>>  some OS/2 files, for example.)

>Oh yes, there's an OS/2 version around too.

>If you want to create a virtual disk with YMS on it, can you create AWSTAPE
>format on the P/370 or OS/2?

OS/2 version of Hercules?!?  Where???

Dave

P.S. Standard Disclaimer: I work for them, but I don't speak for them.



Fri, 29 Aug 2003 23:25:39 GMT  
 
 [ 26 post ]  Go to page: [1] [2]

 Relevant Pages 
 

 
Powered by phpBB® Forum Software