This is by Klange, the owner of the #osdev channel on Libera chat, associated with osdev.org. Super nice individual and always posts updates and interesting tidbits about ToaruOS.
Strange, but welcome, to see it on the frontpage! :)
I wouldn't say I "own" that channel in any respect, I'm just responsible for dragging it over from Freenode during the exodus... we've got the same same staff as we did before the move and I'm not even the "founder" according to ChanServ.
I love that the OS seems to be named after Toaru Majutsu no Index and Toaru Kagaku no Railgun. Misaka the kernel and Kuroko the interpreter are named after iconic characters from the series.
Back in 2014 this was posted before, so before the first "release" version and when there were external dependencies: https://news.ycombinator.com/item?id=8566217 (26 comments).
Under features, the first bullet point is "Dynamically linked userspace." Can someone say what this means? How is this different than a userspace made up of dynamically linked utilities and shell?
How this compares with xv6 for first OS course purpose? Is it viable to use this to teach the same things? (Paging, inter process communication, threading...)
I really like xv6 for its simplicity and restricted scope. It feels like a better Minix in the sense of being a codebase intended for university coursework. If your goal is learning the very basics of what an OS does, xv6 is a good place to start. ToaruOS can cover the same ground - of course there's paging and IPC and threads - but I don't have a cache of PDFs sitting around describing it, and there's no intentionally missing bits waiting for a student to fill them in for homework. If xv6 is "Operating Systems 101", then ToaruOS is a 300-level seminar/workshop.
My intended audience is hobbyists who are looking for a reference for writing their own OS - the sort of people we often find on osdev.org, or the #osdev channel on Libera, who have stumbled through an old tutorial on x86 bring-up and want some example of how "the next steps" work.
Then why in the heck is he going for POSIX compatibility, when he can afford the luxury of not having to deal with blocking syscalls and all this crap?
Much easier and safer multithreading. Also faster.
And why we are there, why not a safer microkernel, keeping everything in userspace? Questions over questions.
When I started the project a decade ago, my aim was specifically to understand POSIX/Unix and to "learn by doing", so of course there's some POSIX-like elements underpinning the design. Back before I decided that literally anything can be in scope and was using third-party components, this aided in porting software, as other commenters have pointed out. These days, it gives more purpose to things I build for the OS if they can also reasonably be built for Linux or macOS - things like my editor (which I wrote for the OS and now use as my daily driver in Linux), or my Python knock-off.
As for the microkernel bit, this might sound like circular reasoning but I didn't go for a microkernel because no one really uses microkernels. It's not that I think microkernels are a bad idea, ToaruOS does push plenty of stuff into userspace. Rather, my main goal at the moment is to provide an educational resource that more accurately models the way "real" OSes work than the typical academic OS projects.
junon|4 years ago
Strange, but welcome, to see it on the frontpage! :)
klange|4 years ago
picture|4 years ago
ulzeraj|4 years ago
m4rtink|4 years ago
Semaphor|4 years ago
kevincox|4 years ago
https://github.com/klange/toaruos/tree/9f34619078f92bd7d9815...
behnamoh|4 years ago
https://toaruos.org/
_tom_|4 years ago
I wonder if the web server is hosted on toarus?
shiftoutbox|4 years ago
[deleted]
bluecatswim|4 years ago
picture|4 years ago
jstx1|4 years ago
unknown|4 years ago
[deleted]
bogomipz|4 years ago
kenferry|4 years ago
afr0ck|4 years ago
amitport|4 years ago
klange|4 years ago
My intended audience is hobbyists who are looking for a reference for writing their own OS - the sort of people we often find on osdev.org, or the #osdev channel on Libera, who have stumbled through an old tutorial on x86 bring-up and want some example of how "the next steps" work.
bitcoinmoney|4 years ago
fouc|4 years ago
saladuh|4 years ago
spicybright|4 years ago
black_13|4 years ago
[deleted]
fieryskiff11|4 years ago
[deleted]
rurban|4 years ago
And why we are there, why not a safer microkernel, keeping everything in userspace? Questions over questions.
klange|4 years ago
As for the microkernel bit, this might sound like circular reasoning but I didn't go for a microkernel because no one really uses microkernels. It's not that I think microkernels are a bad idea, ToaruOS does push plenty of stuff into userspace. Rather, my main goal at the moment is to provide an educational resource that more accurately models the way "real" OSes work than the typical academic OS projects.
craigmart|4 years ago
Because existing desktop applications can be ported to ToaruOS
>why not a safer microkernel, keeping everything in userspace?
This is a design choice, microkernels aren't necessarily better than hybrid, they're slower, harder to debug and process management can be complicated
turbinerneiter|4 years ago
the-dude|4 years ago
ape4|4 years ago
VWWHFSfQ|4 years ago
...