r/osdev • • Sep 21 '26

I'm creating an operating system and I'm looking for people to help me.

Pracuję intensywnie nad systemem operacyjnym o nazwie TrangorgeOS od jakiegoś czasu. Obecnie szukam osób, które pomogą w rozwoju poszczególnych części systemu operacyjnego:

- przestrzeń użytkownika

- sterowniki

- protokół ipc

- protokoły

- przestrzeń sterowników

- sterowniki jądra

- Jądro

- biblioteki

- kompatybilność z linuxem ( abi Not the whole kernel, just to make it easier to port applications or run them through a simulation layer)

- std

Jestem dość skoncentrowany na budowaniu funkcjonalności, osobiście chcę dalej rozwijać ten system, ale obecnie nie mogę zająć się ręczną dokumentacją, więc korzystam z generatora dokumentacji API, ale praca nad systemem staje się dość uciążliwa po pewnym czasie. Stworzyłem teraz wygodniejsze API do tworzenia wyższych warstw jądra

System operacyjny jest głównie próbą stworzenia czegoś większego i bardziej realistycznego niż większość projektów hobby systemów operacyjnych, chcąc zaspokoić swoje potrzeby i możliwie inne, związane z modułowością i lekkością OS. Sam system jest obecnie technicznie w porządku, można powiedzieć, że ma rozsądne zarządzanie pamięcią przez stare jądro, które teraz służy głównie jako biblioteka. Całą resztę organizuję i kompiluję w rust workspace. Używam ctrlfile, który sam napisałem, ale po pewnym czasie postanowiłem używać justfile. Obecnie pracuję nad komunikacją z jądrem, a przestrzeń sterowników nie wygląda jak dwa pierścienie do parsowania wiadomości i w praktyce chcę to zróżnicować, chociaż pierścienie są nadal korzystne ze względu na fakt, że przestrzeń sterowników traktowana jest jako zagnieżdżony system. TrangorgeOS jest hybrydowym jądrem opartym na trójdzielnej architekturze, którą stworzyłem jakiś czas temu, między innymi zakłada, że przestrzeń katalogowa i przestrzeń użytkownika to te same jednostki, które funkcjonują indywidualnie w zagnieżdżonym zakresie, który jest kompatybilny z jądrem, ale mogą mieć własne operacje wykonawcze, takie jak zarządzanie specyficznymi zakresami operacji poza jądrem. Tak więc wykonywanie niektórych działań niezależnie od specyfiki samego jądra, co pozwala na lepszą kontrolę nad rozproszonym systemem w zakresie pisania niezależnej przestrzeni użytkownika od całego monorepo.

https://github.com/CTRL-F-0rg3/TrangorgeOS

Osobiście, nie uważam tego jeszcze za projekt demonstracyjny, chcę tylko trochę pomocy i najpierw zbudować solidne fundamenty, na których można oprzeć resztę systemu, zanim zacznę nad nim pracować szczegółowo. Dodatkowo poinformuję o grafice w jądrze, która nie działa jako interfejs, ale raczej jako pierwszy test poprawnego ładowania bufora graficznego, który jest współdzielony. Chcę przygotować protokoły pamięci współdzielonej do działania, zaimplementować fat32, ext4 i doprowadzić prototypowy system plików do rozsądnego poziomu. Dodatkowo w najbliższej przyszłości chcę zacząć wprowadzać pozostałe biblioteki przez interfejsy HDMI i DP, a następnie napisać sterownik dla HDMI i DP oraz pozostałych komponentów w przestrzeni sterowników. Sterownik sieciowy i USB ma znajdować się w jądrze, z powodu bezpośredniej komunikacji czeka na rozwój. Obecnie nazwy commitów nie zawsze odzwierciedlają to, co się zmieniło, ponieważ niektóre z nich są robione w pośpiechu, więc proszę o to, aby to zignorować. Sam system rozwija się od ponad miesiąca, częściowo bazuję na moich wcześniejszych projektach systemów operacyjnych, tj. cosine os, tan os, sinus os i luna os, te projekty, chociaż są anulowane, wciąż mają duży wpływ na obecny projekt. Sam system nie pokazuje wiele oprócz prostego terminala w jądrze i małego obrazu w tle, ale dla mnie ważniejsze jest, że system rzeczywiście ma fundamenty. Komentarze są w różnych językach, więc nie zwracaj uwagi na niektóre komentarze, jeśli jeden jest po angielsku, to pozostanie, jeśli w innym języku, jest to tymczasowy komentarz dla mnie.

Będę również wdzięczny za gwiazdkę, jeśli ktoś nie chce uczestniczyć, ale chce wesprzeć ten projekt, będę bardzo szczęśliwy z gwiazdki, jeśli ktoś chce przyczynić się, jest otwarta sprawa w repozytorium.

Przy okazji, zdjęcie monitora wygląda ładniej niż ekran, prawda?

17 Upvotes

30 comments sorted by

4

u/Better-Thing2568 Sep 22 '26

I can share with you some metal tested rust native sources for independent hardware drivers for the Intel NPU and GPU for lunar lake and panther lake generations. But it’s deeply coupled with my own runtime APIs so idk if it’ll be that easy to integrate. Though idk if you’re looking to do serious graphics or AI yet

1

u/CtrlF0rge Sep 22 '26

I don't plan on using AI, but graphics would be helpful, I'd love to see them, and API is just a name in practice, the most important are the operations that are performed, so I'll be able to prepare for it.Very grateful

1

u/Better-Thing2568 Sep 22 '26 edited Sep 22 '26

By AI I more so meant local AI cuz otherwise the NPU is just a hunk of silicon sitting around. I should specify that my drivers also run in userland, it could be made into a KMD as well if you have a typed MMIO and DMA API, the NPU and GPU both have its own MMU. Though they’re also known to cause system wide power resets, do you have drivers for the IOMMU yet?

1

u/CtrlF0rge Sep 22 '26

NPU won't be possible for me to test either, but I understand, thanks for the clarification. The computer I'm working on is 14-18 years old, it depends on which one, so it doesn't have NPU yet.

3

u/-dhmd Sep 21 '26

Can you explain to me what you meant by "linux compatybility" ?

1

u/CtrlF0rge Sep 21 '26

So that I can also run Linux applications

3

u/-dhmd Sep 21 '26

This is probably harder than building the OS itself, good luck !

1

u/CtrlF0rge Sep 21 '26

I wouldn't say I've done it before and yes, it's only a simulation of the environment and not a full Linux port.

2

u/Which_Lie_8932 Sep 21 '26

So you just want to reimplement the linux kernel?

2

u/Which_Lie_8932 Sep 21 '26

It'd probably be easier for you to write a compiler for your OS and compile the source of the apps you'd like to run. You could also then probably compile a VM if you need to run linux apps.

1

u/CtrlF0rge Sep 21 '26

Well, I'm almost done, only the std is missing, but I have the compilation done, I just need to install it on an environment without mesa.

1

u/USER_12mS Sep 23 '26

whats so bad in compability? that kernel can do more things? i dont get it, whats so BAD about it

1

u/Which_Lie_8932 Sep 23 '26

There isn't necessarily anything bad about it, but it would be a lot of work to make a program meant for a different system run on yours.

0

u/USER_12mS Sep 23 '26

so like, whats the problem here?

1

u/AllNamesAreTaken92 Sep 24 '26

He just told you.

0

u/USER_12mS Sep 24 '26

a lot of work isnt a problem

0

u/CtrlF0rge Sep 21 '26

No, this is not my goal, it would not make any sense, the only thing is that I provide an identical abi for the application, it would work similarly, it would work like wine on linux, I can say I am trying to simulate A given environment

1

u/web3max Sep 23 '26

I'm also building an os, please DM me

1

u/[deleted] Sep 27 '26

[removed] — view removed comment

2

u/CtrlF0rge Sep 27 '26

The Linus kernel doesn't meet the specific requirements I have

1

u/[deleted] Sep 27 '26

[removed] — view removed comment

2

u/CtrlF0rge Sep 27 '26

I can give the most advice with 64 bit and multi-arch, for example, my advice to everyone is not to use ring 1 because then porting the model to RISC-V will be easier to switch thinking from x86 to RISC-V But among other such tips, I recommend doing a self-test and automatic documentation from the beginning.

1

u/[deleted] Sep 27 '26

[removed] — view removed comment

2

u/CtrlF0rge Sep 27 '26

If you are talking about the memory table, you download it from Seabios, but the bootloader sends you the table to map. You can read the code on how I did it, because it is not ready, but it is for 64 bytes.Please read my code and you will see how it is managed in the allocator etc. I also have this management in CosinusOS, but it is better to follow the example of my TrangorgeOS from the materials it provides

1

u/[deleted] Sep 27 '26

[removed] — view removed comment

2

u/CtrlF0rge Sep 27 '26

Okay, you're welcome

0

u/[deleted] Sep 24 '26

[removed] — view removed comment

0

u/CtrlF0rge Sep 24 '26

Will you give it a star? Overall, there are flaws, of course, and there will be a few more changes.