CML2 Coming in Kernel 2.5
MrHat writes: "Eric S. Raymond's CML2, or 'Configuration Menu Language' -- part of the next-generation Linux kernel build system -- is now officially ready for 2.5. CML2 includes a compiler for a domain-specific configuration language, used to configure kernel subsystems and resolve dependencies between them. CML2 and Linux 2.5 will 'ship' with several different configuration interfaces, including an adventure game, whipped up by ESR during an extended flight. The story from the horse's mouth (or LKML, if you prefer):'This release resolves all known logic bugs and rulebase problems. The only things left on the to-do list are convenience features and some minor improvements in the test/coverage tools. This code is now officially ready for the 2.5 fork.'"
ESR was previously going to be talking about this at the Lightweight Languages Workshop, but he's not on the agenda now. What happened?
The other examples posted on ESR's page are for kernel-oriented projects. How hard is it to stick this in another project? Something slightly smaller-scale than the kernel?
Also, this seems to only be concerned with compilation-time configuration. Although pre-compilation config is important, how hard is it to adapt this to work after compilation? If another app could use this configuration engine after it's been compiled and distributed, it may make it easier to customize pre-compiled packages (RPMs, DEBs, etc).
I can't say that I don't give a fuck. I've just run out of fuck to give.
I read the article and I was immediately impressed at how much MORE readable CML1 was... Perhaps because I know enough shell scripting to follow it in my head. CLM2 was impossible for me to quickly follow what was going on and I had to think about it quite a bit more.
I think the basic idea of CLM2 remains sound, but I wonder if it will result in more "cutting and pasting" rather than direct editing...
LedgerSMB: Open source Accounting/ERP
It's good to see some high profile hackers putting their minds to making GNU/Linux easier for people. This language should make it easier for hackers to fiddle with their kernel, and to get into kernel hacking, which is a great thing considering how daunting a challenge it is at the moment. It will also help people who have been playing with GNU/Linux for a short while start setting their systems up properly, instead of running on a hastily preconfigured kernel that came from their distribution installer.
It was promising then to see ESR say that he wanted this language to help GNU/Linux newbies. There's been a lot of good work recently on making the first steps more accessible, but there's been little progress in helping people who have completed the first challenge and who then want to get their OS running smoothly.
In order to install bind you must complete level 25, please try again.
Adventure games are soooo passe. I would prefer a Quake style interface with hidden buttons for config options. And maybe you could shoot all those stupid options that no-one ever uses. Like "Amateur Radio Support" and so on.
And if you configure your kernel wrong you end up in the Oops room with Colonel Panic. ?
Could be worse.. you could end up in the blue-fluffy-cloud room with General Protection-Fault.
dave.
_________________________
/y
General Protection Fault
_________________________
> Kill fault
With what -- your bare hands?
> Yes
Congratulations -- you have just made Windows a stable OS with your bare hands!
Unlikely, isn't it?
> Format c:
You are in a maze of unallocated sectors, all alike.
If it's a tree then why not use XML? I mean there are hundreds of tools available right now on every platform - why bother making your own language?
Why people keep inventing new pet laguages?
Whe he could not use GUILE, which is designed for things like this, adding domain-specific functions.
One issue for newbies with the current linux kernel configuration is the "inverse problem:"
I want feature X, what requirements will enable me to select it?
A trivial example: 2.4.0 required "experimental features" to allow resiserfs to be selected.
I hope that CML2 will alow for searching for and selecting choices anywhere in the decision tree, and "pushing-up" the requirements imposed by the decision (or pointing out problems).
I've used xconfig (and to a lesser extent menuconfig) and I found them more than adequate. My only gripe is that the help text is not defined for all the options (though all the major options have excellent documentation that you can display by pressing the help button). So, I don't mean to knock CML2 but what's in it for me? And are there screenshots anywhere?
___
If you think big enough, you'll never have to do it.
Why can't we have a very simple but intelligent suggestion for newbie kernel config?
...
For example, the utility starts by doing a hardware diagnostics first, to see what does the system has. Then ask a few simple questions on the normal usage patterns, like
- Do you have any plug-and-play hardwares that you plug in on run-time?
- what kind of pnp hardwares?
- do you do multimedia?
-
Then base on the user answers, just come up with an "optimal" configuration, and ask for the user's approval (you may want to tell the user the reason behind this config, e.g. put the sound module as loadable module, because the user said s/he is using sound only once a while). Then compile the kernel for optimal performance for the user's specific hardware configuration and usage patterns.
"Well, it is optional, but as a gedankenexperiment, let's suppose it weren't. If something gets into the kernel (or any other open project), it's because people want it there. If it isn't made optional, and no one forks a version without it, it's because not enough people dislike it enough."
That statement is only true if 'people' == 'developers compentent enough to maintain kernel code'. If Linux is to gain widespread acceptance, then for 99.9%+ percent of the population, it will be equally difficult to remove an easter egg from the Linux kernel as is to remove the flight simulator from Microsoft Excel.
I believe it is the development paradigm you are espousing here that is one of the largest roadblocks to mainstream acceptance - you've implicitly excluded the large majority of the 'people' who could be using Linux, without even noticing that you did.
Slashdot is entertaining like pro wrestling is entertaining
Primarily because the BSD's maintainers seem to prefer the configuration file. There are several things that distinguish BSD from Linux, and the Kernel Config file is a big one. You may find that not all OS quirks are due to technical roadblocks but to particular people's preferences.
To use an analogy, Directors of movies like to step into the editing booth and make sure certain scenes/footage stay in the movie- sometimes not because they have merit on their own, but because the director wants them there.
An often-overlooked aspect of the kernel community of the open Unices is the lack of true central authority. Before you flame, some OS's have stronger leadership than others, and some are ruled more by a group concensus than others. It seems a it obvious that this question came from a user who hasn't spent much time in the BSD 'community'. Spend more time there and I think this and many other questions will be answered, just maybe not the way you expect.
I new adventure game!
And I thought "make config" was enough like a adventure anyways!
ttyl
Farrell
CAN-CON 2019 - Ottawa's only book oriented Science Fiction Convention! October 18-20, Sheraton Hotel, Ottawa, Canada h
Yet even with that "archaicness" I find kernel configuration in BSD to be easier. This isn't because I'm a canonical GUI-hating Unix guy; it's probably because I'm not. XConfig and particularly MenuConfig are excruciatingly tedious compared to opening your own kernel configuration file in one window in a text editor and the LINT file in the other. My FreeBSD configuration generally is a matter of commenting out a bunch of lines (mostly SCSI stuff) and adding two at the bottom for my sound card.
/etc/rc.conf file changes or overrides many things that Linux distributions tend to scatter around the system (often in places that change from distribution to distribution, no less).
I've honestly been very impressed with how logical the BSD configuration "system" is; it's not pretty but it's straightforward and easy to make changes to. The
If memory serves, there was a column in DEC Professional years ago (obviously) that jokingly likened the RSX-11 SYSGEN process as an adventure game. Now something like that's finally available!
I'm sort of wondering how long it'll be before I see ``Munging the SCSI adapter has no effect or what ``Hello, sailor'' does to the kernel. And, yes, I know, those are more from the Zork games. Just can't remember any of the good funny responses from adventure any more. Other than the one about the maze of twisty passages, of course.
CUR ALLOC 20195.....5804M
And yet you didn't mind having to install Tcl/Tk to be able to configure the kernel before?
-- B.
This sig does in fact not have the property it claims not to have.
While Adventure is amusing, a Nethack/Angband-style configuration could be far more useful. The same room/object analogy could be used (town-level: different stores as sub-menus), you can check your inventory for current config, choose your race/class (arch/proc), etc etc etc.
.h and hordes .c ! Return victorious with the Amulet of bzImage!
When you are suited up and ready to battle, the compilation process could be initiated by entering the dungeon and watching gcc slay the demons of
Well, maybe that's taking it too far.
But if it got popular enough, maybe Blizzard would re-hash it in a fully-graphic real-time game for Windows.....
They'd still have to learn the semantics of the tags. XML _only_ provides a common syntax/metasyntax, and not even that pleasant a one (although it does have a lot of nice features).
DNA just wants to be free...
How does your comment justify the installation of a yet another shitfest like Python for kernel configuration?
It doesn't. In the past you needed either Tcl/Tk or the curses lib, now you need either Python or a version of CML2 frozen to vanilla C, but in both case you can edit the makefiles by hand if you prefer. Whee, aren't we happy now. Unhappy? Take it up to ESR and try to contest his choices if you can (if you really can, which I kind of doubt, considering you're an AC of the ilk that uses words such as 'shitfest' apparently for the sheer trolling value of it, please let me know -- I'd sincerely be most interested to hear of it).
-- B.
This sig does in fact not have the property it claims not to have.
Yep, I know what Tkinter is, but thank you. This said, make menuconfig does need stuff installed too, namely the curses lib, to compile the interface. Does compiling the C file generated from a frozen CML2 differ majorly?
-- B.
This sig does in fact not have the property it claims not to have.