Live data from Hacker News

Interview with Andreas Kling of Serenity OS (2022)

corecursive.com

141–150 of 181 posts

Re: Interview with Andreas Kling of Serenity OS (2022)

#141
post #110
post #89

How does one get started on a toy OS? I don’t mean like concepts, but is there like a minimum viable OS .c file somewhere I can look at, with instructions for how to run it on “bare metal”? I assume I need a bootloader of some kind first? I’m just totally unsure where I’d even begin in a practical sense.

https://www.osdev.org

That wiki was invaluable to me when I took computer organization courses. My recommendation would be to learn x86 assembly and C (also familiarize yourself with gdb!) by writing programs that run on a Linux system and only after target bare metal programming by using something like QEMU + gdb or Bochs for emulating bare metal hardware that's also debuggable.

(I used x86 assembly as an example assuming you wanted to boot your OS on a PC. An alternative could be to target a well documented SBC like the BeagleBone Black)

Re: Interview with Andreas Kling of Serenity OS (2022)

#142
post #75

Serenity is one of the only recent OS projects that I think has any potential. It's a very high velocity, high quality project and I think that's down to the community culture Andreas has fostered. They aren't a load of fuddy-duddies who insist on using mailing lists and IRC. Nobody wants to collaborate with a load of grumpy greybeards.

We need more optimism in technology, more looking forward and inspiring the next generation to leave their mark; not pining for a past that’s already been here. Nobody younger than an older millennial who grew up learning computers via Windows 95 has any interest in “retvrning” to this ethos of computing. Hell, I just described myself and even I could care less about this project other than a passing “huh that’s kind…

In the classic definition of .... "graybeards"... we have no nostalgia for Win95.

Back then we were fighting tooth and nail to undermine MS's monopoly, and Linux as you see it today is the product of that.

I will admit the first times I saw the Win95 interface I found it appealing. Though they actually cribbed a lot form the NeXTstep UI, and I'm much more fond of that.

I prefer the Sun OpenLook UI for nostalgia value, myself.

Re: Interview with Andreas Kling of Serenity OS (2022)

#143
post #89

How does one get started on a toy OS? I don’t mean like concepts, but is there like a minimum viable OS .c file somewhere I can look at, with instructions for how to run it on “bare metal”? I assume I need a bootloader of some kind first? I’m just totally unsure where I’d even begin in a practical sense.

I started with the osdev wiki's Barebones Tutorial: https://wiki.osdev.org/Bare_Bones

It teaches how to do a hello world, with proper setup.

It's a bit more than a single C file, with some assembly/linker script/custom GCC toolchain required.

From there, that wiki is probably the most helpful resource you can find, along with the CPU manuals.

Re: Interview with Andreas Kling of Serenity OS (2022)

#144

Earlier quoted context omitted.

> Have either database-like transactions or (at a minimum) write barriers for file operations. Go one step further and have the kernel expose a much more structured view of storage to user space by default. 99.9% of user space programs I've written don't want to deal with file IO, they want a database, or some other way for arbitrary in memory objects to be persisted and shared between processes. There's so much room…

Ironically my understanding is that several operating systems around that time did do that, then Unix came and said "a file is just a bag of bytes in a hierarchical namespace" and we've seemingly never reconsidered

I can imagine that there's a major lack of flexibility inherent in a record-based filesystem. Nowadays we have file formats that introduce a record format on top of the "bag of bytes" for when you want records, but you aren't required to have records of any particular shape and size (or have any records at all) if they don't work for your needs.

Re: Interview with Andreas Kling of Serenity OS (2022)

#145

Earlier quoted context omitted.

We need more optimism in technology, more looking forward and inspiring the next generation to leave their mark; not pining for a past that’s already been here. Nobody younger than an older millennial who grew up learning computers via Windows 95 has any interest in “retvrning” to this ethos of computing. Hell, I just described myself and even I could care less about this project other than a passing “huh that’s kind…

In the classic definition of .... "graybeards"... we have no nostalgia for Win95. Back then we were fighting tooth and nail to undermine MS's monopoly, and Linux as you see it today is the product of that. I will admit the first times I saw the Win95 interface I found it appealing. Though they actually cribbed a lot form the NeXTstep UI, and I'm much more fond of that . I prefer the Sun OpenLook UI for nostalgia valu…

The nostalgia for Win95 is sick, honestly. If you want to use a really good unstable mid-90's OS, classic Mac OS is right there.

Re: Interview with Andreas Kling of Serenity OS (2022)

#146

Earlier quoted context omitted.

Ironically my understanding is that several operating systems around that time did do that, then Unix came and said "a file is just a bag of bytes in a hierarchical namespace" and we've seemingly never reconsidered

I can imagine that there's a major lack of flexibility inherent in a record-based filesystem. Nowadays we have file formats that introduce a record format on top of the "bag of bytes" for when you want records, but you aren't required to have records of any particular shape and size (or have any records at all) if they don't work for your needs.

Notable major player here was IBM on the AS/400, you had libraries containing objects of various types (such as PGM/Program, FILE/'file', *DTAQ/Data Queue, etc).

'file' objects were effectively database tables, and even things like source code for programs were stored as such.

Eventually IBM added the IFS (integrated file system) to provide a more traditional POSIX-adjacent filesystem that was in fact just a bunch of bits, and it feels weird and out of place with the rest of the system as a result.

Re: Interview with Andreas Kling of Serenity OS (2022)

#147
post #2

I'm increasingly tempted to try my hand at making a toy OS - or at least a kernel. There's a few things I desperately want an operating system to do: 1. Have either database-like transactions or (at a minimum) write barriers for file operations. The current filesystem semantics are terrible for databases and other applications which need to not corrupt their data after a crash. fsync() is too heavy, because you can't…

> The current filesystem semantics are terrible for databases

There was at least one Unix startup (IIRC it was Tolerant Systems) in mid 80s that applied transactional semantics to filesystem operations. I did some contract work for them and found the performance was absolutely abysmal and the system had some deadlocks. Now may be their implementation was not great but I suspect the converse is also true: database semantics are terrible for filesystems :-)

Re: Interview with Andreas Kling of Serenity OS (2022)

#148

Earlier quoted context omitted.

In the classic definition of .... "graybeards"... we have no nostalgia for Win95. Back then we were fighting tooth and nail to undermine MS's monopoly, and Linux as you see it today is the product of that. I will admit the first times I saw the Win95 interface I found it appealing. Though they actually cribbed a lot form the NeXTstep UI, and I'm much more fond of that . I prefer the Sun OpenLook UI for nostalgia valu…

The nostalgia for Win95 is sick, honestly. If you want to use a really good unstable mid-90's OS, classic Mac OS is right there.

When I first saw screenshots of Win95 I was impressed at a certain level, from a pure look & feel POV.

But there are certain (non)usability things it introduced which I didn't think were great, actually. Window close button next to the minimize and other controls. Classic MacOS did it right by putting it on the far other side of the window where you couldn't accidentally click. The Start menu broke the whole OO metaphor by adding a deep tricky menu system. Right-clicking context menus all over the place. Task bar at the bottom dynamic depending on what is running means hard to use muscle memory and predict where a given tile will be.

Overall it was very good for the time. Though in fact I personally think the more 'flat' and minimalistic interface of Windows 3 aged better. This faux-3d bevels etc thing didn't age well. Was a novelty product of the time that NeXT kinda began and everyone followed for a bit.

The actual "operating system" (really a shell for MS-DOS) in Win95 was terrible.

Re: Interview with Andreas Kling of Serenity OS (2022)

#149

Earlier quoted context omitted.

Oddly enough, other people find enjoyment in things you might find pointless. Maybe just let them be? Not every waking second needs to be spent on "pushing computing forward" or whatever. Sometimes we just want to do something cool, even if it's useless.

Yeah it’s not cool either though :-/ And I mean from my reference you (and the downvoters) just complained about someone having a different opinion than yours so shrug

> and the downvoters

I only downvoted you for whining about downvotes.

Re: Interview with Andreas Kling of Serenity OS (2022)

#150
post #43
post #10

Earlier quoted context omitted.

That teaches how to compile Linux kernel and software, not to create an OS out of thin air. The go-to guide for anyone that wants to build their own operating system has always been the OSDev community wiki and forum: https://wiki.osdev.org/Main_Page

It seems to me that OSDev.org is unnecessarily married to the idea of "low level == C": https://wiki.osdev.org/Languages Would be interesting if someone with knowledge (e.g. David Chisnall) could help clarify whether this seeming of mine is seemly.

For a long time, that was what everyone used. But there always were tutorials about other languages - C++, Pascal, even C#. Now Rust is gaining traction.
Post reply on HN