[HN Gopher] CharlotteOS - An Experimental Modern Operating System
       ___________________________________________________________________
        
       CharlotteOS - An Experimental Modern Operating System
        
       Author : ementally
       Score  : 140 points
       Date   : 2025-11-01 13:12 UTC (9 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | pjmlp wrote:
       | Interesting, and kudos for trailing other paths, and not being
       | yet another POSIX clone.
        
       | embedding-shape wrote:
       | This is probably a better introduction it seems, than
       | specifically the kernel of the OS: https://github.com/charlotte-
       | os/.github/blob/main/profile/RE...
       | 
       | > URIs as namespace paths allowing access to system resources
       | both locally and on the network without mounting or unmounting
       | anything
       | 
       | This is such an attractive idea, and I'm gonna give it a try just
       | because I want _something_ with this idea to succeed. Seems the
       | project has many other great ideas too, like the modular kernel
       | where implementations can be switched out. Gonna be interesting
       | to see where it goes! Good luck author /team :)
       | 
       | Edit: This part scares me a bit though: "Graphics Stack:
       | compositing in-kernel", but I'm not sure if it scares me because
       | I don't understand those parts deeply enough. Isn't this
       | potentially a huge hole security wise? Maybe the capability-based
       | security model prevents it from being a big issue, again I'm not
       | sure because I don't think I understand it deeply or as a whole
       | enough.
        
         | Philpax wrote:
         | The choice of a pure-monolithic kernel is also interesting; I
         | can buy that it's more secure, but having to recompile the
         | kernel every time you change hardware sounds like it would be
         | pretty tedious. Early days, though, so we'll see how that
         | decision works out.
        
           | Rohansi wrote:
           | Why would you need to recompile if hardware changes? Linux
           | manages just fine as a monolithic kernel that ships with
           | support for many devices in the same kernel build.
        
             | ofrzeta wrote:
             | It's true that you can compile everything in but it's not
             | really the standard practice. On a stock distro you have
             | dozens of dynamic modules loaded.
        
           | vlovich123 wrote:
           | Why would you buy it's more secure. Traditionally in windows
           | in-kernel compositing was a constant source of security
           | vulnerabilities. Sure rust may help the obvious memory
           | corruption possibilities but I'm not convinced.
        
           | astrange wrote:
           | A monolithic kernel and resource locators that automatically
           | mount network drives? That's just macOS.
           | 
           | (You don't have to recompile the kernel if you put all the
           | device drivers in it, just keep the object files around and
           | relink it.)
        
         | user3939382 wrote:
         | I'm working on one with a completely new hardware comms
         | networking infra stack everything
        
         | bionsystem wrote:
         | I believe redox is doing the same (the everything as an URI
         | part)
        
           | yjftsjthsd-h wrote:
           | Skimming https://doc.redox-os.org/book/scheme-rooted-
           | paths.html and https://doc.redox-os.org/book/schemes.html , I
           | think they've slightly reworked that to a more-unixy
           | approach, but yeah still fundamentally more URI than
           | traditional VFS
        
         | incognito124 wrote:
         | Recompiling the whole kernel just to change drivers seems like
         | a deal-breaker for wider adoption
        
           | pjmlp wrote:
           | Quite common on Linux early days.
           | 
           | Also the only approach for systems where people advocate for
           | static linking everything, yet another reason why dynamic
           | loading became a thing.
        
           | surajrmal wrote:
           | If this kernel ever gets big enough where this might matter,
           | I'm sure they can change the design. Nothing is set in stone
           | forever and for the foreseeable future it's unlikely to
           | matter.
        
           | skissane wrote:
           | Recompile (or at least relink) the kernel to change drivers
           | (or even system configuration) is a bit of a blast from the
           | past - in the 1960s thru 1980s it used to be a very common
           | thing, it was called "system generation". It was found in
           | mainframe operating systems (e.g. OS/360, OS/VS1, OS/VS2,
           | DOS/360); in CP/M; in Netware 2.x (3.x onwards dropped the
           | need for it)
           | 
           | Most of these systems came with utilities to partially
           | automate the process, some kind of config file to drive it,
           | Netware 2.x even had TUI menuing apps (ELSGEN, NETGEN) to
           | assist in it
        
         | BobbyTables2 wrote:
         | Wish OP had put that as the main readme.
         | 
         | The intro page is currently useless.
        
           | embedding-shape wrote:
           | To be fair, the submission URL goes to the kernel
           | specifically, so the README is good considering the
           | repository it's in. The link I put earlier I found via the
           | GitHub organization, which does give you an overview of the
           | OS as a whole (not just the kernel):
           | https://github.com/charlotte-os/
        
         | KerrAvon wrote:
         | In practice, the problem with URIs is that it makes parsing
         | very complex. You don't really want a parser of that complexity
         | in the kernel if you can avoid it, for performance reasons if
         | nothing else. For low-level resource management, an ad-hoc,
         | much simpler standard would be significantly better.
        
           | embedding-shape wrote:
           | Chuck Multiaddr in there
           | (https://multiformats.io/multiaddr/), can be used for URLs,
           | file paths, network addresses, you name it. Easy to parse as
           | well.
        
         | whatpeoplewant wrote:
         | This looks like a very interesting project! Good luck to the
         | team.
        
         | jadbox wrote:
         | In theory, wouldn't it be possible for the Linux kernel to also
         | provide a URI "auto mount" extension too?
        
       | ofrzeta wrote:
       | So, what's modern about it? "novel systems like Plan 9" is quite
       | funny because Plan 9 is 30 years old.
        
         | pjmlp wrote:
         | The sad part is that there are too many ideas of old systems
         | lost in a world that 30 years later seems too focused on
         | putting Linux distributions everywhere.
        
           | grepfru_it wrote:
           | There was also a period of time where everyone and their mom
           | was writing a new operating system trying to replicate Linux'
           | success
        
             | pjmlp wrote:
             | Isn't what all those UNIX clones keep trying to do?
        
           | Razengan wrote:
           | Yeah the more you read up on computing history from barely
           | even 40 years ago, it seems that most of the things that we
           | take for granted today became so more through politics (and
           | in the case of Microsoft, bullying) than merit.
        
             | Razengan wrote:
             | Regarding Microsoft, this was before even the "Browser
             | Wars" they'd send suited people to the offices of Japanese
             | PC manufacturers and threaten to revoke their Windows
             | licenses if they even OFFERED customers the CHOICE of an
             | alternative operating system!!
             | 
             | This and other dirt is on any YouTube video about the
             | history/demise of alternative computing platforms/OSes.
        
           | linguae wrote:
           | Indeed. I am reminded of what Alan Kay has repeatedly
           | referred to as a "pop culture" of computing that has become
           | widespread in technical communities since the 1980s, when the
           | spread of technology grew faster than educational efforts.
           | One result is there are many inventions and innovations from
           | the research community that never got adopted by major
           | players. The corollary to "perfect is the enemy of the good"
           | is good-enough solutions have amazingly long lifetimes in the
           | marketplace.
           | 
           | There are many great ideas in operating systems, programming
           | languages, and other systems that have been developed in the
           | fast 30 years, but these ideas need to work with existing
           | infrastructure due to costs, network effects, and other
           | important factors.
           | 
           | What is interesting is how some of these features do get
           | picked up by the mainstream computing ecosystem. Rust is one
           | of the biggest breakthroughs in systems programming in
           | decades, bringing together research in linear types and
           | memory safety in a form that has resonated with a lot of
           | systems programmers who tend to resist typical languages from
           | the PL community. Some ideas from Plan 9, such as 9P, have
           | made their way into contemporary systems. Features that were
           | once the domain of Lisp have made their ways into
           | contemporary programming languages, such as anonymous
           | functions.
           | 
           | I think it would be cool if there were some book or blog that
           | taught "alternate universe computing": the ideas of research
           | systems during the past few decades that didn't become
           | dominant but have very important lessons that people working
           | on today's systems can apply. A lot of what I know about
           | research systems comes from graduate school, working in
           | research environments, and reading sites like Hacker News. It
           | would be cool if this information were more widely
           | disseminated.
        
             | pjmlp wrote:
             | There is actually a talk like that from like two years ago,
             | have to see if I find it again.
        
         | IshKebab wrote:
         | That's still newer than Linux's system design.
        
           | ofrzeta wrote:
           | In an operating system course I attended it was mostly Unix
           | and everyone was used to bashing Windows NT ("so crappy, bsod
           | etc.") but we had Stallings' book and I was surprised to
           | learn that NT was in many ways an improvement over Unix and
           | Linux.
        
             | exe34 wrote:
             | NT the kernel is quite good. windows nt itself was not
             | always great.
        
               | brendoelfrendo wrote:
               | _Is_ not always that great. Windows 11 is still based on
               | the NT kernel. It 's probably still good! Unfortunately
               | the userland experience they put on top of it is just
               | awful.
        
       | the__alchemist wrote:
       | I love seeing projects in this space! Non-big-corp OSSes have
       | been limited to Linux etc; would love to explore the space more
       | and have non-Linux, non-MS/Apple options. For example, Linux has
       | these at the core which I don't find to be a good match for my
       | uses:                 - Multi-user and server-oriented
       | permissions system.       - Incompatible ABIs       - File-based
       | everything; leads to scattered state that gets messy over time.
       | - Package managers and compiling-from-source instead of
       | distributing runnable applications directly.       - Dependence
       | on CLI, and steep learning curve.
       | 
       | If you're OK with those, cool! I think we should have more
       | options.
        
         | ogogmad wrote:
         | > Package managers and compiling-from-source instead of
         | distributing runnable applications directly.
         | 
         | Docker tries to partially address this, right?
         | 
         | > Dependence on CLI, and steep learning curve.
         | 
         | I think this is partially eased by LLMs.
        
           | the__alchemist wrote:
           | But you can see the theme here: Adding more layers of
           | complexity to patch things. LLMs do seem to do a better job
           | than searching forum posts! I would argue that Docker's point
           | is to patch compatibility barriers in Linux.
        
           | Levitating wrote:
           | > Docker tries to partially address this, right?
           | 
           | Docker is a good way of turning a 2kb shell script into a
           | 400mb container. It's not a solution.
           | 
           | Flatpak would be a better example.
        
         | grepfru_it wrote:
         | Haiku, plan9, redox, and Hurd comes to mind
         | 
         | Reactos if you need something to replace windows
         | 
         | Implementing support for docker on these operating systems
         | could give them the life you are looking for
        
         | Zardoz84 wrote:
         | BSD exists Also Open Solaris Minix etc...
        
           | ogogmad wrote:
           | I reckon each of these has at least 3/5 of the complaints the
           | OP has about Linux, because they're all still Unix clones.
        
       | kragen wrote:
       | It's comforting to see that capabilities with mandatory access
       | control have become the new normal.
        
         | LavenderDay3544 wrote:
         | Why choose one when combining both is better?
        
           | kragen wrote:
           | Exactamente.
        
       | varispeed wrote:
       | Modern operating system, ready to face challenges of today
       | political landscape, should natively support "hidden" encrypted
       | containers, that is you would log in to completely different,
       | separate environment depending on password. So that when under
       | threat could disclose a password to an environment you are
       | willing to share and attacker would have no way of proving there
       | is any other environment present.
        
         | Razengan wrote:
         | It would be easy to tell for anyone seriously after you: If I
         | kidnap you and make you log into your computer, and you log
         | into the decoy state, it'd be obvious to see that the last time
         | you visited any website etc. was over a month ago and so on.
        
           | varispeed wrote:
           | For sure you'd have to use it from time to time.
        
             | mixmastamyk wrote:
             | Or, write a login script to touch files at random.
        
               | Razengan wrote:
               | That won't mask your online interaction history etc.
               | 
               | Maybe an LLM agent posting crap at random? lol
        
               | varispeed wrote:
               | Could also be a "cross-over", so your real account could
               | mount certain parts of other file systems as an overlay.
               | So if you could have a browser that would be the same
               | across two environments. That way the throwaway account
               | could be seen as real, but it wouldn't show things you
               | don't want to be compromised.
        
             | Razengan wrote:
             | Something I thought about long ago was that it would be
             | better/easier to divide user accounts into "personas":
             | different sets of public-facing IDs, settings etc.
             | 
             | This could be done at every level: the operating system,
             | the browser, websites..
             | 
             | So if you don't care about the website knowing it's the
             | same person, instead of having multiple user accounts on
             | HN, Reddit, you could log into a single account, then
             | choose from a set of different usernames each with their
             | own post history, karma, etc.
             | 
             | If you want to have different usernames on each website,
             | switch the browser persona.
             | 
             | At the OS level, people could have different "decoy"
             | personas if they're at risk of state/partner spying or
             | wrench-based decryption, and so on.
        
         | LavenderDay3544 wrote:
         | The only thing political about this project so far is that I
         | insist on it being free software and also free from
         | tivoization. Well that and not going to insane lengths to
         | support hardware whose vendors are clearly hostile to third
         | party operating systems and free software in general like Apple
         | and Qualcomm.
        
       | ForHackernews wrote:
       | How does this compare to SerenityOS? At a glance, it looks more
       | modern and free from POSIX legacy?
        
         | LavenderDay3544 wrote:
         | I don't know anything about SerenityOS so I can't really say
         | but if you have any more specific questions I'd be happy to
         | answer them.
        
       | jancsika wrote:
       | > GPLv3 or later (with proprietary driver clarification)
       | 
       | What's that parenthetical mean?
        
         | nathcd wrote:
         | Looks like it's explained here: https://github.com/charlotte-
         | os/Catten/blob/main/License/cla...
         | 
         | Specifically, "Users may link this kernel with closed-source
         | binary drivers, including static libraries, for personal,
         | internal, or evaluation use without being required to disclose
         | the source code of the proprietary driver.".
        
           | jancsika wrote:
           | Ok, even Doug Crockford has mucked around with licensing
           | before, so this is definitely a digression and not aimed at
           | CharlotteOS which looks fascinating:
           | 
           | I wish there was a social stigma in Open Source/Free Software
           | to doing anything other than just picking a bog standard
           | license.
           | 
           | I mean, we have a social stigma even for OS developers about
           | rolling your own crypto primitives. Even though it's the same
           | _very_ general domain, we know from experience that someone
           | who isn 't an active, experienced cryptographer would have
           | close to a zero percent chance of getting it right.
           | 
           | If that's true, then it's _even less likely_ that a
           | programmer is going to make legally competent (or even
           | legally relevant) decisions when writing their own open
           | source compatible license, or modifying an existing license.
           | 
           | I guess technically the "clarification" of a bog standard
           | license is outside of my critique. Even so, their
           | clarification is shoe-horned right there in a parenthetical
           | next to the "License" heading, making me itchy... :)
        
             | LavenderDay3544 wrote:
             | OP here, it's not mucking around with the license just
             | making sure people know how the GPLv3 works. You are not
             | required to provide source code for the combined work
             | unless it is conveyed. If you combine the covered work with
             | closed source but don't convey the resulting product you
             | are not required to provide any source to anyone.
             | 
             | Many people don't know that, hence the clarification note.
        
             | hunterpayne wrote:
             | Its almost impossible to have a non-begging based business
             | model and a standard OpenSource license. So unless you want
             | to donate a lot of work to some huge company's bottom line
             | for free, a standard OpenSource license is a non starter.
             | I'm sorry that you don't seem to understand the events that
             | led to this state. But if you ever wrote an OpenSource
             | platform that people wanted to use, you would know why the
             | standard licenses don't work. That's why the social stigma
             | is the other way around. Your position from the POV of
             | OpenSource devs is naive at best and likely destructive to
             | the developers themselves.
        
       | shevy-java wrote:
       | Written in Rust. Hmm.
       | 
       | SerenityOS is written in C++.
       | 
       | I'd love some kind of meta-language that is easy to read and
       | write, easy to maintain - but fast. C, C++, Rust etc... are not
       | that easy to read, write and maintain.
        
         | cultofmetatron wrote:
         | fast necessitates manual control -> more semantics for low
         | level control) that need to be expressible, ie: more complex
         | 
         | easy to understand, maintain -> computer does more work for you
         | to "figure things out" in a way that simply can't be optimal
         | under al conditions.
         | 
         | TLDR: what you're asking for isn't really possible without some
         | form of AGI
        
           | card_zero wrote:
           | What languages are easy to understand and maintain, anyway?
        
         | LavenderDay3544 wrote:
         | Being maintainable comes down to code quality, comments, and
         | documentation. These are thing that I really want to emphasize
         | for this project but for now I'm just one guy and it's very
         | early days so I have to focus developing core kernel components
         | first.
        
       | not4uffin wrote:
       | I'm very happy I'm seeing more open source kernels being
       | released.
       | 
       | More options (and thus) competition is very healthy.
        
       ___________________________________________________________________
       (page generated 2025-11-01 23:00 UTC)