Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Linux Software

Kernel Configuration As An Adventure 171

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."
This discussion has been archived. No new comments can be posted.

Kernel Configuration As An Adventure

Comments Filter:
  • > 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
  • ...or possibly hitchiker's guide to the kernel?
  • Kernel Panic: You have been eaten by a Grue
  • ...that you have to be carefull not to be eaten by a grue?

    ...that you might be able to execute a series of obscure actions and get babelfish integrated into your kernal?
    --

  • by VFVTHUNTER ( 66253 ) on Monday June 18, 2001 @07:22PM (#142306) Homepage
    on kernel configuration. I think it was Keith Owens who spoke first, and after him it was ESR. ESR is working on a new python interface that will be based on deductive logic I think, and it will prevent people from creating an invalid kernel configuration.

    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...

  • by andkaha ( 79865 ) on Monday June 18, 2001 @07:24PM (#142307) Homepage

    It was the next natural step after the Kill -9 With a Doom Shotgun [slashdot.org] 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.

  • by aredubya74 ( 266988 ) on Monday June 18, 2001 @07:26PM (#142308)
    # make bzImage

    You are in a series of twisty, turning tunnels, all alike

    Damn, they really DID update GCC.

  • This would go well with the MUD Shell [slashdot.org] mentioned on Slashdot a while ago.
  • It's a great os, with a great kernel, and you configure it with an rpg-like interface!

    (Just wait until after they buy before telling them it's not QUITE like Diablo...)

  • by jsse ( 254124 ) on Monday June 18, 2001 @07:29PM (#142311) Homepage Journal
    Choose your processor architecture. A brass lantern is here.

    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: /* fuck me plenty */

    (Actual quote from grepping 2.2.17 source)
    &nbsp_
    /. / &nbsp&nbsp |\/| |\/| |\/| / Run, Bill!
  • 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.

    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? :)" ... he replied he wrote this on a plane flight.

    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
  • by shogun ( 657 ) on Monday June 18, 2001 @07:30PM (#142313)
    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.
  • by jsse ( 254124 ) on Monday June 18, 2001 @07:35PM (#142314) Homepage Journal
    I'm compiling the freaking kernel!

    Oh yes, this is a Quake front end.
    &nbsp_
    /. / &nbsp&nbsp |\/| |\/| |\/| / Run, Bill!
  • 6/13/2000
    MSFT: $70.69 (+23%)
    LNUX: $3.28 (-74%)

    Surely you mean 6/13/2001... or was ESR trying to predict the past?

    ---

  • Mayhaps a Space Channel 5 inspired debugger? (Bugs appear on screen) "Left, Chu, Chu Chu! Right, Chu, Chu!"
  • The next step will be have to be a lemmings-based office application, or maybe a combat flight simulator-based intrusion detection system.

    Lemmings-based office application? Ya know, Microsoft already has some office based applications that depend on lemmings buying them... It shouldn't be much of a streach from there.

    (Ok, I don't normally take pot shots at Microsoft (they have treated me well on the only deal I've done with them), but I had to...)

  • Just read the post. It looks funny as Hell... and utterly useless, which of course makes it even funnier...
  • In the spirit of the thread regarding "Oregon Trail" last week on one of the posts... here is a "kernel adventure"

    Sample "Kernel Trail" Dialog Box
    You need a new driver for your SCSI card, your wife hasn't seen you in a week, your kids call you "the guy in the other room on the computer"

    Would you like to:
    A) recompile the kernel and then hope it works again.
    B) Shutdown and do it later.
    C) Use a sledgehammer cause the fscking computer just won't work the way you want it to
    D) get a divorce and give the wife custody of the kids.

    Maybe I'm onto something... maybe let kids play this one in school... heh

    Steve

  • by BitwizeGHC ( 145393 ) on Monday June 18, 2001 @07:44PM (#142320) Homepage
    Only thing that truly bothers me is the Python requirement. If CML2 is somehow earmarked as the successor to the current kernel config, then that would be a problem as Python would be required in order to compile a damn kernel. I'm sorry, but I think that kernels should be kept relatively free of dependency cruft, i.e., you should only need sh, the compiler and related support tools in order to be able to build yourself a shiny new kernel. Maybe a Python-to-C translator is in order here?
  • It used to be that I play games, or I work, i.e. I compile my kernel. Now it's all games. I guess life is all about playing, eh?

  • When I first read this article, the Kill -9 Doom was the first thing I thought off. How long before we can configure our kernel with Doom? On a miss the option will not be added, a near hit will be added as a module and a direct hit will be compiled right into the kernel. Once you win the kernel compile will begin, if you lose well you are just out of luck!
  • A couple days ago I compiled a PPC kernel for the first time (having previously only done x86 kernels). Without reading the documentation and not really knowing the names for everything in my computer, I guessed a bit. I compiled and rebooted, expecting kernel panics or worse. But no, everything worked perfectly. Where's the fun in that?
  • It's not make OR gcc, ESR, it's a gazeebo...
  • If the energy expended on useless hacks like this was instead used to improve the usability of Linux, Microsoft would be out of business by now.
  • I wouldn't look to hard for python2 in debian stable (potato), it's not there. I assume that you mean unstable, otherwise known as 'sid'.
  • > take udf
    A Jack Valenti steals your /dev/dvd!
    > use decss
    The Jack Velenti is stunned.
    You are attacked by a large band of corporate lawyers!
    > take udf
    udf: taken
    A corporate lawyer hits you for 5 years!
    A corporate lawyer hits you for 6 years!
    A corporate lawyer hits you for 3 years!
    A corporate lawyer hits you for 7 years!
    A corporate lawyer hits you for 5 years!
    A corporate lawyer hits you for 5 years!
    You are eaten by a corporate lawyer!
    Game Over
  • There is a buggy 3c507 driver here.
    > hit 3c507
    The driver vanishes in a cloud of greasy black smoke.
    >
  • It's actually quite easy to turn the paperclip off.

    Right click on the little sucker, click options, un-click the checkbox "Use the Office Assistant" or whatever the hell it is. I do it on every fresh install and I never see the little bastard again.
  • by iabervon ( 1971 ) on Monday June 18, 2001 @08:04PM (#142330) Homepage Journal
    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.
  • One of Microsoft's biggest selling points for its server-based stuff is the "ease of configuration". That just means that any goofball can use the interface, and get at most or all of the options (usually before they know what those options actually do).

    The point is, that Microsoft's interface is pretty interactive. Most sysadmin types that I know (windows or nix) prefer text-based interfaces because of the control, flexibility, and the ability to use scripts to make life easier. As a MS SQL Server admin I rarely use the GUI for anything but the simplest tasks.

    The downside of the text interface is it's lack of interactivity and visual representation. In reality, there's no reason why one couldn't make the experience adventure-like. You could have verbosity levels, which would be great for novices and training situations; once you advanced in ability, you could turn down the verbosity (or it could automatically turn it down based on its own assessment of your skills as an admin). Unfortunately, everyone is having such a blast making the same Infocom jokes that they don't bother to realize that this might be a useful idea.

    Rest assured, Bill Gates is not spending his time making campy "for the fun of it" user interfaces. This infocom thing might be a funny idea, but think of the CTO who reads about ESR and his thoughts on open source, and starts to consider implementing it, then sees this is how ESR spends his time. It only re-inforces the non-professional image that Microsoft is trying to portray of Open Source.

    Speaking as someone under Microsoft's thumb, I hate it at times. And yet, every new release of their software has some truly amazingly useful features that sell the product very well. I get a kick out of this fun stuff, but it ain't gonna sell with my boss, nor his boss, nor his boss, the CTO.

    ESR, sorry man, but if you're serious, it's time to change. You can't beat Bill Gates with geek subculture. And while you're doing that, Gates' army is charging, on a mission.
    -----------------------
  • by Spy Hunter ( 317220 ) on Monday June 18, 2001 @08:11PM (#142332) Journal
    Maybe a Python-to-C translator is in order here?

    ESR says in his info page that such a thing already exists and is one of the reasons he chose Python in the first place. He mentions that a kernel source tarball could be distributed with a compiled version of the CML2 interpreter.

  • Plugh and xyzzy were clearly backdoors.

    Keys = root password

    Grate = firewall

    Dwarves/pirate/grues = virii

    Lamp=Watch/debug

  • Well, it's what happens when it's written by a person whose favorite languiage is python.

    http://www2.linuxjournal.com/cgi-bin/frames.pl/l j- issues/issue73/3882.html

    Something I came across as I was messing with a Wiki today.
  • I'm not a kernel hacker, but hasn't this already been done with the Adventure shell, and a few others which are based off of MUDs?

    Then again, I guess that it's based off the the Infocom games, so that makes it slightly different. After all, it'll bring back memories to 'get babelfish' and 'put towel over head.'

    But, darn, you gotta watch for them Grues....

    ---
    Chief Technician, Helpdesk at the End of the World

  • Having a valid configuration does not guarantee that the kernel will boot. It just guarantees that the configuration chosen is valid and contains no contradictions.

  • by ethereal ( 13958 ) on Monday June 18, 2001 @08:22PM (#142337) Journal

    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:

    Found in Don Hopkins' .plan file:

    The color situation is a total flying circus. The X approach to device independence is to treat everything like a MicroVax framebuffer on acid. A truely portable X application is required to act like the persistent customer in the Monty Python ``Cheese Shop'' sketch. Even the simplest applications must answer many difficult questions, like:

    WHAT IS YOUR DISPLAY? display = XOpenDisplay("unix:0");
    WHAT IS YOUR ROOT? root = RootWindow(display, DefaultScreen(display));
    AND WHAT IS YOUR WINDOW? win = XCreateSimpleWindow(display, root, 0, 0, 256, 256, 1,BlackPixel(display, DefaultScreen(display)),WhitePixel(display, DefaultScreen(display)))
    OH ALL RIGHT, YOU CAN GO ON.

    WHAT IS YOUR DISPLAY? display = XOpenDisplay("unix:0");
    WHAT IS YOUR COLORMAP? cmap = DefaultColormap(display, DefaultScreen(display));
    AND WHAT IS YOUR FAVORITE COLOR? favorite_color = 0; / * Black. * / / * Whoops! No, I mean: * / favorite_color = BlackPixel(display, DefaultScreen(display));
    / * AAAYYYYEEEEE!! (client dumps core & falls into the chasm) * /

    WHAT IS YOUR DISPLAY?display = XOpenDisplay("unix:0");
    WHAT IS YOUR VISUAL? struct XVisualInfo vinfo; if (XMatchVisualInfo(display, DefaultScreen(display), 8, PseudoColor, &vinfo) != 0) visual = vinfo.visual;
    AND WHAT IS THE NET SPEED VELOCITY OF AN XConfigureWindow REQUEST? / * Is that a SubStructureRedirectMask or a ResizeRedirectMask? * /
    WHAT?! HOW AM I SUPPOSED TO KNOW THAT? AAAAUUUGGGHHH!!!! (server dumps core & falls into the chasm)


    Caution: contents may be quarrelsome and meticulous!

  • Python in and of its self isn't so bad, it the fact it requires Python 2.0 or greater. None of the main distributions ship with this at all and I really don't want to install it. That is the bummer.
  • Where would we be if linus said that when he was about to start linux? he would have said gee it's such a waste of time to make a new os when there are already some OS out there.

    Of course this isn't the same but it's simlar.

    Also this is part of the fun of linux that keeps people here!
  • You spend the next several hours debugging the code.
    The Lantern grows dim.
    The Lantern goes out.
    The code is debugged.
    It is dark.

    What are you doing, debugging with the lights on? :-) Also, from a walkthrough [force9.co.uk] for Infocom's "The Lurking Horror":

    "Some notes about the game before we start, TURN OFF the FLASHLIGHT when you are in lighted areas to conserve the batteries, I won't mention this is the solution. When and where you start getting tired will vary depending upon the number of moves you've made. So when you are told that you are getting tired go back to the kitchen in the computer block and drink from the bottle of Coke which you will find in the refrigerator."

    Later on, it gives instructions on how to get the hacker to repair your filesystem, and borrow his valuable master key for some Chinese food.

    I sure hope ESR has implemented these features...

  • Actually, GUI for kernel configuration are great. I like to 'make menuconfig' instead of editing a long configuration file.
    But the Linux kernel already had that.
    Is there a change to see CML2 ported to BSD kernels ? I love BSD, but kernel configuration is something I really hate on these systems. It's very difficult and non user-friendly.
  • 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.

  • Bullshit!

    IF people are doing this not for fun that what are they going to code open source for? Profit?

    The fun is all part of it. It gives people drive to do better.

    Even MS does it with the likes of "clippy" and his being out of a job. It's call fun and even MS knows how to have some.

    I suggest you go read this book call "PC Roadkill" you'll find that inside MS there is more fun then you think. They are not all just money hungry spwans of evil.
    1. Of course, this wasn't advanced as a serious kernel config option to begin with, and
    2. if the open source world has to change its nature to win, is winning really desirable?

    If a CTO wants "professional" Linux, they can pay RedHat or some other services company for it, and good luck to them. But that's no reason that the rest of us can't enjoy it the way we have been all along.

    Me, I'm happy to live in a world where I can configure and use Linux in business during the day, and laugh about ESR's antics after work. The guy's an inspiration and a good indication of the level of energy and inventiveness going into the platform. If that spirit of playful curiosity remains, it won't take long to defeat however many billions of dollars worth of business ambition, consumer disregard, FUD, and greed.

    Caution: contents may be quarrelsome and meticulous!

  • I'm not a kernel hacker, but hasn't this already been done with the Adventure shell, and a few others which are based off of MUDs?

    This is a configuration tool, not a command shell.

    Then again, I guess that it's based off the the Infocom games, so that makes it slightly different. After all, it'll bring back memories to 'get babelfish' and 'put towel over head.'

    I just hope it isn't more like 'computer, range is 360, theta is 150, phi is 30.'

    But, darn, you gotta watch for them Grues....

    Count yourself lucky you're not likely to come across any kobolds or paskalds. They're Red Purple Black Purple Red, through and through.

    Chief Technician, Helpdesk at the End of the World "I am an IT-Goth and an Adept of Tantric VAX."

    Hmm... is an IT-Goth like an Ur-Grue? :-)

    > WEAR BOOTS
    They are nice. You are likely to be hit on by a Goth...

  • Hmm. The only real difficulty I've had with FreeBSD 4.x (STABLE) kernel config (the flavor I have experience with ) is certain options not being documented *anywhere* (LINT/Handbook/errata) like

    device agp

    which was necessary for me to get my work laptop happy with X.
    I actually prefer the one-bigass-textfile config approach, but, of course, YMMV.
  • Being able to set up and compile a kernle via a text script means that someone can make an entirely Web based front end using thier favorite Webified language (Perl, Python, PHP, Java, etc.) to allow the user to complie a custom kernel. The implications of this? It's one more step to making Linux a Mom and Pop OS.

    One of the reasons that Windows is easy to install and configure (or seemingly so, anyway) is that Microsoft have insulated users from the gory technical details of thier hardware via friendly, easy to use, really hard to fsck up Wizards. So, if a vendor chooses, they write a Web front end that accepts the serial #. The vendors' database pulls up what was installed in that machine (CPU type, Chipsets, RAM, Disk etc.) and the CML2 Builder Web Page creates a custom kernel script, downloads it to the boxen and cranks up gcc. (Maybe XML would help?)Third party cards may be a problem - don't know how to make additions to machines newbie-proof.

    All in all, I like this. And I'm sure the game interface could still be used in a browser. I haven't had the pleasure of meeting a Grue, but that damned Twonky...
  • But would the DONT PANIC in big friendly letters really keep the kernel calm?
  • "If the energy expended on useless hacks like this was instead used to improve the usability of Linux, Microsoft would be out of business by now. "


    Yeah, but if we were the kind of programmers who could resist the temptation to play with "useless hacks", we would have taken the job at Microsoft in the first place.
  • Will the walkthrough be avaliable at happy puppy ?
  • by shiftless ( 410350 ) on Monday June 18, 2001 @08:52PM (#142351)
    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'!
  • by LL ( 20038 ) on Monday June 18, 2001 @08:54PM (#142352)
    ... I would refer you to this article [ed.ac.uk] 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
  • by dimator ( 71399 ) on Monday June 18, 2001 @08:58PM (#142353) Homepage Journal
    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?"


    ---
  • by cybermage ( 112274 ) on Monday June 18, 2001 @09:00PM (#142354) Homepage Journal
    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 ;)
  • The kernel is locked in the games process

    look:
    you are in a dark cave
    search:
    you find a treasure chest
    open treasure chest:
    the treasure chest is empty
    give treasure chest to process handler
    ...
    the process handler is not placing processor states into the treasure chest and exchanging them for inactive ones. Congratulations, your kernel operation has reached a new level.
    Congratuations, you have reached a new level, select device drivers to install!
    buy bttv.o
    You do not have enough experience to install this as a module, build into kernel?
    ...
    ...
    ...
  • by Animats ( 122034 ) on Monday June 18, 2001 @09:21PM (#142361) Homepage
    You should never have to tell the computer something it already knows.

    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".

  • by MikeFM ( 12491 ) on Monday June 18, 2001 @09:32PM (#142363) Homepage Journal
    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. :)
  • by Geek Boy ( 15178 ) on Monday June 18, 2001 @09:35PM (#142364)

    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!!
  • by chromatic ( 9471 ) on Monday June 18, 2001 @09:39PM (#142366) Homepage

    What if you're compiling a kernel for a completely different computer? What if you want to experiment with a new option, or turn a feature into a module?

    I'm not a fan of creeping featurism, but there's clearly room for kernel configuration. (And hey, it looks like ESR got the design of CML2 right. I'll give him credit for that.)

    --

  • Let me remind you that 'make menuconfig' depends on curses and 'make xconfig' on TCL/tk.
  • Hmm.. kernel configuration as an adventure?

    But it *is* an adventure, when you rm all the Makefiles first! ;)
  • If you were to actually follow the links, you'd see that the new system really is simple and easier. This front end is to demonstrate how easy it is to make a different front end.

    The CML2 system even makes sure you're making a valid configuration, unlike the current system.

    In response to the other reply to this, the system has significantly less code.
  • 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
  • We now need a FPS kernel configuration routine.

    Need to upgrade the mud based shell as well. Anybody who's anybody does their work in FPS mode these days. After all, its the only truely intuitive process. I mean seriously.. whats more likely? Someone entering the workforce that "intuitively" understands the concept of files and directories, and double clicking, or would they more likely understand roaming around with a shotgun and shooting monsters to erase files.

    Lets get cracking people.. Until we can fully emulate everything we do in full 3D, then we might as well just do it in reality since it would be more efficient that way. :)

    -Restil
  • by The Man ( 684 ) on Monday June 18, 2001 @11:04PM (#142389) Homepage
    Dammit, we're *not* professionals. This kind of thing reminds me of the Good Old Days Before Microsoft when hackers were hackers and did it for the fucking code and not to wipe out IBM or sell shit. Jesus H Christ, people, will you get over it? World Domination is a joke, it is not intended to be a holy war.

    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!

  • by sconeu ( 64226 ) on Monday June 18, 2001 @11:07PM (#142390) Homepage Journal
    Maybe a Python-to-C translator is in order here?

    while (customer_asks_for_cheese)
    {
    lie_about_cheese_presence( );
    }

    Oh! Wrong kind of Python-to-C translator!!!! Sorry.

  • by The Man ( 684 ) on Monday June 18, 2001 @11:16PM (#142393) Homepage
    Nah, that's no fun. Better that you pick up the parts of the kernel you want in Missouri and then lose parts along the way.

    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. :-)

  • Bill Gates sings about gold.

  • I could say "Use Google!", but here you go:

    http://uwsg.iu.edu/hypermail/linux/kernel/

  • Do you have any info on this? I've searched the kde-websites, and cannot find any information about this Kcontrol-module.
  • See here [userfriendly.org] and enjoy. - I assume the "forbidden hole leading west" then is write support for UDF :).
  • by he-sk ( 103163 ) on Tuesday June 19, 2001 @04:04AM (#142410)
    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_.

    No, that's not correct. First of all, CML2 won't check your hardware. If you compile a Pentium kernel to run on a 386 it will not boot. Likewise, if you compile a PPC kernel to boot on a 386 I doubt that it'll boot either.

    Secondly, even kernel compiled with CML1 (the oldstyle config, menuconfig, xconfig, that's now in place) will make sure that your kernel boots up if you get the architecture right. What CML2 does for you, is preventing you from compiling a kernel with a Gigabit ethernet card, but without the PCI bus support, you'll definatelly gonna need.

    So, with CML2, if you've compiled support for most if the cards and other peripheri you've got, then CML2 makes sure, that you're not lacking some basic support for a bus or so.

  • I've been thinking along these lines and I just can't find the time to work on it, so I'll jsut put this out for someone to work on. Maybe it can be used for prior art somewhere.

    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?

  • If CML2 is somehow earmarked as the successor to the current kernel config, then that would be a problem as Python would be required in order to compile a damn kernel.

    Kernel configuration programs are non-exclusive. You can still do 'make config' (the classic yes/no prompting one that I know dates back to at leas the 1.2.x kernels), 'make menuconfig' (which requires ncurses, upping the dependency level but increasing convenience), and 'make xconfig' (which ups the dependency level quite a bit more but adds a graphical install). So the Python dependency, just for one configuration program, wouldn't be a problem.

  • by jilles ( 20976 ) on Tuesday June 19, 2001 @05:35AM (#142419) Homepage
    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.
  • by jilles ( 20976 ) on Tuesday June 19, 2001 @06:22AM (#142428) Homepage
    I believe that flexibility and configurabilty go together very well and that the current lack of configurability is a sign that there is room for more flexibility.

    I agree that kernel developers should not bother with providing compiled kernels for end users. However, they could facilitate making it easy for others to do so. I imagine a high quality configuration systems is beneficial for them as well as it saves time not configuring obvious things.

    The price of not making kernel compilation & deployment easy is that adoptation of new kernel releases is slowed down. A good example of this is that only now the first few 2.4.x kernels start to appear in distributions. In addition, since x still very low, there are frequent, very relevant kernel updates that most users would want to have if they were running a 2.4.x kernel. But because updating is non-trivial for most users, many people don't bother to update.
  • It's 'make advent' in 1.6.1

    --
    Garett

  • There's this new company, maybe you've heard of them, called RedHat. They ship with several different kernels, already compiled.

  • What's the actual command grammar here? If it's just parsing a verb-noun command, it's not like "Infocom" but merely one of the many precursors or poseurs which also littered the landscape.

    Infocom's parser handled a fairly diverse set of grammars for commands:

    floyd, put the wrench in the cardboard box.

    put all the goo, the interface card and the canteen under the table.

    open the satchel then put the thing into it

    Until it can handle such a diverse command set, I wouldn't try to suggest it's like Infocom games.

  • Most users don't really need to recompile, they just need to put binary modules together.

    You're right. This is why most distros just install a typically configured kernel and make the kernel source optional. Your average user doesn't need to compile a kernel any more. I've been happily and lazily running stock Red Hat kernels for several years now.

    Keep the kernel ultra-configurable. It's useful for the people who really compile their own kernels. Make it easier for non-geeks by simply giving them working kernels. Sometimes you will need to compile a kernel, especially for unusual or very new hardware, but it's improving. Distro makers have alot of incentive to keep improving the quality of their stock kernels.

  • There used to be a config file for bash to turn it into "Adventure Shell". I have't had to compile Bash for a long time, so I don't know if they still include it in the source.

    Before that there was a real adventure shell, I remember one incident that was described by a friend about his boss using it...this person was trying to print something, and so he fed his document to the Print Daemon...it simply ate it...it turns out that you have to throw it at the Print Daemon to get it to print it!

    And for those of us who remember it...(check out my User# here), I remember back when we only had a "Make config", and had to answer *EVERY* question about configuring the kernel...but then again, it was smaller then...then again, I remember doing kernel compiles overnight on my 486 system....My first kernel was v0.11, but I really only started to use it with v0.12.

    ttyl
    Farrell
  • Red Hat proves my point exactly, you download 7.0 or whatever is the latest version and you are provided with a kernel that is already obsolete the day the distribution was released.
  • All I am saying is that it can all be done a lot more easier and that this benefits all users, including power users. There's this misconception in the unix world that obscure = flexible AND user friendly = unflexible. By my experience, a well designed software system can be both flexible and user friendly.

    It is true that for most users it is not really necessary to compile kernels. OTOH it is also true that kernel updates fix bugs, add hardware support, improve features improve security, etc. Considering that, most users would probably upgrade their kernels if there were a convenient way of doing so. There isn't, so they don't. It's pretty sad that you need red hat (ot whatever linux distributor) to recompile the kernel in order for mainstream users to get better support for new devices (e.g. usb devices), security fixes and other kernel goodies.

    Contrary what you are saying, I would claim distributors like red hat actually benefit from the kernel configuration's obscurity since in most cases the only way to get a new pre-configured kernel is by installing a new version of a linux distribution. In other words, by preventing their customers from upgrading in a convenient way themselves additional revenue is created because people keep buying new red hat cds to stay up to date.
  • by Tackhead ( 54550 ) on Tuesday June 19, 2001 @07:17AM (#142439)
    > See here and enjoy. - I assume the "forbidden hole leading west" then is write support for UDF :).

    I've been looking for an excuse to post a link to the abandoned missile base VR tour [triggur.org] 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.

  • by ichimunki ( 194887 ) on Tuesday June 19, 2001 @07:55AM (#142441)
    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.
  • You'd have to have the build system recognize the save file. The problem is that the Z-Machine only saves a file to a (particular) arbitrary format.

    The thing that makes me doubt the possibility of an inform port is the theorem-prover that you'd need. I don't recall that being part of the standard library, despite its obvious usefulness for making puzzles...
  • Last night I compiled kernel 2.4.5. (Note: I'm fairly new to Linux) and had to select which components to build into the kernel to support my PCMCIA NIC. Now, the machine was currently supporting the NIC just fine, but when running xconfig, I had to select the driver for my NIC. The default selection was a type of NIC that I've never seen, and I had to go run lsmod and then essentially guess which module was for my NIC (not hard if you know what to look for, but still) and then figure out which config option enabled that driver. So my question is this: why can't the xconfigurator look and find out what driver is being used for my NIC, and select that as the default? Sure, I could change it if I felt like it, but if I had gone with the default options for the PCMCIA NIC, (assuming, as with any version of, say, MacOS, that if the card is currently working, the incremental upgrade shouldn't remove support altogether) I wouldn't have been able to use my NIC at all. It's just plain counterintuitive. I'm not saying that the average user will recompile his or her kernel, but this is an example of why Linux is not a competitor to Windows.
  • I think I see what you are getting at now. What might help would be a .config file for new kernels and a bash script to do 'make dep && make clean' etc. There is no reason that couldn't be released day and date with a new kernel.

    I haven't kept up with RH in a while, but it certainly seems they should be able to package new kernels within hours of a new source tree being posted. Could call them 'dev' kernels or 'unstable' or something similar.

  • From "Expert C Programming: Deep C Secrets" by Peter Van Der Linden:
    do_pragma ()
    {
    ...
    execl ("/usr/games/hack", "#pragma", 0);
    execl ("/usr/games/rogue", "#pragma", 0);
    execl ("/usr/new/emacs", "-f", "hanoi", "9", "-kill", 0);
    execl ("/usr/new/emacs", "-f", "hanoi", "9", "-kill", 0);
    ...
    fatal ("You are in a maze of twisty compiler features, all different");
    }


    Especially droll is the fact that the description in the user manual is wrong, in that the code shows that "hack" is tried before "rogue".

    This was, in fact, the code in version 1.34 of the gcc to handle #pragmas!

    "I may not have morals, but I have standards."

  • "VMS is a single-player text adventure game. If you win, you get to use Unix."

    (Back when DEC Alphas were running both OpenVMS and OSF/1.)

  • You should never have to tell the computer something it already knows. But if you are going to work with a wide variety of hardware and software from many different vendors, you have to have a way to tell the computer when what it "knows" is _wrong_.

    This wasn't much of an issue with the Mac, because Apple kept tight control of almost everything, and if their OS couldn't figure out the configuration, then by gum it must be unsupported... But MS spent a few thousand man-months trying to test Win95 on all possible PC configurations, and still missed quite a few; a volunteer operation like Linux _cannot_ maintain a database of video cards, network cards, modems, motherboards, and BIOS's large enough to automatically configure for more than a few percent of the PC's out there.

    Yes, this is one of the things that is holding Linux back from wider acceptance. On the other hand, once the machine is configured right, it won't mutate on its own. Windows does. So if you hire some guru to fix your machine, in Linux it should stay fixed, in Windows he _will_ be back.
    brIn Windows it's quite likely that you will not be able to find any documentation that relates to your problem, short of paying MS tech support to look it up for you. Linux documentation may leave much to be desired, but you can get all of it quite inexpensively and if you do enough reading it does seem to be possible to understand the entire OS. No one at MS understands the entirety of any Windows or Office program.
  • Here's are a few rules for compiling Linux that have never failed me;
    1. 1. Compile everything and compile each piece as a module.

      2. Don't compile your boot drive's support as a module; SCSI support as a module on a SCSI-based system won't get you very far!

      3. Always have 1 or 2 previous kernels to fall back on via. LILO or Grub; no need for a boot or rescue disk due to a failed configuration.

      4. Backup .config after a sucessful compile and restore it when compiling a brand new kernel; you can use it later on the same machine and for making other kernels used on other machines.

      5. To familiarize yourself with the step needed to compile a kernel, write your own script to do each step and change it often. Put in some sleep commands to pause execution at each stage.

    Rule #1 occasionally fails with unofficial kernel releases during 'make modules'. If so, you can usually disable the one failing module and suffer no practical loss.

    Rule #4 is handy if you encounter problems since you don't have to answer the same questions twice, and you have some consistancy when dealing with a fresh machine; you don't have to wonder if the hardware is different or if you messed up configuring the kernel generally when something doesn't work.

    I realize that this means that the compile time is longer. You, though, spend less time tweaking each system...so the trade off is usually well worth it.

  • by TMB ( 70166 ) on Tuesday June 19, 2001 @10:37AM (#142453)
    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.

    ...which is presumably why the README tells you in big bold letters to do a 'make oldconfig' before you do anything else. :-)= Advanced users certainly do that.

    However, it isn't automatic, and is probably more important for those who aren't used to recompiling their kernel regularly and therefore are less likely to know that the README is serious about that. ;-) Which I think is your point. Is there any easy way to make it automatic?

    [TMB]

  • by jilles ( 20976 ) on Tuesday June 19, 2001 @11:12AM (#142456) Homepage
    Exactly, compiling kernels is not rocket science. If you're reasonably smart and work your way through various howto's and readme's it is by all means an easy thing to do. The thing is that most users don't really want to spend that much time on getting a kernel to work and generally have better things to do than study the kernels internals and fiddle with the make files interesting as it may be for people interested in operating system guts. Don't get me wrong, I have played around with slackware on 40 disks or so 5 years ago. At that time recompiling the kernel was more or less mandatory if you wanted sound in doom. What strikes me as odd is that since then the process of kernel configuration has hardly improved. Make config became make xconfig. But essentially nothing changed apart from that. The whole procedure breathes *not for newbies, nerds only* and I don't think that is entirely justified anymore given the modular architecture of the kernel and linux' status as an increasingly dominating server platform.
  • Damn and all this time I've been having my girlfriend pose for the porn. Maybe I can make an avatar skin for her of herself nude. Would make the male users of the system happy eh? I wonder how you could make the system work for connections with other systems. What would be the equiv of a remote shell for thisd system? :)
  • There's a reason it doesn't do a box-by-box hardware check. Say you're porting linux to the PS2. Since the PS2 doesn't have python installed on it (or linux...), you need to compile the kernel on whatever box you normally run, then send it over to the PS2. So, it may not boot on the box you compiled it on, but it will boot...somewhere.
  • You're thinking of the issue of source file dependencies, which are something separate and are not addressed by CML2. There is a separate project to replace the current recursive make [pcug.org.au] and kluged dependency analysis with something that works properly.

  • Maybe you should read and learn something. One of the problems with 'CML1' is that there is no core configuration code and no formal definition of the format for option definitions. In 'CML1', 'make config' uses the shell as an interpreter for option definitions. It works through each of them in turn. This is not very easy-to-use, so 'make xconfig' and 'make menuconfig' parse all the option definitions and then provide random access to them. They each have a different parser, which is certainly less sophisticated than the shell's parser.
  • I imagine you have no objections to requiring bash or sh for kernel compilation. Think of Python as a better shell scripting language.

    -Paul Komarek
  • so the moderators ARE on crack...this is modded as redundant...its the 18th comment....

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...