On 2005-Nov-14 10:45:13 -0500, Brantley Coile <brantley(a)coraid.com> wrote:
>> This is fairly wasteful of RAM. Keep in mind that V6 cannot page -
>> a process is either entirely in memory or entirely on disk. If you
>> limit yourself to 640K RAM, you are probably restricting yourself
>> to about 6 resident processes. And swapping means moving 64K of
>> data to/from disk.
>
>true, but your numbers are a bit off. 640k / 64k = 10 not 6.
I realise that.
> the kernel will take only 2, so you should have 8.
I was assuming split I+D, with the data segment fixed at 64K. This
means that you have (64K + code) per process. If you have code plus
data in 64K then you can fit more, but I think that was getting to
be a squeeze even on V6. (And would definitely write off something
like 2BSD).
>the mit x86 stuff would be where i'd start. i haven't looked to see
>if you need to tweak the assignment operators to avoid having
>to s/=+/+=/, but it might already be done.
Given an open-source compiler, it would be fairly easy to retrofit the
=+ operators into the lexer. (Probably easier than cleaning up the
code). The alternative is to start with something later (eg 2BSD) but
code quality then becomes far more of an issue (because 2BSD tends to
push the I-space limits in lots of areas).
>it's all 16 bit stuff: port of PCC, assembler and loader.
The x86 instruction set and registers are nothing like as regular and
orthogonal as the PDP-11. In particular, there are _no_ general
purpose registers - every register has has a particular purpose and
either you need to do data-flow analysis to work out what register to
load something into, or you (basically) give up and load from memory
as needed. You could port PCC but this would be much more difficult
than (say) a M68K port. You'd probably need a fairly decent peep-hole
optimiser to get good results.
Wesley Parish mentioned bcc and OpenWatcom. I looked into the former
and it's probably the best starting point (though, with due respect to
BDE, the code it generates could be better). Assuming that Unix fits
into the C subset implemented by bcc, you'd be better off spending the
effort on improving bcc than porting PCC. At the time I looked,
OpenWatcom was either still vapourware or not self-hosting.
>an enjoyable discussion. wish i had time to work on it.
Agreed.
--
Peter Jeremy
This email may contain privileged/confidential information. You may not copy or disclose this email to anyone without the written permission of the sender. If you have received this email in error please kindly delete this message and notify the sender. Opinions expressed in this email are those of the sender and not necessarily the opinions of the employer.
This email and any attached files should be scanned to detect viruses. No liability will be accepted by the employer for loss or damage (whether caused by negligence or not) as a result of email transmission.
I've thought, since there doesn't seem to be a working "V6on286", maybe I
should try porting it myself though I'm not very familiar with the Ancient
Unix sources or with the ancient C used. The oldest compiler I've got
that will compile is Turbo C++ 1.01 from 1990 and it's an ANSI C compiler.
(I do think it'll compile late K&R, but there's weirdnesses in the C used
by V6.)
Having an emulator like QEMU handy is a nice plus. I could prolly build
everything onto a 1.44 MB disk image and boot it in emulation. I'm
thinking I'd want to create tools for transferring files into and out of
disk images, and a bootloader to put on the first sector of the disk
(though, 512 bytes is awful small...)
Any ideas?
-uso.
Brantley Coile:
i don't know that it's a squese. a version of v6 ran on an lsi-11
with very little ram.
=======
If you're thinking of Mini-UNIX, it's a bit of a stretch to call
it `V6 running on an LSI-11.' I think the original LSI-11 had no
memory management; in any case, Mini-UNIX didn't use it, but was
a throwback to the early days of the PDP-7 and the 11/20 (neither
of which had memory management). Only one process could be in
memory at a time; to let another process run meant swapping the
first completely out of memory.
I believe there's a paper in the 1978 all-UNIX issue of the Bell
Systems Technical Journal about Mini-UNIX or its immediate
predecessor. As I recall, there were additional compromises;
e.g. the shell quietly translated
a | b
to
a >tempfile; b <tempfile; rm tempfile
because that was much faster than the thrashing that often
resulted from trying to let a and b run concurrently.
Mini-UNIX might be a simpler starting point to get a system
running on a 286. Just don't think of it as full V6; it's not.
Norman Wilson
Toronto ON
Hi all,
here at freaknet medialab we made some images of our
RL02 disk packs with RT-11 and GAMMA-11 software
(specific for a Nuclear Camera, this pdp-11 was used
for medical exams) :)
those images are very funny, we can use them under
simh emulator! :)
So, now that we have the backups, we're wondering about
installing UNIX in this pdp11/34.
what can we install? any hint ?
please help! :)
p.s. something about our restoration and the disk image of
our rt-11 system is online at http://zaverio.net/pdp11, under
the "stuff" directory. :)
--
[ asbesto : IW9HGS : freaknet medialab : radiocybernet : poetry ]
[ http://freaknet.org/asbestohttp://papuasia.org/radiocybernet ]
[ http://www.emergelab.org :: NON SCRIVERMI USANDO LE ACCENTATE ]
[ *I DELETE* EMAIL > 100K, ATTACHMENTS, HTML, M$-WORD DOC, SPAM ]
Sorry for my previous aborted message. I'm using
webmail which is an alien sort of thing to me.
What I wanted to say is that you may as well let them
'telnet' to the PDP11-2.11BSD through SSH.
I mean, you may have the PDP behind a firewall with
all
ports blocked, and another machine (linux, *bsd,
whatever) with SSH open.
Then all that would be needed is that your friend uses
an
SSH tunnel to the telnet port of the PDP.
For instance, let's say you open an account for your
friend on the intermediate machine: s/he may use this
machine to forward one of his local ports (say 2300)
to
port 23 on the PDP11 system (say
pdp11-2bsd.example.net) as
ssh -L 2300:pdp11-2bsd.example.net:23 hop.example.net
This would forward his local port 2300 to port 23
of pdp11-2bsd.example.net, using the host
hop.example.net as an intermediate SSH step.
Then all that your friend needs to do is issue a
telnet localhost 2300
and that would connect him to the telnet port of the
PDP11 using SSH.
If s/he uses windows, most SSH clients have a port
forwarding tool that makes introducing this
information
very easy.
So, to sumamrize:
- you open an account on an intermediate host that has
SSH
- your friend creates a tunnel from his own computer
to
the PDP using the intermediate host with his
user/pswd.
- your friend telnets his/her own local computer at
the
chosen port
All communications will be encrypted between his/her
computer and the intermediate host, and go in the
clear
between the intermediate host and the PDP.
If the intermediate host is behind a firewall, then
that would be no problem.
j
______________________________________________
Renovamos el Correo Yahoo!
Nuevos servicios, más seguridad
http://correo.yahoo.es
Hello from Gregg C Levine
Still working on my ideas regarding E11 and the usual OSes for the
PDP-11. Would anyone of you know when networking via Ethernet was
added to the capabilities of regular UNIX? It seems to be available in
the releases of BSD that I've explored.
For those that missed it, I can reiterate my plans concerning the
Linux variety of E-11, and those operating systems, but only upon
request.
---
Gregg C Levine hansolofalcon(a)worldnet.att.net
---
"Remember the Force will be with you. Always." Obi-Wan Kenobi
hi all:
currently i am reading the mit 6.828 course, and i am wondering
how to creat a rk05 image from the ground up?just like the one mentioned in
the course v6root v6src v6doc?
thanks in advance~
------------------------------
lucky buggy
Hello from Gregg C Levine
One of my less then familiar with UNIX and its relatives, friend,
wants to explore a system running UNIX.
Probably BSD for the PDP-11 I should think. Since I view telnet, from
the Internet to me anyway, as a security risk can someone check this
assertion?
The last version of BSD for the PDP-11 that I am aware of, and have
seen on the site, 2.11 does not have the capability to run SSH,
because it does not have the ability to compile it from source. SSH
wasn't added to the operating systems that we use until much later. I
freely admit that part of my assertion may not be correct however.
(Regarding the ability to build SSH natively.)
For example, I am aware that the BSD base, such as FreeBSD, and
NetBSD, and OpenBSD, all have SSH included. It certainly is in Linux.
What I am planning on doing is configuring the Linux version of E11 to
run the chosen BSD pointing its Ethernet connection, to the one my
Linux box in question uses. And have a second one also running the
same release work as a gateway for the first. You'd run SSH to the
gateway, login as a "guest" and via an appropriate password, and then
telnet to the product. Of course to risk damage to the baseboard
Ethernet connection, I'd probably put a cheap card in the computer,
and run that over to my router. Pointing it of course to the
E11instance.
Warren, just for the sake of double checking my facts, are the
instructions regarding the BSD family for the PDP-11 up to date?
---
Gregg C Levine hansolofalcon(a)worldnet.att.net
---
"Remember the Force will be with you. Always." Obi-Wan Kenobi
Guys,
Thanks for the help with my dzq11 problem - I'm glad to see that there are
still people around running PDP-11 Unix. Now that I've actually started
using my 11/73, I've run into several things that I just don't know how to
fix.
Like this one - I built a non-networking kernel (my normal /unix kernel
has DEQNA and TCP/IP support) using the NONET example that comes with
2.11BSD. No particular problems there.
Since I don't actually want to overwrite my /unix file, I can't use "make
install" to install the nonet kernel, and so I just say "cp unix /nonet" and
then chmod /nonet to set the protections. This might have been my mistake,
but I don't know any other way to do it without trashing my real /unix
kernel.
To boot the nonet kernel, at the ":" boot prompt I type "nonet". All is
well until we get up to init, and then it says
autoconfig: /unix is not the running version
init: configuration setup error
And then I'm stuck in single user mode with no devices configured. Not
especially useful.
Is my mistake in just "cp"ing the nonet kernel, or is there some
limitation on booting files other than /unix?
Thanks again,
Bob Armstrong