Success in Compiling Nsys Kernel

Warren Toomey wkt at henry.cs.adfa.edu.au
Fri Jan 15 15:20:12 AEST 1999


In article by Efton Collins:
> I wonder how long it has been since that version of the kernel ran? Could be
> 25 years. Surely that will now be the earliest bootable kernel bar none. It
> must give Ken and Dennis a smile.
> 
> It is nice to see such interesting things continue to find their way into
> the archive. With the help of so many of the pioneers PUPS is fulfilling its
> charter very well indeed.
> 
> E-

Hi Efton. I had been keeping Dennis informed of my progress, and a few
days ago he passed on some email from Bob Keys:

    [Dennis wrote:]
    Keys said (when I mentioned your tries)

     > Ohhh, neato!  Let us keep fingers crossed, knock on wood 3 times,
     > cow-tow as appropriate, rub the rabbit's foot, throw salt before
     > the sumo ring, .... and anything else?.....(:+}}....

Dennis then went on to suggest some debugging ideas, when I was stuck:

    Astonishing.  When booting it might be best to start
    with an init that just does
      open(something);
      open(something);
      write(1, "Hello\n", 6);

    It might even be appropriate to try first with just  abort();
    to see if /etc/init can be read,

He must be out today, because I haven't got a reply back from my email
indicating success.

The `nsys' files were dated Jan 22, 1973. I definitely wanted to get the
kernel working by Jan 22, 1999 so that it was only 25 years ago, not 26!

I've also made some notes about the differences between `nsys' and V5,
attached below. Thanks for your encouraging email.

Cheers,
	Warren

	Differences in available syscalls between `nsys' and V5.
	========================================================

Syscalls in `nsys' but not in V5:
---------------------------------

        1, &quit,                       /* 26 = quit */
        1, &intr,                       /* 27 = intr */
        1, &cemt,                       /* 29 = cemt */
        1, &ilgins,                     /* 33 = ilgins */
        1, &fpe,                        /* 40 = fpe */

                These deliver signals QUIT, INTR, EMT, INS or FPE
                to the pid in arg0. Any user can send these signals.

        0, &prproc                      /* 63 = special */

        For each of the 50 entries in the proc array, if there is
        a valid process entry there, print the array index and the
        following fields from the proc structure:

                p_stat, p_flag, p_pid, p_ppid,
                p_addr, p_size, p_wchan, p_textp

Syscalls in V5 but not in `nsys':
---------------------------------

        0, &getpid,                     /* 20 = getpid */
        1, &smdate,                     /* 30 = smdate */
        0, &nice,                       /* 34 = nice */
        0, &pipe,                       /* 42 = pipe */		!!!
        4, &profil,                     /* 44 = prof */

Other Differences
-----------------

        /* 21 = mount */ has 2 arguments in `nsys', 3 in V5
        /* 37 = kill */  has 0 arguments in `nsys', 1 in V5



More information about the TUHS mailing list