Interview with Hurd developer Marcus Brinkmann

Interview with Hurd developer Marcus Brinkmann | Wikinerds Portal:

Marcus Brinkmann: The Hurd is a multi-server system, running on top of a microkernel. This means that separate features of the kernel, like the network stack, authentication, or the filesystem, are implemented in different user-space processes, and not in the kernel. There are only few real multi-server systems out there, most other microkernel based systems you have heard about actually only run a single server on top of the kernel and thus are very similar to a monolithical kernel like the Unix kernel and its imitations.

The Hurd design goes one step further ahead of other multi-server systems and puts an emphasis on the user’s freedom to extend and enhance the operating system with new features. There is no mutual trust required for the individual components to cooperate. So, for example, the user can start their own filesystem services and attach (“mount”) them to the system’s file system hierarchy. Or a user can ignore the process servers services and start their own process management facilities, that is dissimilar to POSIX.

[Updated] Recommended reading: AST‘s “Modern Operating Systems” (for somewhat outdated implementation details: “Operating Systems Design and Implementation“) and the papers about the L4 microkernel.

SkyOS Application (De)Installation Technique Explained

Interesting approach, leveraging file attributes combined with fast file searching:

SkyOS Application (De)Installation Technique Explained

Looks like SkyOS (videos and nice wallpapers) is pretty innovative in other fields as well. For example, I like the fact that its Live-Query application doesn’t hide the query language from its users. It would be nice if Google and co. were esteeming and supporting power users too (I’m still waiting for a search engine that offers a public regexp interface).

How to “reset” a Mac OS X installation

Here’s how to “reset” an installed Mac OS X and virtually return to a “virgin” state with a welcome screen prompting the user to setup and customize his Mac OS X installation:

0. To reset a Mac OS X v10.7 Lion installation to factory default, check Mark’s comment @ Apple forum (basically, deleting users before booting into single user mode seems to do the trick). For Mac OS X v10.6 Snow Leopard and older, follow the procedure below.

1. Press Command-S during startup to get into single user mode
2. Check the filesystem:
# /sbin/fsck -fy
3. Mount the root partition as writable:
# /sbin/mount -uw /
4. Remove the hidden .AppleSetupDone file:
# rm /var/db/.AppleSetupDone
5. a) For Mac OS X 10.5 ‘Leopard’ and newer, do:
# launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist
Repeat for every user previously defined on the machine (replace {username} with the real user name):
# dscl . -delete /Users/{username}
# dscl . -delete /Groups/admin GroupMembership {username}

5. b) For older versions of Mac OS X, do:
# rm -rf /var/db/netinfo/local.nidb
6. Remove the home directories of users. For every user do (replace {username} with the real user name):
# rm -rf /Users/{username}
7. If applicable, remove already created files in root’s home directory, e.g.
# rm /root/.bash_history
8. Shutdown (or reboot to verify the procedure worked):
# shutdown -h now
-or-
# reboot

That’s it! :)

[Update 20081106]: Thanks to Macs R We for the update 5 a) regarding Mac OS X Leopard! See the comments below for more information.

[Update 20090429]: Added “dscl . -delete /Groups/admin GroupMembership {username}” to 5b) as suggested by rello (see rello’s comment below)

[Update 20110731]: Some updates about resetting Mac OS X v10.7 Lion (unverified) and a clarification that rebooting at the end isn’t strictly necessary (just to verify the procedure worked). Thanks to David, Adrien and Adam for the hints.

Gentoo: Migration from devfs to udev

Some pointers:

The complete Gentoo Linux 2.6 migration guide
Gentoo udev Guide

Notes:
* famd went crazy after the kernel update (it wrote about 100 lines of text per second to /var/log/messages). ’emerge fam’ solved it.
* udev doesn’t seem to recognize external USB drives that are plugged-in at boot-time already. So in addition to ‘hotplug’, I had to install ‘coldplug’:
# emerge coldplug
# rc-update add coldplug default
# /etc/init.d/coldplug start

goScreen 5.0

goScreen 5.0 has been released. Excerpt from the e-mail:

This version features
* application window layout management,
* possibility to start several instances of goScreen on multi-monitor
systems to manage different PC monitors independently, and
* possibility to create and use different configuration profiles in registry.

Layout management makes it possible:
* to define preferred size and position of application windows, and restore it with a single shortcut command;
* to temporarily rearrange all windows on the current screen page so they are all visible
* to find a window you need; once you find and activate it, all windows will return to their previous positions, with the one that you needed at the top of the stack;
* to pack all windows on the currents screen page while working with several documents at once – goScreen arranges them so they are all visible and maintains the order. Any window on the page is always one mouse click away.
* to temporarily move all application windows aside so the desktop is visible
* to open yet another document, or start an application. Once you do, all windows return to their previous positions.

I like goScreen. In fact, I almost can’t imagine working without it when using Windows. It definitely increases my productivity. I like goScreen’s licensing policy too (upgrades are free for registered users). The only trouble I have with goScreen (even with v5.0): Sometimes, the window list unwantedly pops up. I’d like to be able to permanently switch off the window list.