Kernel Configuration As An Adventure
brent_linux writes: "ESR has developed a new kernel configuration system called CML2. Recently (as in yesterday) he posted to the kernel mailing list that he had added a new configuration for Expert Users. This new interface follows the interface developed from the old infocom text based adventure games. Commands such as 'look,' 'nearby,' and 'go' are used to navigate and options are items that you 'take' or 'put.' Check out the mailing list for his messages or download CML2 for yourself and check it out."
> take SCSI
It won't budge.
> take SCSI
Seriously, it is not going to move an inch.
> take SCSI
You try, but it won't move.
> take SCSI
It moves a little!
> take SCSI
SCSI: taken.
-- Robert
There was some discussion as to why it had to be in Python. ESR said it could be done in C, but he declined to do it, since it would be _hard_. At any rate, it will be sweet when there is logic checking in the kernel and it won't be possible to start compilation of an invalid configuration - the idea is that with this logic, whatever you make will _boot_.
Now is they can just decrease my compile times from 20 minutes to under 1 minute...
It was the next natural step after the Kill -9 With a Doom Shotgun article from some time ago, I guess...
The next step will be have to be a lemmings-based office application, or maybe a combat flight simulator-based intrusion detection system.
It's 11pm, do you know what your deamons are up to?
You are in a series of twisty, turning tunnels, all alike
Damn, they really DID update GCC.
RW
Choose your processor architecture. A brass lantern is here.
/* fuck me plenty */
/. /    |\/| |\/| |\/| / Run, Bill!
There is a row of buttons on the wall of this room. They read:
X86, ALPHA, SPARC32, SPARC64, MIPS32, MIPS64, PPC, M68K, ARM, SUPERH, IA64, PARISC, S390, S390X, CRIS
The button marked X86 is pressed.
>take lantern
Lantern: taken.
>enter SPARC64
You are now in SPARC64 kernel, process.c is staring at you in its cage.
>look process.c
arch/sparc64/kernel/process.c:
(Actual quote from grepping 2.2.17 source)
 _
almost sadly, this is a real config option. its 'make adventure' in cml2 1.6.0. it is kind of neat to play with, actually.
:)" ... he replied he wrote this on a plane flight.
esr has some ideas planned for future versions, see your cml2-1.6.2/TODO.
when esr first posted to the kernel list the announcement for this new feature, I posted a reply to him on lkml along the lines of "_WAY_ too much time on your hands, dont you have some linux advocacy to be doing?
for those of you ready to take the jump to cml2, it is available at http://tuxedo.org/~esr/cml2/. You will need python2 (RedHat PowerTools has an RPM, Debian has a DEB in stable) to use it. you will also need tkinter2 if you want to use `make xconfig'. installation is simple.
i was one of the people initially against cml2 on lkml (i didnt want to install python2, i didnt think cml1 was broken -- and hence we were created problems) but now i am pretty impressed by cml2. its still not a must, imo, but i like it. it should be integrated in 2.5.2.
give it a try.
-- Robert
You have entered a maze of twisty little source trees all alike.
There is a device driver code fragment here.
> take code
code taken
> compile code
the code is buggy it will not compile
> debug code
You try and debug the code but fall asleep.
> drink jolt
jolt drunk.
> debug code
You spend the next several hours debugging the code.
The Lantern grows dim.
The Lantern goes out.
The code is debugged.
It is dark.
> N
You are eaten by a gnu, you are dead.
I'm compiling the freaking kernel!
/. /    |\/| |\/| |\/| / Run, Bill!
Oh yes, this is a Quake front end.
 _
Infocom compiled all of their games to a virtual machine to make porting easier. Clearly, if this is going to be a proper text adventure, it should be available for that VM. That way, if you want to configure your kernel on, say, your pilot or your VIC-20, it would be no problem.
Maybe if you would just bring it a shrubbery? A nice one, not too big...
Courtesy of xscreensaver/hacks/screenhack.h, and reprinted 'cause it's so damn funny and this is a worthy article:
Caution: contents may be quarrelsome and meticulous!
Your right to not believe: Americans United for Separation of Church and
ESR was doing this more out of a desire to show what can be done with his nifty creation than to show what should be done. Apparently he wrote the entire interface on an airplane trip.
The cool part is that this particular interface is one of four that use his Python based backend configurator whatsit. In othe words the underlying software is designed to be useful, and the Zork interface only shows how flexible and powerful it is (and how easy it is to modify it so that it does what you would like).
And before you get all high and mighty about Microsoft and their business attitude, just remember that it was the folks at Microsoft that included a useable flight simulator in Excel. Compared to that particular stunt this hack is nothing. At least ESR's Zork kernel configurator is still useful as a kernel configuration tool.
Warning: do NOT try the new kernel configurator! Look what happened to me!!
- look
Kernel Core
You are standing in the center of the most magnificent room you have ever seen. The chamber is enormous, with huge data shunts rising up from the floor as far as the eye can see, finally disappearing into the blackness above. Doorways, crawlway entrances, and ladders abound, each labeled with their destination and purpose.
Linus, Savior of Mankind is here. He wields a Text Editor in one hand and a copy of "C Programming for Dummies" in the other.
You see exits leading out, in, north, south, east, west, northeast, northwest, southeast, southwest.
- greet linus
You greet Linus, Savior of Mankind with a sincere smile.
-
Linus sees you and smiles warmly. "Welcome to the Linux kernel! Please note that this is an experimental version, so it's not entirely stable yet."
-
Linus takes a Text Editor from a burlap sack.
-
Linus gives you a Text Editor.
-
"Please feel free to use this tool to add to and/or repair the Kernel. Enjoy your time here!"
-
Bill Gates, Dark Lord of Everything That Is Evil wanders in from the west.
-
Bill Gates greets you with a sincere smile.
-
Bill Gates says, "Just looking for some new code ideas to "innovate" into the new Windows Anti-Christ Edition. Remember, 'ALL YOUR CODE ARE BELONG TO US'!"
-
Bill Gates removes a simple oaken pipe from a burlap sack.
-
Bill Gates removes a tinderbox from a burlap sack.
-
Bill Gates removes some marijuana from a burlap sack.
-
Bill Gates places some marijuana in a simple oaken pipe.
-
Bill Gates lights a simple oaken pipe until it is smoking nicely.
-
Bill Gates takes a long drag off a simple oaken pipe.
-
You see an aura of ultimate destruction appear around Bill Gates.
-
Bill Gates laughs evilly.
-
Bill Gates holds up his hand, closes his eyes, and begins to chant strangely.
-
Mystic energies swirl beautifully before your eyes.
-
Without warning, the energies converge into strange apparations, in the shape of flying windows, and float evilly in the air around you.
-
Suddenly, the strange apparitions rush at you with terrifying speed, ripping into your soul and shattering your mind.
-
You bleed 666 health.
-
You have been slain by Bill Gates.
You have played 8 games so far.
Thank you for playing 'make adventure'!
... I would refer you to this article which discusses structured environments. Basically to be efficient at something, e.g. preparing a dish, we line up all the instruments in a particular order to help cue us when a particular task needs to be done. Extending this into a semi-spatial (if ESR can get the right relationship of in-on-up-etc representing the true connectivity between kernel modules) setting would help people orientate themselves and get to work faster (so you can get back to that QUAKE game). Just like we would put a letter by the door, or shopping list by the car keys, each cue triggers associated memories and reminds us of specific actions that need to be done. Sure you can have a linear check-list like the space shuttle pilots but anything computing-wise is so variable that a more flexible arrangement is desirable. I've been looking into something similar for the make processing for reproduceable documents and it is not as easy (or trivial) as people think (at least to get right). For example, color assignment ... do you map this property to time-of-last-modification (ie heat colors) or to likely hazard (red=stop, orange=hazard, yellow=caution, etc). If you dig far enough, you eventually realise it is actually a text variant of scientific visualisation but in the qualitative domain. There are a number of theories on how you allocate the properties based on human cognitive functions (see Lloyd w.r.t. OpenDX and fiber bundles) ... but there are a lot of issues remaining such as what works for 5-6 objects doesn't work for thousands.
Like all ideas, let the users decide and if it works, it will be included into the meme-pool. Imagine TuX, the penguin avatar trundling around kernel space looking for fish or and fixing security leaks. At the worse, it will provide a few minutes of amusement.
LL
The implications of this? It's one more step to making Linux a Mom and Pop OS.
You couldn't be more right. Why, just the other day, after my mom asked me how to open up AOL, and how to save a Word document, she asked: "I think there's a new nVidia driver out, is there an easy way to recompile my kernel, say, in a web-based manner?"
---
python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
This reminds me of one of the funniest Usenet .sigs I ever saw:
;)
"DOS is, quite possibly, the worst text-adventure game ever"
Atleast text-adventure game errors made sense
Some people have a way with words, and some people, um, thingy.
That was one of the original Macintosh interface guidelines. And it's still a very good rule. Think hard about that the next time you design something that needs "configuration".
The next logical step I think would be to take that Doom engine and this Zork configurator and mix them into some distros installation program. Make it so you can select your key maps, hardware, packages, etc all by running around and flipping switches and such. It might not be the most practical way to install but it might be enough to make some gamers try it out and prove that Linux isn't just for servers before the user even gets the OS installed. :)
:)
Hell I'd like to see a graphical multi-user shell enviroment on Linux. Not to replace the cli or gui but to go along with it and make it more fun for users and help them learn how different parts of the OS interact. They'd need to be able to do everything the shell usually allows as well as interact/chat with other users. They'd start in their home directories and be able to browse the filesystem from that point (seeing anything that was visible to them from the normal shell) and be able to teleport to different directories directly. They'd need to be able to create a new file or directory as well as delete them all in real time. They'd have to be able to run commands, edit files, etc. I'd have a little CLI part under the MUD-UI where they could type/edit commands they were selecting from the MUD-UI as well as chat with fellow users. I'd make it so any program could be written with the ability to interact within the MUD-UI in the same way programs can interact with X to create windows, menus, etc as appropiate for the enviroment. You could really do a lot with it if you don't get silly and think most people will want to replace their CLI/GUI methods with the MUD-UI and treat it as an addon. Start with something simple and well known like the Doom engine (the nicely cleaned up version) and first try to do everything Bash does for a user and then extend from there.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
KDE 2.2 will be shipping with a new kernel configurator too. It's build into the KDE Control Centre and is a very simple, fast and easy way to configure your kernel. It uses the kernel's existing configuration files/system but has it's own parser and intuitive gui. Check it out!!
Erm, I was in the group that was talking to ESR at a Denny's in Lathrop, when make infocom (our original idea, before we realized infocom might not like it) was born, at least in the idea. Look out for Chuck, or the killer rabbit... so many things we talked about there, guess I better see what he created from all the idea that were thrown out...
bash: ispell: command not found
This sig left intentionally blank.
This kind of thing is the stuff that makes Unix worth using. It's the kind of stuff that makes us better than Microsoft. Not GNOME. Not KDE. Not GNU this or Open Source that. The freedom to implement what you like rather than what a focus group calls for is one of the fundamental advantages of Free Software and of the hacker tradition that preceded it by 20 years or more.
Rest assured, Bill Gates is not spending his time making campy "for the fun of it" user interfaces.
Fine. He runs a multi-billion-dollar company. He wears suits. He talks about "vision" and marketing and The Road Ahead. Is this really somebody you want to emulate?
You can't beat Bill Gates with geek subculture. And while you're doing that, Gates' army is charging, on a mission.
On the contrary, he can't be beaten without it. Give up the fun, you've given up one of the primary distinguishing features. It doesn't count as a victory if you end up the same as your enemy.
This is one of the best things I've seen in recent years. I couldn't be happier. If a stuffed suit decided not to use Open Source because of it, I think we're just that much better off. Nyah!
You attempt to ford the river. You lose sparcaudio, two filesystems, and ffb_drm. sparcaudio pulls cs4231 into the river with it. You are out of filesystems.
Man, OT was the best. :-)
For beginning users, a graphical interface like this might be useful. I've thought of what I think is a good representation for files and directories, which could be merged with that DOOM-shell idea.
Directories are rooms. The texture of the walls and floor tells you what type of filesystem it is - e.g. marble for ext2, rotten wood for FAT, clouds for NFS. The color tells you what permissions you have on the directory - e.g. blue is read-only, green is writeable. A door to the parent directory is on one wall, doors to subdirectories are on the far wall. On one wall is a button. Push it, the wall drops down and there are all your hidden files and subdirs (.emacs, .netscape, etc.).
Files are objects in the room. The shape of the base tells you what kind of files they are - e.g. square for regular files, triangular for devices, round for pipes, etc. Colors indicate permissions again, and texture indicates detailed type - parchment for text, circuits for executable, etc. Height indicates file size, in a logarithmic mode. (Each unit of height means double the file size.) You can instantly tell a great deal about a file just by looking at it. Symlinks to other files are semi-transparent.
Like a game, you can select different tools (a delete tool, a copy tool, a link tool) and apply them to files and directories. Like most games, the "~" key brings down a shell console. You can switch to another user or "god mode" (root) and then the colors of things change to reflect your new permissions.
What do y'all think?
PHEM - party like it's 1997-2003!
Most of the options in the kernel configuration are meaningless to me and the help information in the generally primitive configuration tools is usually far from helpful for people not into kernel hacking. Luckily kernel configuration/compilation is rarely needed by users like me. Unless you need to upgrade (e.g. because of security fixes). Then it really doesn't matter how user friendly your distribution is because your only real option is to get your hands dirty and compile the bloody kernel. Meaning you have to fiddle with all the options you don't understand. A person like me could easily make some mistakes resulting in unstable or unsecure kernels.
It's time this part of linux is brought into the 21 century as well. Most users don't really need to recompile, they just need to put binary modules together. 95% of the users don't have scsi, do not have obsolete bus architectures, run x86 processors, would like to be able to mount their dos/windows drives. Why not build a set of kernels for different architectures for the most common desktop configurations and leave the compiling to people who really need it (i.e. those with older, more exotic hardware or those wanting to tweak optimization settings and so on).
It's nice to have the flexibility to compile the kernel, it is bad that it is the only way of getting a usable kernel. Maybe having binaries is not an option but in any case the configuration tools could be a lot more user friendly by for instance doing some hardware recognition, recognizing that certain options exclude each other, offering some presets which make sense on common architectures like x86 pc's. A nice option would be to automatically duplicate the settings from the running kernel into the new kernel, only prompting for settings that are new or require changes. That would make kernel updates a lot more painless. Even for the advanced users that would mean they could spend less stuff on the trivial stuff and instead focus on the important stuff.
Jilles
I've been looking for an excuse to post a link to the abandoned missile base VR tour all week. Thanks ;-)
> POST LINK
The URL gets posted to Slashdot. There is a moderator here, holding a crack pipe.
> SCORE
Your score is 2 out of a possible 5.
Cripes.. relax, laugh, it's funny, very funny. Any CTO that is so lacking in the ability to both understand a good Zork joke and to be able to laugh at it is not someone who should be a CTO-- they don't have enough real world experience in computing nor are they human enough to lead their IT organization.
Besides, you apparently never use MS software. I think my favorite is the flight simulator embedded in Excel. Should we now abandon Office because it's too frivolous?
Ooops. I just fed a troll, didn't I? Oh well, life goes on.
I do not have a signature