Posts

Showing posts from 2016

It's Called the PMC20

Image
Well, it's coming together. After 9 months of building, rebuilding, and writing a lot of code, I have a working minicomputer. Overview PMC-20 (Personal Mini Computer) is the minicomputer I designed. It is a 5 processor design with 20 CPU cores. It can easily handle 64 simultaneous users running MPE, the operating system I wrote. The operating system is built on the best of the commands I've used from Prime Computer's Primos, DEC's RSTS, unix, GNU Linux, and some that I always thought should be there. The operating system is a set of commands, a custom shell, a specialized directory structure and background processes that ride on top of a Linux kernel. The kernal handles the hardware, MPE does the rest. MPE, or Multi user Programming Environment, is written as a typical 1980's minicomputer/mainframe operating system. It has job control, a multi user accounting package, about 50 built-in commands in the shell which allow the user to create, edit, delete

RF Testing the computer

Computers of all kinds generate RF energy. This one is no exception. I have the computer sitting on top of some radio equipment. Everything has a ground wire tied to a 20 point buss which goes to the service entrance ground where an 8 foot ground stake is driven in Earth. It's about 40 feet from the equipment. With all the screws tightened on the case, very little noise gets into the receivers (10khz thru 490mhz). In fact with the antennas connected, I really can't hear any interference. I thought there would be more. However, when the amplifier (Ameritron AL-80B) is running in CW mode on 14 mhz, PI1 (primary computer module) gets confused. Not surprising. The computer is sitting on top of the amplifier running 900W out. I put a single ferrite bead on the hdmi cable coming into the computer (the RF output cable is inches from the hdmi cable) and problem solved! I'm really surprised about this. Also what I'm surprised about is the TP-Link router is not affected

That darned power-off reset

When I set up my mini-computer, I made a few hardware choices due to my familiarity with the Linux operating system. My x86 boxes had uptimes of hundreds of days. With Raspian Jessie, and Raspbian in general, my uptimes are in days. Sometimes not even that. There are A LOT of bugs in Raspbian. So many that I need to change to something completly different, or something a lot older and more stable. My computer has a key switch for main power to the internal 5 VDC supply. The switch turns off/on the AC feeding the supply. I wired each Raspberry Pi to a power buss for the 5v. I didn't add any switches so that I could power up/down the computer modules seperately. And as long as I don't use the computer, it works just fine that way. I use PI1 for development in writing software since running at 1.25 GHz it's the fastest of the 5. But when something goes wrong, I lose connectivity to the rest, and many times it won't even shut down. Just gives me error messages that in

Customizing the user interface for my Mini-Computer (updates 9/2016)

More on my Mini-Computer   One of the requirements of having a time-share computer system is having a user interface that makes everything seamless. One point to log in, and commands that allow tasks to be farmed out to the various processors with the user not having to deal with internal details. For example, when the user type print [filename] , he/she shouldn't have to know that the print spooler is on processor 1 even though he is running a program on processor 3. Unix (and by default Linux) works very well for a lot of things. One of the things is does NOT do well is tie multiple processors together for many users. The Primos operating system, DEC's RSTS and a few others do a good job of it. They were written from the ground up as time share operating systems. DEC's RSX-11 was not. MS-DOS also was not. When a user connect to and types on a unix-based operating system, he/she does not actually talk to the operating system. There is a program called a shell tha

Hardware updates on my Mini-Computer (updated 9/2016)

Image
More on my Mini-computer I added some hardware. Here's why. When you have multiple processors, you need to have communications between them. In this case, when I want to start the pdp-11 program I ssh to the processor it runs on (pi5) and start the application. After that I telnet from a different box (thru the ethernet switch) to connect and do whatever. Question: what happens if the ssh connection goes away? For example, I need to reboot the computer the ssh session was started on. Well, then the pdp-11 application dies and corrupts the pdp-11 hard disk. Bad ju-ju. So. What I need is a dedicated console attached just for enabling the pdp computers (pdp-11, pdp-8). How best to do that? I could use a serial console. I got rid of my ADM-31 some time ago and the last time I had a Soroc IQ120 to use was in 1981. They are getting hard to find. Also they are kinda big. What I did is hook up a small car video display used for car entertainment/back-up cameras. This connects

An example using mpich in a cluster (updated 10.2016)

Here is a C program that shows an example of setting up a different task for each processor core in a cluster of computers. It's very simple but shows the minimum needed to be useful. /* domath.c - test of mpich on multi-processor system k theis 3/31/2016 to run: mpicc -o domath domath.c -lm mv domath /mnt/nfs/dist/domath cd /mnt/nfs/dist/ mpiexec -n 6 -f machinefile ./domath make sure machinefile exists in /mnt/nfs/dist */ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <mpi.h> #define PI 3.141592654 int do_sin(void){ double n, res; FILE *sout; int err;     sout = fopen("sin.txt","w");     if (sout == NULL) return 1;     fprintf(sout,"Sin Table\n\n");     err = system("/bin/uname -a > sin_s.txt");    // show machine this is on     n = 0.0;     while (n <= PI/2.0){         res = sin(n);         fprintf(sout,"\nN: %f    Res: %f",n*(90.0/(PI/2.0))

Setting up a cluster of Raspberry Pi's

My mini-computer is basically a cluster of small computers running specialized software that I wrote. I saw a lot of basic information on setting up a cluster but no one really gave details. So I will. I'll add to this as needed, but here is a start: ############### Setting up a Cluster ############### This is assuming you are using a set of raspberry-pi computers. I use the current (2/20/2016) operating system Jessie for the Host computer, and Jessie-lite for the Client computers. The difference is Jessie-lite does not have a lot of un-needed packages and since the are headless, they also do not need x-windows etc. NOTE: it stopped working for me on or about 10/2016. I found I needed to add the package: mpi-default-bin on all processors except my primary. Even after I did the sudo apt-get update. In addition, the structure of the machine file changed as did the command syntax. read the man pages. You will have at a minimum of two computers: the Host and a Client

A description of my Mini-Computer

Image
My mini-computer. I've always wanted a mini-computer. So I made one. For those of you born after about 1975 you might think a mini-computer is just a small computer. So, a little history. The first computers were huge and full of vacuum tubes. Many took up an entire building. Later, they got smaller. IBM made some and they were called Main Frames. They were leased to big corporations for thousands of $$ every month. No one could afford to buy them. Main Frame computers are still used for large companies like airlines and the government. In the early to mid 1960's along came DEC (Digital Equipment Corporation). They made small computers that companies could actually buy. They were the price of a small house, but they could still be bought. One of the first really useful Mini's was DEC's PDP-8. It had a single processor, 4K of magnetic core memory, and some basic I/O including a front panel to set up the initial boot program. They had paper tape readers

Landfall.net now directs here

I let my landfall.net domain lapse. Frankly it was becoming a pain to manage and cost $$ for no return. This is an easier way to create & update content and it's less hassle on my end.