[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)