#AuroraOS
1769 messages ยท Page 2 of 2 (latest)
@woven blaze , @round cape , @cold jasper , @queen ridge , @fair kelp , @steep breach. Feel free to cast your vote when you have time ^.
-# maybe mass pinging ppl might not be a good idea, ohh well.... Sorry mods :D
didn't know doing stuffs in wayland is that hard 
Well, if I'm doin wayland I'll be making my own wayland compositor.
I wonder why wayland is attracting more people (yeah it has some good security they say)
It's faster, it's more secure.
thats definitely not an easy task if you are goinh with wayland 
I've been hella inspired by astral tbh.
yea
prob not going w that even if it wins
๐
wise decision
Well xorg clearly won.
Time to spend a lot of time getting it ported, but it's worth it.
man i am NOT rewriting my graphics lib in some new aaaa lib
let me use opengl
OpenGL takes years to port.
The best I can give ya is xorg
I've decided to make my own display server, which will be xorg compatible.
For now Ill just run a tty console
@round cape does skiftos have any network stack? If so where is it? I can't find it.
Need inspiration for my own.
There is not
I'll check if Astral has one.
very cool
no meaningful progress made today
its fine
you make too much progress for a normal program anyways (in a good way)
@primal summit how is userspace
ROSc is liek 45% done
and i made sure
to use just the c std lib
and libc
Okay.
Like not nearly done but it's something atleast
I think I'm pausing development this weekend
go ahead
Implemented some syscalls today.
open()
close()
write()
read()
exit()
Implementing exec to when I'm home later today.
some as in, the core ones
lol
cool tho nice work
Well tbh that's prob the only ones I'll impl.
Maybe a gettime one.
what
you should implemt all syscalls
like
pure binary relias on it
What do I need more lol?
yea, but compiler support is like good right
:ahh:
I'll impl my own stdlib.
:ahhh:
Well
Idk.
Like if I impl most syscalls.
You still wouldn't be able to use
It
Cuz all syscall nums are different.
you can tell the compiler to change that
Like how many syscalls do you need ๐
These are the ones ill impl:
- exit (done)
- read (done)
- write (done)
- open (done)
- close (done)
- exec - prob fork too
- wait
- mmap - maybe brk
- getpid
@woven blaze like how much do you need tbh
well i dont do rawsyscalls but the compiler does
for even the simplist things
and raw code
syscalls are used
Implemented more syscalls.
Messed around with tty.
Still having issues with an GPF when calling a syscall.
Also added mutexes around the OS.
Ehmm:
It did not work to create two init procs
:D
Hey. I'll be pushing to the kernel soon. Feel free to add ros to the "ports" directory.
This directory will be used for everything i port.
Fixed some more issues... But it's really weird tbh.
ok
id will
once i fix ros c
Syscalls work:
(if you're on a good run)
-# tbh my kernels race conditions are crazy
So ye i found out why my kernel was so unstable
my interrupt handling is scuffed asf
it corrupts stack
so ye i gotta fix that tmrw
today im too tired to do shit
this is why we use c++
and use atomic
it solves like 15 types of ub
๐ how do you even do that
can i run ROS now?
Depends on what Ros is.
the langugae i was porting / will port to your os
its like 75 with the c ver
c is so hard to use
More like what is it an compiler, like static program that reads an file and produces a new one.
its a interprter
amazing
Okay, so does it use the libcxx to run code? And is it pthread dependent
i does not need no threads, it just needs like basic cmds like memcopy, all of string.h printf, and scanf
ROS is a minamal language
its ment to give simplicity
What's is wozmon
its like a very very very very small program (256 bytes) made by wozmon found in all apple-1 computers
it was so small
as the apple-1 only had 256 bytes of ROM
lol
and now i have 256 bytes of ROM
Hmm 256 bytes of ram ain't much
and my emulator
I think AuroraOS need 50 or sum to run properly.
Ahhh
RAM was just FFF big
Bytes lol
you cant run a os in 50 bytes
i seen your ASM
its like amd
U insane, only windows is that poorly written to need that much
Hmm my ramdisk is 30 bytes.
20 bytes for kernel
look
I tested it with 50 bytes before
ramdisk is not needed
so thats shot out of the question
bios? or OS?
or SYSCALL handler?
if bios then prb possible
if syscall handler or OS
not possible
Just test building AuroraOS.
i did
it runs fine
but its more thena 50 bytes
Ye, run it with 50 bytes and see what happens
Rn it runs at 1 gb which is not needed at all tbh
ramdisk
is not the question
look at your asm bootloder
for amd
its > 200 lines
What?
in like
I don't have an ASM bootloader...
I use Limine
I don't support AMD at all
You call that an bootloader
eh i forgot
i havent opend it for some time
leaving that
Well, that interrupt handler is scuffed asf
that alone takes more than 50 bytes of ram in memory
Just test running it with 50 bytes.
I wanna see what happens
of ram?
its not gona run
Yes.
Well, ig it might panic at my fs.
If fs dont got enough memory it will panic
i will but limie it self takes 400kb of ram
i think
i read its docs
fs aint even gona load
Ohh
while its very less
its much more 50bytes
ahhhh thats more like it
No os can run at just 50 bytes.
yea it could run in 50mb
yea that is why i was a bit stubburn
you just cant
I think the minimum I tested is like 30 mb for it all.
out of 255!
what am i gonna have 255 syscalls for
well all os's have 255 syscalls
for all opreatiosn
What... Windows has 2000, linux has 300.
tf
since when was it that much
linux had like 255 only
i remeber
ok ig
Astral might
could be
This aint 200 but maybe 100 https://github.com/managarm/mlibc/blob/master/sysdeps/astral/generic/generic.cpp
oh cool
he does'nt
No
thats skiftos
I mean astral
then
click on my tag
where
Fixed race conditions:
@woven blaze BTW: Tested it with low memory, it runs fine at 20 mb.
It struggles at 10
@primal summityou shouldve recreated the temple honestly
What
Finally found out why my kbd drivers weren't detecting anything.
I hadn't made a check if file == device_file: call read dev instead lol
Anyways ofc I got a pf.
Fixing that tmrw
Ye well I fixed the PF which was just my trash scheduler being stupid.
Now I get a gpf as soon as handling an interrupt
I'll fix that tmrw
Anyways gn I'm going to bed
irq0?
i like this project
I will.
โค๏ธ
any interrupt, it only occurs when you're in the idle thread so somethings messed up with it
Might just forget about the idle thread for now
like if you use the computer all the time it works :D
nice
do you have a repository?
Yes.
yes, i've already ported most stuff
Just need to make my toolchain work
gcc?
Yes.
Not your host GCC though
kind of
Status update: Ported mlibc
Time to start porting stuff ig
Also I need to clean up my repo tbh
I think i'll start cleaning up and moving stuff to different repos.
nice
Btw @woven blaze so I decided to port mlibc so u basically got the whole C and C++ stdlib
@primal summit Have you made the OS fetch motherboard info etc, and structure them into SMBIOS/DMI information?
No.
Tbh all i need is just provided by limine
yea
first try off porting flanterm
didnt go that well.
not in first try
what shell would you add?
Bash.
As soon as i get mlibc running viably I would port bash.
Rn Im running into one weird toolchain error.
I'm really tired of this toolchain tbh
watcom?
-# or more specifically GCC as its one annoying toolchain
It wont detect and build libgcc.
It just returns.
Everything else works fine though.
with error message or without?
It dosen't build the makefile, which makes it just return -1.
Why it dosen't build the makefile I have no idea.
did you trace it? like from where that makefile is being built
Got flanterm to work
:D
it was just me passing sizeof instead of strlen when calling tty_puts ๐
@primal summit Does your OS only support Ring 0 for now? Or have you actually implement userland etc?
It's in userspace.
Im having toolchain issues when building mlibc
else everythings fine
oo nice
what is mlibc again?
Portable libc
my biggest pain is building the toolchain
for the god of me it wont build libgcc
๐
Moral of the story, don't be stupid like me
Yea I just searched for it
Well I wish you good luck with your build
Thanks.
Are you also building an OS?
Nah, I'm currently building an SMBIOS parsing library in Pure C
Only supports linux through sysfs, but will extend to /dev/mem support, windows mac BSD support etc
Does it rely on libc?
I think so, let me check
I don't really know but I think that it doesn't
it uses universal standard C functions
nvm
i got it wrong
yes it does
depend
I got it all mixed up
So yea it does depend on libc
because it uses malloc, free, calloc, memcpy etc
Ye
If you can provide 2 files, the smbios entry point and the actual DMI data, then it will work i guess
Well then its an userspace thing
yea
Who knows what might happen in the future
I might even make it independent
Yea, well my recommendation would be to instead of including the std headers let the user define their own stuff
Like #define SMBIOS_memcpy memcpy
yea that is a good idea
but I really need to get the base of the SMBIOS parser up, like its really fragile right now
I need to work on it some more, perfect most of the functionality then I'll go see
If you don't mind can you run my test.c with the library to help with testing?
I only have like 2 devices I can test on, all of them are SMBIOS 2.x nothing is 3 and up
Or provide me with the files in DMI smbios_entry_point in sysfs, but check them first, they might contain sensitive information like your PCs UUID etc
lol gpf
Use qemu
yea well if you ever would want it to be used in a kernel, it has to be REALLLY stable.
fr?
and libc and things are dynamicaly linked?
plz say yes
Statically.
leave that id build it againt the repo
Dynamic is sooo much harder to make
I just have one issue left before it's done
it's gcc not wanting to build libgcc for some reason.
we get these
@primal summit we dont get these codeberg is down
What?
ohh no codeberg is dead
3:21:12
this time stamp
ie
9 MINS AGO
like bru
i was about to re make the repo
just so i was uptodate
and bru
ik
nope sorry.
I dont use ssh at all.
man
well its basicly every system
its a usefull thing, but learn what you want
wait @primal summit do you have a local copy
if yes just copy that folder
and un commit everything
and zip it
maybe i can use that
bru
oh well
i tried
id do it next week as this week is packed for me
but ROS is gona come one way or the other
@primal summit Is it okay if I make 1 function for decoding CPU characteristcs thread unsafe?
I lowkey have no other better option
Tbh yea.
Just mark it as unsafe.
Fixed more bugs
bug haven rn
ima work a lot on the final days before christmas
Almost my birthday to so might take a pause until then
vento helped me to fix the GPF
well we found out why it occured but where unable to fix it
happy early or late birthday, idk
So im rewriting most of the kernel structure
and maybe porting it to riscv
Happy holidays everyone :D
nice
also rewriting my hopeless fs
Almost a new year, wonder what will happen next year.
Successfully built mlibc
oh boy you gonna write a xorg alternative for your os
?
like you wanna make your os a gui right?
Yes I'll prob use xorg for now
i am back
from the slumber
i cant port or finish ros
as i need to redo all the excetion models (found a FATAL FATAL bug)
@primal summit hows it going?
happy post new year!!!!
sry i could not come and help bug test this
BTW I ported mlibc
Ahh yea np.
๐
how does the ros interpreter lead to this
well
its kida complicated
but
if you call a c++ embedded function ummm and a ROS excepetion triggers
what ever code is in the error string kida overwrites the exception handler
๐
and ROS exceptions can be triggered by returns from any function
I still want to keep ROS in some way but it's tempting to go with bash to some degree.
i still need to get rid of exceptions
yea
Ima just keep them both.
yea
You can choose which one you want to use.
yepe
well i have other shit to do so i cant start working untill like next NEXT month
ehh its fine.
god help me ๐ญ
its prob going to be until summer before i get bash and xorg running on AuroraOS
ima try and port AuroraOS to different architectures too.
xlibre is just a fork xorg to make it better and remove wayland bloat
Hmm.
What is Wayland bloat in this matter?
xwayland stuff just in a xorg does not make sense i mean the only "real one" who was working on xorg just got banned
xorg just work on xwayland a little about xorg bc "xorg is dead you should not use" but no old hardware and people are using x11 bc they like it
xlibre just want to make X go foward not backward
that why for long trem i think xlibre we be a good option it has a lot of work done to it
Ohh yea.
I will look into it.
I feel like if the things you are saying is true that's a better option
i mean imo you should take the decision of skiftos and make your own stuff to be independent not related to some people that do weird stuff sometime
Well yes, but it's 100 times harder to port anything
well i think you are doing a great job at this project so maybe relay on some contributors
can you give a example?
A lot off applications require either Xorg or Wayland to run, if I won't rewrite the whole thing. technically I could implement the X protocol but it would be a lot more challenging.
When I reach there I'll evaluate all options.
i mean you are not relaying on "linux apps" well dont you?
Xorg is not an Linux application
The thing is if I would want to be able to run linux apps on my os.
maybe a something like xwayland but for your os
i mean linux apps and linux app deps (like glfw) use xorg
I'll consider all options when I reach the point it's relevant. For now I will just focus on getting bash ported.
Ohhhh that niiicee
Once I fix my FS issues I should hopefully be able to get a basic bash prompt running.
i mean i love the word "indenpendet" in the osdev world people just copy whatever we already hae
good luck man
Well yes, why? Making something completely new is a lot more challenging and less rewarding than making half of it yourself.
The kernel is still made without anything.
that true
When you port applications you are just proving that youre kernel is capable enough to handle things.
this for long term i see this project has a lot of potential but do what every os do great the thing is the only open source os is linux but it has shit ton of distro and not a great universal packaging format unlike windows that has only exe
that just a example
well yes, those concerns are far into the future though.
https://codeberg.org/aurora-org/AuroraOS/src/branch/dev/docs/contributor_introduction.md im actually pretty proud i spent like an hour writing this.
Fixed all fs issues.
Heyy I want to use your os how can I
How do you want to use it? Do you want to contribute, or use it as a base for ur own os or wdym
I can't contribute Albert own so much about coding I am beginner I wanted to use it like lineage os or As a launcher in my phone
Unfortunately the OS will probably not run on your phone as its for now x86_64 only. Its not nearly finished yet too and will just boot you into a bash prompt.
There's neither support for USB, nor any on screen keyboard which might be a problem.
Okay then no problem
i love that ppl always make a logo instantly loll
(i do too (i love graphic design))
ik
well the OS was shit when i made that one
If you ever feel like you would be interested in reading any of the docs and the story of AuroraOS feel free to check this page out: https://codeberg.org/aurora-org/AuroraOS/src/branch/dev/docs
ChatGPT!
?
yea lol
i can actually see this in commit history
lol
interested to see how this goes <3
fr.
I'm aiming to get bash running before summer.
It's supposed to be posix complaint, but not emulate a full Linux env.
exciting hehe
It really is.
Do you develop any operating system of your own?
i havent but my friend keeps begging me to
yk the kind of friend that like gets into random obscure stuff out of nowhere
like reverse engineering (???) for some reaosn
lool
you should maybe take a try at it and feel if it's something for you.
All you need is a lot of time on your hands.
btw you have a race condition in your mutexes
between the time a task adds itself to the mutexes wait queue, and it reschedules, if the lock owner releases the lock it could attempt to wakeup the waiter before it blocks
which would then fail ofc, however the task will then block without being woken for the handoff
see the sched block/unblock implementations too
you might want to take a look at linuxes pv locks for xen and how they prevent this issue (the use of xen_poll_irq solves this issue fundamentally, but the foundation of it is that youd need an underlying flag so you know if the lock waiter got kicked before it blocked)
in my own implementation to tackle this issue i used a fsm to ensure that if a lock waiter gets kicked before it blocks it goes into a normal, schedulable state
one thing im not a fan of, when it comes to xens pv spinlocks for linux, is that they aren't run state aware and that lock waiters are too eager to block (spinlocks should be expected to have short critical sections, it may be the case with longer waiting chains that a core might block unecessarily as its getting the lock handed to it), and therefore doesnt scale well, you'll see some research has been done on this too https://dl.acm.org/doi/epdf/10.1145/2903267.2903271
(is peak)
(and easy if you know what your doing)
Wall of text be like
I will tackle those issues whenever I get a thread to even run lol
Right now it pagefaults at thread entry.
i see
why not use a generic data structure for all of your dsa
and use a container_of macro or something to get their parent
Could do that, if you ever feel like you have some time in your hands feel free to send in a PR. My scheduler is old and outdated, also it's shitty asf
for user threads or kernel
User, kernel works
have u decoded the page fault error code to see why its faulting and what the faulting address is?
Faulting adress is a userspace address.
Clone it and try on ur machine :D
are u marking their pages as present
it seems like ur just marking them as rw
but not present
https://codeberg.org/aurora-org/AuroraOS/src/branch/dev/kernel/arch/x86_64/cpu.c#
Also The register dump code works in the sense that it runs, but itโs not actually capturing a real CPU state. Since itโs called like a normal function, most registers have already been changed by the compiler and calling convention. So what gets printed isnโt the state youโd expect from โright nowโ or from a fault.

hey @primal summit can i ask for only one thing when you make the API
dont, DONT make it as complicated as windows.h
i just spent 2hrs debugging a function
that was not running
due to it only allowing for ascii strings (byte sized) and not wstrings (UTF-8 or unicode)
and then i had to read more documentation
becuase the WSTRING COMPATIBAL FUNCTIONS CAN DO OTHER SHIT
3 hrs wasted
for one function
Lol sure
thxs man
Well yes, tbh I've never used the register dump lol
also thanks for ur suggestion it will be implemented soon
i get why lol 
congrats. this is your 1601 message . your project reached a long way tho. good luck in all the great atchivments and the bright feature of this !
implemented
Thanks! It has extended far from the raw bootloader vibe coded kernel shell. It's crazy, I hope it reaches further than this. I'll prob get bash running soon.
Nope, it's for the future.
they both are the same thing ๐ญ just that for linux has a diffrent style of syscalls
-# .ko
exactly.
"has a different style of syscalls"
Anyways once the mlibc demo for shared libraries come out ima implement it
so the data format is the same
syscalls are trasferable
but i aint no expert
what do you even need dlls for?
their the window ver of .so
what do you need it for?
nothing, just seeing how they work
once i get a mlibc demo of it ill impl it
if you feel like youre up for the challenge
as tbh auroraos already has a great infrastructure
PR's are always welcome :D
no offence the last time i viewed the code half of the code errored for implicit casts
is it better?
Run it.
When was last time you ran it lol?
like ~2 month ago
i hope its better
it is better
ok id see
git clone https://codeberg.org/aurora-org/AuroraOS/ -b dev
which branch is for adding apps and things
wdym w that
the most disassmbled branch
thats updated or not updated?
just clone dev and then fork repo
if you want to experiment
btw ros needs to be added under ports
i might try this on real hardware when im empty 
aurora runs from live storage right ?. or is it installation based. i think it runs from live storage
anyways auroraos will unfortunately be put down on low maintaining schedule
in favor of snowix
https://codeberg.org/snowix Snowix will be AuroraOS but written in it's own transpiled lang called snow.
NOOOOOOOOOOOOO MY WORKKKKKKKKKKKK
(the ros port was 30% done)
peak
i also have a language test so
no ros for today and tmr
it still is maintained.
just not as much
once i finish snowix I'll drop AuroraOS completely
But until then I'll be maintaining and pushing to AuroraOS.
so my work is still wasted
:ahh:
but eh
new thing! to port ros to !
this time IK WHAT I AM DOING!
and you do tooo
also
why not just
re do auraos
like v2
i dont like making "old name" or "old software" or see somt happen like that, but this is MY opinion dont cancel me / joke
snowix will do the same shit as AuroraOS
nothing is lost lol
oh its a v2 under a diffrent name?
peka
i can still procastinate then
yepe
yes.
main difference is that it will be written in my own programming lang.
top 10 things that i find hard to belive, how the hell did you make your own programing language?
did i miss somt?
also
How the hell did I do it? I have no idea I'm still doin it
It's a transpiled language.
So it compiles to C.
oh ok, then, fine, i thought you made a real compiled langaueg
No one does that.
I have support for both llvm and C.
I could technically just add a backend for real compilation but it's a lot of work for nothing.
I get worse performance, higher complexity, more to maintain for no reason.
well not well yes but no, as llvm exists
:3
You are from now on banned from speaking in this thread. Please don't interact with me or any of the project's I've created. Any pull requests or discussions from you will be closed.
The ROS port will be resolved as denied.
bro fr got angry after all his arguments failed, for anyone wondering, his argument was
Python is faster than Lua and luau
Python is bad as it uses tabs and has no braces
Lua, Luau are bad as Roblox has them (nothing to do with the language) and has no braces and uses end??
as well as
pygame (Python) is faster than love2d (Lua) (both are 2d rendereing engines)
pygame contains a physics engine (does not! its compatibal with Box2d thats about it)
This will be my final message, I hope i dont add ROS to this project, whose creator does not know why there are more than one languages (each has a different purpose FOR a different thing of work if that was not the case, we all be useing c)
Lol.
Someone's unable to read.
From my side of the perspective this is what I actually communicated.
I prefer C and C++ over both Python and Luau.
Python is bad cuz:
- I hate identation
- It has no brackets.
Lua is bad cuz:
- Many confusing operators.
- 1 based indexing.
- : vs .
At the start of the conversation I got missinformed that Pygame was faster, which it obviously weren't, same with the other Pygame stuff.
The one who's angry is sadly meet a back, funnily enough. Anyways he banned for me saying "shit". Would not recommend joining his server.
I do know why there's multiple languages, I also know that I don't like some of those languages.
His arguments were around, you can go into Luau's source code and change it to be 0 based indexed.
I love indentation.
Luau is miles faster and better than Python in every aspect.
Snow starting to get better.
Need to fix function parameters though.
Isnโt a good look if you take technical debates personally
Denying someoneโs PRโs because they donโt share the same opinions as you is wild
Unfortunately not a technical argument and opinions.
Instead missuse of power and unjustified threatening.
Lmfao
There's a whole back story.
First mistake is getting into that situation in the first place
Won't be joining any small programming servers in a while.
It all occurred in his "programming server".
Anyways less about someone being an idiot and more about development.
Yea, kind of my fault for even starting the argument tbh.
Time to revive this thread
Anyways I fixed all PF's related to userspace entering, now it PFs on an interrupt though ๐ญ
Also fixed lots of bugs in my lang and added extern ASM support
Fixed.
If y'all want to follow my progress head over to the os-dev server for more updates.
Anyways attempt one at making bash run.
Got a pf on entry.
Fun :D
Added (half proper) dynamic linking
Almost done with bash port.
Just need to iron out some of the errors related to my cross compiler.
bash is getting closer:
bash port is semi working
Porting uacpi
Ported uacpi, fixing more bash stuff.
Now gonna do some coreutils ports and other stuff.
After that maybe have some fun porting random shit.
Ima have to port fastfetch of neofetch though.
And some kind of package manager.
Forgot to update this
So what i did includes:
- Add backspace support in bash (better ioctl impl)
- Added attributes in my fs.
- Backend support for HPET.
- Moved build system from make to meson.
- Started to use jinx.
๐ฅ
more work done
ported stuff
and more backend work
mostly in my fs
coreutils ported
so yes
im not dead
(yet)
If you want daily updates on AuroraOS head over to the osdev discord server and find my project thread.

ramdisk now uses compression by gzip and new port gzip
๐
thats so sick
โค๏ธ
when will it be able to bootstrap and compile itself 
porting gcc right now