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.
take nife ... ]
[ but what with it? it's gross
2 hours later, bitching, trying everything on everything
sharp knife with grass
[ found scanning through the game files]
---
This is from Larry. What would one solve in CML2?
Not that I'm against this per se, I actually kind of like the idea, but only as a novelty. I kind of liked the easter eggs in MS programs too, but when they get to the point of introducing (noticable) added overhead either to disk, memory, or program maintainability I have a problem.
So while it may relieve some of the tedium of kernel configuration. The first time make adventure causes a problem, I'd expect to get back some of the dung the linux community has flung over the years.
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
Is there a similar kernel configuration GUI for OpenBSD/FreeBSD/NetBSD?
Editing BSD kernel configuration files has always been lousy and very archaical compared to Linux menuconfig and xconfig. I still can't understand why nothing was developped for BSD.
{{.sig}}
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.
But ... but ... but it's written in Python! How useful can it be? :)
(and here I sit, shamelessly hiding behind an AC post)
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.
Hey... I thought I made this clear a few weeks ago. Its the "Linux Kernel" NOT "The Kernel" Dammit tack Linux infront of it.. Or if you're one of those PInko Commie Socialists GNU/Linux . Not all of us run Linux and sometimes freak when we are very tired and we see things like "Kernel 2.5" dammit... Once again im at 4.4!!!!!
--------========+++Dont Feed The Lab Techs+++========--------
My first thought was, "what kind of moron writes a new command language in 2001, when GUI has been standard for seventeen years?" Then I looked at the language.
menu netsched # Traffic control configuration
NET_SCH_CBQ? NET_SCH_CSZ?
NET_SCH_ATM NET_SCH_PRIO? NET_SCH_RED? NET_SCH_SFQ?
NET_SCH_TEQL? NET_SCH_TBF? NET_SCH_GRED?
NET_SCH_DSMARK? NET_SCH_INGRESS?
NET_QOS {
NET_ESTIMATOR
NET_CLS {
NET_CLS_TCINDEX? NET_CLS_ROUTE4? NET_CLS_FW?
NET_CLS_U32? NET_CLS_RSVP? NET_CLS_RSVP6? NET_CLS_POLICE
}
}
require NET_SCHED implies NETLINK==y and RTNETLINK==y
Holy fucking christ, what a load of crap. Even for command languages this is total gibberish. It's like JCL or something.
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?
Taking the questionable step of inserting a fact into what will likely be a flamacious thread: RMS' insistence on "GNU/Linux" relates to entire distributions. He doesn't complain about "Linux" referring to just the kernel.
Why people keep inventing new pet laguages?
Whe he could not use GUILE, which is designed for things like this, adding domain-specific functions.
My biggest fear is being eaten by a Grue in the SCSI catacombs!
-H
--- #@$DF@#2%@^%3^&*$%FRHG%%[NO CARRIER]
to configure a +5 ethernet so I don't need to use the -60 WinModem.
Who would win this election: Andrew Weiner vs Andrew Weiner's weiner.
Ego.
Thanks and have an Afghan opium filled day.
It would be great if this makes Linux kernel configuration easier and more flexible. With all the things Linux is designed to do nowadays (that is, operate on pretty much everything from a wristwatch to a computer the size of a building and everything in between), with so many different processor types and kernel configuration options, it must be a nightmare to configure a kernel from scratch. Hopefully CML2 will make this process easier for everybody.
From the LKML like above, included as the tag on ESR's email is this:
.. a government and its agents are under no general duty to
provide public services, such as police protection, to any
particular individual citizen...
-- Warren v. District of Columbia, 444 A.2d 1 (D.C. App.181)
Is he asserting case law does not support the government offering public services (police)? Meaning, that the government is violating case law in doing so. Meaning, people dont have a right to public services? Meaning, the government's public services are "illegal" (or not a legal obligation)?
Am i understanding this correctly...
Sorry, this is very OT.
With all the recent modifications to the kernel coming out, it makes me ask: Is the kernel getting too big? Does it have too many options?
FreeBSD's core kernel team doesn't implement alot of stuff in the kernel by default. Oh, you can compile it in with it, but it doesn't come with a zillion options by default. I think it's great - sticks to the whole K.I.S.S. idea, and give you the complete control to put in the options you might need that everyone else might not. I just would hate to see linux go from a nice sleek, clean kernel build to bloated oversized core with a billion options that i won't use day-to-day.
How large are these options? Do they bloat the source very much?
Somewhere along the line, somebody, somewhere, will drop some networking code into the kernel config module, and hook up with other 31337 h4x00rz...
You: Damnit, I've been waiting 2500 clock cycles for this damned PCI_BUS to spawn.
n00b: Hi! I'm new here. OooOoo, can I have that?
You: Have what?
n00b: Your uber-leet PACKET_FILTER sword of destruction!
You: *eyes narrowed* I thought you said you were new here?
PCI_BUS spawns, and aggros the n00b.
n00b: Take that, PCI_BUS_00! I'll configure you!
You: Hey, I've been camping that!
n00b: victorious in configuration - it aggroed me first, 10053r. Go camp the EISA_BUS instead. *snicker*
You: *grumbles*
GIR: I'm going to sing the Doom song now. Doom doom doom doom doom doom de-doom doom doom doom doom doom doom...
Sorry ESR, but I don't want to install Python to be able to configure and compile the kernel.
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 imagine if I could switch places with ESR, I'd be much pickier than him. He's a living, breathing, person with real needs. Love him! Adore him! Stalk him! Wait, nix that last one. But above all, let ESR be ESR!
Grumble, Grumble
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.
Regarding desktop Systems there are quite a few things the Users seem to want:
Some of these points were met by Automake/Autoconf/Make in our todays Apps, but there is a further point, a clear structured development. This is something, which was not possible with Automake/conf and make, because you had several levels, which could be affected by errors.
I haven't had the time to investigate CML2, but some people seem to believe it to meet this needs. after having most Linux distributions have unique Package Management by now, we might have reached a point which enables us to realise the need of unique and clear configuration Systems in all OpenSource Software.
Most of the time it's to include features which could have been architected as modules, or to set defaults which could be made configurable at run/boot-time (sysctl -w anyone?)
Granted, a new *platform* needs a fair bit of kernel tweaking, but not just the addition of firewalling support.
Grandmother: I like surfing the Internet, and this new Linux thing you installed on my computer is quite fast, but I read somewhere that I should run some firewall software.
You: Well, just recompile the kernel with ipfwadm sorry ipchains sorry iptables support and write..
Grandmother: Could you install XP please? I hear that has a firewall I can enable by checking a single box.
I believe my .sig is appropriate here...
In the spoon, there is no Soviet Russia!
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.
that's because there's so little to configure in bsd. there's nothing there. sheesh, use a real os.
Your brl package rules, I'm studying it's use for a commercial app right now, fun to see you around on /.
The Kernel next phase should focus on speed and stablity. Not configurability. If you want configurable install enlightenment
Look through LINT and just try to tell me there is nothing there. How about the large number of gigE drivers FreeBSD has that have no linux support? Oh, but I forgot, BSD is dying, and linux is for data centers, right?
Please return to under the bridge from which you came, troll.
A site I maintain ( http://rejuvenation.com/ - a lighting manufacturer ) has hundreds of products that have separate configuration with their own constraints and logic. Though I'm squeaking by with our current online solution (PHP translations of configuration files created by a proprietary product), I've been looking around for a good standard in which to create an alternative solution. This might be it? I'm not sure, but it certainly looks like it could be.
ack. i meant 2nd amendment!
"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
You are correct in saying that this would make newbie use of the kernel much simpler. However, one step at a time, my son...
========================================
Death will come, and will have your eyes
-- Pavese
Somebody thinks that a talk ESR was going to give on the topic of CML2 is off-topic re. CML2. Go figure.
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
CML2 may be as ready for Linux 2.5 as it can be, but that doesn't matter one bit if Linus doesn't want to take it. It seems to me ESR is taking it for granted that this will be the next kernel configuration scheme, but what's the word from the main man himself? I haven't heard a word about CML1 being replaced, but then I really don't follow the LKML too closely.
I imagine there would be quite a few oposed to this, especially if Linux now needs to ship with Python as well.
Would it perhaps be feasible to to compile the CML2 parser, and just ship that binary for those that don't want to install Python as well? Or does someone have other tricks up their sleeve?
needlejaw@angst:~$
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
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.....
Moderate this up.
How to contact me - http://www.pervalidus.net/contact.html
OK, so ESR has invented a new language with an awful syntax. I would think in the 21st century we could say "and" or "&" instead of "-a". The language is a disaster.
As for the adventure game, I don't understand kernel configuration and I don't understand the adventure game. It makes it harder for me to see what options I have. How did ESR know to go north to get to CPU choices? Adventure games are only fun because of the process of discovery. GUIs are popular because more options are in your face and you can see what you can do. When I am doing something as potentially tricky as configuring a kernel, I want as much information as possible presented to me, and I want the consequences of those actions to be bleedingly obvious. I don't want to have to grovel for every piece of information.
I applaud all those who are tackling this problem, but this is a very poor solution.
I like the ideas behind CML2 but wouldn't Alan Cox be a better person to create the MUD interface?
ESR may have a lot of experience playing MUDs but I don't know how much experience he has being a builder or an admin.
Alan Cox, on the other hand, has a proven track record for coding MUDs.
A lot of MUD coding is more complicated than it may seem at the first glance. The mobs have to be easy enough for newbies and still hard enough for oldbies. Also the player classes have to balanced for PK purposes.
It's all very complicated.
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...
If CML2 is interesting from the very technical point of view, for its benefits, his flexibilty and his scalability of the configuration language itself, the fact that it requires Python2, just SUCKS.
The linux kernel needed CML2 to solve some known problems, and to ease the build of new kernels, but didnt needed a requirement of 50 additional Mbytes (python 2), that all of the Linux vendors will have to ship now (I also think about embedded systems on this issue).
This packages is very NON-standard, except maybe on Debian, and a port of CML2 in C would be way more logical IMHO (or at least, in Perl, because it's much standard these days (autoconf needs it too)).
I'm curious to see the arguments of "Mr ESR the hacker, author of amazing software from kernel space to user land like fetchmail or the insane gif2png" on the real tech needs to use Python2 over something else on this issue.
there are 3 weathers in Chennai : hot, hotter, hottest
Actually i share your opinion. ESR may have written a couple of successfull books, he may have done a couple of speechs, and so on ... But, the fact is that his contribution to the free software world, the actual amount of _code_, is just ridiculous.
The biggest of his projects is, afaik, fetchmail, it says it all. And the rest is an amount of small python scripts, FAQs, documents, and useless stuffs. CML2 is just an opportunity for him, to do the project that would give him a real dimension of HACKER (hahaha).
He wants to be the voice of the opensource community, and it makes me sicks. Not because the guy has theses known views on the possession of weapons, anarchy etc ... i dont give a damn after all, he can politically and ethically think whatever he wants. But the problems comes when he writes documents like the Jargon, the hackers FAQ, and stuffs like that that describes our free software world. Where he speaks like a 10 years old kid, and therefor makes people of 'his community' just ridiculous.
Oh by the way, if you feel bored, i just recommand checking this URL out, where you can watch the specimen in all its splendor.
Now next time you meet a lesbian, dont ask her why :-)http://tuxedo.org/~esr/photo-gallery.html
you can find the same kind of pics here :
http://www.uglypeople.com/
there are 3 weathers in Chennai : hot, hotter, hottest
A special program is needed to configure the Linux kernel?
It's run interactively, like a computer game?
Wow. It's astonishing how alike the Linux and Windows communities are becoming.
Wouldn't datalog be better? A prolog/database derivative, it manages to look enough like english to pass muster with the non-digitally-literate, and can be learnt quickly.
...
/etc a set of files with different permissions, add another level to the system permissions (kernel to root, bin, and all the rest) - I'm probably talking about something completely different than the standard Linux/Unix whatever, aren't I?
Oh, yes, doesn't have the parentheses lisp is (in)famous for
You could use it for all sorts of object configurations - make
Maybe I should just shut up and get on with it;)
"I his bow, and spun and wove, likes you." Vere de Vere out of my mould's mouth dragged me of the voluntary apes.
Get a fscking clue. How many embedded developers do you think compile the kernel for their device on the device itself (Hint: About 0)? Ever heard of crosscompiling? And for that matter, python is available on all the big distros (big in the sense of lots of users, not installed size). And yet another point, python is available on PalmOS, if you're scared that you'll run out of hd space.
Thankfully, I am not ESR, but the answer is roughly:
The design requires (well, "wants") a language good at string handling and dynamic data. That means Perl or Python, not counting more obscure candidates like Ruby or Visual Basic. [(:]
So why not Perl? ESR prefers Python. It's that simple. (And yes, he used to be a Perl hacker, so if he's a Python bigot, at least he's an informed Python bigot....)
"How can you claim that you are anti-crack, while still writing a window manager?" — Metacity README
Get a fscking clue
^^^^^^^ set SLASHDOT_LAMER="YES"
How many embedded developers do you think compile the kernel for their device on the device itself
How many ? Probably more than what you think. Actualy i think that having the power of compiling a kernel and modules on the localhost is more important than what your small sized brai n might imagine.
Now on the availability of Python2 over the current linux distros, i think you missunderstood what i meant. I dont say it aint available, i say it aint standard at all. Perl is default these days, so why using python ? I like the fact that i can compile a kernel with only binut ils, a C lib and an compiler.
Python is supported on PalmOS ? OH my god i dont care at all !
there are 3 weathers in Chennai : hot, hotter, hottest
this may be completely displaced, but why not use an xml-based approach? build a framework, that offers at least the remote chance that the config tool could be used in more projects than the kernel?
Oooh, looky looky!! I see a flame war brewing...:)3 88 2.html
About PalmOS and python, to be frank, I don't really care either since I don't own a Palm and I'm not interrested in acquiring one. I just wanted to point out to you that if necessary you can fit python into a pretty small environment. Hell you can even run a version of Java on a friggin smart card! So if you for some reason I don't really get despite all your excellent explaining (look! ooh! it's powerful! your small sized brai n is unable to understand this!) are going to cram the kernel source, gcc, binutils, make and a few other necessary things onto your "embedded" device adding a scripting language (be it perl or python or whatever) isn't going to make much difference in terms of disk space used.
And python is not _that _non-standard. The last time I used a linux distro where python was not packaged was with slackware 2.something back in 1995.
As to why to use python, and while we are on the subject of ESR:s CML2, he wrote a nice article explaining his choice of python visible at
http://www2.linuxjournal.com/lj-issues/issue73/
XML wouldn't be a good alternative for CLM2, but it's squarely in scope for RDF and the Semantic Web.