Post a Comment
"...The directory layout would not be based around Unix/Linux conventions. For example, why not store the fonts in '/fonts'? Again, I know that some Linux people find ``either /usr/opt/etc/X11/fonts or /etc/X11/usr/fonts depending on the phase of the moon'' a bit easier to remember than '/fonts'..."
I recommend the author to read a few Plan9 papers, especially this one:
http://plan9.bell-labs.com/sys/doc/names.html
Also the author should look more into OS X. It already has a lot of these features, especially the whole fonts bit. Fonts are stored in /Library/Fonts for all users, or ~/Library/Fonts for yourself. And it has an X server. And it has a decent GUI, but not nearly as efficient as xfce.
I actually don't get what's so great about XFCE. Everthing else about the article I understand, but XFCE... I guess I just don't get it. Personally I find its interface far too limiting in terms of customizability compared to the likes of KDE or Gnome, and not particularly visually attractive either. (I admit that KDE can seem a bit flashy and have too many options sometimes, but if you put in the effort it can be customized to perfection). Anyway, the last version of XFCE I tried was over a year ago, when everyone was suddenly espousing the greatness of XFCE as the best DE alternative.... and within a few minutes of using it I got annoyed because it seemed near impossible to add all the icons I wanted, in whatever order I wanted, to the bar without jumping through hoops, so I gave up on it. What makes XFCE (current version or just in general) so special? Or is it just another case of certain people liking minimalism, the same thing which has always kept customizers like me steering clear of the likes of Fluxbox?
Edited 2006-10-12 18:57
I would suggest just trying Xfce 4.4 when it comes out (shouldn't be too long). The panel app has been completely rewritten, so you may find it more customizable. Thunar with desktop icons also makes a nice addition (my favorite file manager, much better than xffm IMO).
Thunar with desktop icons also makes a nice addition (my favorite file manager, much better than xffm IMO).
I suspect people who like Xfce (me) would still be happy with twm if it looked better. I could probably count the number of times I've used the gnome file manager here at work on one hand, and hate icons on the desktop (they just get hidden behind windows). Xfce (to me) is just something to manage windows. All the my work is done in a terminal and Firefox, with a dabble in VMware Server Console once in awhile.
I suppose if I were using a machine to manage my multimedia extravaganza at home, I might have different preferences. Fedora 4-5 and Ubuntu 5.10-6.06 seem to hate the network (Intel 82257) and USB on my home system (MSI K7 board), so I use FreeBSD and XP.
I hate having things on the backdrop as well.
I might have a go at putting more system monitors there at some point though. Sometimes, I'm watching a film and it would be nice to look over at the computer and see the time, current downloads, IM icons etc.
I find the idea of getting to backdrop to click an icon rather counter-intuitive.
Mike
Thanks I'll take a look at at the OS9 docs.
Whenever I've looked at OS9, it didn't look like the kind of thing that was very close to being able to run X11 with a standard window manager. Part of the criteria stated in the article is that it must be doable with 1 mil Euros and 1 year.
I knew about the app folders implementation in OSX. The fonts layout sound like it's well designed too. Unfortunately, OSX is tied to proprietary hardware that I can't afford. I haven't used MacOS since 7.x but I wonder if a lot of the good apps are still shareware rather than free? That was one of the other criteria, that the system be based on OSS and give access to loads of FOSS.
How viable running X11 (for day to day use) on top of MacOS would be, I'm not quite sure as I don't have much experience with a recent MacOS.
Mike
Edited 2006-10-13 01:27
Right, Gentoo with it's 100's of USE flags, standard Linux lay-out, 'etc-update', 100's of different applications for the same thing etc... That is not what Mike wanted
(not to bash Gentoo as I'm running it on non-x86 hardware...)
What Mike want sounds more like BeOS or Syllable with a different filesystem lay-out and the Mac OS X way of installing applications...
Nice article, I wonder how much work would really be needed to accomplish what was outlined. My OS dreams are somewhat more far-fetched that this.
I like the idea of the 'alias' symlink 'libs:'. However what I would like more is an aggregate symlink.
Sort of like a folder which concatenates lots of folders. So a /fonts folder could be defined such that `ls /fonts` would spew out the contents of /usr/fonts /usr/share/fonts /usr/X11R6/defoma/pango/fonts/...
New files created would automatically be placed in a predefined folder. Also some sort of file-name pecking order would need to be defined to stop collisions, but it would greatly simplify some things
.
Maybe you were inspired by GoboLinux, or maybe you don't know about it. What you say about the filesystem layout has many similarities with what GoboLinux is aiming to achieve.
The idea of Gobo's filesystem layout is simplicity (also inspired by MacOSX). They have sensibly named directories, and applications are logically installed in a nice and tidy fashion. But in order to retain compatiblity with the 'legacy' layout, they have to have tonnes of symlinks pointing from the standard directories (/bin,/usr/bin etc.) which makes a mess.
Then to make it worse, they've hacked the kernel to hide those standard directories so you don't see them. In my opinion this is bad and it still doesn't remove the need for a good package manager.
Some interesting ideas, but I think I'd stick with Gentoo for now :-)
Edited 2006-10-12 19:14
well its either that or having to go over every programs source with a fine tooth comb, looking for hardcoded paths.
atleast now you can more often then not grab the source of a unknown program, throw the tar-ball at compile (the gobo tool for managing source based intstalls) and more often then not get a compiled program (gobo will even pull down either precompiles or source of known libs that are not allready installed) parked inside the correct /programs/"programname"/"version"/ directory.
my next linux install will be a gobo install
Edited 2006-10-12 20:47
I was more thinking of a linuxSTEP (linux with GNUstep with a FHS following OPENSTEP specifications).
It's so much alike my thoughts that it's scary. Compatiblity with normal file system layout could be done through a compatibility package installing the necessary symlinks.
"But in order to retain compatiblity with the 'legacy' layout, they have to have tonnes of symlinks pointing from the standard directories (/bin,/usr/bin etc.) which makes a mess."
That's because there's a lot of application that isn't well behaved and has hard coded paths in the source. If there was an ideal world, those symlinks wouldn't be needed.
"Then to make it worse, they've hacked the kernel to hide those standard directories so you don't see them. In my opinion this is bad and it still doesn't remove the need for a good package manager."
First of all, this kernel hack is completly optional. One does not have to use it to be able to use GoboLinux, one can manage with any configuration of the kernel.
Second, even if the directories (or symlinks) are hidden, they are still usefull. One could still do 'cd /etc' to get to the directory with the settings, just that 'etc' doesn't show when you do 'ls /'
Actually, I think that an LCARS system could be pretty good for some uses and some people. For most people overlapping windows are a power user feature that just causes confusion. Most PDA OSes, for example use a layout of that type.
Another technique that could be adapted to such a layout would be the abandoned IBM/Apple OpenDoc system. With that (if I understood it fully), if you wanted to edit some rich text on a webpage, the 'word processor' would provide the editing tools within your web browser. Similarly, it would work in much the same way if you need to edit an SVG in the middle of a document.
Mike
Edited 2006-10-13 01:48
windows 1.0, and that os that first showed of the WMI interface both where unable to have overlapping windows.
there are some WM's for X available that do non-overlapping. ION i think is the best known one.
the original idea was, as you said, to avoid confusion when one window partialy or fully overlapped another.
hell, i have recently found me playing with the idea of having a PDA like interface to the computer. just look at these widgets and all that turns the desktop area into a kind of quick check for trivial data.
and that opendoc stuff reminds me of some other toughts i have had, about rather then installing software, you install functions. so that rather then installing photoshop and having to remember the way photoshop works each time you use it you just selects to edit a photo and presto. ie, 100% document/file/object-centric working, compared to todays application-centric working.
Once they have been installed/compiled, Linux applications sometimes leave behind no clue as to where they went!
Look into the --prefix option. If you want to know which files belong to a given program, install it to some temporary location such as ~/tmp_install.
My personal convention is to only ever install system wide programs with the package manager. (apt-get in my case.) If I need to compile and install something manually, I install it within my home directory, and each program within its own directory. For me, this is ~/local/programs
So whenever I run ./configure, I always use ./configure --prefix /home/david/local/programs/NameOfProgram
Once it's installed, I'll setup any necessary symlinks to my ~/local/usr/bin directory which is in my path.
That keeps compiled programs all contained in their own area. And since they are all installed to a single directory, if I want to get rid of the program, I just rm -rf ~/local/programs/NameOfProgram and it's gone. (If I created a symlink in ~/local/usr/bin, I'll delete that too.)
"Look into the --prefix option. If you want to know which files belong to a given program, install it to some temporary location such as ~/tmp_install."
You should take a look on the packagin system used by FreeBSD. Installed programs (packages) are listed in the package database /var/db/pkg; every package has a directory with package name and version. It contains files thatt tell you about package purpose and description (+COMMENT, +DESCRIPTION), installed files (+CONTENTS).
This is a good way to find out which package a file belongs to.
"What does the packaging system for FreeBSD have to do with anything mentioned in the article, or anything I wrote in my comment?"
This is the reference text:
By blixel (1.88) on 2006-10-12 20:27:50 CET {
Look into the --prefix option. If you want to know which files belong to a given program, install it to some temporary location such as ~/tmp_install.
}
I just mentioned this packaging system because it is modified by a "make install" command. So, if you want to know wich files belong to a given program, you would only have to ask the package database.
I just mentioned this packaging system because it is modified by a "make install" command. So, if you want to know wich files belong to a given program, you would only have to ask the package database.
Right ... but in context to the part of the article I was quoting, the original author was talking about doing manual "make installs" ... i.e. without the aid of a package management system. So my reply was all about managing manual installs. (Because the author said "Once they [they being manual program installations using "make install"] have been installed/compiled, Linux applications sometimes leave behind no clue as to where they went!")
"Look into the --prefix option. If you want to know which files belong to a given program, install it to some temporary location such as ~/tmp_install. "
Thanks, I'll take a look into that. I'd dabbled with --prefix to some extent in order to keep a couple of different builds of Lyx installed at the same time. But I hadn't though of using it in that way.
Mike
"So whenever I run ./configure, I always use ./configure --prefix /home/david/local/programs/NameOfProgram
Once it's installed, I'll setup any necessary symlinks to my ~/local/usr/bin directory which is in my path."
You should really take a look at GoboLinux then. It does the exact same thing; everything is installed into it's own directory and then symlinked into the directory in the path. Just that there are tools for it to simplify the process.
Personally, I'd take the concept of Squeak http://www.squeak.org and put it on top of the Linux kernel.
It wouldn't necessarily be based on Smalltalk. Actually, I'd rather have it based off of Slate http://slate.tunes.org. Slate is basically a Smalltalk/Self/Lisp hybrid that is a very interesting language.
I'd also probably skin another syntax like Applescript (or something as natural language as possible) on top of it too.
But the real interesting thing from a user perspective is that it would be "Turtles all the way down". What that means is that as much of the system (at least everything above the kernel) would be written in a highly, introspective language like Smalltalk or Slate or maybe even Lisp.
What that gives you is basically everything on your desktop is a "live object". It can be inspected and manipulated. Little applets are completely trivial to make for a non-programmer. You could have a little visual language too. See squeak again.
It might be hard to imagine, but for those of you that have worked in Smalltalk environments, you know what I mean. Of course it would be modern, GPU-accelerated with lots of eye-candy (unlike Squeak).
1) "It's not the hardware, you understand; the hardware is great; it's really moved on a lot since the 8 bit BBC Micro that I started with at age 7."
Very true. This is never stressed enough. Hardware is improving at a very fast rate, software is lagging behind badly. It is more than anything a kind of "denial". Microsoft has done nothing to promote XP 64bit, and I wonder how much they are going to in order to promote Vista 64.
The FOSS community isn't much better either. How often I have read: "64bit? What is the big deal?". SUSE has been the only exception. Mac OS X is also very progressive from this point of view.
2) "The second way of making the money go as far as possible would be to make the OS itself open source. This means that, if other people like the look of Mike OS, they can contribute to it. I don't care about personally profiting from the OS in monetary terms - I've still got four million Euros, remember. I'm not going to get dragged into an argument about the best licence to use; let's just say that it's a licence that means that anyone can contribute to the OS and also that, we can help ourselves to most of the FOSS freely available on other platforms.
Therefore, the Foundation is going start the MikeOS project and get it to a state where it is usable. This will use up the first million Euro and from that point onwards, it will have to survive on its own."
This point is so obvious that everybody should agree.
I can understand that if your name is Microsoft or Apple you might disagree, but if you are trying to create a tiny hobby OS, trying to keep it closed source shows a total lack of basic common sense.
3)Software installation: well, that is very similar to the OS X way or perhaps the PC-BSD one. It also vaguely reminds me of autopackage. But in any case he has got a very good point.
SO basically...OSX users in general have no idea how OSX works nor do they care so should probably go read something else. The author wouldn't bother writing this if OSX is what he wanted. What is wrong with you people?
Not everyone wants a Mac. Say it over and over again. Repeat after me: NOT EVERYONE WANTS A MAC.
The operative word here is "My".
The user wants the focus, simplicity and design of Mac OS, but the openess of Linux. You can't have both.
By being open source, everybody has the ability to input, and it's very difficult to get a comunity to agree on one way of doing things, one GUI, one of each subsystem. Only closed source, or controlled source can do this.
That's not correct. At least not entirely.
It's perfectly posssible to combine the focus, simplicity and design of Mac OS with the openness of Linux. GNUstep proves this, and is perhaps closer to the real thing than Mac OS X
Controlled sources are a must here, I agree, but open source does not equal lack of control. It's perfectly possible to control submissions, and there lack of control is no more likely than with closed source. But that of course makes it likely enough anyway.
There are several GPL'ed and MIT-licensed projects with great control and strict focus. And there are many closed source projects with no control and no focus.
Anyway, it's possible to get both. And creating such a distribution is reasonably easy. The problem is to maintain it.
Is this a compendium (a summary with some considerations) or an addendum (a part joined subsequently) to Alternative OS contest?
I asked this, because this Dream OS article deals mainly with the characteristics featured by alternative OSes all grouped toghether to create a new mythical OS...
And by the way, just for the fact I am here...
Can I ask to moderators why the GEOS article won Alternative OS Contest?
Hasn't GEOS article being published online AFTER the deadline of 14 of July?????
[off-topic]
Can I ask to moderators why the GEOS article won Alternative OS Contest?
Hasn't GEOS article being published online AFTER the deadline of 14 of July?????
They almost all were published after 14 july IIRC. That doesn't mean they weren't sent in before that date.[/off-topic]
A good compromise to all desires of the Author it is MorhpOS OS, except for the fact it is not Open Source...
...But, maybe in the future it could being released OPen Source as it has just happened with its GUI called Ambient.
Not only but MorphOS memory protection capabilities should be improved by finishing developing sandbox of QBOX environment directly related to its microkernel Quark, and not being only stucking with sandbox with Amiga API called ABOX.
So the author could get finally its dream OS ecoming real stuff.
From another point of view he had also considered AROS into its discussions. And sure AROS seems to me close to his desires, bus as being AmigaOS 3.1 Like, then AROS has no memory protection.
Well. But AROS is Open Source OS.
Any person could co-operate the project, join with other programmers in a distributed worldwide effort, and helping adding new features such as Memory Protection to AROS little, joung and promising OS.
So, when AROS will begin to deal with Protected Memory and other features, that actually are still missing, then Mr. Reed could at least make true his dream OS.
Please programmers. Help improving AROS:
http://www.aros.org
My dream OS would be a lot like Mike's, although I've often wondered if there isn't a way to get the best of both worlds situation with the RiscOS model and the Linux model, using NTFS's file system.
First, a hard link is a file with two names. It's the same exact data on the disk, with two different names/directories.
NTFS, if I recall correctly, has a feature that amounts to semi-hard links. It stores identical files as a single hard-linked file, but unlike a real hard link, it will create a new file if you change one of them. The ones that are unchanged continue to be the same data, the one you changed is now its own data in a different location on the disk.
Could you use such a thing to simultaneously have the ease of RiscOS drag'n'drop installation, but avoid the trouble of duplicated libraries taking up space?
The system I envision would store identical libraries (say, GTK+2.8.9) once and make fake hard links in each of the folders the file's supposedly in... Now, suppose you upgrade The Gimp to a new version that requires GTK+2.8.10. Now the files in The Gimp's folder are NOT hard-linked; they're GTK+2.8.10. All the others point remain pointing to 2.8.9 and remain working just as they used to.
The next difficulty in a RiscOS system is that a bug-fix to a library would have to be applied to EACH program that uses that library. (correct me if I'm wrong)
Suppose you make a special case where each library (or other shared file) on the system is ACTUALLY hard-linked to... uh, /usr. To upgrade all applications from 2.8.9 to 2.8.9a, you would apply the bugfix to that file. Yeah, I suppose you'd end up with the same problems if 2.8.9a broke application X.
Oh, and since one feature of hard (and "hard") links is that the data isn't removed from the disk until all the directory entries to it are removed, so you can still remove applications by deleting their folder.
All this work would probably put a serious strain on the filesystem.
Actually, all this could be done with symlinks (but that would involve adding more physical files, and keeping track of how many symlinks point to each file)
My only other 'big wish' is that the OS could have a bunch of, say, audio-playing interfaces, so that every player that connects to that audio interface could use all the plugins installed. Let's say you have an ancient music playing program that calls the audio interface. Add the Ogg Vorbis playing plugin to your system and... Voila, your music player can now play Ogg Vorbis because your system knows how to deal with it now. Yes, this would make audio players more uniform in terms of their playback... but there are other ways to differentiate yourself.
I know several OSes (such as BeOS) have done things like this... Windows does it with video codecs. All I have to do is install an XviD codec and WMP, Winamp and the rest now understand XviD.
Edited 2006-10-12 22:10
First we get publicity in article and now we get publicity in front of the web page.
I am obliged to close a publicity before I can read something on this site each time I open the website or click on a link to see comment/read an article.
This site has too much publicity (and don't tell me that you gain no money with it), it is full of crap now. Thanks, I will save my time and not come back again. I hope this site will disappear from the net.
Edited 2006-10-13 05:14
I didn't find ur ideas worth; you have stressed less on the ideas but talked more about here and there.
these ideas are no-where near to throw away windows; not even any good linux distro these days;
what it will take to do that is completly outstanding OS, which no one has done so far.
but wait for some more time; i'll be putting it on the stage.
it's 2006 nex, so why is your computer really big hot and takes an age to actually do anything, you know, things like switch on and er switch off, what do you actually use your computer for? if it's so fikkin great why does it take so much time and wasted energy to do it? so ask yourself, if it's 2006 why is my computer a piece of spit... this rant goes on a bit more but you get the jist..
My dream OS would actually be a virtualized Mac OS 9 environment with each application running in its own sandbox, or Mac OS 9 environment and servers so that Apps can communicate with each other and the underlying system. Hopefully with parts re-written in i86 architecture with non-portable code running in seperate powerpc sandbox.
Mike, I hate to say it, but MikeOS isn't really very ambitious.
You're basically describing a custom Linux distro, and nothing more. As folks here have pointed out just about everything you desire exists in one form or another. It seems to me that your entire OS project would probably be concerned with picking the components and then making the required edits to sort out the directory structure. I'd expect this could be accomplished for considerably less than 1m Euros, and probably within just 6 months rather than a year.
What you're describing also seems to me to be fairly close to Haiku - excepting of course being based on the Linux kernel and running X-Windows.
Basically the guy wants an Amiga like OS with a few enhancements from the Unix world! what a shame! some people have no imagination at all.
The following text descibes my own ideal operating system. But before that, I would like to stretch the fact that hardware is far from ideal as the author says. The reason is that each device should be independent of O/S, all devices should have an object-oriented interface and the driver code should be in bytecode format loaded into their flashable roms, thus allowing very easy integration with the host O/S. Instead of that, what we get is a list of I/O ports or memory locations and a specification for some types of devices that is usually not implemented 100% and is fixed in the rom.
Let's go to the operating system...I want an operating system where:
1) there are no applications/drivers/filesystem whatsoever.
2) all data and code is stored in a relational database.
3) code is stored as functions.
4) data is automatically persisted and indepentent of code.
5) code is stored as bytecode; the kernel translates the bytecode to native code and caches the result, handling security as well.
6) programs are composed by the user with the help of a GUI, by chaining functions together. The GUI is 'function centric', i.e. it allows the user to process data using one or more functions. Let's name these programs 'tasks'.
7) tasks are full screen, with a small bar in the end of the screen which contains a view of open tasks. Clicking the other tasks brings them on the screen.
8) the system knows the data types of data, so it is possible to do queries across the system.
9) the system is distributed. Computations can run in any available node.
10) the system is reactive; state change can be intercepted and handled accordingly.
All the above is coordinated by the kernel (the only native code in the system).
Gold is a new operating system from scratch designed for desktop use and modern computing, you can see it here http://icculus.org/gold/
This operating system has really nice things, for example, see this about his GUI, http://www.jbit.net/~jbit/Golem-Stuff.txt
This is probably what you would want, it simply rocks!
* _NEVER_ steal the keyboard/mouse focus.
(Game devs, try to not steal them outside of gameplay)
* _NEVER_ put a new object/window/etc ontop of where the user is currently working.
(like, don't put a notification above the text input box currently focused)
* _NEVER_ put keyboards/mice/etc into weird modes without a visual indicator and a clear way out.
If only vista had this implemented....






