OK, so here's what crazy computer geeks come up with when they're bored of just sitting in the subway and staring out of the window.
Web servers usually run on port 80. TCP/UDP ports range from 1 to 65535 (port 0 is reserved). You can run multiple web servers on different ports at the same time... Do you think what I think?
Well, first you need a web server (duh). I decided to use lighttpd, as it's said to be small and memory-efficient (which sounded pretty important given what I was trying to do). Apache would probably not be a good choice here. Mind you, I have not done any benchmarks at all, I'm just guessing...
$ apt-get install lighttpd
Then, I wrote a little shell script containing a loop, which invoked lighttpd on port 1, 2, 3, 4, ..., 65535. That's it ;)
#!/bin/bash
TMPDIR=/tmp
CONFFILE="server.document-root = \"/var/www/\"
index-file.names = ( \"index.html\" )"
for ((i = 1; i < 300; i = i + 1)) do
echo "+++ Starting web server on port $i"
echo $CONFFILE > $TMPDIR/lighttpd.conf
echo "server.port = $i" >> $TMPDIR/lighttpd.conf
/usr/sbin/lighttpd -f $TMPDIR/lighttpd.conf
rm -f $TMPDIR/lighttpd.conf
done
I'm sure this can be optimized a lot, but it's sufficient for now, and it works.
You can test any of the web servers by running "wget http://localhost:3556/" (for example). You can kill them all with killall lighttpd. If you already run some other daemons on some ports, you cannot start a lighttpd on the same port, so you'll end up with fewer than 65535 servers.
In case you try this on your hardware, make sure you have lots of RAM and lots of swap. Don't run this on production hardware. Feel free to post your experiences in the comments.
Note: This article is part of my Testing stuff with QEMU series.
From the Debian GNU/kFreeBSD port page:
Debian GNU/kFreeBSD is a port that consists of GNU userland using the GNU C library on top of FreeBSD's kernel, coupled with the regular Debian package set.
Q: Why would anybody want to do that?
A: Why not? [1]
So, after we have talked about that, let's start:
apt-get install qemu
wget http://glibc-bsd.alioth.debian.org/install-cd/kfreebsd-i386/20070313/debian-20070313-kfreebsd-i386-install.iso
qemu-img create -f qcow2 qemu_kfreebsd_i386.img 5G
qemu -boot d -cdrom debian-20070313-kfreebsd-i386-install.iso -hda qemu_kfreebsd_i386.img
ALT-F3. Do it.
At the end you must select "No" as you're told to do, then reboot via "Exit Install". You can then shutdown QEMU.
qemu -hda qemu_kfreebsd_i386.img
passwd
nano /etc/network/interfaces/etc/init.d/networking restartapt-get update && apt-get dist-upgradeapt-get install vim xorg icewm xterm
apt-get install kbdcontrol
adduser uwevi /etc/X11/xorg.conf
Section "InputDevice"
Option "Device" "/dev/psm0"
Option "Protocol" "PS/2"
[...]
Section "Device"
Driver "vesa"
startx
Wasn't all that hard, eh? Now, if you've got some spare time, head over to the Debian GNU/kFreeBSD wiki page and help improving this port ;-) You should probably start with reading the PORTING guide.
Both kfrebsd-i386 and kfreebsd-amd64 seem to be reasonably stable already (and more than 70% of the whole Debian archive builds fine on these architectures, see kfreebsd-i386_stats and kfreebsd-amd64_stats). I'll quite likely install kfreebsd-amd64 on one of my boxes soonish and start using it, maybe I'll even find some time to fix/patch/port some packages...
[1] More elaborate answer(s) and reasons are available in the Debian wiki.
According to Jurij Smakov's announcement, the Debian port for 32bit SPARC machines is about to be retired.
This is really sad in my opinion, as we should rather support more architectures instead of less architectures. After all, Debian is "The Universal Operating System" [1].
Now, I know that my opinion doesn't matter much in this case, but many other people who own sparc32 boxes seem to feel the same, judging from the thread which was started by the announcement.
Also, I do realize that nobody wants to retire the port just for fun. To my understanding there is one major problem which needs to be sorted out in order to "save" the sparc32 support in Debian (and also in Linux!):
There is no Linux kernel maintainer for the sparc32 Linux code at the moment!
This seems to be the root of the whole problem. It makes maintaining a Debian port for sparc32 really hard, as you can surely imagine. Also, there seem to be too few people who actively work on the surrounding toolchain stuff (gcc, binutils, etc) which is also very important.
My suggestion would be to not drop the Debian support for now, but rather set the status to "needs help" or something and actively search for contributors and/or maintainers. Heck, list it on Unmaintained Free Software, or write a "call for help" Slashdot article, post the issue on all Linux-/Debian-/SPARC-related mailing lists etc. etc. (or write funny blog posts, heh).
I guess if two or three experienced SPARC developers would step up and take care of the kernel and toolchain maintenance for sparc32, there would be no reason to drop it anytime soon.
Anyone?
It's day 2 of the 22C3 congress — time to post some stuff.
I've been travelling to Berlin by train with Daniel Reutter, taking a bunch of photos with my new PowerShot A610 (see photo on the right, for an example). You can browse the 22c3 flickr group for more photos.
We've listened to quite a lot of lectures already, and many more will follow. Especially the keynote by Joi Ito was really great, the network here works most of the time (wired net, as well as WLAN), so everything's fine for now...
As far as hacking is concerned, we played around with iPodLinux a bit. We managed to port aalib to the iPod an then (more interesting) we also ported bb, the portable text-mode demo. There are some issues on both the 4g iPod and the 5g iPod we tried this on, but we're working on it... We have documented the ports in the form of HOWTOs (currently Debian-specific) in the iPodLinux wiki (aalib, bb).
Up next: porting Ruby to the iPod.
Update 2006-01-05: This post made it to Symlink a few days ago.
Recent comments
21 weeks 1 day ago
47 weeks 3 days ago
1 year 2 weeks ago
1 year 3 weeks ago
1 year 3 weeks ago