It’s not unresolved symbols, but rather deleted bodies…
From 22 years ago:
Subject: Re: 386's UNIX kernel source
Date: 11 Jan 92 08:24:27 GMT
Richard Tobin (rich...@aiai.ed.ac.uk) writes:
: In article <LMJM.92Jan9173...@raquel.doc.ic.ac.uk> l...@doc.ic.ac.uk (Lee M J McLoughlin) writes:
: >I can't say for sure but in the second Berkeley networking release
: >there appears to be enough source for unix and enough 386 specific
: >code to actually get a system up and running.
: The following from kern_exec.c suggests otherwise:
: * Body deleted.
: return (ENOSYS);
: There are other similar functions. Also, the standalone stuff needed
: for bootstrapping is incomplete.
Routines which are thus missing from the kernel are:
acct(), sysacct(), execve() with friends, physio(),
minphys(), rminit(), rmalloc(), rmfree(), ptrace(),
procxmt(), profil(), cinit(), getc(), q_to_p(),
ndqb(), ndflush(), putc(), b_to_q(), nextc(),
unputc(), bufinit(), bread(), breada(), bwrite(),
bdwrite(), bawrite(), brelse(), incore(), getblk(),
geteblk(), allocbuf(), getnewbuf(), biowait(), biodone()
I have looked them up in the unix v7 sources, and they amount to
approximately 800 lines of code.
Some I cannot find there. They are:
minphys(), rminit(), rmalloc(), rmfree(), procxmt(), nextc(),
unputc(), bufinit(), allocbuf(), getnewbuf()
Do they really containt AT&T code, or were they just kicked out "by
In any case, unless there are more surprises, it should not be too
hard to rewrite these routines. Many are quite straightforward.
Most routines contain 10-20 lines of code. One only 2.
Some are ridiculusly simple. In fact, I wonder how they can be
rewritten to not be identical with the AT&T ones.
Now, I wonder, are these routines really identical to the Unix v7
routines, or are they modified by the BSD people?
That is, would it be possible to plug in the V7 routines, modify them,
and get it working, without having seen the actual bsd routines?
Internet: p...@compuram.bbt.se Fidonet: Per Lindqvist @ 2:201/332
So that is probably why it ‘works’ but doesn’t work. Oops.