My new distro "Glacies" - GNU/Linux
eadwardus
I'm building an operating system, or so is the intention, and i have started with the userland (which should run upon any posix system) as it were the thing, specially on Linux, that i were more discontent with, the result is the current distro that i am building "Glacies", that is the "Eltanin" userland with Linux as kernel.

[Image: preview]

All is still in pretty early stage, but i have done quite a few things:
* tertium (own non-posix libc)
* ecore (unix utilities)
* ccore (complementary core, mostly heirloom-toolchest)
* ports (source-based package manager)
* simia (posix compatibility layer upon tertium, supposed to replace musl later)
* venus (binary package manager)

The system is built with simplicity in mind, so the tools that compose the base system are selected with this in mind.

A few uncommon things, worth to citate:
* the entire system is statically linked
* the filesystem hierarchy is the standard, but with /usr as link to /
* manpages are compressed with zlib (.zz)
* sinit and perp compose the init system
* rc is the default shell (dash is the posix one)

I'm now deciding how to provide a more complete desktop, i have tried to add Xorg to ports but it has being painful to make it work statically (a LOT of dependencies, cyclic dependencies with drivers, ignoring flags, etc.).

Links:
https://eltan.in.net
https://github.com/eltanin-os
https://gitlab.com/eltanin-os
https://git.tuxfamily.org/eltaninos

Please leave your opinions and feel free to ask anything.
bouncepaw
Really cool! Have you tried Wayland? I heard it's simpler, maybe you can link it successfully.
z3bra
That is really cool. I mean, it is a lot lf work, and it seems you took it pretty far already!

I got lne question, about the userland. As far as I can tell, you're recreating a POSIX compliant userland, while in an other post on the forum you were complaining about the sometimes bad interfaces of it.
Are you trying to fix it and come up with new idioms later on? Or you have a plan to only use thw standard as a "guideline" for your project ?
eadwardus
(09-12-2019, 01:54 PM)bouncepaw Wrote: Really cool! Have you tried Wayland? I heard it's simpler, maybe you can link it successfully.
Is in my list of alternatives to consider, but i am being a little resistant to choose it because of its instability (with that i mean not being clearly defined, with good standards), also i am unsure about how well it can run without X (xwayland).

(09-12-2019, 08:08 PM)z3bra Wrote: I got lne question, about the userland. As far as I can tell, you're recreating a POSIX compliant userland, while in an other post on the forum you were complaining about the sometimes bad interfaces of it.
Are you trying to fix it and come up with new idioms later on? Or you have a plan to only use thw standard as a "guideline" for your project ?
The intention is to follow POSIX compliance strictly where portability matters, in practice the unix utilities(ecore) and "libc"(simia). Any extension/alternative that may appear will not collide with its namespace. In this way the environment will be more friendly to development and will result in least surprises.
z3bra
Why did you choose to reimplement it all (libc + coreutils) over using something like musl + sbase from suckless ?
eadwardus
(10-12-2019, 04:25 AM)z3bra Wrote: Why did you choose to reimplement it all (libc + coreutils) over using something like musl + sbase from suckless ?
The libc is simply because i am already building a non-posix one, and the posix one will act as a translation layer, in this way i will have one less component to observe in the base system and a easier to port libc. The core utilities is mostly because of code consistency of having it built with tertium as all of the other tools, also i wanted to have strict POSIX compliance and give a little more care to resources (suckless abuses the stack (at least as a single binary), and sometimes do a little weird things, like "ls" with hardcoded history and heap grow ratio of 1)
jkl
How do the rc shell and POSIX relate?
josuah
Hello, Dan Berstein-style libc, happy to see you around! scanf()? No thank you!

I have never seen Dan Bernstein-style code crafting an Operating System, and I am eager to look at it.

Wow, these people write actual operating systems!

It is close to the dilemma:

* I want to write fresh clean code
* I want to use existing interfaces and integrate my project in the greatest context.

I am always going from the one to the other.

Thank you for giving us code to read, and maybe to execute!
josuah
(10-12-2019, 07:40 PM)jkl Wrote: How do the rc shell and POSIX relate?

rc is not POSIX. rc(1) is UNIX-like, more than the ALGOL-like sh(1) [1], it is used on Plan 9, but predates it and was written for UNIX at first.

[1]: https://en.wikipedia.org/wiki/Bourne_she...al_version
josuah
To eadwardus:

If you do not mind, would you happen to have a few tips for where to get started?

https://wiki.osdev.org/ ? XV6 ? Linux kernel source ? All of em ?

I can't say I will ever get started myself, but it's always fun to read on that topic.




Members  |  Stats  |  Night Mode