No, this is not a traditional “Linux distro”. The RoxOS guys are feeling like innovating today, even by breaking legacy and some compatibility at places with other Linux distros or Unix. RoxOS is a desktop OS which is evolving by using existing tools (Linux kernel, X11, ROX Filer, gnu etc), but somewhat modified (e.g. new filesystem hieriarchy and dependancy on filesystem’s metadata). Most apps will probably
need repackaging or altering in some way in order to run on RoxOS. Join the discussion or the project. This project was made known to us after the long discussion we had the other day about innovation and on creating a new OS, but by re-using existing tools and extensively modifying them, in order to cut production time and to easily get hardware support (via X11 & Linux or FreeBSD’s kernel).
I have my own take on who can do it better: I think a company can not do it
better, because any company that enters the OS market with the expectation of
making money will go down in flames because the market is too hard to enter.
That is, it would take several dozen million dollars to write the thing, before
even earning the first dime. And VC is way too dry to bet real money in this
kind of thing (and not nearly stupid enough).
Why?. “Rethink a brand new DE, something that can compete with OSX’s
sexiness and XP’s productivity”. Mind you, MS and Apple have not been able to do
both things at once, but with proper funding I suppose it is possible.But how
much is that proper funding going to have to be?
Here’s an example. GNOME is produced by about 2000 part-time people. Let’s say
that fulltime workers would be 5 times more efficient? That is 400 employees.Now
let’s add, say, 100 guys to handle kernel and other low-level work, installer,
artwork, UI design.
That means 500 employees. Considering previous efforts, I expect them to need
about 2 years to do the job.That is 1000 man/years. At rather low pay, that
costs (sallary alone) 30 million dollars. Without overhead, publicity,
infrastructure, IP handling, legal fees and taxes.
And you will need to keep those coders coding forever, of course, because
the competition will not stand still.Now, do you see anyone spending that kind
of money in a company with this business plan? I don’t. So, IMHO, no, a company
can not do it better, because a company can not do it at all.
But you may say “it won’t take as much effort, because we can build on the
GNOME (or whatever) code!”. Well, you can, but that means your app code
is going to be GPL. And if your platform strays too far from Linux, it
will be, basically, unmaintained, old GPLd code. How is a company going to make
money with that? So, you can spend not-so-much-money and end with, basically,
a nice distro which everyone can ripoff later, or you spend an absurd amount
and spend yourself to death.
That is why BeOS is dead, and that is why NeXT was dead, and that is why Apple
is a hardware company, and that is why OS/2 died, and that is why noone really
sells OSs nowadays.Because the market is cornered in cost by free stuff AND by a
monopoly. There is just no way in.
Do I see it as possible that a group can do this? Yeah. After all, it has been
all done before, more or less. A company? Not a chance.
.. does everyone feel the need to quote Joel On Software all the freakin time. While he does consistently manage to bring up great points quite often, the guy isn’t the end-all-be-all of answers. People refer to Joel as if he was the code emperor or something. For god sakes, stop quoting joel people. Make up your own points instead of shooting off links!
Great post, Roberto! There is always a way:-)
iwbcman wrote:
” and with ROX one never uses the CLI everything is DND, one rarely needs to use the keyboard at all….”
maybe that is why they are using icewm which is known for being the most keyboard friendly windowmanager.
Darwin doesn’t have driver support. The FreeBSD and even more the Linux kernel are more suitable for what we would want to do. Darwin is cool and all, but not useful for a company or an OSS group that want to “get there” fast with full hardware support.
Vector Graphics everywhere, _real_ transparency (hey, some people like it..) Unicode support, yadda, yadda
Check it out for yourself: http://wiki.fresco.org/FrescoVsX
We have not decided on a window manager! IceWM just happens to be what lemmit is/was using when he took that screenshot on his debian system. The question os what WM to use has not even been discussed yet. Once we have a self-hosing base system, then we’ll discuss that sort of thing.
Hmmm, ok, good answers.
The point about the config files I’ll give you. However, I feel pretty uncomfortable with a “it doesn’t matter because the files are small and hard disks are cheap” style solution, it seems to be covering up problems by throwing resources at them.
Also note that on Windows, large numbers of apps leaving their junk in the registry seriously slows it down. Maybe that’s just due to the implementation, I dunno. I suspect it might be.
Ok, so if you assume that config files are never removed, and system integration can be done simply by scanning well known appfolder locations when needed (for stuff like corba drops, app metadata, help system integration etc), I still don’t understand how dependancies are dealt with.
ROX OS seems to use something called LibDirs – I assume these are like MacOS style frameworks? ie bundles of dependancies large enough that the user is expected to deal with them manually (ie a “gnome” libdir etc).
Also, how are optional components dealt with? If I install the gimp, maybe I don’t care about the docs because I am already proficient with it, maybe I don’t care about the CorelPaint filters or whatever. Why should they take up disk space when I don’t need them?
Further explanation would be most helpful, thanks.
You say: “Hiding the real system doesn’t work, and the further the system the user sees
differs from the real system, the more often they will be confused by the
behaviour of the system. If your GUI metaphor describes a sensible, consistant
system, why not really implement it that way? If it’s not possible to really
implement the metaphor, then the metaphor must be limited, and will lead to
confusion. “
I say – hmmmm. The idea is to ensure the system is consistant by making sure the user can comprehend it and making it simple enough to represent directly? ie representing apps as FS objects is nice, but you also need to implement them as FS objects.
I’m not sold on that. Computers are only usable by non-scientists today because their complexity has been progressively hidden by layer and layer of abstraction. From the programmers perspective, the CPU is abstracted by C, the graphics system by Xlib, the GUI by gnome/gtk etc.
From the users perspective, process is abstracted to an task, binary with data is abstracted to an application. FS heirarchies are abstracted to trees of folders, personal storage and preferences are abstracted to the desktop and login. The user doesn’t have to care about what’s going on under the hood, the same as for modern cars.
So, although I agree with making the system appear simple, I don’t see why functionality should be sacrificed by it actually being simple.
Note that because some abstractions are leaky, I don’t think abstraction should be written off entirely. We deal with complex things made simple via metaphors everyday, on my digital TV the metaphor of the “channel” is used to group the MPEG transport stream, interactivity, now&next metadata and so on. It works just fine, because the TV makers did their job, so I’m never exposed to the fact that on the air they are separate.
I look forward to your answers.
Oh and PS, I think Eunix is a great name!
I think what could really beat any desktop OS is:
1.- Solve dependancy problems via the FreeBSD’s port system, please make a GUI 4 this purpose!!!!!
2.- Use java and flash with the default browser installation
3.- Use something like Mandrake’s or Redhat’s installers
4.- Use ONE & ONLY ONE control/preferences GUI application
>Solve dependancy problems via the FreeBSD’s port system, please make a GUI 4 this purpose!!!!!
You got to be kidding. That is NOT a solution for a desktop OS.
>Use java and flash with the default browser installation
Please tell me you are kidding.
>Use something like Mandrake’s or Redhat’s installers
Who are both written in Java and Flash, right?
>Use ONE & ONLY ONE control/preferences GUI application
Almost.
If this is about creating a new OS, i agree with a lots of points here… If however the goal of this OS is simply to make it viable for the desktop, i think that we could simply use Linux as it is.
I don’t think users care (or should care) about how their programs are installed on disk or what is the hierarchy of the file system. I don’t think appfolders are such a great idea either (but maybe i’m missing the point). I think it’s much easier for a newbie to simply select a program he wants, and click a button to install it instead of having to use a file manager and drag folders around. How many newbies you know that have never used a file manager, how many have never used drag and drop? I know many myself and i don’t think they should learn that just to install a program… if someday they want to look at the internals than they will have to learn these but they should not have to just to install softwares IMHO.
I even think that the Linux way is easier for certain things than Windows. User don’t get asked questions about where they want to install stuff… honestly they should *not* care. Power users that wants to move things on different partitions can make symlinks, mount partitions for /usr, /opt, etc… but for newbies, i think that no questions should be asked. I’m currently using the Gentoo distro and the Portage system is really neat. You specify a package to install and you’re done, dependencies are handled automatically and the first thing you know is that the program’s icon is in the menu, under the correct category (i use Gnome 2). The only problem is that Gentoo is distro specific and that it requires you to compile all your programs. Something similar, like autopackage (great idea BTW) which handle binary packages and is multi-distro should take care of all that.
After we have an easy and reliable package manager we could concentrate on adding hooks in the DE (Desktop Environment, meaning KDE, Gnome, etc…) to ease thing for newbies. When the program is installed, the whole desktop gives visual cues to indicate where the programs icon is being put in the menu. We could treat the applications icon as if it was the application package itself… if the user want’s to remove it, drag it to the trash can, the DE instructs the package manager to deinstall the program. The user make a copy of the icon… add a reference count. Only delete the program when all the icons are deleted or give the users the options to uninstall even if there are other icons. The user drag the icon to a removable disk or attach the icon in an email, the DE instead copies the package file. Another thing that would be great would be to have something like an “install now” link on a web pages that would install a program in one click. Of course this would not be an executable program, just a command to the DE to indicate that the users wants to install a package (all regular checks still apply, dependencies are resolved, etc…).
This would give both advantages in my opinion, the user will have control of the system, can easily add, remove, move softwares in an intuitive way while keeping all the current FS hierarchy, current packages, etc… Of course i’m not an expert at all, i may have missed a crucial flaw in this system…
About the config files. We could easily add a “Cleanup Preferences” option to the AppDir’s pop-up menu. This is
a one-time 5 min effort in bash scripting.
LibDirs. Yes they are pretty much indential to NeXTish Frameworks. What you are refering to with a “Gnome” LibDir would be an Umbrella Framework. No glib, gtk, pango… will all be their own LibDir. We could of course place them under a single Gnome directory. Arrangement of LibDirs has not yet been discussed.
Optional components. If you don’t want application docs, simply enter the application’s Help directory and throw them away. If you want them back later, pop in the CD and get them. Same for unwanted locale. Probably we will provide a script to do this for all installed apps at once.
FS Objects. I don’t understand what deficiency you see in AppDirs. Probably not what you mean, but we have a patch for Bash, which makes it AppDir aware. You will be able to launch applications from the shell by the name of their AppDir:
$ Mozilla
like any commmandline tool.
Hiding complexity. Well, there is a difference between inevitable complexity and complexity born from bad design.
Vfolders simply beg the question.
I would like to know what kind of functionality you think
we will sacrifice. Other that we don’t thrive for becoming a
certified Oracle or SAP platform.
PS:
Will try to reach you on #autopackage now.
Fabian: Solve dependancy problems via the FreeBSD’s port system, please make a GUI 4 this purpose!!!!!
Eugenia: You got to be kidding. That is NOT a solution for a desktop OS.
—
I agree that the ports system is not a very good solution (ports are source-patch based), but the packages system is VERY good in my opinion for a desktop user. I think a good front end on it would make a huge difference. It is already half-way built too! There is a web interface for ports available (most of which have packages, but not all unfortunately), as well as a make “search” command you can use for ports (which could be the back-end if needed). pkg_info returns a list of every port/package installed, and that’s most of what you need! All it needs is a good interface.
List packages: pkg_info
Remove packages: pkg_delete packagename
Add packages: pkg_add filename.tgz (or with -r to grab it from freebsd’s server).
>>Solve dependancy problems via the FreeBSD’s port system, please make a GUI 4 this purpose!!!!!
>You got to be kidding. That is NOT a solution for a desktop OS.
Why not?
I’m not sure there’s a better way to trace packages than the ports system, make it user-friendly and voila! you get the best tool ever known in UN*X for package dependancy,
>Use something like Mandrake’s or Redhat’s installers
If you’ve got an easier installer, please tell us,
Most of the times I see average users run away from Linux or FreeBSD when they see that the browser itself is not able to open flash sites, its not practical for a desktop OS that it requires rocket science degree for the user to work with it and installing java and flash is not easy in most cases (Netscape installer for Linux works great besides), and many enterprise apps communicate with their clients using a browser and java (i dont like java but thats today’s fashion)
So
I have been reading your list about ui interface.
i don’t see any talk about those who eschew the mouse
in favour of the Keyboard.
mouse, mouse, scmouse.
As Jinx said. I hate meeses to pieces.
Don’t forget about us keyboard lovers.
Also Menus are nice. Just cos Winders used them and kde
clogs theirs up is no reason to be prejudiced against them.
Menus lend themselves to keyboard navigation.
As long as they can be reorganized to the way the
USER wants them to be , who cares what the default
layout is.
Make the thing work and worry if it is “cool” later.
Good luck