[HN Gopher] Essence: A desktop OS built from scratch, for contro...
       ___________________________________________________________________
        
       Essence: A desktop OS built from scratch, for control and
       simplicity
        
       Author : luismedel
       Score  : 432 points
       Date   : 2023-09-27 07:44 UTC (15 hours ago)
        
 (HTM) web link (nakst.gitlab.io)
 (TXT) w3m dump (nakst.gitlab.io)
        
       | bandie91 wrote:
       | the user creates window for the application, not applications for
       | themself. like in plan9/rio.
        
       | miohtama wrote:
       | 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.
        
       | divnat2023 wrote:
       | 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. )
        
       | queuebert wrote:
       | 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.
        
         | joshmarinacci wrote:
         | 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 wrote:
         | Try haiku-os.org.
        
           | faefox wrote:
           | Lord, what I would give to see Haiku gain real traction. BeOS
           | was something truly special and I often wonder what the tech
           | landscape would look like today had Apple chosen to acquire
           | them instead of NeXT.
        
             | chrsw wrote:
             | Or if Microsoft hadn't used anti-competitive practices to
             | ensure a system like BeOS would have trouble getting
             | traction. Bundling agreements with OEMs and whatnot.
             | 
             | >Lord, what I would give to see Haiku gain real traction
             | 
             | I think the only thing we can give right now is our time
             | and money. Porting applications, porting to different
             | hardware platforms, spreading the word, etc.
        
               | xp84 wrote:
               | Indeed. It's interesting that apparently there was room
               | in the marketplace for another commercial consumer
               | desktop operating system -- we can see that it's true
               | with the rise of chrome OS. We could maybe have had that
               | competition 10 years earlier.
        
               | hot_gril wrote:
               | I don't know if there was room back then. Suppose
               | Microsoft made no agreements with OEMs. I guess OEMs
               | would have to agree on some open standards to fairly
               | support a broad range of OSes efficiently, which would've
               | been hard but doable in theory. Even then, apps would be
               | OS-specific, and one OS would win the market, at which
               | point hardly anyone would have a reason to use the
               | others. Cause the apps matter far more than the OS to end
               | users.
               | 
               | And now the web browser matters more than the native apps
               | or OS to many users. And Chromium has dominance there.
        
             | jhbadger wrote:
             | There's a good chance that Apple wouldn't exist today if it
             | went down the BeOS road. Not because BeOS was bad (I liked
             | it and played with it for a while back in the day and with
             | Haiku more recently), but going with NeXT got Apple Steve
             | Jobs back, and that's what really saved them.
        
         | ryanjshaw wrote:
         | 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.
        
           | IshKebab wrote:
           | Fuchsia is probably the best chance of getting a real world
           | capability based OS.
        
             | Findecanor wrote:
             | Genode seems more mature as a desktop OS at the moment. It
             | has been going on for much longer.
        
           | gjsman-1000 wrote:
           | Well, 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 wrote:
             | Eh, those are just folders. iOS has proper app sandboxing,
             | but it could be taken a step further with VMs.
        
               | gjsman-1000 wrote:
               | Ah... _No_?
               | 
               | https://support.apple.com/en-asia/guide/mac-
               | help/mchl211c911...
               | 
               | https://youtu.be/sxgYBi-PuGI?t=298
        
               | hot_gril wrote:
               | Doesn'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.
        
               | gjsman-1000 wrote:
               | That's because the Terminal app has an exemption for Full
               | Disk Access, so as to not break anything.
               | 
               | Edit: OK, iTerm2, not sure what's going on there.
        
               | hot_gril wrote:
               | Yeah, maybe something is weird about every Mac setup I've
               | used, but I've barely even noticed these restrictions.
               | Pretty sure CLIs and shell scripts in general have full
               | disk access by default. Almost seems like the
               | restrictions require some cooperation from the apps, idk.
               | 
               | Besides disk access, there are all sorts of other ways I
               | don't trust random native apps on my Mac. At least camera
               | access is locked down now (I think).
        
               | astrange wrote:
               | Terminal doesn't come with full disk access; you'll get
               | prompts if you look inside eg app containers. But people
               | tend to approve it the first time that happens.
               | 
               | There are also data vaults, which you cannot get around
               | without turning off SIP.
        
             | mikewarot wrote:
             | MacOS doesn't do capability based security, it does
             | permission flags instead.[1] A permission flag is the
             | clunky thing we all have learned to hate that smartphones
             | do, instead of the elegance that is capability based
             | security.[2]
             | 
             | Let's say you want to buy an ice cream cone, and pay for
             | it.
             | 
             | Think of permission flags as signing a "Power of Attorney"
             | letter, and handing that over to Dairy Queen. Every time
             | you get a cone, they just take the money out of your
             | account. But _they could also sell your house_. You can 't
             | limit the side effects of the permission you give, it's all
             | or nothing.
             | 
             | On the other hand, capability based security is like taking
             | a $5 capability out of your wallet (in the US, a piece of
             | paper with Lincoln on it), and paying directly for that
             | transaction, one time, at the time it is needed. The most
             | you can lose is that $5. _You 're not risking your home,
             | just to get ice cream._
             | 
             | The OS market is deranged. Capability based security is
             | something that's been required since persistent internet
             | connections became a thing. Clearly blaming everything
             | else, the users, admins, programmers, compilers, language
             | design, hasn't worked.
             | 
             | [1] https://support.apple.com/en-asia/guide/mac-
             | help/mchl211c911...
             | 
             | [2] https://en.wikipedia.org/wiki/Capability-based_security
        
               | astrange wrote:
               | This is not a useful distinction because it'd be the same
               | UI. If you grant an app a more specific capability, that
               | just means a more specific permissions dialog. If you
               | don't change the dialogs, the capabilities are going to
               | be the same access it is now. I don't think users want to
               | deal with much more fine grained dialogs.
               | 
               | And it does have more specific capabilities called
               | "security-scoped bookmarks".
        
           | akyuu wrote:
           | If you mean restricting filesystem access to random programs,
           | I think that's already possible on macOS (with TCC) and Linux
           | (with Flatpak), but the underlying mechanisms aren't very
           | robust and can be easily bypassed by malicious code.
           | 
           | If you mean a true capability-based OS, there is Fuchsia,
           | which doesn't seem to be used yet, and RedoxOS, which is in
           | development.
        
         | npteljes wrote:
         | What do you think about the BSDs, or 9front, the Plan 9 fork?
        
         | binkHN wrote:
         | You can always easily add the Linux environment to ChromeOS.
        
       | what-no-tests wrote:
       | The 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!
        
       | sheeeep86 wrote:
       | Nice 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?
        
         | suby wrote:
         | I'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.
        
           | userbinator wrote:
           | It 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.
        
           | rollcat wrote:
           | The *BSDs import the Linux graphics drivers these days. Big
           | chunk of AMD GPU drivers are autogenerated from hardware
           | description tables.
        
         | lloeki wrote:
         | > 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-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 wrote:
           | I 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 wrote:
           | Pekwm[1] does this and is still actively developed. One of my
           | favorite floating WMs.
           | 
           | 1.:https://github.com/pekwm/pekwm
        
         | wdfx wrote:
         | i3 at least has a tabbed container. I think it's common in
         | tiling window managers?
        
           | WesolyKubeczek wrote:
           | I vaguely remember fluxbox having such a feature.
        
             | Zetobal wrote:
             | Yes, mostly the reason why I switched from openbox to
             | fluxbox back in the day.
        
         | Sidneys1 wrote:
         | Stardock 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-w...
        
           | notpushkin wrote:
           | I'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!
        
         | bandie91 wrote:
         | fluxbox can do
        
       | BirAdam wrote:
       | 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.
        
         | mdp2021 wrote:
         | It has a theme editor. Must edit a 'res/Theme Source.dat' that
         | becomes a 'res/Theme.dat'
        
         | userbinator wrote:
         | It's amusing to see that UI along with the phrase "An operating
         | system that respects the user."
        
       | RealCodingOtaku wrote:
       | 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.
        
       | dang wrote:
       | Related:
       | 
       |  _Essence: Desktop operating system built from scratch_ -
       | https://news.ycombinator.com/item?id=29950740 - Jan 2022 (290
       | comments)
        
       | LeSaucy wrote:
       | That 0.7s boot from bios to desktop is impressive.
        
         | arghwhat wrote:
         | 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.
        
           | kwhitefoot wrote:
           | So why do we have to wait so long for other versions to boot?
        
             | joshmarinacci wrote:
             | Read up on "raspberry pi fast boot" and you'll learn a lot
             | about the tricks that can be used for fast booting, and
             | also why they aren't the default.
        
             | rizky05 wrote:
             | [dead]
        
             | bee_rider wrote:
             | You can see what is eating up the time as you boot if you
             | use SystemD.
             | 
             | https://wiki.archlinux.org/title/Improving_performance/Boot
             | _...
             | 
             | I haven't really had any issues with Linux boot times for
             | personal machines lately. I think the people that care most
             | about getting into the sub-second range are the ones doing
             | cloud VM stuff, spinning up lots of micro services or
             | whatever.
        
               | jeroenhd wrote:
               | My computer takes about 45 seconds to start, which isn't
               | terrible, but when I run a Windows XP VM on a quarter of
               | the CPU cores I'm reminded of how long those 45 seconds
               | are.
               | 
               | Even without the stupid 20 seconds of firmware I can't do
               | anything about, XP shows me an interactive desktop in
               | half the time Linux does. Windows 7 is just as fast, and
               | just as fully-featured as my desktop Linux install.
               | Windows 11 still boots faster (and more reliably) than
               | Linux despite the overhead of Windows Defender and drive
               | signature checking.
               | 
               | I don't need 0.3 seconds of boot time on my desktop, but
               | something a bit faster would be nice. I think my machine
               | is so slow by the death of a thousand services all
               | starting at boot.
        
               | akho wrote:
               | Yeah, that's way too long. My laptop (intel gen11) spends
               | ~7s on firmware, a while in kernel (can't tell how much
               | of that is me typing my excessively long LUKS passphrase;
               | last boot was 11s, of which waiting for me to type was
               | probably at least 5s...), and just 2.2s in userspace
               | before reaching graphical.target (i.e. I get a GDM
               | prompt). If my assumption on my typing speed is right, OS
               | takes no longer than firmware + bootloader.
               | 
               | (~0.2s is wasted on a dependency that shouldn't be there,
               | but I'm not prepared to resolve that)
        
               | bee_rider wrote:
               | Have you tried running                   systemd-analyze
               | 
               | And then                   systemd-analyze critical-chain
               | 
               | To see what is slowing it down?
               | 
               | My system takes 10 seconds to boot apparently, with
               | fairly minimal tuning (I boot from a USB drive so I try
               | not to worry too much about this, hah!). But I don't use
               | a desktop environment or any of that sort of stuff, so it
               | is probably not a good comparison.
               | 
               | Still, 45 seconds is pretty slow, I wonder if it is
               | waiting for something that idles out; network interfaces
               | or something like that.
        
             | TkTech wrote:
             | If you turn off quiet boot, you'll see an impressive list
             | of things getting started up, many of which the kernel
             | isn't in full control of. DHCP (sometimes), gpus, NTP, disk
             | decryption, TPM, monitor probing, USB hub enumeration, on
             | and on.
        
               | kwhitefoot wrote:
               | But all the stuff that is actually necessary is the same
               | on every boot so no enumeration and probing should be
               | necessary.
        
               | nonameiguess wrote:
               | This isn't true. All hardware is swappable between boots.
               | I've moved a root disk from one case to an entirely new
               | case before, replacing literally every hardware component
               | except the root volume but keeping the same OS. Not only
               | is enumeration requires at boot, but event handlers for
               | hot-swapping need to be available at all times. Users
               | expect to be able to plug in and out USB devices, network
               | cables, monitors, keyboards, and have it all just work.
               | 
               | Presumably, most faster boot OSes simply don't support as
               | many devices. Amazon was able to get Firecracker to boot
               | Linux damn near instantly by pretty much removing all
               | hardware support from the kernel since they know for sure
               | it's only ever running as a VM on a hypervisor they
               | strictly control and won't change.
               | 
               | If you know for sure the devices you need, you can
               | compile the kernel yourself and remove all the stuff you
               | don't need and possibly even get rid of udev and just
               | hardcode what it normally detects.
        
               | TkTech wrote:
               | Is it? My laptop is only shutoff when switching from a
               | dock at home to a dock at work, changing the GPU and hubs
               | available. The OS I just netbooted off my NAS has no idea
               | what it's booting on. I can plug and unplug USB devices
               | anytime, including while the system is off. Maybe I
               | swapped USB headsets, maybe I plugged in a fingerprint or
               | smartcard reader, which needs to be initialized before
               | the login manager starts. Maybe my time server is no
               | longer reachable, so NTP needs to find a new one from the
               | pool, because if it doesn't sync timing correctly the
               | certificate for LDAP won't validate and my work laptop
               | won't be able to login. Maybe it needs to initialize the
               | networking stack to handle an NFS or Samba mount in my
               | /etc/fstab which has a nowait=0, since I use it as a boot
               | volume.
               | 
               | This could be a very, very long list of hypothetical
               | changes :)
        
               | bmicraft wrote:
               | pxe boot obviously has some constraints that don't
               | usually apply otherwise.
               | 
               | Presumably the dock can be detached while booted, so the
               | kernel should also be able to handle booting and only
               | detect at some point that the dock has disappeared
        
             | squarefoot wrote:
             | OSes not tailored for generic platforms can be built
             | without all that conditional code that executes whenever
             | this or that chipset is found; then all those delays
             | because you don't know how much time a chipset or
             | peripheral will take to initialize, etc.
        
             | arghwhat wrote:
             | On many machines, the firmware is the largest contributor,
             | with user-space services and their dependencies being the
             | rest.
             | 
             | `systemd-analyze` (in particular, `systemd-analyze
             | critical-chain` and `systemd-analyze plot > plot.svg`) are
             | useful to diagnose. On my system you can see that my
             | graphical session waits for systemd-user-session.service,
             | which waits for network.target, which waits for
             | NetworkManager taking its sweet time, which isn't started
             | before network-pre which waits until nftables is done
             | loading rules, etc.
             | 
             | Optimizing the service order and their dependencies does
             | wonders for boot time.
        
               | kwhitefoot wrote:
               | > Optimizing the service order and their dependencies
               | does wonders for boot time.
               | 
               | Why isn't this automatic? I'm pretty sure most of us have
               | neither expertise not enthusiasm for that job.
        
               | bmicraft wrote:
               | It is automatic, but systemd obviously is constrained by
               | the dependencies specified inside the unit files (that's
               | kinda the point). The real question would be, why can't
               | NetworkManager handle being started before everything is
               | initialized. In turn the answer is probably "because it's
               | hard"
        
               | monocasa wrote:
               | I mean, it is, within the rule set specified by the
               | config files. Distros just tend to explicitly default to
               | the system being more fully up before presenting an
               | interactive GUI because a lot of users' workflows expect
               | that.
        
             | yjftsjthsd-h wrote:
             | A 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 wrote:
               | There 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 wrote:
               | If 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.
        
               | wannacboatmovie wrote:
               | A typical car is broken down into many small, dedicated
               | computers.
               | 
               | The powertrain and body control modules, assuredly
               | running a RTOS, certainly do. The PCM for example
               | controls when the spark plugs fire. If it did not boot
               | instantly, the engine wouldn't run. If the BCM didn't
               | boot, the doors wouldn't unlock nor would the key or PTS
               | start the engine.
               | 
               | The user-facing infotainment crap is not necessary for
               | the "car" part to function. You could physically remove
               | it and the car would still be drivable.
        
       | loudmax wrote:
       | 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.
        
         | [deleted]
        
         | giancarlostoro wrote:
         | 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.
        
           | Andrex wrote:
           | It's a shame Elementary imploded, and more a shame their
           | funding model was very publicly debunked. I'm not sure how
           | the ideals for Elementary can exist without a unified, well-
           | funded vision behind them.
        
             | divbzero wrote:
             | Ubuntu Budgie is closest thing to Elementary that I've
             | found: https://ubuntubudgie.org
             | 
             | Are there other alternatives to consider?
        
               | blacksmith_tb wrote:
               | I am pretty happy with Pop!_OS[1], it's got a fair amount
               | of polish, reasonable choices about snaps etc.
               | 
               | 1: https://pop.system76.com/
        
               | desireco42 wrote:
               | PopOS rules for me, I enable tiling manager and I am
               | golden...
        
             | RamRodification wrote:
             | News to me. Can I read up on this somewhere?
        
               | 2143 wrote:
               | https://news.ycombinator.com/item?id=30611748
        
               | RamRodification wrote:
               | Thanks
        
             | digi59404 wrote:
             | > more a shame their funding model was very publicly
             | debunked
             | 
             | It wasn't just that, both the founders were very big
             | socialist/communist people who didn't really understand how
             | to run a business. They still don't. Elementary OS turned
             | down numerous funding opportunities, numerous partnership
             | opportunities. They made a really really great OS. But the
             | business aspect was just atrocious.
             | 
             | The "Pay what you want" model could have worked for their
             | store. But just having a store in the beginning they didn't
             | want one and then they pivoted to having one way late.
             | There was big internal strife in the eOS Community amongst
             | the developers for years, and very little conflict
             | resolution on their part.
             | 
             | I wouldn't say they're an example of a failed funding
             | model. Rather, I'd say they're an example of people who
             | have amazing talent and ideas, but refused business help
             | and refused to admit their failures.
        
               | aroman wrote:
               | It's not that they didn't understand how to run a
               | business... their refusal to accept "business help" was
               | not because of inexperience or incompetence but because
               | they didn't believe it was compatible with their strongly
               | idealistic perspective on business/capitalism/the world.
               | 
               | I'm not sure they're wrong.
        
               | pexabit wrote:
               | Sometimes I marvel at what would be possible if just a
               | sliver of open source talent was put to work building
               | independent quality software for their own or an
               | investor's profit. Marketing a product forces you to
               | figure out what it is people actually need and deliver
               | the knowledge and education people need to use a product
               | well. In fact a lot of what is wrong with software from
               | big tech companies is that individual programs are not
               | written to make the program itself great, and the
               | incentives generally do not encourage spending a lot of
               | time making some part of Chrome or Safari more efficient.
               | 
               | Open source will never spend time marketing anything,
               | never spend time educating an actual mass of general
               | users as to its virtues or how to use it well, and suffer
               | as a result. You don't have Desktop Linux that blows
               | everything else out of the water because that would
               | require investors to stake a lot of money doing these
               | things, which they will only do if there is profit. PopOS
               | gets as close as you might with something like that, but
               | is ultimately shackled by the fact they cannot sell their
               | software. (Enterprise is different, where I guess you can
               | nerf the product to make money on servicing instead).
               | 
               | Even someone with infinite resources cannot do what a
               | company selling something for a profit can because they
               | are either ultimately captured by and beholden to some
               | other interest other than the product itself, or
               | constitutionally lack the energy to be daring and
               | actually compete. Imagine what someone could do with a
               | Firefox sold for a profit because of its superior
               | functionality and superior efficiency.
        
               | gchamonlive wrote:
               | > You don't have Desktop Linux that blows everything else
               | out of the water because that would require investors to
               | stake a lot of money doing these things, which they will
               | only do if there is profit.
               | 
               | I think this illustrates what I believe you get backwards
               | well. It's not that getting good quality and concise
               | software requires traditional investors and a centralised
               | force of vision. It's because doing software in general
               | but _specially_ desktops is _hard_.
               | 
               | I think Linux is not what it is despite investment, I
               | think it is what it is _because of it_. Look at Windows
               | and Mac, they show that they listen and develop their
               | products with users in mind just as far as the market and
               | investors let them. They will otherwise push anti-
               | consumer features (like ads in the start menu) without
               | even batting an eye.
               | 
               | This belief that profit drives innovation is just silly.
               | Profit drives profit, innovation and competition are
               | accidents. In a world with Googles and Amazons,
               | Microsofts and Teslas, I am really baffled that it isn't
               | clearer for us in tech that this is exactly like this.
               | 
               | The state of Linux and opensource in general, flourishing
               | for decades is a living testament to that. Opensource is
               | not only moral, it is the practice that we know to be the
               | most sustainable and resilient in the long run.
               | 
               | I feel compelled to write, though, that even though I
               | frame profit in this bad light, they are only so when the
               | they are the ultimate goal of your product. What
               | countless enterprises are enabled by Linux and OSS
               | initiatives? What vast amounts of money flow only
               | _because_ Foss and OSS are the way they are?
        
               | bandyaboot wrote:
               | > Even someone with infinite resources cannot do what a
               | company selling something for a profit can because they
               | are either ultimately captured by and beholden to some
               | other interest other than the product itself, or
               | constitutionally lack the energy to be daring and
               | actually compete. Imagine what someone could do with a
               | Firefox sold for a profit because of its superior
               | functionality and superior efficiency.
               | 
               |  _turns on imagination_ ...Firefox eventually goes all-in
               | on making profit from selling user data and making
               | advertising deals after they realize that the vast
               | majority of users are totally fine with the default and
               | other free options and have no interest in paying for
               | your product.
        
               | pexabit wrote:
               | Yeah advertising is a failure mode of what I said.
               | 
               | But if Firefox ever decided to make a lot of money by
               | selling good browsers at a high price to paying users,
               | well I think the result would be quite interesting.
        
               | akho wrote:
               | The reason that doesn't happen is that that business
               | model is not viable in the presence of alternatives. The
               | "quite interesting result" would be that there wouldn't
               | be a Firefox anymore.
               | 
               | Selling software is not a novel idea.
        
               | pexabit wrote:
               | I pay for my mail client (MailMate). I pay for my
               | search(FoxTrot Search). I pay for my spam filter
               | (Spamsieve). I pay for my notetaking/archival (Eagle
               | Filer). I pay for my network monitoring (Little Snitch).
               | There are alternatives to a lot of these they just aren't
               | very good, in some cases astonishingly bad.
               | 
               | And I would pay an enormous amount of money for a browser
               | that worked well that had features I've always imagined a
               | browser should have. And I don't expect anyone to make
               | that for me without the reward of getting nice stuff for
               | doing so.
               | 
               | No one would bat an eye if Firefox were no more since
               | there are other browsers more or less just as good, more
               | or less just as bad. It's an immemorable product, the
               | consumer surplus of which compared to the best
               | alternative is very low.
        
               | groby_b wrote:
               | Here's the thing: You function in your environment, and
               | you need your environment to function. And currently,
               | some element of capitalism is required to build large-
               | scale undertakings - if for no other reason than that the
               | people you work with have families who'd like to eat, be
               | housed, etc.
               | 
               | You can fundamentally disagree with the system, but that
               | means you opt out of all parts of it. And so they might
               | not have been wrong about their belief system being
               | incompatible with business/capitalism, but the idea that
               | they could build something large without compromising
               | _was_ wrong.
               | 
               | I, too, would like Fully Automated Luxury Space Communism
               | - but you cannot get there from here by willing it to be
               | true. (And it chafes me to say that, but that doesn't
               | change the truth of it)
        
               | wolverine876 wrote:
               | Lots of successful FOSS projects have no 'elements of
               | capitalism', depending of course on how you define the
               | latter. Same goes for much scientific research, and many
               | other enterprises.
        
               | freedomben wrote:
               | I'm not disagreeing with you (yet at least), but can you
               | name some of these successful FOSS projects with no
               | elements of capitalism so I can better understand? The
               | only ones I can think of definitely have some elements of
               | capitalism, whether it's people using it at or for work,
               | or contributing to it as part of a work
               | dependency/project. But of course my limited recall is
               | not evidence that it doesn't exist, so I'd be really
               | interested to hear about some.
        
               | wolverine876 wrote:
               | That's the matter of definition I was talking about.
               | 
               | It's a society with lots of capitalism, so of course
               | you'll have people involved who are also involved in
               | capitalism; you'll buy your computers from capitalist
               | companies, etc. That doesn't seem meaningful.
               | 
               | So what do you mean?
               | 
               | I mean that projects don't need to be capitalist
               | enterprises. For example, they can run on donations or
               | grants, with volunteer labor, etc.
        
               | jeremyjh wrote:
               | I don't think it works as well for end user software. It
               | works great for infrastructure software and libraries,
               | because businesses contribute labor and benefit in turn
               | from labor contributed from other businesses. But with
               | end user software all the work is for a consumer who
               | can't contribute much to the developers of the software.
               | 
               | Of course there are such projects that receive enough in
               | donations from end users to be sustained but not very
               | many; and in the particular case of Linux desktop
               | environments or distributions there is a lot of
               | competition for users and donations of this type. The
               | successful ones I can think of off the top of my head,
               | such as Libre Office and Lichess are "killer
               | applications" with no serious competition in FOSS.
        
               | groby_b wrote:
               | Examples appreciated - and please keep in mind the
               | "large" part. Yes, you can occasionally find a few
               | individuals being in a fortunate enough position that
               | they can work independent of the outside world on a
               | small/medium project, but I'm not aware of any large
               | projects where that is the case.
               | 
               | I'd _love_ to be wrong about that.
        
               | wolverine876 wrote:
               | What do you mean by 'large'? Mozilla? Linux? BSDs?
               | Signal? ?
               | 
               | Also, as in my other comment, it depends on how we define
               | the involvement of capitalism. See my other comment:
               | 
               | https://news.ycombinator.com/item?id=37679386
        
               | groby_b wrote:
               | Moz/Linux/BSD probably qualify. None of them would be
               | possible without some kind of corporate support. FreeBSD
               | is probably doing the best, but even for them they need
               | corporate donors[1]
               | 
               | Linux absolutely is carried to a large part by companies
               | employing people to work on Linux. Mozilla needs to find
               | income to pay its own employees. All three are slightly
               | different models, but all three make it fairly clear that
               | you can't cut all ties.
               | 
               | As for the "what do you mean" part, "obtaining money via
               | capitalist endeavors related to the project so non-
               | affluent devs can actually afford to work on the project"
               | is probably a good enough definition.
               | 
               | In comparison, Signal is small - and even it can only
               | make it because an _extremely_ affluent person (Brian
               | Acton) carries them. It 's not reproducible for larger
               | projects.
               | 
               | [1]https://freebsdfoundation.org/our-donors/donors/
        
           | packetlost wrote:
           | The 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 wrote:
             | I 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
        
               | hutzlibu wrote:
               | But this is by design as they want to push people into a
               | microsoft account.
        
               | giancarlostoro wrote:
               | Two programs saying to go to each other to add literally
               | any account? Including additional Microsoft accounts? I
               | don't think that's the case.
        
               | hutzlibu wrote:
               | Well, if adding a microsoft account would have worked,
               | then they would have succeeded into convincing you to use
               | one. Most people just give in, before they use linux.
        
           | WesolyKubeczek wrote:
           | It's likely that the last version of Windows where it all was
           | consistent through and through was Windows 2000. Someone may
           | correct me by bringing up an exe that ships with the
           | currentest Windows and which looks unchanged from Windows NT
           | 4.0.
           | 
           | I remember an article showing the UI of Windows system apps,
           | and as you go deeper and deeper into %SYSTEM% or whatever,
           | you get UI from progressively older and older versions that
           | are sort of left behind. You get an incentive to polish all
           | the immediately user-visible stuff, but there's so much of it
           | anyway so if the deeper-hidden stuff that a handful of people
           | is using is still working, nobody will touch it. Look, the
           | WMI console was probably unchanged since Windows 2000 at the
           | time of Windows 10.
        
             | kastden wrote:
             | There are still some 3.1 dialogs in Windows 11
             | https://ntdotdev.wordpress.com/2023/01/01/state-of-the-
             | windo...
        
         | webmobdev wrote:
         | This reminded me a bit of Oberon OS -
         | https://en.wikipedia.org/wiki/Oberon_(operating_system) ...
        
         | supertron wrote:
         | > 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?
        
       | peter_d_sherman wrote:
       | 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 wrote:
         | Makes me think of all the elegance, simplicity, & performance
         | we are leaving on the table with our limited OS competition.
        
         | queuebert wrote:
         | _Quickly checks if it 's yet another Justine Tunney stupidly
         | genius project ..._
        
           | queuebert wrote:
           | Plugging Justine gets downvoted? What in the what?
        
             | petee wrote:
             | I 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 wrote:
               | Ah, 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.
        
       | pmarreck wrote:
       | 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.
        
       | troymc wrote:
       | 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 wrote:
         | Seems like the commits since 2021 have been bugfixes. Maybe
         | this is mostly done rather than stopped?
        
           | MerelyMortal wrote:
           | The website says "Essence is still in development." In large
           | type at the bottom of the page.
        
             | lawlessone wrote:
             | https://gitlab.com/nakst/essence/-/issues/20#note_150444495
             | 4
             | 
             | "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 wrote:
               | It 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 wrote:
         | 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.
        
       | redder23 wrote:
       | I 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 wrote:
         | Redox does, if you're into that.
        
         | RetroTechie wrote:
         | That'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 wrote:
         | Still not memory safe as soon as you do anything involving a
         | JIT or hardware access. You need secure hardware and assembly
         | language as well.
        
       | api wrote:
       | 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.
        
       | beowulfey wrote:
       | Haven't watched the video yet. What is the kernel philosophy? Is
       | it a mono or microkernel?
        
       | mdp2021 wrote:
       | Sorry for the aside, just in case you do not notice this from
       | nakst's (the author of Essence) homepage, at
       | https://nakst.gitlab.io/
       | 
       | > _nakst 's webpage // This site works best with JavaScript
       | disabled_
       | 
       | Great guy ;)
        
         | starkparker wrote:
         | Oh! It's the person who made gf, the gdb frontend:
         | https://github.com/nakst/gf
         | 
         | Small world.
        
           | mdp2021 wrote:
           | You can see in the gf screenshots Essence as a target - calls
           | of EsSomeFunction() in the assembly...
        
       | ugh123 wrote:
       | Very cool! Would this be portable to a Raspberry Pi?
        
       | karmakaze wrote:
       | 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.
        
         | jeroenhd wrote:
         | 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.
        
         | vmfunction wrote:
         | > developer toolchain/experience and It was covered a bit in
         | the video. Very nice way for user/designer to theme their own
         | desktop.
        
         | Apocryphon wrote:
         | 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.
        
       | ejstembler wrote:
       | The GUI is reminiscent of BeOS https://en.wikipedia.org/wiki/BeOS
       | or Haiku https://www.haiku-os.org/
        
       | rcarmo wrote:
       | Hmmm. Seems to be Intel-only (or at least I can't find an ARM64
       | branch)
        
       | vict0ni wrote:
       | 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
        
       | PretzelPirate wrote:
       | 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?
        
         | signaru wrote:
         | 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.
        
           | TkTech wrote:
           | PNG files are much, much more complex. Although you can slim
           | it down quite a bit, libpng16.so.16.40.0 alone is 229.9KiB.
           | The entire Kernel.esx of Essence is just 843.1KiB.
        
             | smokel wrote:
             | PNG decoding is little more than an implementation of
             | DEFLATE and handling of the delta encoding. For your own OS
             | you most likely do not have to be feature complete. As an
             | example, picoPNG [1] decodes most .png images, and is only
             | ~500 lines of beautiful C++ code. For most practical
             | purposes, you can probably get away with much less.
             | 
             | [1] https://lodev.org/lodepng/
        
         | TkTech wrote:
         | > 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 wrote:
         | 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.
        
         | pmarreck wrote:
         | in case you've somehow missed this concept until now:
         | 
         | https://en.wikipedia.org/wiki/Vector_graphics
        
         | phendrenad2 wrote:
         | These days it's mostly hardware-accelerated (OpenGL) shaders.
        
       | fodmap wrote:
       | Looks great. I hope they keep developing it!
       | 
       | https://gitlab.com/nakst/essence/-/issues/20
        
         | lutrinus wrote:
         | > I am not working on it at the moment. But I would like to
         | return to the project when I have more free time ;)
        
           | fodmap wrote:
           | Thank you, yes I should have added that sentence for context
           | :)
        
       | stainablesteel wrote:
       | everything has tabs, righteous
        
       | amelius wrote:
       | Impressive work!
       | 
       | And oddly, it would be even more impressive if they built their
       | own Web Browser from scratch ...
        
         | cies wrote:
         | SerenityOS is doing exactly that:
         | 
         | https://github.com/SerenityOS/serenity/tree/master/Ladybird
         | 
         | I also like their Jakt programming language:
         | 
         | https://github.com/SerenityOS/jakt
         | 
         | Though I'm more enthusiastic about Redox (doing it in Rust):
         | 
         | https://gitlab.redox-os.org/redox-os/redox/
        
           | jug wrote:
           | Yeah 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 wrote:
             | A 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?
        
               | notpushkin wrote:
               | I think it's a little too early for that?
        
               | rstat1 wrote:
               | I believe it has some WebDriver support, but I'm not sure
               | how complete it is.
        
               | pmarreck wrote:
               | headless browser drivers are the devil. They are by far
               | the slowest part of any test suite, they usually have to
               | use hacks like setting up timers to wait (doing nothing
               | and wasting precious dev time over and over again) while
               | repeatedly checking for things like whether a dom element
               | has finished setting up, and they run quite non-
               | deterministically, resulting in random test fails, which
               | are literally _the worst_.
               | 
               | Not only is it too soon for that, it's _too evil_ for
               | that.
        
             | twh270 wrote:
             | I've also been impressed by the progress in Ladybird. One
             | point though is that there is an _incredibly_ long tail of
             | work in the major browsers related to OS-specific work,
             | performance, browser-specific features, edge cases, legacy
             | support, etc.
             | 
             | I'm not saying Ladybird "needs to" have all this, just
             | putting some of it into context. And it's no slight to the
             | project either; they've managed to get a lot working with a
             | paucity of person-hours.
        
           | pmarreck wrote:
           | > rect.set_size(width: 640, height: 480)
           | 
           | I've apparently been "ruined" by functional languages because
           | this sort of imperative mutational style of "make this object
           | have these attributes" is just an instant turn-off. an
           | equivalent functional style would look something more like:
           | 
           | > rect = Struct.merge_attr(rect, %{width: 640, height: 480})
           | 
           | (assuming you have the Elixir language feature of being able
           | to re-use the same name, but underneath it's actually
           | pointing to a new value; if not, you'd have to assign to a
           | new name, but at least there'd be no ambiguity, and you could
           | still continue to refer to the old name until it went out of
           | scope)
        
             | Hammershaft wrote:
             | They did mention the mandlebrot set was made in Lisp.
        
           | tormeh wrote:
           | Redox is IMO trying to do too much at once. I'm not sure
           | about Essence, but this seems to be a common failing of new
           | OS efforts. A new kernel would be a monumental achievement.
           | Even a new windowing system would be awesome. Reinventing
           | everything else at the same time is madness. Hopefully it's
           | fun, but it's certainly not conducive to success, afaict.
           | Some things might be easier to reimplement than to port, but
           | how many cases are like that? All in all I'd be more excited
           | about a new OS that reuses more existing open source code, as
           | it'd be likely to become usable sooner.
        
       | sydbarrett74 wrote:
       | Kudos to the developers. It looks gorgeous, and I eagerly await
       | further progress. :)
        
       ___________________________________________________________________
       (page generated 2023-09-27 23:01 UTC)