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