16 ms·
Essence: A desktop OS built from scratch, for control and simplicity
- sheeeep86 3y agoNice and detailed demo. What will take this from toy to a product to daily driver? I love the idea of all application windows being able to be moved into tab groups. Are there window managers that do similar things?
- wdfx 3y agoi3 at least has a tabbed container. I think it's common in tiling window managers?
- WesolyKubeczek 3y agoI vaguely remember fluxbox having such a feature.
- Zetobal 3y agoYes, mostly the reason why I switched from openbox to fluxbox back in the day.
- Sidneys1 3y agoStardock Groupy adds this functionality to Windows, and Microsoft briefly toyed with the idea themselves [1]. [1]: https://www.zdnet.com/article/microsoft-windows-10-testers-will-soon-see-timeline-sets-features/ https://www.zdnet.com/article/microsoft-windows-10-testers-w...
- notpushkin 3y agoI've used some third party tool on Windows, too. I've even tried disabling tabs in Firefox so that I could mix and match the “native” ones, but it didn't really work out. Good times!
- lloeki 3y ago> I love the idea of all application windows being able to be moved into tab groups. Are there window managers that do similar things? Haiku Stack&Tile! https://www.haiku-os.org/docs/userguide/en/gui.html#stack-tile https://www.haiku-os.org/docs/userguide/en/gui.html#stack-ti... A long time ago I implemented something like it (the stack part, not the tile part) in Awesome/Lua, so that floating windows could be tabbed together. Code is lost though. It was a bit too buggy anyway, pushing Awesome to its limits.
- rollcat 3y agoI think one of the old X11 window managers could mimic that behavior as well, when using the BeOS skin... It might've been KWin around KDE3 series, but my memory might be failing me.
- sprash 3y agoPekwm[1] does this and is still actively developed. One of my favorite floating WMs. 1.:https://github.com/pekwm/pekwm https://github.com/pekwm/pekwm
- suby 3y agoI'm not sure that anything like this would ever be suitable for a daily driver due to a lack of graphics drivers and the like. It would be amazing if there was an OS agnostic driver layer, or if we could somehow reuse the driver stack from Linux or Windows. As far as I'm aware nothing like that actually exists though.
- rollcat 3y agoThe *BSDs import the Linux graphics drivers these days. Big chunk of AMD GPU drivers are autogenerated from hardware description tables.
- userbinator 3y agoIt depends what you want to do for a "daily driver". Basic things like writing documents, viewing images, and (limited) web browsing using a text-based browser would probably be perfectly fine with an unaccelerated framebuffer. It would be amazing if there was an OS agnostic driver layer That's what things like VESA VBE are for.
- bandie91 3y agofluxbox can do
- fodmap 3y agoLooks great. I hope they keep developing it! https://gitlab.com/nakst/essence/-/issues/20 https://gitlab.com/nakst/essence/-/issues/20
- amelius 3y agoImpressive work! And oddly, it would be even more impressive if they built their own Web Browser from scratch ...
- cies 3y agoSerenityOS is doing exactly that: https://github.com/SerenityOS/serenity/tree/master/Ladybird https://github.com/SerenityOS/serenity/tree/master/Ladybird I also like their Jakt programming language: https://github.com/SerenityOS/jakt https://github.com/SerenityOS/jakt Though I'm more enthusiastic about Redox (doing it in Rust): https://gitlab.redox-os.org/redox-os/redox/ https://gitlab.redox-os.org/redox-os/redox/
- jug 3y agoYeah I'm a software developer myself and I've been blown away by the progress in Ladybird. I didn't think it would be possible in the modern day and a complex web. Most of it has just been built by the lead developer and a handful others. But maybe HTML5/WHATWG and a better "standards landscape" has actually helped, countering some past hurdles of "Designed for Netscape Navigator". We still have some issues but you can get very far by only rendering according to the standard. In fact, I think some browser sniffers on websites to "adapt" it does more harm than help. And you've got to do some pretty wonky stuff and ought to think twice about your design if you must do that stuff in 2023.
- rijoja 3y agoA chrome monoculture is hardly good for the software ecosystem, and I would like to encourage web-developers to test their webpages, apps and whatnot in ladybird, so that there is an actual libre-alternative! On the subject, would anyone now what if there is any selenium / Webdriver support, for Ladybird?
- rstat1 3y agoI believe it has some WebDriver support, but I'm not sure how complete it is.
- loudmax 3y agoAt 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 3y agoOn 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.
- packetlost 3y agoThe problem is Windows has tendencies to break in opaque ways that make it extremely frustrating to deal with. The quality of drivers is, on average, lower as well.
- giancarlostoro 3y agoI get this, but its already broken in some areas, I detail this in a prior comment I've written, something as simple as creating a Windows User is completely broken in the latest of Windows 11 if you have "Home" edition: https://news.ycombinator.com/item?id=37322167 https://news.ycombinator.com/item?id=37322167
- peter_d_sherman 3y agoI 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!)
- queuebert 3y agoQuickly checks if it's yet another Justine Tunney stupidly genius project ...
- queuebert 3y agoPlugging Justine gets downvoted? What in the what?
- petee 3y agoI think the use of stupidly could look like you were being demeaning. Personally I wasn't sure how to take it when I first read it; the downside of text communication vs in-person
- queuebert 3y agoAh, makes sense. Funny thing is I only added "stupidly" to make sure it didn't sound sarcastic. Perhaps "stunningly" would've been easier to parse. It's hard to find a superlative appropriate to her work.
- Hammershaft 3y agoMakes me think of all the elegance, simplicity, & performance we are leaving on the table with our limited OS competition.
- beowulfey 3y agoHaven’t watched the video yet. What is the kernel philosophy? Is it a mono or microkernel?
- queuebert 3y agoI'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 3y agoI 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.
- gjsman-1000 3y agoWell, there's macOS which has a very capabilities-based design (Documents folder? Pictures folder? Contacts? Desktop? Screen recording?) but most people just see it as annoying.
- hot_gril 3y agoEh, those are just folders. iOS has proper app sandboxing, but it could be taken a step further with VMs.
- gjsman-1000 3y agoAh... No? https://support.apple.com/en-asia/guide/mac-help/mchl211c911f/mac https://support.apple.com/en-asia/guide/mac-help/mchl211c911... https://youtu.be/sxgYBi-PuGI?t=298 https://youtu.be/sxgYBi-PuGI?t=298
- hot_gril 3y agoDoesn't seem bulletproof. I made a .sh script that touches a file in each of those dirs and ran it. It didn't ask for permission. Privacy settings don't have full disk access or individual file access granted to iTerm2, in case that matters. Edit: Nothing has full disk access either. I even see bash listed as explicitly not having access.
- BirAdam 3y agoI 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 3y agoIt's amusing to see that UI along with the phrase "An operating system that respects the user."
- mdp2021 3y agoIt has a theme editor. Must edit a 'res/Theme Source.dat' that becomes a 'res/Theme.dat'
- troymc 3y agoIt seems they stopped working on it in April 2022, for the most part: https://gitlab.com/nakst/essence/-/graphs/master?ref_type=heads https://gitlab.com/nakst/essence/-/graphs/master?ref_type=he...
- djbusby 3y agoSeems like the commits since 2021 have been bugfixes. Maybe this is mostly done rather than stopped?
- MerelyMortal 3y agoThe website says "Essence is still in development." In large type at the bottom of the page.
- lawlessone 3y agohttps://gitlab.com/nakst/essence/-/issues/20#note_1504444954 https://gitlab.com/nakst/essence/-/issues/20#note_1504444954 "Thank you. I am not working on it at the moment. But I would like to return to the project when I have more free time ;)" He's busy with something else.
- vmfunction 3y agoIt is still a very inspiring project. Someone with CPP experience can keep on working on it. Would have being nice if it in Rust. The video gave a lot nice insight to having a tabbed window based UI. It makes it more like browser. That idea can very much be adapted be used in project such as Fomos or even create a WM in Linux/FreeBSD.
- MagicMoonlight 3y agoAs 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.
- LeSaucy 3y agoThat 0.7s boot from bios to desktop is impressive.
- arghwhat 3y agoIntel 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.
- kwhitefoot 3y agoSo why do we have to wait so long for other versions to boot?
- rizky05 3y ago[dead]
- yjftsjthsd-h 3y agoA lot of it is hardware startup and enumeration, and also software services (because they had to really strip it down to get there). I'm more curious why my car, which is fairly recent, doesn't start in 0.3s.
- pmarreck 3y agoThere should be a key you can hold down which would mean "skip all enumeration and assume everything is exactly as it was the last time you booted" (with a brief warning to the user about the possible risks introduced by this)
- yjftsjthsd-h 3y agoIf we're going that route, I'd like a bootloader-supplied kernel option that defaults to enabled (ideally with the GRUB/whatever menu having am option to disable it.
- redder23 3y agoI think any new OS should be written in a memory save language like Rust. And there are actually some that use Rust in the works I think, could not name names but ...
- yjftsjthsd-h 3y agoRedox does, if you're into that.
- RetroTechie 3y agoThat's too broad a statement. But yes, if you're starting from scratch, that virtually begs to do something at the language level. A quick look at the repo suggests this is coded in C++? Too bad - a missed opportunity imho. Otherwise a very cool project!
- astrange 3y agoStill not memory safe as soon as you do anything involving a JIT or hardware access. You need secure hardware and assembly language as well.
- redder23 3y agoYeah sure, still I think its better to start with a more modern and more save language even though it does not make everything automatically secure.
- vict0ni 3y agoIt 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
- PretzelPirate 3y agoI'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 3y ago> 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.
- cnity 3y agoGood 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.
- pmarreck 3y agoin case you've somehow missed this concept until now: https://en.wikipedia.org/wiki/Vector_graphics https://en.wikipedia.org/wiki/Vector_graphics
- phendrenad2 3y agoThese days it's mostly hardware-accelerated (OpenGL) shaders.
- signaru 3y agoIf 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.
- pmarreck 3y agoIt 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.
- ugh123 3y agoVery cool! Would this be portable to a Raspberry Pi?
- api 3y agoUsually 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.
- RealCodingOtaku 3y agoVery 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.
- rcarmo 3y agoHmmm. Seems to be Intel-only (or at least I can't find an ARM64 branch)
- mdp2021 3y agoSorry for the aside, just in case you do not notice this from nakst's (the author of Essence) homepage, at https://nakst.gitlab.io/ https://nakst.gitlab.io/ > nakst's webpage // This site works best with JavaScript disabled Great guy ;)
- starkparker 3y agoOh! It's the person who made gf, the gdb frontend: https://github.com/nakst/gf https://github.com/nakst/gf Small world.
- mdp2021 3y agoYou can see in the gf screenshots Essence as a target - calls of EsSomeFunction() in the assembly...
- divnat2023 3y agoThis 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. )
- dang 3y agoRelated: Essence: Desktop operating system built from scratch - https://news.ycombinator.com/item?id=29950740 https://news.ycombinator.com/item?id=29950740 - Jan 2022 (290 comments)
- karmakaze 3y agoThat'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 3y agoDefinitely. 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 3y ago> developer toolchain/experience and It was covered a bit in the video. Very nice way for user/designer to theme their own desktop.
- jeroenhd 3y agoThis 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.
- sydbarrett74 3y agoKudos to the developers. It looks gorgeous, and I eagerly await further progress. :)
- stainablesteel 3y agoeverything has tabs, righteous
- bandie91 3y agothe user creates window for the application, not applications for themself. like in plan9/rio.
- miohtama 3y agoThis 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.
- ejstembler 3y agoThe GUI is reminiscent of BeOS https://en.wikipedia.org/wiki/BeOS https://en.wikipedia.org/wiki/BeOS or Haiku https://www.haiku-os.org/ https://www.haiku-os.org/
- what-no-tests 3y agoThe example "Hello World" program source code shows how simple the event-loop style of development looks here. I like it, and it does look like something that could be useful. Thanks for sharing!
- abrookewood 3y agoOK, do yourself a favour and watch the intro video: https://www.youtube.com/watch?v=aGxt-tQ5BtM https://www.youtube.com/watch?v=aGxt-tQ5BtM I have NEVER seen an OS installation (and boot sequence) as fast as that - just incredible.
- wturner 3y agoIt's simple and clean looking now now, but with time and success, you will join the darkside.
- gorenb 3y agoI would only install it if I absolutely had to install a fresh install of an OS. Fortunately/unfortunately, this happens around every three months when my computer inevitably breaks down, so I'll install this instead of Ubuntu.
- TobinCavanaugh 3y agoThis 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.