The automotive industry, with its particular emphasis on efficient workflow and practices, has had a lot to teach the software world over the years. From the process of requirements, specification and design through to LEAN development practices, it is difficult to argue that we haven’t learned anything from them.
I think that there’s another practice from that industry it might be fun to adopt: the Concept Car (sometimes known as a Show or Halo Car).
These are cars where the designers and engineers have been allowed to let their imaginations run wild, and build something that shows off the limits of what’s possible. Often they’re also used to explore new technologies or ideas without having to commit to standards of production that would be required for a marketable road car.
And that’s pretty much the key point about these cars, they normally build just one or two and take them around the car and motoring shows for everybody to look at and talk about.
Obviously I’m not suggesting that we build strange and outlandish cars, and drape them in fancy lights and scantily clad people on a slowly rotating podium; but I think the idea can translate to our world.
Thus I’d like to humbly introduce my idea of the Concept Distro.
The Concept Distro would be an engineering project to allow developers and maintainers to let their imaginations run wild. It’d be released, probably to demonstrate at a major event, and would explicitly not be supported. Not even basic security support, or a bug tracker, or even answering questions about why things don’t work.
On a Concept Car, it’s entirely normal that half of the doors don’t even open; likewise in the Concept Distro, it would be entirely expected that half of the icons were just placeholders and didn’t do anything if you clicked on them.
After release, engineering effort could be focussed either on integrating the successful technologies into Linux distributions proper, or on working on the next Concept Distro for the next big event a year or two down the line.
In the early days of Ubuntu, when we had two different CDs, we had a plan to do this kind of thing with the Live CD. Since that didn’t have an installer, it could be a little more experimental and a little more risqué. It was a good place to try out Network Manager before we integrated it with the distribution proper, and the intent was that the naked people would have had even less clothing (I didn’t mind the loss of this, the male model they picked was not the prettiest of the options).
Assuming we don’t resurrect the naked people, what kinds of things would we do with the Concept Distro?
It’s a chance to make some fundamental changes without having to worry about the support or upgrade implications of them. I’d like to see what we could do by assuming that the filesystem is a single mount of ext4 on LVM on RAID, which we grow onto additional disks as they are made available.
And since we wouldn’t have to worry about partitioning, it might be interesting to look into rearranging the hierarchy. Maybe having /System, /Software and /Users really is better than /bin, /usr and /home.
If we went down that route, we could throw out the traditional package manager and experiment with some new approaches. What better way to upgrade the operating system than:
cd /System bzr update
or switch to a new version with bzr switch? It works well enough to upgrade my WordPress installation, after all.
From a technology fetishist point of view, there’s plenty to play with and try out. Would we use ALSA and dmix instead of PulseAudio? Assuming we didn’t use the Concept Distro to try out going fully volume control per application, of course. It’d be a great place to see what we can do with Upstart, udev, D-Bus, DeviceKit (replacing HAL) and other plumbing-layer components.
In the desktop library layer, the bling guys could play with Multi-Pointer X with kernel-mode setting support and a resolution independent GTK+. Rendering could be fully indirect or entirely direct GL based, depending on preference.
And for the desktop itself, the user experience and interface designers have a completely blank canvas to play with. Since it’s just a Concept Distro, one needn’t worry about the ability of users to transition to new ways of working. Instead you can see how they react to seeing new ways of working in a demonstration or talk, perform usability testing in the lab and even see how they get on in the field.
It would be a very fun and exciting project.
Unfortunately, unlike the car world, there’s not necessarily the funding for such a thing. Who would want to finance an ongoing software development project that was explicitly intended to have no users?
In the automotive world, the Concept Car from a development point of view is important since companies cannot, for example, experiment with new engine technologies and expect their customers to be able to drive them on the road. In the software world, such “lab” projects are much easier to develop in isolation and tend to remain on our own workstations.
The Concept Car can also serve as a marketing tool, it draws potential customers to your show stand and while looking at the sexy car on the stand they’re ripe for being sold a somewhat more pedestrian road car. It also aids towards customer loyalty, since you’re more likely to buy another car from a manufacturer who is showing off the most advanced concepts.
In the Linux world, while we appear to have direct competitions between the distributions, the reality is that we co-operate far more than you might expect unless you’re involved with development. A Concept Distro would need upstream work from just about everybody.
And would such a thing help convert people from Windows or Mac OS? If it would, maybe it’s a good idea after all.
I like your idea. The problem is that cars are made by one company and
that company can put resources to do stuff like that. Linux
distributions are assembled by products of many
companies/organizations/volounters. Thus, one Linux distribution can’t
stear development of it’s components.
But we can do something. For example, skip one Ubuntu version after a LTS
18 months should be enough for open source community
version. Let’s always create something even edgier than Edgy. We could
call it TP or something like that. Unsupported. And then build upon it
untill next LTS
to test drive that ‘car’ and make it usable. I think this would speed up
development, and what’s even more important, innovation.
You have good observation on concept car – it is much more about
marketing than about technology.
I think Debian and friends should put more effort at some point into being more flexible when it comes to alternative filesystem layouts. I’m certainly not expecting any change to happen, but maybe a set of environment variables could be set at as part of the startup process that would speficy where to find things, and then developers would link to things like $SBIN/ifconfig instead of /sbin/ifconfig. I’m not sure how ready the average distribution is to handle even minor FHS changes, it would be nice if distributions could be more open to that, not that you’resuggesting actual change in actual distributions, of course. I hope such a hypothetical system would also use lower case letters in it’s top level directories (like /system instead of /System).
Maybe a concept distro is too much effort. Maybe a concept repository would be better. Then users could install weird and unpredictable things, and if it’s uninstallable, even better. It would be really nice to have a better sandbox space for developers to mess around in. I don’t think Ubuntu really provides anything like that currently.
I agree. Re-arranging hierarchy, try a different package manager etc Good idea? Absolutely. Can’t keep doing the some old things, there always room for improvement and a different approach to doing things with new ideas and techniques. But, it does need funding. Nevertheless, don’t give up, talk to people, it may happen.
Did you ever try GoboLinux? It’s a distro with a different directory layout, almost the way you describe it.
It’s pretty cool
>Obviously I’m not suggesting that we build strange and outlandish cars, and drape them in fancy lights and scantily clad people on a slowly rotating podium; but I think the idea can translate >to our world.
Can we send the distro CD’s to trade-shows with scantily clad people handing them out though ? :p
Oh wait, the corporate distro’s do that with their stable releases already !
But much of this already exists, right?
Gobo linux experiments with the file system hierachy http://www.gobolinux.org/
I think mostly of Fedora as a concept car, and AFAIR Fedora 9 had graphics bling, and ext4 and Fedora 10 will have DeviceKit.
And I’m sure that somewhere there is a distro with a VCS-as-package-manager.
I don’t think such a project needs a lot of funding. Developers already create a lot of bling-bling demos for conferences and the like (UDS, XDC, etc.)
This whole stuff just needs to be packaged up as a LiveUSB.
For me, I would be more than happy to have a LiveUSB with gallium3d and kernel-modesetting for radeon and nouveau ready to play with. Together with much hyped but never completed things like facebrowser or upstart.
I definitely agree with rethinking directory hierarchy. Note that one specific distro has already done just that: GoboLinux (http://www.gobolinux.org/). Although after spending some time on Unix systems you quickly get the hang of the specific names, and what directories are used by each distro for different types of files, I guess that I probably is quite unintuitive for new users.
In some seriousness, you are describing Foresight Linux. While eye bleedingly slow, conary allows package installs to be fully atomic. That means you are dependency complete at all times. It also showcases the latest & greatest. Example: Foresight has the new gnome releases generally the day it is released.
The FHS is one of the things that has strengthened Linux. Look at the absolute MESS of $PATH on Solaris compared to the standard Linux install. The pathnames shouldn’t change.
As others said, these concept distros already exist.
Well,
as far as Desktop Distros are going, I think going new ways is a bliss.
Regarding those changes like “/System”..I don’t think it’s good for server distros.
As long as those “addons” like an alternative filesystem nameing can be disabled for server distros, ok with me.
But I wonder, we do have those system already, why don’t we use it? /home/ HOME/Pictures HOME/Documents etc. This is easily to achieve to not bother the user on the desktop with the details. Regarding Ubuntu as a single person desktop system like Windows is, we shouldn’t have any problems to hide all those “disturbing” details.
The fun thing about free open source software is that the people working on it are free to do whatever they want, there is no limitation of funding or whatever like the automotive industry, people can and do already do this, if for example you wanted to change the user interface of an application, you would make a fork, re-do it, make it nice, show it off and then if others like it they might take it or just some of the ideas and put it into the mainline. this is basically how open source software works and one of its greatest strengths
I think your Concept Distro concept is already underway. Why else do you think there are more than 200 Linux Distros out there ?
But why would you not want version control, mailing list,etc. for that ?
People are right — there’s always been the capability to use Debian as the frame for a “concept car”. ipkg, Knoppix, Ubuntu, Foresight, Click ‘n’ Run, and others already exist. What Debian historically lacks is a formal effort to integrate successful ideas. You can always engage a few maintainers directly, but sometimes the ownership culture gets in the way, and sometimes a change you want to make will affect the entire archive, or will be an entirely new project.
Trash idea. Read “Why Apple doesn’t do concept products”, http://counternotions.com/2008/08/12/concept-products/ . The bottom line is: real artists deliver.
RE: rawsausage
What do you call the Cube then?
rawsausage: Debian does deliver. Not as fast as you might want. Ubuntu delivers. Foresight delivers. Knoppix delivers. You’ve fundamentally misunderstood and misapplied the lesson in that article. Apple does do concept products. They just don’t put them in trade shows (they do however, put product announcements at development conferences…).
Open source breaks the barrier between vendor and customer. Between ISV and sysadmin. To accurately extend the Apple analogy, it’s either a very large private demo. We don’t publish concepts to prove how awesome and innovative we are. We publish them to elicit feedback and support for inclusion.
Where I think Scott does go wrong is the idea of using this as a marketing tool. This is essentially lying to customers. I’m imagining something like showing people some fancy wobbly window technology that Debian itself doesn’t have. There was a bit earlier where people were upset that developer desktops never matched their experience in Kubuntu. That’s a danger you face with Concept Distro as Marketing.
There’s reasons for concept distros, but trade shows ain’t it.
rawsausage: nice link, thanks. But its conclusion speaks of “A commercial company”, not of “some loose circle of hackers”… And the article also says that Apple indeed builds concept products, only they don’t release them to the public. With Linux distro development, there’s not much difference between developing them and making them public: everybody can see all changes and all intermediate versions anyway. Which might sound shocking for the marketing folks but helps for actual development.
So, having a concept distro might indeed be a nice idea, for trying out radically new ideas. Though, personally, my problems with Ubuntu are not so much the missing revolutionary features but rather missing polishing, bugfixing, fixing of usability quirks
Its funny, it feels a lot like Gentoo was at the beginning. Having a really simple build system so people could try all kinds of packages and assemble them in funny ways. And there is a Exherbo now (a kind-of-fork of Gentoo) who are explicitely saying they don’t want users and instead want to try to do all kinds of funny things. The risk is that people will start to like what you built and start using it and then a community will start supporting it and then you can’t do the risk-taking innovation anymore. So you have to start again from scratch.
yeah, Paludis has been pulling my upgrades from git/bzr for a couple years now..
There are many things to think about, that’s evident, but the intransigence of a lot of hardcore Linux users, make this effort useless.
Unfortunately there is a lot of ignorance too, that makes all vary difficult… but i would not talk about that, because it doesn’t worth it.
I’ve been thinking for a long time about alternatives or projects that would give a ‘well defined shape’ to Linux distros. First, one need to understand the importance of diversity and how everything works in the Linux world…
I came whit some conclusions:
If one want to see Linux grown, one needs to see that every OS needs a well defined concept, so there could be a standard on installing applications (of course rpm doesn’t apply), and yet it wouldn’t mean the ABOLITION OF DIVERSITY… If i or Y distro wants to use this or that other installation method, then linux makes it possible in an easy way, but no matter what, there will ever be this standard installation method that makes everything easier.
Let’s understand something: if people like me are so interested in a GOOD standard installer, is NOT BECAUSE WE ARE WINDOWS FANBOYS, but because we understand that having solid standards will preserve linux diversity and yet make it _ATTRACTIVE_ to ISV and users of all kinds.
Observing on the differents apps installation (or distribution) methods, i realize that the best way to do it are application bundles (yes, like OS X .app), the concept is simple, but it could be improved… The basic anatomy of these app bundles would be the same of apps directories (like in GoboLinux: /Programs/MyApp/3.0/bin), the more obvious difference is that apps bundles are only ONE FILE.
Of course, one could integrate this bundles to the system, so they can use shared libs an so.
GoboLinux filesystem hierarchy could not like to everyone, and thats OK, we only have to look to the “/Programs” anatomy, it’s not any like Windows or even OS X i think, it’s TRANSPARENT, FLEXIBLE AND EASY, yet secure and advanced.
If there would be a ‘Concept Distro’ i would delete the ‘../bin’ (and such) dirs floating among the whole FSH; i mean, i understand the function of /bin /sbin /usr/bin or /usr/sbin, but non-server distros needs anything more?
Talking about modern desktop distros, there is really needed dirs like /usr/local/bin?
Seriously, if there is an important reason, i will shut my mouth.
In short: my vision is having standards, communication and collaboration between distros, in order to not be ‘owned’ by diversity, but yet supporting all kind of diversity.
- Promote the “/Programs” concept.
- The extension of XDG Base Directory Specification.
- The implementation of application bundles as a standard (in Users Application distribution).
- The creation of a ‘Graphic Framework’ integrated by the greatest 2D and 3D solutions, like Cairo, in order to make them WORK TOGETHER and bring to light something very solid and in constant evolution, that would make developers happy.
- Better Graphic Toolkits, like GTK and QT (the previous point have A LOT of influence in this).
- Promote the use of ~/.Settings and ~/Library dirs to separate the actual DOT FILES in those that are only configuration files and those that are apps data (maybe one want to delete all his config files without delete other apps data… ~/.mozilla will be ~/Library/mozilla and ~/.vmware will be in ~/.Settings/vmware)… Otherwise use just ~/Library by replacing the old ‘dot files’ (whit some exceptions, like ~/.Trash)… And try to make developers follow that specification.
Sorry for my long comment and thank you for reading… I hope hope some people share my vision.
Of course, the LSB is fundamental on all this.
I remember reading one theorist’s opinion that the root of our intelligence rests at the feet of our ability to draw analogies.
This analogy is bloody brilliant.
Isn’t Sabayon an example (twisted you can say) of a “concept” distro? It combines the best FOSS technologies.
Awful idea, I think. Concept cars exist to show off the cool things the car companies could do if money/profitability were no object. They make one prototype, and never put it into production. Well software isn’t like that at all. If you put together a concept distro, mass producing that distro costs you nothing but bandwidth. So why wouldn’t you produce it and maintain it? That just ridiculous.
For all that, I have to say I think BJH is right… Sabayon is as close to a “concept distro” as you’ll find. Of course, it’s produced and maintained as I said such a thing would be.
Pingback: A "Concept Distro" « A Conservative Techie
I like the idea, and would further add the stipulation that a concept distro would be designed explicitly as a VM image or at least for a very small subset of hardware. There’s no point dealing with the many hardware differences in such an idealized system.
Pingback: Life update and new blog « Ogra’s blog
Pingback: Recent Links Tagged With "ext4" - JabberTags