Consider that the active participants in the community are, by and large, hobbyists. The people working on "serious" OS projects are grad students at universities working on research teams, or engineers at companies like Google, and neither group spends much time, if any, interacting with us. On top of that, I would guess that neither group is inclined to brag or share updates on a web forum - that's what papers are for.
vvaltchev wrote:
As you can see, my project doesn't fit in neither of those categories: it's not production-ready so that Linux hackers / embedded developers would be interested in patching it somehow, but it's neither fun like the other projects: there is a ton of focus on automated testing, coverage etc. and zero interest in making colorful windows to appear on the screen.
I take this, and your earlier comment about text editors, as a slight against me specifically, and I want you to know that you have set up a strawman by declaring that "re-writing the whole software stack" is the antithesis to being useful. I also think you greatly exaggerate the binary partitioning of OSdevers in the community at large.
vvaltchev wrote:
And.. are you sure that your should be writing a kernel for achieving that, instead of just consuming Linux as kernel and making its GUI more powerful and user-friendly?
My OS has been noted for its graphical environment, and this is no accident - I
did contribute to making Linux GUIs better: I worked on one of the foremost X11 compositors before starting my own OS. I also spent some time at Apple working on macOS's window server. So, my desire for my OS to have colorful windows with fancy effects is supported by a professional background in that area. I did not set out to write a GUI from scratch, but it was a natural step for someone with that background.
vvaltchev wrote:
Therefore, my question is: how many of you are investing effort on developing something not-just-for-fun? I mean, do you have a long-term plan to make your project usable in the real world by the industry or the home user, even if it will have only a tiny chance of getting it there? What would be the advantages of your OS compared to what currently exists?
There are more ways for an OS project to be
useful than for the OS itself to actually be
usable by end-users.
I started my OS project while I was a university student with the aim to learn myself. I wanted to understand everything from the ground up by
building everything from the ground up. There are many components in an OS, many opportunities to learn something new not just in kernel space but beyond - be it how to design a windowing system, how TTY APIs work, how the terminal emulators on top of them work, TrueType rasterization, compilers... My OS covers a lot of ground because there is a lot of ground to cover.
It wasn't always that way. I
did use an off-the-shelf libc (newlib - I predate the era when Musl was viable even for Linux) for a long time - and all sorts of third-party libraries. My compositor was originally built on Cairo, most of my GUI apps were written in Python, Freetype was rendering my text... but as you say, this got to a point where it wasn't fun, and each third-party component was another opportunity to learn. I was particularly inspired by an infamous software engineering interview question: "What happens when you type google.com into your web browser's address bar and hit enter?". I wanted to be able to answer that question line by line, and I wanted every one of those lines to be one I wrote. So, yes, I wrote my own libc (or, rather, am still in the process of writing - it remains hopelessly incomplete, and it is a miracle of coincidence it manages to support things like gcc), I wrote my own graphics libraries, I wrote my own TrueType engine, hell, I even wrote my own Python (one of the more fruitful and fulfilling of my "NIH" projects).
A few years ago, though, I became distraught at the state of my OS. The project I had spent so long building to learn myself had attracted learners of its own, hoping to use it as a study resource. ToaruOS pivoted - the student had become the teacher. And I felt quite strongly that I was doing a disservice to the community with all of the horrible designs and hacks in my kernel. I didn't want to be a bad teacher - I didn't want to be the butt of jokes like Mr. Molloy has unfortunately become with his old tutorial.
So, my goal has never been to build an OS people sit down and use to browse Facebook, or run a webserver, or control the dashboard on their car, but I do still have a goal: to build something that others can learn from.
vvaltchev wrote:
If I had to write something, if should work on Linux the same way as on Tilck.
I share some of your idealism in this regard. Like you, I also put a focus on compatibility - I have tried quite hard to build things in ways that mimic "real" OSes, both so that I could better understand how "they" did things and so that, now, a decade later, I have a complete ecosystem where every interaction, every codepath, is simple to understand while still being a viable
simulacrum of those "real" OSes. I do not like to build things just for my OS, which is why... I don't. My text editor isn't just part of my OS, it runs on Linux and macOS and even on Windows[* unmerged branch]. It's also not just a toy to check a box, I use my text editor as my daily driver - I write production code for my employer with it. That Python implementation I mentioned earlier also serves a useful function as it powers the syntax highlighting engine and configuration for the editor.