Le 7 avr. 05, à 13:33, David Chisnall a écrit :

On 7 Apr 2005, at 05:40, Jesse Ross wrote:

I asked Nicolas, Quentin and Banlu about their ideas on developing Étoilé as a full operating system (on top of Linux or *BSD or Hurd (one day... maybe...)). All three mentioned being in favor of doing a desktop environment instead. I personally am interested in a full distro, and here's why:

 - Complete control. …

I agree. OS X gains a huge amount by being able to develop GUI components for system level stuff neatly. Something like GNOME, for example, can't easily contain a network configuration app, since different operating systems (and even different distributions) do this in slightly different ways. By having a complete OS we could easily add this kind of thing, and not have to worry about cross-platform support (of course, non-OS specific things would still work on other platforms). Perhaps the OpenSSH approach would be a good one to follow - OpenSSH has an OpenBSD branch and a portable branch, the OpenBSD branch contains some additional features that only work on OpenBSD (in our case on the Étoilé OS) while the portable branch contains all of the parts of the implementation that are not platform specific (the Étoilé DE).

I agree on the concept, yes. First, we should focus on the Étoilé DE, then we'll work on the Étoilé OS (e.g, instead of doing OS-specific configuration tools and trying to have them on all OS, we'll just focus on one OS, build the right config tools for it, and create a live cd from it as well).

But frankly, an Étoilé OS is a bit far I think, we should first work on Étoilé DE 1.0 :-D


 - Eases installation and testing.

Very important. Again, one place where OS X wins is the `it just works' measure. They have a limited amount of hardware

Yes, although for a beginning a live cd approach is probably the best thing we can do -- easy for people to test, easy to install, and easy for us to setup properly. Look at the GNUSTEP live CD: the environment "feels" more polished than my own average installation of GNUstep ;-) -- just because everything was properly setup, lots of gnustep software bundled, while I didn't bother to install some software or doing some configs...


 - Out-of-the-box solution.

I think we could learn a lot from BeOS 5 Personal Edition in this respect. You could boot from the CD, you could copy the image to your hard drive and boot from Windows 9x (this kind of thing isn't possible with Windows NT, unfortunately), or you could create a partition on your hard disk and install to that from within the live image. The time from getting the CD to running the OS was under a minute. The amount of time between starting the OS and having it installed was not much more (the ability to install from the LiveCD, rather than having a separate install routing is also something we should consider - don't make users wait an hour or so from getting the CD to seeing what the system looks and feels like).

I believe it's something already possible with the current GNUSTEP live cd -- you can just use the morphix installer (available when the system is up, but there's perhaps an option to install directly from the boot prompt?). And when loading the live cd on windows (or mac) you have access to documents, etc., so really I think we should just reuse/collaborate with gürkan's live cd.

I'm in favor of either Linux or a BSD; Linux because it's got a larger developer community and the name "Linux" is better for marketing, *BSD because it's got a more cleanly integrated base system and a smaller development team which might be easier to coordinate with.

I would personally favour NetBSD. The base system is very clean, small and customisable, and it provides a working and tested system on a large number of platforms. I would imagine that a significant proportion of our potential audience would be Mac users, so having a working Mac/PPC version (and LiveCD), as well as x86 would be an advantage. Focussing on x86 to start with might be a good idea, since it is the largest potential audience, but picking a base system which is consistent across multiple architectures is definitely a good idea long-term.

Nicolas suggested a while back that he would be interested in building a GNUstep-based system on top of DragonflyBSD to take advantage of some of the low-level message passing mechanisms it provides for distributed objects. This could also be interesting, although I believe that Dragonfly is currently x86 only.

Ideally, I would like to see a system based on L4-HURD, since the design is really slick, but unfortunately it doesn't really exist yet…

Well, anyway we're a bit early to speak about that imho -- first we should try to make étoilé DE, then after try to configure a nice livecd with it. We'll see what kind of OS for the live cd we'll use...

Additionally, let's ask "what extra work will go into supporting a full OS instead of just a DE?"

That depends on the base system we use. If we chose Linux, then it depends if we are doing a Linux-from-scratch approach (in which case we have a large amount of work to build and test packages), or basing it on a specific distribution (in which case we have to ensure our packages work on that system, and probably, at least, create a custom installer and liveCD etc.) Even if we don't go for a whole OS, I would imagine that we would want some kind of LiveCD, so that effort still exists.

yes. It would be interesting to use something other than linux if the advantages are there, but in order to provide a live cd, the simplest and fastest possibility is indeed to just take the GNUSTEP live cd and build on top of it.

============================================
THE INTERFACE
============================================

 - A buffer or visual pasteboard / quick launcher.…

I would like to see something like the shelf, but not attached to any particular window, with exactly the functionality described by Jesse.

I would advocate a tabbed shelf/panel

I also like Nicolas' idea of a shared shelf, possibly using XMPP's publish-subscribe mechanism. (Nicolas: I intend to spend more time working on my XMPP framework / client once my current paper deadline has passed in a couple of weeks time. Honest. I may even finish the GNUstep port…).

hehe :-) cool !
(I should be able to work a bit on gnustep now that my own paper deadline was in the end removed/deplaced.. ;-)

- Spacial interfaces can be extremely painful and lead to a lot of windows on the screen. I do like 1 window for 1 folder -- that's a good idea, as is keeping the location and view of a specific folder consistent. Browser navigation is really slick for deep hierarchies -- we just need to find a way to unify the two concepts. Or...

Agreed. I find spacial navigation very good for folders I manage myself, but not for system folders etc. The way the OS X Finder switches between the two is really messy.

well, the OSX Finder is for sure not a good example :-)


- Ditch the ability for regular users to create folders altogether and put all files in one spot (probably their home folder merged with a Shared folder for all system users). Make the workspace manager an awesome searching and filtering tool. Add buttons to the workspace manager for "Music" or "Photos" or "Letters to my boss since last Tuesday" or whatever, and just make those shortcuts for queries (live search folders). Never use a Save dialog again -- when you make a new file, just give it a name and it's automatically added to the user's home folder, ready to be searched on.

Possibly. This seems to be where Apple is going (apparently implementing Spotlight is less effort than fixing the Finder…). I rather like managing my own documents, and I can usually find them quite easily. My main gripe with current systems is not that they are hierarchical (the human mind is particularly well evolved to interact with hierarchies, and they are a good model), it is the fact that there is no separation between the model and the view of the filesystem.

To me, a folder is simply a file with some meta-data indicating that other files are children of it. The parent-child relation should be no different from other meta-data, and should be a many to many relation (i.e. any file can have many children, and any file can have many parents). This allows some nice things with file management (e.g. a shared library can have a shared library folder and the app which included it as parents, or a document can easily be in a saved search result folder and in the place where the user stored it).

Current systems make it very different to have multiple, independent, views on the filesystem.

Exactly. That's why a "flat approach" (every documents as a bundle -- so you can easily associate metadatas to a document -- and all the documents in a same directory/repository) could be interesting; not that it prevents users to organize their documents hierarchically, they can of course continue to do that; but as the hierarchy is thus a simple view on top of the "real" content, it's not the only view the user can have (he could easily switch for a date-based approach for example, or use different "tags" on the documents instead of putting them into a "directory" ...).

I actually think that, while a system-wide metadata support could be good, it would probably be enough to limit that "flat approach" to the user's directory / user's documents. We could add some modifications in NSDocument to handles that transparently for example. As a user, I don't care too much about the system files, and have not a lot of use to class them or associate metadatas with them, while I have a lot of interest of doing that for my own documents ! (of course, I still agree that having such a feature for the whole system could be interesting for administrators, for example, but hey..)


 - Eliminate model interfaces as much as possible.

We should also eliminate modal interface :)

yes :-)


- Build a history of selections. If I make a selection in a body of text, that is selection 0. If I make a new selection, the new selection is numbered 0 and the previous one is numbered 1. This goes on for as many selections as we can technically handle. All the selections might be badged by their historical number (or some other visual method). Swapping two pieces of text now becomes insanely easy: just have a menu item labeled "Swap". This is far superior to "select, cut, paste, select, cut, find previous insertion point, paste".

A while ago, I proposed the idea that a clipboard should actually work as a clipboard. The current clipping should be added to the top, and when it is removed the previous clipping should be at the top of the pile. The biggest advantage of this is that a copy operation would no longer be destructive (i.e. you can return to your previous clipboard contents by removing the top page from your clipboard). This would require the addition of an inverse-cut operation (something that would take the contents of the top page of the clipboard and remove it) - I suggested that copying an empty selection could be used for this in existing applications, although a more intuitive solution would be better in the long-term.

Would it be solved by a "pasteboard viewer" showing the content of the pasteboard and keeping an history ?

- Make alerts that don't require interaction to show up, then fade out, and keep track of all alerts. You know the JavaScript alert() function? Horrible. It pops up with some text and an OK button, and forces the user to disrupt what they're doing to get rid of it. I'm using Growl < http://www.growl.info/ > now for alerts on downloads and new emails, and it is exactly how alerts should work: it shows up, it stays for a bit, it fades away. Elegant, informative and unobtrusive. Now if only we could build a simple way to pull up old alerts when you're busy doing something else and the alert fades before you get a chance to read it, it would be perfect.

I believe Apple have a patent on this, but it's still a very neat idea. As Raskin says, things should only require human interaction if they actually require human interaction.

On screen display.


- Everything is undoable. Everything. Forgiveness is a virtue... and a requirement for a friendly system.

Definitely. One thing that would be /really/ nice to do, which would only be possible if we were implementing a full OS, rather than a DE, would be to add buffering at the VFS layer, so if a device becomes unavailable (e.g. a user pulls out a USB pen drive without unmounting it), they are given a dialog box informing that they should plug it back in. If they do, then the system should re-attach file open descriptors to the files that they represent (while the device is unplugged, i/o operations on those file descriptors should block. If the user selects dismisses the dialog box without re-inserting the device then they should fail). If the user does reattach the device, then the system should

Yes, there's a lot of things possible if we focus on one OS instead of wanting a cross platform desktop.

--
Nicolas Roard
"Any sufficiently advanced technology is indistinguishable from magic."
 -Arthur C. Clarke


Reply via email to