top | item 24976732

DahliaOS operating system, combining the best of GNU/Linux and Fuchsia OS

187 points| reddotX | 5 years ago |github.com | reply

143 comments

order
[+] mhd|5 years ago|reply
It also seems to combine the worst of both platforms: Apps.

Is there any OSDEV work that goes towards a more integrated, component-based architecture? As sad as it seems, Unix tools & pipes seems to be the most successful and enduring attempt in that direction. Systems doing that on a language basis seem mostly dead (Lisps, Smalltalks, Oberons), component architecture isn't doing much (OpenDoc as the prime example, CORBA/COM to a minor degree).

I don't think we'll be breaking much new ground when it just comes down to more efficient runtimes, packaging and ways to launch the same old ultra-tightly focused applications.

[+] pjmlp|5 years ago|reply
Component architecture is everywhere on the desktops, just not on those using UNIX text terminals.

COM has been the underlying driving technology of Windows since Vista, where the Windows team took the Longhorn .NET ideas and redid them with COM, since then we got COM improved as WinRT/UWP. Which despite the common mix with the store (blame marketing teams), is what to this day most Windows 10 APIs make use of, and now even React Native for Windows is built on top of.

On Apple side, we have XPC being increasingly used, while Android uses a mix Binder and Activities, also the same IPC mechanism powering Treble based drivers.

XFCE, GNOME and KDE make heavy use of DBUS.

Then I laugh of joy with hype around gRPC, as everyone is just rediscovering CORBA.

Lisps, Smalltalks, Oberons ideas can be replicated on top of those component stacks, which is what Powershell actually does to certain extent on Windows.

The tools are there, learn to use them Luke.

[+] DannyB2|5 years ago|reply
What if unix style pipes included a MIME type. Thus you might have some type safety, or ability to understand multiple types of input.

Example: if one tool outputs JSON, another tool, like grep, would recognize that is a subtype TEXT, and be able to process it.

Example: a more sophisticated hypothetical grep tool, would recognize that it might grep JSON differently than it greps TEXT.

Example: Tool 1 exporting JPEG might be incompatible with Tool 2 that only accepts JSON. A nice shell error message could result.

[+] nmcain|5 years ago|reply
We initially experimented with almost exactly what was described here, but it lacked one thing and that was third party expandablility. Sadly, I see no way for common and modern apps in their current form to be integrated into anything other than the traditional application format. If this changes, I hope to be the first to jump on board and get the ball rolling.
[+] viraptor|5 years ago|reply
Dbus seems to be doing really well in recent decade. Sound, networking, system management already use it on Linux. It's likely only going to get more common. With the well defined interfaces seems to be a reasonable solution for system and user components.
[+] thdolskfjtjd|5 years ago|reply
What does the "unix"ness of stuff have to do with the lack of popularity of linux as a market? Blaming a technical problem for what is actually social does nothing positive for anyone. Certainly, "linux" itself as a free platform is not necessary for liberation, let alone the litany of other brands you mentioned. Linux is unpopular for many, many other reasons than avoiding technical issues.

If "unix" is considered a success, I'm giving up on coding. What's the point? People will just gravitate towards brand loyalty regardless of the technical underpinnings.

When will it implement plan9's bind?

[+] Cloudef|5 years ago|reply
There is plan9.
[+] zeusk|5 years ago|reply
Call me a skeptic but the code isn't very confidence inspiring

https://github.com/dahlia-os/system-recovery/commit/49336659...

[+] skavi|5 years ago|reply
These guys used to be on the Fuchsia subreddit fairly frequently. They were definitely far from experienced or professional. IIRC, the founder is very young and was very much a beginner to OS development.
[+] ampdepolymerase|5 years ago|reply
Forgetting to run the formatter before git committing is not that big of a deal.
[+] nmcain|5 years ago|reply
Thankfully that's just around for layout reference, working with the Process class was absolutely infuriating. I have made more effort since then to be more verbose and keeping the code up to a decent quality.
[+] sylvain_kerkour|5 years ago|reply
Hi, even if it's very early, congrats for starting such an ambitious project!

Instead of aiming the moon today, I may suggest to focus on only one thing and do it very well now.

My suggestion is to target mobile / desktop (convergent) linux. The story today is not good, and you seems to have achieved some interesting things with your UI shell that may take years to achieve with the usual linux technologies: Gnome or KDE.

You may even be able to quickly make a business by selling pre-flashed linux devices like raspberry pis, pinephones, pinebooks... with your beautiful and easy to use UI.

[+] rvz|5 years ago|reply
> combining the best of GNU/Linux and Fuchsia OS

Why does a new open source OS project have to always shoehorn the entire GNU/Linux ecosystem with X11/Wayland, GTK, DBus and GNOME onto a totally different system?

The only positive takeaway from this is perhaps the learning experience in OS development. Other than that is there a point to this?

[+] pjmlp|5 years ago|reply
For the same reason UNIX actually won against much better OSes, copy paste of freely available source code, C is the JavaScript/PHP of systems programming languages and there were much better and secure platforms out there, including Multics.

However the power of free beer....

[+] nmcain|5 years ago|reply
Not sure exactly what it has to do with gnome or dbus, the desktop is backed by X11 (Migration to Wayland is underway but it's a pain to work with), the Flutter embedder itself renders with GTK. The project was started as a Fuchsia fork, and we intend to continue working hard on getting that ready, but sadly a lack of access to compatible modern hardware forced our hand to temporarily switch over to Linux as the development platform, so our layers of project would not stagnate while we wait for more polishing on Google's end.
[+] chaosharmonic|5 years ago|reply
For one thing, Fuchsia itself has had support built in for running Linux as a guest OS since roughly two years ago. [0]

For Dahlia specifically, it looks to ship a Linux kernel out of the box to extend its hardware compatibility. Relevant section below:

> Our dual kernel approach allows users with new(er) hardware to take advantage of the Zircon Kernel, while maintaining support for older devices using the Linux Kernel.

[0] https://9to5google.com/2018/06/15/fuchsia-friday-machina-bri...

[+] devxpy|5 years ago|reply
The promise of flutter is alive!

https://web.dahliaos.io/#/

This has the power to accelerate flutter desktop development in general. Really excited for both these projects.

[+] gostsamo|5 years ago|reply
I opened the link. The only thing spoken to my screen reader was "enable accessibility". I pressed the button (it didn't accept space bar, but only enter) and it just announced an empty page.

I can't speak to the qualities of the os, but hopefully this won't be the entire a11y experience both on the website and on the os itself if both use flutter.

[+] monkin|5 years ago|reply
Desktop environment made in JS? Hell will freeze before I will use such crap with material feel on it. ;)
[+] rvz|5 years ago|reply
I guess not yet on browsers like Firefox.

On Firefox, its struggling to keep this page alive such that the browser controls are locking everything up. I don't think its quite ready yet if browsers can't keep up with correctly rendering websites using Flutter.

[+] Narishma|5 years ago|reply
Not sure if this is sarcasm, but I only see a blank page on that link.
[+] furjdjslskfnfjr|5 years ago|reply
Do you have an example of a complicated code base that uses flutter? I've never seen an interface designed with it that makes me think "wow. Great interface.", let alone the feeling that it can handle the functionality I would port to it.
[+] ponderingfish|5 years ago|reply
Sorry I don't get the USP of this. Can someone explain what's the best of both worlds that is being offered here?

Thanks!

[+] hardwaresofton|5 years ago|reply
The write-once-run-everywhere promise -- Flutter is really good at multi-platform support because it works at the pixel level.

So in a browser/web context, all you need (roughly) is a canvas, and to compile the relevant Dart to JS and you're off to the races.

[+] lupinglade|5 years ago|reply
To me this looks like the worst of both worlds. Poor UI choice, poor apps and loss of Linux hardware support. Sorry to be negative, but I just don't see where this fits.
[+] hans_castorp|5 years ago|reply
How can they release it under the Apache license (which I applaud) if they use the Linux kernel which is GPL- I always thought those two licenses are incompatible (because of the restrictiveness of the GPL)
[+] olliej|5 years ago|reply
What is it taking from fuchsia?

The core benefits of fuchsia are the kernel architecture and the security model it allows. If you're using linux for the kernel you have inherently done away with the primary advantage of fuchsia.

I looked briefly at the homepage but the actual architecture was not obvious even though their webpage was "pretty".

Can someone explain what it is they've done in a nice easy TLDR form?

[+] nmcain|5 years ago|reply
With those benefits, there are also some major caveats that temporarily put a wrench in development. Fuchsia demands a system with a Kaby Lake CPU or newer, which were fairly hard to come by. Thanks to recent innovations in Fuchsia's emulator, it is easier to work on the UI and lower layers of the system, but it is still much easier to develop on and distribute Linux images for the time being.
[+] StreamBright|5 years ago|reply
I would love to see some Fuchsia + Firecracker project, where the host os is Fuchsia and you can run Linux as Firecracker "VM"s.
[+] jfdi|5 years ago|reply
Want to start one?
[+] afrojack123|5 years ago|reply
ConsumerOS should be more appropriate for app-based OS.
[+] legulere|5 years ago|reply
So is it a Linux Kernel running or a fuchsia Kernel running or something else?
[+] hundchenkatze|5 years ago|reply
Both / something else?

"dahliaOS provides a fast and stable experience on nearly every computer, from a 2004 desktop tower to the latest generation of mobile notebooks. Our dual kernel approach allows users with new(er) hardware to take advantage of the Zircon Kernel, while maintaining support for older devices using the Linux Kernel."

https://dahliaos.io/#features

[+] skyde|5 years ago|reply
I am super interested. Can someone tell me if I use this with the Fuchsia kernel will it be able to run most Linux, command line tool?

Is the compatibility just broken because it’s not running a standard X (server/Wayland) or is it deeper ?

[+] nmcain|5 years ago|reply
It uses virtualization to run most/all Linux tools, I'm not quite sure if the functionality is bridged between the UI in Fuchsia yet, but the end product will likely end up looking something look Crostini on Chrome OS.
[+] rcdwealth|5 years ago|reply
Nice flashy website. Should I just trust and install new OS on my computer? How I know it is safe?
[+] nmcain|5 years ago|reply
You can't install it, and this early on you shouldnt. My word alone probably does not carry much weight, but it is relatively safe, likely safer for usage than most current distributions where the only form of security is an up to date kernel. We opted to use a sort of stateful/stateless security model, where the system is stateless and varified on boot, and user files are stored inside an encrypted partition with relatively strict permissions for now.
[+] swiley|5 years ago|reply
I'm not convinced google learned anything with android WRT pushing GPU vendors to release driver source. Fuschia looks like it will only be a repeat of these problems.
[+] IshKebab|5 years ago|reply
I think they have learned the lesson that GPU venders will never release their source code. Fuchsia seems to be designed precisely to accomodate that fact - drivers are well isolated and speak to the kernel through a well defined (and hopefully stable!) interface (I think this is FIDL).

But I don't see how that is relevant here because this thing is based on Linux and X11.