Theo Kills Your Pony
12 Aug 2006A few things.
First, Arlo is doing well:
Second, there's this.
Third, work has started on the world's most useless project: Theo Kills Your Pony, the aggressively destructive Unix-like system. (Thanks to Zen Render for the name!). I'm attempting to do things semi-right, and that means I've had to learn a bit more about how OpenBSD (and BSD in general) is put together.
Like what? Well, like the name for example. The OS is called TKYP, so
that's what I want to show up everywhere. I figured I would start with
the output of uname(1)
, since that's the most Thing is, this took a
surprisingly long time to track down.
uname(1)
is, as you might expect, a simple wrapper around the
uname(3)
libc function, which is in turn a pretty simple wrapper
around a sysctl
call. Through paths that, frankly, I'm still
tracking down, you finally get to sys/conf/newvers.sh
-- a simple
shell script that creates a file called vers.c
and sets the
variables ostype
, osrelease
and osversion
within it. (Paths are
relative to /usr/src
, BTW.) After that, the different
sys/arch/*/conf/Makefile
s compile it --
sys/arch/i386/conf/Makefile.i386
, for example -- and then include it
in SYSTEM_LD
. After that, <handwave>I think these values are
simply returned by sysctl(3)
</handwave>.
Okay, so now I've tracked that down; I rebuild and install the kernel, then reboot. (QEMU rocks for this sort of thing.) And yay, it works:
-bash-3.1# uname -a
TKYP tkyp-qemu 0.1 GENERIC#0 i386
Now to rebuild world, right? Wrong: first, Apache kept refusing to
compile with an error about not being able to find -ldbm
. Trolling
through the mailing lists only found one message mentioning a similar
problem, and no reply. The CVS tree showed that, since 3.9, a couple
minor changes had been committed to the httpd Makefiles mentioning
that OpenBSD has used its own dbm library for a while. I tried making
a few changes, but couldn't get it to work. So I cheated: I removed
httpd
from usr.sbin/Makefile
and moved on with my life.
Next problem: the GNU configure tools haven't heard of TKYP. (I'm
sure I emailed RMS about this...). gnu/usr.bin/binutils
is the
first thing compiled in world
that uses these tools, so that's where
I'm looking first. A little judicious editing of config.guess
(which
guesses the OS and architecture), configure
(which figures out what
needs to be done for the OS/arch) and config.sub
(which says it's a
"configuration validation subroutine script"; I'm guessing a basic
sanity check) takes care of thing. They're fairly simple changes, as
it's pretty much just a matter of copying the OpenBSD entries.
And all this before I can even throw in anything nasty! I got big plans, of course -- SIGKILL replaced with SIGHUP, rot13 encryption for passwords, and the RTM worm pre-installed -- but I haven't even had a buildworld finish yet. Plus, there's the cautionary tale of MicroBSD to keep in mind...whatever else I do, I wanna make sure I piss off Theo for the right reasons. :-)
(Incidentally, the email to root is in etc/root/root.mail
;
etc/Makefile
installs it in the right place. I thought for sure it'd
be in share
for some reason. newvers.sh
mentions this file, plus a
few others, that need to be changed to reflect new version numbers.)
4 Comments
From: jurgen
12-August-2006-20:07:15
Why are you trying to piss off Rizzo de Radt? Did he kill your pony at some point in time?
From: Saint Aardvark
13-August-2006-06:18:30
I still can't speak of that terrible night in November...
From: Zen Render
13-August-2006-07:37:20
I like MakeWorld, which is pretty Godlike, but I still think my fave console command has to be the "Declare new epoch" command that was used to get rid of servers "Distributing synthetic time."
ROT13? Hah, in these days of faster processors and distributed processing, you have to go at least ROT52 to even bother leaving plaintext.
From: Gekitsuu
15-August-2006-03:05:25
For sure if you're going for an insecure/hostile OS then you would have to immediately post the username@hostname to every alt.* newsgroup on Usenet.
Add a comment:
Name and email required; email is not displayed.
Related Posts
QRP weekend 08 Oct 2018
Open Source Cubesat Workshop 2018 03 Oct 2018
mpd crash? try removing files in /var/lib/mpd/ 11 Aug 2018