top | item 37671419

Essence: A desktop OS built from scratch, for control and simplicity

538 points| luismedel | 2 years ago |nakst.gitlab.io | reply

198 comments

order
[+] loudmax|2 years ago|reply
At first glance, I thought this was another Linux distro with a custom window manager, not a new operating system. But it is its own operating system! It's got a custom kernel and everything. Built from scratch, indeed.

I'm always impressed when people build their own operating systems or browsers from scratch. Few of them will attain widespread adoption. That doesn't mean they aren't valuable though. Kudos to the developers.

[+] giancarlostoro|2 years ago|reply
On that note I really appreciate distros like ElementaryOS purely because they maintain their own software that is specifically modified / created with the intent to making their distro feel really integrated. Other distros put in loads of work too, but it just feels more consistent, like a KDE distro with all the KDE bells and whistles (KDE is a good example of what I'd like to see, an OS with default apps that all really blend together and feel like a part of one OS).

Funnily enough, you don't get this "unity" or whatever you want to call it that I'm describing with Windows at all. They have random legacy ways of doing things, Windows is starting to look like a hacked together Linux OS with how inconsistent the main OS apps tend to be.

Edit:

Maybe if Microsoft stopped letting Marketing Teams dictate what goes on Windows, and focused more on polishing their OS. They would have an insanely fantastic OS offering.

[+] supertron|2 years ago|reply
> At first glance, I thought this was another Linux distro with a custom window manager, not a new operating system. But it is its own operating system!

Indeed, these "reskinned"* Linux distros seem to be so common, it's easy just to make assumptions.

This (Essence) looks pretty impressive - to be built from scratch and have a nice clean (dare I say it... "non-linuxy looking") UI is even more impressive.

* "Reskinned" is probably a bit of a lazy term here - many of them are a lot more than that - but still, the point is that the value prop. is often the nicer more user-friendly aesthetics layered on top of an existing distro. What we're looking at here seems a lot rarer. Snapping at the heels of ChromeOS?

[+] benj111|2 years ago|reply
Funny, I was clicking ready to rant about the opposite, claiming it's built from scratch, when it's just another Linux.
[+] karmakaze|2 years ago|reply
That's one hell of a great landing page. It tells me pretty much everything I want to know.

  - Beautiful screenshot.
  - "Essence will happily run on low-powered hardware.
     It can take less than 30MB of drive space, and boot with even less RAM.
     No tasks run in the background, giving your applications all the space they need."
  - Amazing performance.
  - All the code is made available under the MIT license.
  - Demo video.
I can immediately imagine many different ways this could be popular in areas not covered by the main desktop OSes. The only other thing I guess I want to know is the developer toolchain/experience and "getting started" which is covered by Discord/Patreon links.

I think it would do well to differentiate it from current desktop OSes, e.g. first class support for touch interfaces, etc. Imagine all the IoT devices needing UIs.

[+] Apocryphon|2 years ago|reply
Definitely. There's too many '00s distro pages I've seen that hide away the screenshots away from the front page, almost as if they're afraid to show off their system.
[+] vmfunction|2 years ago|reply
> developer toolchain/experience and It was covered a bit in the video. Very nice way for user/designer to theme their own desktop.
[+] jeroenhd|2 years ago|reply
This combination of features makes this platform quite interesting for embedded applications. If the window management API is any good, I think this system could make for quite a decent embedded control system.

I bet you could compile this into WASM and get quite a good web UI with it's fake windowing system.

[+] troymc|2 years ago|reply
It seems they stopped working on it in April 2022, for the most part:

https://gitlab.com/nakst/essence/-/graphs/master?ref_type=he...

[+] djbusby|2 years ago|reply
Seems like the commits since 2021 have been bugfixes. Maybe this is mostly done rather than stopped?
[+] MagicMoonlight|2 years ago|reply
As always. I don’t know why people even pretend that it’s going to be a real thing. It’s like me saying I’m going to make my own jumbo jet.

You can toss together a shitty biplane but at the end of the day you can’t make the engine or the full size fuselage and there are no mechanics or factories for your jet so nobody is ever going to use it.

[+] peter_d_sherman|2 years ago|reply
I like the following structure at the end of the assembler boot block code:

times (0x1B4 - ($-$$)) nop

disk_identifier: times 10 db 0

partition_entry_1: times 16 db 0

partition_entry_2: times 16 db 0

partition_entry_3: times 16 db 0

partition_entry_4: times 16 db 0

dw 0xAA55

That's elegant, because it shows where/how the disk identifier and the 4 classic MBR partitions coexist inside of the same first 512 bytes in the boot block, with the boot code... (it is assumed that AFTER the boot block is copied to disk that the partitions will be set by an outside program (i.e., fdisk or similar program) to appropriate values... otherwise MBR partitions would be set to 0 from copying the boot block -- but that's a minor sub-point... it's elegant code -- I've seen a lot of boot block code, and I've never seen that construct before!)

[+] Hammershaft|2 years ago|reply
Makes me think of all the elegance, simplicity, & performance we are leaving on the table with our limited OS competition.
[+] queuebert|2 years ago|reply
Quickly checks if it's yet another Justine Tunney stupidly genius project ...
[+] queuebert|2 years ago|reply
I'd love to see an OS like this take hold for people who don't need all the backward compatibility and server goodies in Linux and who don't want to deal with Microsoft or Apple. Something like Chrome OS but not so locked down.
[+] ryanjshaw|2 years ago|reply
I want to see this, but with a user friendly capabilities-based security design so that downloading an app from the internet can't steal my credentials and documents. That's the biggest issue people face today and yet there seems to be no real interest in trying new OS-level approaches as far as I know.
[+] joshmarinacci|2 years ago|reply
I’ve been planning and building this for years. But regular life always takes priority. This could change if there was a viable business model for an operating system that didn’t rely on hardware sales (the Apple model) or on advertising (the Android and increasingly Windows model). One day when I’m independently wealthy maybe.
[+] kwanbix|2 years ago|reply
Try haiku-os.org.
[+] npteljes|2 years ago|reply
What do you think about the BSDs, or 9front, the Plan 9 fork?
[+] binkHN|2 years ago|reply
You can always easily add the Linux environment to ChromeOS.
[+] LeSaucy|2 years ago|reply
That 0.7s boot from bios to desktop is impressive.
[+] arghwhat|2 years ago|reply
Intel had a talk a few years back where they got Linux boot down to 0.3s from power is applied to fully interactive UI on an embedded platform. That case was meant for automotive, where you want things like infotainment and instrument cluster available shortly after the accessory power is enabled.
[+] PretzelPirate|2 years ago|reply
I've been wondering how an OS draws a high-quality GUI.

I've don't bare metal development and drawn simple graphics with a linear frame buffer, but for a UI like this or Windows, I'm wondering how the images that represent the UI components are generated.

I don't see any png files for window borders, but I do see code for setting pixels to the correct color for a theme.

Are UI components in an OS usually programmed and not created in an image editor and then tiled?

[+] TkTech|2 years ago|reply
> Are UI components in an OS usually programmed and not created in an image editor and then tiled?

These days, it's almost always vector graphics. Used to be simple bitmaps. This OS in particular is using vector graphics.

[+] signaru|2 years ago|reply
If starting from scratch, PNG files may actually be more complex, since decoding is needed. On the other hand, once a drawing API is available, it is easier to map some form of vector graphics encoding which calls corresponding drawing instructions. At the same time, this would also solve scaling issues and the vector graphics assets also normally takes far less space.
[+] cnity|2 years ago|reply
Good observation: the link above specifically calls out:

> The user interface is completely vector-based

So these are all descriptions of how to draw the UI, as opposed to using raster images.

[+] phendrenad2|2 years ago|reply
These days it's mostly hardware-accelerated (OpenGL) shaders.
[+] api|2 years ago|reply
Usually new OS efforts seem like they're too "boil the ocean" impractical. I like this. It immediately sticks out as something with some promise.

Tips:

(1) Add virtualization early. That way it'd be possible to run other OSes and thus familiar apps. In the long term a seamless form of virtualization similar to Parallels Coherence could be explored as a way to run foreign apps on their host OS. This would be a short-medium term solution to the 'no apps' problem that dogs any new OS effort.

(2) Limit hardware support scope by targeting a few target platforms. I'd suggest Linux-oriented laptop vendors like System76 and Framework, the Raspberry Pi, and a few other familiar things with related ethos.

(3) Look at using foreign drivers such as those from Linux or BSD via a compatibility API. This might let you support notoriously painful to support things like wifi cards.

[+] miohtama|2 years ago|reply
This is really interesting!

> It can take less than 30MB of drive space

A modern display driver alone takes disk space/RAM in the class of 30MB, so Essence is really tiny. The probably downside is that it cannot utilise modern hardware.

[+] pmarreck|2 years ago|reply
It needs, at the very least, a vt100 terminal app, a C/C++/Rust compiler (ideally to llvm so this can run on ARM or ia64 or anything else), a decent code editor, and a basic web browser.
[+] vict0ni|2 years ago|reply
It looks pretty clean and sharp, awesome job! People that build OS (and other low-level software) always have my respect, and first of all because of their dedication and commitment
[+] TobinCavanaugh|2 years ago|reply
This is really, really significant imo. The idea of system wide tabs has been in the back of my head for a while, as well as moving away from the linux kernel. I've messed around with it a bit and I'm very impressed.

Starting from scratch is awesome, and I'm firmly in the group that we should not strive for backwards compatibility at this stage, and instead aim to maximize intuitiveness for both developers and users.

[+] divnat2023|2 years ago|reply
This model of desktop can still be immensely useful. All we need to do is support only a few high level protocols.

For e.g. twitter-like streams / RSS, simple high level workflows for generic business purposes, and so on.

Browsers should necessarily not be supported. Layout options should be fixed, and totally protocol specific. (For e.g. a twitter-like stream can only be displayed in limited ways. )

[+] RealCodingOtaku|2 years ago|reply
Very nice! Hope to see more of it in the future. The window has old chrome vibes, it is not a bad thing.

> If you're interested in contributing, join our Discord server to discuss ideas with other developers.

Would be nice to have a dedicated forum (Discourse?) instead, but I get that it is too soon for this project.

[+] BirAdam|2 years ago|reply
I love the ideas and this is impressive progress for a indy OS. My only point of discontent is that every window looks like a tiny little Chrome window. Not a GUI look and feel I care for at all. There is, however, no accounting for taste so I can't really fault the devs for that.
[+] userbinator|2 years ago|reply
It's amusing to see that UI along with the phrase "An operating system that respects the user."
[+] mdp2021|2 years ago|reply
It has a theme editor. Must edit a 'res/Theme Source.dat' that becomes a 'res/Theme.dat'