73 comments

[ 3.0 ms ] story [ 158 ms ] thread
I don't know why, but I love everything about it. And I just discovered it.
Glad you like it :)
I wonder if January 11 was a Thuesday or a Thuersday...
A Thuersday, obviously...

They're not only redesigning the OS, they're also redesigning the calendar (and font kerning too, it seems)

(comment deleted)
It’s not UNIX but it “is” UNIX? That’s kind of all I got out of the about.

Glad to see new OS design in 2022!

The idea is to take all the concepts we like about UNIX and iterate on them. It's UNIX as if it was invented now. For example, let's have a C compiler but let's add lambda and a more complete type system. Or let's have a shell, but let's have full ide like autocomplete to it. Or instead of plain text, let's use JSON
Sick. How far along is it?

Any chance of bringing in Plan9 type ideas/concepts? Ie being able to mount remote compute resources similar to mounting file systems in UNIX? (As the one real plan9-ism in mind at the moment.)

We are still early in development; it still lacks proper filesystem and networking support
A language like C but with lambdas isn't really C, not that that's a bad thing.

I was a little surprised that a compiler was in scope given the amount of other work that needed to be written and (hopefully) supported, though I guess that's a different issue.

> A language like C but with lambdas isn't really C, not that that's a bad thing.

At that point, why not just use Rust?

Does rust have an equivalent to the classic KR book?
Did Unix? Does C with lambdas has its K&R?

I don't see why it's some sort of requirement.

After K&R 2nd Ed. (ANSI C) and Modern C (C99) you can do a lot.
Someone somewhere once likened UNIX to the OS version of C to me, or something like that. There's also the various books on UNIX from those days.

My question though was more about rust as a language. Does it have a golden standard introduction to it like C does. Not 'some sort of requirement', but genuine interest in a clear path to learn the language.

> My question though was more about rust as a language. Does it have a golden standard introduction to it like C does.

You'd have to be specific. If you are looking for simplicity, nothing will ever beat C, but just because a languague is simple doesn't mean it's easy to program. See Brainfuck.

Generally Rust Book is considered a gold standard, but I rarely read them unless I am truly at a loss what next.

https://doc.rust-lang.org/book/

Because I might, in some conceivable future, wish to implement that obscure data structure the doubly-linked list.
Are doubly-linked lists actually rarely implemented? I thought they were the back end of things like python lists, or something similar.
I was being sarcastic.
What (if any) is the overlap with Plan9 (and its various forks and derivatives, including Inferno)?

Given KenC, I was amused to see that Brutal has its own C variant too!

That kerning on that "hello world" vector font demo though
Yeah kerning is still WIP
Honestly the amount of crazy code involved in Linux font rendering[1], and then you get to CJKV support[2], it's mind-boggling. Even then, it's nowhere near as good as macOS :-/

[1] https://gitlab.gnome.org/GNOME/pango & https://github.com/harfbuzz/harfbuzz

[2] https://www.amazon.co.uk/CJKV-Information-Processing-Ken-Lun...

I'll disagree. Linux has better font rendering than Windows and macOS.
Can you expand on that a little? I know a little bit about how Windows and macOS handle font rendering, but I know nothing about how Linux does things.
If it had kerning, then would it still be brutalist?
In this case, keming is a more appropriate term.
My favourite patch note of all time is from Path of Exile and reads simply “Fixed keming.”
You mean letter spacing? It looks like there is no kerning going on.
What is that hardware in the cover image? Is it even real?
It looks cool but the keyboard is almost square, making it difficult to touch the keys in the top row while still resting your hands. A flat aspect ratio (like most keyboards have) would be better. It's easier to move your fingers over large distances horizontally than vertically; see also the piano keyboard.
(comment deleted)
Ergonomics are important, and ignoring or powering through something that can injure you is a poor choice.
You know what you're doing right now. Stop it. We are not dainty wristed aliens yet. I love velcro shoes and elastic waistbands as much as the next guy, but this is bordering on comedy. How do you people lift a coffee cup with a straight face while saying this type of stuff?
You're right. Lifting a coffee cup with poor ergonomics isn't going to cause any injuries. Typing for hundreds of hours over many years in a poor position can lead to problems such as RSI.
> You know what you're doing right now. Stop it.

I'm raising valid disagreement in good faith. I don't think I will.

> We are not dainty wristed aliens yet. I love velcro shoes and elastic waistbands as much as the next guy, but this is bordering on comedy. How do you people lift a coffee cup with a straight face while saying this type of stuff?

While I'm glad your massive hulk wrists are totally immune to RSI, the rest of us mere mortals have to deal with ergonomic issues if we spend any significant time on a keyboard. It's not a matter of strength; lifting a coffee cup once is fine, lifting it a thousand times a day at increasingly awkward angles is a lovely recipe for injury.

It was a design study from Soviet Union in I think 1980s, but no real hardware got built.
The OS looks quite interesting, but the GUI library caught my attention - hope there are plans to make it available separately.
They said it runs on macOS and linux, so I would assume so
The gui library is able to be used on Linux. But For the moment we can’t do hardware acceleration (but it is still really fast without it).
vv cool! I got it to build and run except I couldnt get the mouse to move, but still seems very neat. Hope I can try contributing a bit!
Hi, can you open an issue on Github?
I'm not sure what was going on, but Its now working.

Also the C code is pretty interesting, I like that its built up result types and generic types but also in c, very cool, if not a little bit wild :)

Where is their "brutal toolchain" (not GNU, not LLVM) able to bootstrap build their OS from kernel to user space? (sarcasm).

I wish they prove me wrong.

Very cool project, and i want that hardware badly... But... Please add some margin on your article before someone gets hurt
Thanks, I'm fixing it asap
(comment deleted)
I believe that is a Soviet Project SPHINX system - a design for a smart home network that never actually got produced due to the fall of the Soviet Union.

https://blog.adafruit.com/2021/12/13/project-sphinx-when-the...

Even if it only involves stuffing a raspberry pi into something, I want to yell at someone over the phone from my penthouse office in front of that thing while 80s power-montage music plays.
That's amazing! I didn't even know displays like that existed at the time.

I wonder where we would be now if that had gone according to plan.

> BRUTAL is an operating system built from scratch in modern C.

Modern as in C11?

> BRUTAL is built on top of a capabilty based micro-kernel.

Their own, or somebody else's? Why can't they just say which?

> BRUTAL targets x86_64, i686, RISC-V and ARM.

Ok, a decent set of targets, certainly for starting out with.

> BRUTAL exposes its features to developers through clean APIs.

Which are listed where?

> BRUTAL features a rich and modern C library complete with fibers, custom allocators, generic data structures, and more...

Did they reimplement the entire C library? Added a backed/port for an existing library?

I like Brutalism in design, don't like Minimalism in documentation.

https://duckduckgo.com/?q=brutalism&t=ffab&iar=images&iax=im...

Hi, Sorry if our doc is not fully fleshed out yet, the project is still in the early stages, and APIs and idioms keep changing rapidly.

> Modern as in C11?

As in bleeding-edge C23

> Their own, or somebody else's? Why can't they just say which?

Our own

> Which are listed where?

We have a Doxygen doc but it's not published yet.

> Did they reimplement the entire C library?

Yes

Hopes this answers your questions

This is really awesome. I'll definitely be following the development of this OS!

You figure you'll keep with the bleeding edge C standards for the future?

Also, if someone wanted to build compatibility layers out to other FOSS OSes into the system somewhere would that be tolerated? For example drivers from other OSes could massively improve quality of life and usability.

Thanks for the prompt response and +1 for me. But... why spell this out _here_? Add that info to your documentation. For a new OS to be adopted, good documentation is probably even more important than good performance :-P

> As in bleeding-edge C23

Well... looking at what's coming C23: https://en.cppreference.com/w/c/23

I see mostly syntactic sugar and a few adoptions from POSIX; and C17 didn't change much either. So, for me, this is basically C11 - which I still find very modern and does not seem that widely adopted TBH. So good on you. (But make sure to support code in older C standard versions.)

Also, I doubt that it is really a good idea to reimplement libc. I would assume taking on even more work than the already huge effort that is an OS would either slow you down or reduce quality. IIRC, when Linux got started, Torvalds ported gcc along with glibc and also bash. Could you explain your choice of a different direction?

There's a lot to be said for ideas which hit it so "on the nail" in the IT world that they manage to stick around for so many decades. An alternative take, too, could be basing an OS on bleeding edge C23 and new releases into the future should act as something of a modern baseline of the UNIX standard. That could be used as a starting point or comparison for future OS development.

Or, perhaps at worst, it probably makes the developers very aware of how the current *nix flavors could be improved from the lowest levels on up.

Not Brutal enough. We have rounded corners in the UI.