Live data from Hacker News

Interview with Andreas Kling of Serenity OS (2022)

corecursive.com

171–180 of 181 posts

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

#171

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.

Only for people growing up in US, as 70's kid, the first time I managed to see Macs on person, instead of American computing magazines, was in 1995.

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

#172

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…

As someone that grew up with 8 bit, Amigas and PCs, I have plenty of nostalgia for Windows 95.

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

#173

Earlier quoted context omitted.

We haven't improved much since Win 95 in terms of desktop OS UI/UX. Could you remember any substantial UI improvements between Win 95 and Win 11? Local search, improved UAC and a shitload of ads.

> Could you remember any substantial UI improvements between Win 95 and Win 11 Yes I can. Most OSes these days have a OS level fuzzy searching functionality. This has been my preferred way of launching applications on Windows (Win key), Linux (Win key) and MacOS (CMD+Spc). I press a hotkey, type the first few characters of the program I'm trying to go to, and press enter. This is also common in text editors and even…

I'm not living with rose tinted glasses, I mentioned search and UAC in my original message. This is not enough to warrant criticism of Win 95 clones. I bet you could add search to Serenity without changing the look and it would still be called a Win 95 clone.

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

#174
post #151

Earlier quoted context omitted.

We haven't improved much since Win 95 in terms of desktop OS UI/UX. Could you remember any substantial UI improvements between Win 95 and Win 11? Local search, improved UAC and a shitload of ads.

A few things that pop up for me: 1. Tabs in browser and other applications. 2. Font rendering, hinting, anti-aliasing and subpixel rendering. Together with high-resolution screens for more people. 3. Better multi-threading for applications. Back in the day, one application crashes and everything is stuck. Improvements here are part of user experience, though not directly UI. 4. Less crashing and vague errors in my ex…

You are right, but most of what you mentioned is not UI and its UX.

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

#175
post #22

I love this but just looking at the comments - while admittedly cool, implementing your own OS isn't black magic or particularly arcane knowledge; sure it's a whole lot of work where you're often reimplementing the wheel, but not outside the realm of any reasonably skilled graduate I would think.

The really challenging part when you're building an OS comes from not building an incrementally bigger and bigger mess until you're stuck and can't make any progress any more.

You're right, there's no magic here. It's just lots and lots of work. And there are important decisions to be made about how you design and abstract everything. None of them are hard, but making so many decisions is the very thing that's hard about most programming.

The answer of course is to have lots of programming experience. Which is why building an actual OS to the level of SerenityOS is not something a reasonably skilled graduate would be able to do.

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

#176
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.

If you're not looking to build a bootloader, but will rely on GRUB then it's extremely simple. You just need to write a very simple multiboot header. It's literally just some numbers that you hardcode at the beginning of your program in assembly.

Then you compile this with GCC flags that tell GCC to not include a standard library (e.g. compile for bare metal).

Then you link with a very simple linker script that tells ld to put the multiboot header before your actual program.

Then, if you want to run on your own hardware, you change the GRUB config file to load your binary and reboot. Or if you want to run in QEMU, you just load the binary with QEMU. Using QEMU is probably simpler, since you're less likely to run into hardware weirdness at the beginning.

Then, you'd start with just writing to a text buffer, which has a hardcoded address on old architectures (it makes sense to start with an architecture where that's the case). That way, you can print stuff to the screen. That's enough to do a lot of very cool stuff already. After that, you configure interrupts, which you do by hard-coding some function pointers in a table using assembly. Then you use some special instructions to load these interrupt handler tables on startup. Now you can do all kinds of interactive things.

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

#177
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.

Since OSDev is community project, so I think that says way more about the community than any strong bias on the part of OSDev. That said, a lot of "low level" is concerned with shoving bits around efficiently, not higher level abstractions useful for writing web browsers and such. C (for all it's issues) has a pretty good impedance match for that use case.

The reality is there have always been other languages[1], and not all of them codified the evil stream-of-bytes paradigm. We've been writing OSes in Ada since the 80s. Pascal variants were somewhat common back in the day (e.g. Charles River PERC, CDC Cyber NOS). Apple was on the Pascal train for a long time. Unisys Clearpath is still written (and sold) in their highly extended Algol variant (ESPOL)[2]. I've used OSes written in Modula-2 & Modula-3. There's a number of folks that are trying FreePascal as an OS language.

Of course, there was a healthy LispOS population at one brief, shining point in time (sigh...Genera). Tektronix and a few others had Smalltalk machines.

IBM still writes a lot of low-level stuff in PL/I dialects across it's proprietary product lines (i Series, z Series). Intel wrote it's first ones (e.g. iRMX, ISIS) in a PL/I dialect (PL/M). And CP/M is there too.

Then you can get to the really niche OS writing languages: JOVIAL, anyone?

[1] The source code for some of these legacy OSes is out there. Studying it might be instructive. [2] Clearpath is the current incarnation of MCP from the Burroughs Large System mainframes (e.g. B5000, B6500, etc.). Stack based and very interesting; now runs as a VM on top of Xeon servers. Not only can you still buy Clearpath, you can download a hobbyist version to try out locally: https://www.app5.unisys.com/library/gmmail/emails/documents/...

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

#178
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.

The page you link to straight-up has a guide for evaluating if any given language would be suitable to implement a kernel in. How on earth is that unnecessarily married to the idea of "low level == C"?

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

#179
post #172

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…

As someone that grew up with 8 bit, Amigas and PCs, I have plenty of nostalgia for Windows 95.

The classic definition of "greybeards" is Unix hacker-type.

https://gist.github.com/lenards/3739917

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

#180
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.

http://tumbleforth.hardcoded.net/
Post reply on HN