The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] merry christmas
@ 2016-12-25  3:16 Larry McVoy
  2016-12-25 21:44 ` Nick Downing
  0 siblings, 1 reply; 5+ messages in thread
From: Larry McVoy @ 2016-12-25  3:16 UTC (permalink / raw)


As Neil Young said when he played with the band, it's been of one of
the great joys of my life to be here with you (yeah, I paraphrased).

As a kid who wanted to be at Bell Labs, a student who got the troff
manual and used it for the next 30 years, a student who got an account
on the vax 11/750 that had the BSD source on it and learned so much,
I just want to thank all of the Bell Labs people for being here and
Warren for putting this list together and for Unix teaching me so much.

If I could have one thing for Christmas it would be bwk joining the list.
I did some extensions to awk and asked him about it and he tarred up
~bwk/awk and sent it to me.  I've got the awk source and the book source
in english and french (I think).  Brian is awesome, it would be cool to
have him on this list.

All that said, I super grateful to be here amongst the people who were 
there when you got an image from Ken.  You guys are lucky.

--lm


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [TUHS] merry christmas
  2016-12-25  3:16 [TUHS] merry christmas Larry McVoy
@ 2016-12-25 21:44 ` Nick Downing
  2016-12-25 22:21   ` Steve Nickolas
  0 siblings, 1 reply; 5+ messages in thread
From: Nick Downing @ 2016-12-25 21:44 UTC (permalink / raw)


Yeah :)

I'm only an occasional contributor to the list, more of a lurker really
since I was pretty busy this year. Well I promised a guy on the list some
Unixy stuff that I had and have been gradually going through it and putting
it on bitbucket but have not had time to write it all up yet.

But I wanted to jump in and say something to the new people who joined the
list owing to whatever was the recent media coverage we had. Welcome and
all that. But IT ISN'T NECESSARY to have been around at the inception of
Unix to get into it and to learn about the retro flavours, come up to speed
in PDP-11 asm or learn about the old filesystems or whatever it is that
floats your boat :)

Personally when I discover something AWESOME I immediately want to take it
apart and learn EVERYTHING about it. For me in the case of Unix, I quit my
job in about 2005 and had about 3-6 months of downtime while considering my
next moves, I had next to no money so I could not really leave the house,
but I had a houseful of computers and a 33.6k modem so I set myself the
task of learning about this mysterious Linux thing. I downloaded Slackware
4.0 onto a set of floppies and followed the Linux From Scratch instructions
to build and bring up my own Linux flavour from that.

This was very educational and it highlights the main point of my post which
is you MUST GET YOUR HANDS DIRTY, reading ancient source code is fine but
one doesn't retain much info unless one reads for a purpose (why the hell
won't this RK05 boot my system etc). So anyway a lot of things still
remained a bit mysterious after my LFS adventures since they are that way
for historical reasons, and I found myself bringing up earlier Unices on
simh to take a peek and joining this list etc.

But as I said one does not retain much unless one has a purpose and
probably the project that taught me the most was bringing up someone's
hobby Unix V7 clone on a cash register motherboard from the equipment I
used to sell in my day job. The software is called UZI (Unix Z80
implementation). I remembered waaay way back when I was pottering around
with CP/M and enhancements like ZCPR3 I saw this mentioned in a newsgroup
or similar, with a description that it runs Unix in 64k by loading the
kernel in first 32k and a process in second 32k and uses "total swapping"
i.e. it multitasks or implements child processes by writing the second 32k
to a swapfile on floppy disk and loading it back in later. This sounded
very intriguing and I wanted to try it out. So, years after reading this
newsgroup post I obtained it and compiled it (using the IAR compiler we
used for cash register development) for my cash register.

Long story short the thing was soon utilizing various kinds of bank
switched memory available in this cash register (which had a Z180 CPU and
hence behaved like a Z80 with an MMU and other integrated peripherals) and
had a network stack from Phil Karn's NOS, it had lots of communication
ports for barcode scanners, printers, modem etc and I had them running SLIP
and communicating with publicly available FTP servers, I used to use
mirror.aarnet.edu.au for testing and my cash register could download small
files.

I became frustrated with the limitations of both UZI and NOS and decided to
port 2.11BSD to the cash register as the next step, my goal was (a) make it
cross compile from Linux to PDP-11, (b) check it can build an identical
release tape through cross compilation, (c) port it to Z80 using my
existing cross compiler. Well I don't think I got all the way through this
ambitious programme before putting it aside and starting a new job but I
sure as hell learned a lot about building PDP-11 Unix. The buildsystem is
complicated and contains its share of hacks, but overall much simpler than
something like gnu's configure/make or cmake or etc.

Although I was not around for early Unix (was probably a 10yr old taking
apart an Apple II and trying to learn 6502 code without the benefit of an
assembler in 1985 when stuff like SVR4 was popular) I probably know as much
about its internals and development environment as many people here, due to
having got my hands dirty, albeit 30 years later. In fact I FEEL LIKE I WAS
THERE. So my suggestion to newbies is, get your simh on, and tackle some
interesting project such as reconstructing an early source for something
from the fragmentary surviving pieces, backporting some useful tool to an
earlier Unix, or whatever. Just get your hands dirty and it will be an
infinitely rewarding experience. Because Unix is AWESOME. Retrocomputing is
AWESOME. Simulators are AWESOME. :)

cheers, Nick

On Dec 25, 2016 2:17 PM, "Larry McVoy" <lm at mcvoy.com> wrote:

> As Neil Young said when he played with the band, it's been of one of
> the great joys of my life to be here with you (yeah, I paraphrased).
>
> As a kid who wanted to be at Bell Labs, a student who got the troff
> manual and used it for the next 30 years, a student who got an account
> on the vax 11/750 that had the BSD source on it and learned so much,
> I just want to thank all of the Bell Labs people for being here and
> Warren for putting this list together and for Unix teaching me so much.
>
> If I could have one thing for Christmas it would be bwk joining the list.
> I did some extensions to awk and asked him about it and he tarred up
> ~bwk/awk and sent it to me.  I've got the awk source and the book source
> in english and french (I think).  Brian is awesome, it would be cool to
> have him on this list.
>
> All that said, I super grateful to be here amongst the people who were
> there when you got an image from Ken.  You guys are lucky.
>
> --lm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20161226/ff6e5788/attachment.html>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [TUHS] merry christmas
  2016-12-25 21:44 ` Nick Downing
@ 2016-12-25 22:21   ` Steve Nickolas
  2016-12-28  7:14     ` Peter Jeremy
  0 siblings, 1 reply; 5+ messages in thread
From: Steve Nickolas @ 2016-12-25 22:21 UTC (permalink / raw)


On Mon, 26 Dec 2016, Nick Downing wrote:

> I'm only an occasional contributor to the list, more of a lurker really
> since I was pretty busy this year. Well I promised a guy on the list some
> Unixy stuff that I had and have been gradually going through it and putting
> it on bitbucket but have not had time to write it all up yet.

I'm mostly a lurker myself.

> But I wanted to jump in and say something to the new people who joined the
> list owing to whatever was the recent media coverage we had. Welcome and
> all that. But IT ISN'T NECESSARY to have been around at the inception of
> Unix to get into it and to learn about the retro flavours, come up to speed
> in PDP-11 asm or learn about the old filesystems or whatever it is that
> floats your boat :)

QFT

> Personally when I discover something AWESOME I immediately want to take it
> apart and learn EVERYTHING about it. For me in the case of Unix, I quit my
> job in about 2005 and had about 3-6 months of downtime while considering my
> next moves, I had next to no money so I could not really leave the house,
> but I had a houseful of computers and a 33.6k modem so I set myself the
> task of learning about this mysterious Linux thing. I downloaded Slackware
> 4.0 onto a set of floppies and followed the Linux From Scratch instructions
> to build and bring up my own Linux flavour from that.

I got some exposure in the mid-late 90s on a Solaris shell before 
experimenting with Linux.  Actually, I installed DJGPP on one of my PCs so 
I got a basic feel for how the command line stuff worked even before I had 
Linux operational on my own systems.

> This was very educational and it highlights the main point of my post which
> is you MUST GET YOUR HANDS DIRTY, reading ancient source code is fine but
> one doesn't retain much info unless one reads for a purpose (why the hell
> won't this RK05 boot my system etc). So anyway a lot of things still
> remained a bit mysterious after my LFS adventures since they are that way
> for historical reasons, and I found myself bringing up earlier Unices on
> simh to take a peek and joining this list etc.

Knowing about the history of Unix certainly makes some of the decisions in 
Linux make more sense.

> But as I said one does not retain much unless one has a purpose and
> probably the project that taught me the most was bringing up someone's
> hobby Unix V7 clone on a cash register motherboard from the equipment I
> used to sell in my day job. The software is called UZI (Unix Z80
> implementation).

I played around with a fork of UZI on an MSX emulator once.  Interesting 
stuff, that.

<snip>

> Long story short the thing was soon utilizing various kinds of bank
> switched memory available in this cash register (which had a Z180 CPU and
> hence behaved like a Z80 with an MMU and other integrated peripherals) and
> had a network stack from Phil Karn's NOS, it had lots of communication
> ports for barcode scanners, printers, modem etc and I had them running SLIP
> and communicating with publicly available FTP servers, I used to use
> mirror.aarnet.edu.au for testing and my cash register could download small
> files.
>
> I became frustrated with the limitations of both UZI and NOS and decided to
> port 2.11BSD to the cash register as the next step, my goal was (a) make it
> cross compile from Linux to PDP-11, (b) check it can build an identical
> release tape through cross compilation, (c) port it to Z80 using my
> existing cross compiler.

A Z180 is powerful enough to run 2.11BSD? o.o;

<snip>

> Although I was not around for early Unix (was probably a 10yr old taking
> apart an Apple II and trying to learn 6502 code without the benefit of an
> assembler in 1985 when stuff like SVR4 was popular) I probably know as much
> about its internals and development environment as many people here, due to
> having got my hands dirty, albeit 30 years later.

I was messing around on the Apple //e back then myself.  Didn't know 
anything about ASM until many years later (I was *5* back then), but I 
probably could have learned it since the //c and the later version of the 
//e had built-in mini-assemblers.

> In fact I FEEL LIKE I WAS THERE. So my suggestion to newbies is, get 
> your simh on, and tackle some interesting project such as reconstructing 
> an early source for something from the fragmentary surviving pieces, 
> backporting some useful tool to an earlier Unix, or whatever. Just get 
> your hands dirty and it will be an infinitely rewarding experience. 
> Because Unix is AWESOME. Retrocomputing is AWESOME. Simulators are 
> AWESOME. :)

Heck, even v7x86 is probably enough to learn with.

-uso.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [TUHS] merry christmas
  2016-12-25 22:21   ` Steve Nickolas
@ 2016-12-28  7:14     ` Peter Jeremy
  2016-12-28 12:24       ` Nick Downing
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Jeremy @ 2016-12-28  7:14 UTC (permalink / raw)


On 2016-Dec-25 17:21:31 -0500, Steve Nickolas <usotsuki at buric.co> wrote:
>On Mon, 26 Dec 2016, Nick Downing wrote:
>> I became frustrated with the limitations of both UZI and NOS and decided to
>> port 2.11BSD to the cash register as the next step, my goal was (a) make it
>> cross compile from Linux to PDP-11, (b) check it can build an identical
>> release tape through cross compilation, (c) port it to Z80 using my
>> existing cross compiler.
>
>A Z180 is powerful enough to run 2.11BSD? o.o;

I suspect shoe-horning 2.11BSD onto a Z180 would be difficult - 2.11BSD
on a PDP-11 requires split I+D and has kernel and userland in separate
address spaces.  Even with that, keeping the non-overlay part of the
kernel in 64KB is difficult.  Equivalent Z180 code is going to be much
larger than PDP-11 code.

I'd be happy to be proved wrong.

-- 
Peter Jeremy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20161228/21e03861/attachment.sig>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [TUHS] merry christmas
  2016-12-28  7:14     ` Peter Jeremy
@ 2016-12-28 12:24       ` Nick Downing
  0 siblings, 0 replies; 5+ messages in thread
From: Nick Downing @ 2016-12-28 12:24 UTC (permalink / raw)


I will let you know when I get it working :) It's not a current focus,
but I will return to it someday. In the meantime, I'm putting it on
bitbucket, so others will be able to pick it up if they wish. However,
this also isn't my current focus, it's there, but it's not documented.

The IAR compiler on the Z180 supports a memory model similar to the
old "medium" memory model that we used to use with Microsoft or Turbo
C on DOS machines, that is, multiple code segments with a single data
segment. Yes, the Z180 compiled C code is larger than the PDP-11
compiled C code, but luckily you can have multiple code segments,
which you cannot (easily) have on the PDP-11.

Unfortunately code and data segments share the same 64 kbyte logical
address space, so what I did was to partition the address space into 4
kbytes (always mapped, used for interrupt handlers, bank switching
routines, IAR compiler helper routines, etc), 56 kbytes (kernel or
current process data and stack) and 4 kbytes (currently executing
function). The currently executing function couldn't be more than 4
kbytes and couldn't cross a physical 4 kbyte boundary due to the
hardware mapping granularity, but this was acceptable in practice.

I got the Unix V7 clone working OK under this model and then added the
networking, so although it was a bit of a dogs breakfast, it proves
the concept works. My memory management left a fair bit to be desired
(too much work to fix) however I think porting 2.11BSD would solve
this problem since it works in the PDP-11 under split I/D, which has
similar constraints except the 4 kbyte code constraint.

My understanding is 2.11BSD is actually a cut down 4.3BSD running on
the HAL from 2.xxBSD, I would like to audit each change from 4.3BSD to
make sure I agree with it, so essentially my project would be porting
4.3BSD rather than 2.11BSD. But I'd take the networking stack and
possibly a lot more code from 2.11BSD, since it is simplified, for
instance the networking stack does not use SYN cookies.

cheers, Nick

On Wed, Dec 28, 2016 at 6:14 PM, Peter Jeremy <peter at rulingia.com> wrote:
> On 2016-Dec-25 17:21:31 -0500, Steve Nickolas <usotsuki at buric.co> wrote:
>>On Mon, 26 Dec 2016, Nick Downing wrote:
>>> I became frustrated with the limitations of both UZI and NOS and decided to
>>> port 2.11BSD to the cash register as the next step, my goal was (a) make it
>>> cross compile from Linux to PDP-11, (b) check it can build an identical
>>> release tape through cross compilation, (c) port it to Z80 using my
>>> existing cross compiler.
>>
>>A Z180 is powerful enough to run 2.11BSD? o.o;
>
> I suspect shoe-horning 2.11BSD onto a Z180 would be difficult - 2.11BSD
> on a PDP-11 requires split I+D and has kernel and userland in separate
> address spaces.  Even with that, keeping the non-overlay part of the
> kernel in 64KB is difficult.  Equivalent Z180 code is going to be much
> larger than PDP-11 code.
>
> I'd be happy to be proved wrong.
>
> --
> Peter Jeremy


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-12-28 12:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-25  3:16 [TUHS] merry christmas Larry McVoy
2016-12-25 21:44 ` Nick Downing
2016-12-25 22:21   ` Steve Nickolas
2016-12-28  7:14     ` Peter Jeremy
2016-12-28 12:24       ` Nick Downing

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).