#Nullium
1 messages Ā· Page 7 of 1
(dont forget about that kernel rename
)
Joe
JoeOS
learn vga colors with the microkerneln't
i ported my stupid pmm debug table to my terminal emulator
i need to allocate some memory for it so i can get more than 80x25
its 80x25 by default idk why it's vga and it should fit on most screens
if it doesnt then destroy computer
ok so uh
i got a really funky asf triple fault
i am not dealing with this shit so im gonna make my list have like 16000 entries and refuse to elaborate
ok once i merge free entries i am done with this shit
messed around with color palette
ok i need to get a better color choice
this shit is literally the mac terminal š
questionable
yeah it's quite neat!
beige terminal 
might look good
i wanted beige because that's how (more mac :s) the open firmware screen looked on my ibook
though uhhh it's supposed to be white
rip screen
I mean hey it might
old apple laptops' screens are literally fading out into yellow
if you look at colorful images this is unnoticed but if its like white then it will look yellow
true
oooh, that looks really nice!
didnt use the palette generator though
idk how to add more colors to it
yeah idk im keeping this it looks nice
anyways so im almost done with the pmm then i can turn on paging
then i need to figure out how to use something thats like 3 gb far into the memory
the startup terminal was originally on the top left but i think this is kinda really dum dum
so i centered it
i can make the black border some other color but it's still centered
no more border
nice š
banger terminal
it should just take up the entire screen but this is really only for boot
macos terminal is pretty cool
true
š
ok its on github
my thing triple faults
it survives for like 10 seconds then dies
now it froze up and doesnt triple fault?
what the fuck is going on
it just sits there menacingly
maybe the framebuffer is hidden somewhere in the world's ass and i have to add it to the page directory?
it literally doesn't output anything it isnt dead
it's just silent
it's the framebuffer i swear
because if i mark all tables as present it doesnt crash
(idk what absolute dumbass marks all page directory entries as present but still)
hmm
sounds like improperly mapped framebuffer and/or IVT mayhaps
ivt??
maybe I'm getting my terms mixed up lol
all good
i thought the framebuffer is in the first 4 mb but i guess not
theas fucking gnoo multibto 2nd 
You can just get the framebuffer's address and start mapping there
yeah ik
ima print the address on the screen first i wanna know where it is
0x3000000 (50331648)
50 mb
i dont think that's the first 4 mb 
XD
i think i already know how to map it
ok yeah ima just map it
i need to update my pmm slightly so it wont allocate 3 gb's in š
mildly funky piece of shit
i do not see anything wrong with whatever the fuck this is
Itās just my kernel init
I just found it funny because of the :meme I put after GDT
init_gdt() 
youāre gonna love heap
Heap was a banger
Slab allocator š£ļø š£ļø
Slab is quite fun to implement :3
Itās a banger
Free lists of different object sizes š£ļøš£ļøš£ļø
Everything is a fucking free list at the end of the day
nah, heap allocator (kmalloc basically)
you use it for variable sized objects
how do i make one and what does it do
So basically
thx its totally not stolen 
Imagine you were to do a 64 byte allocation
yes
true
To mitigate this issue
Which is called fragmentation
You create a list of smaller sized objects
So for example
Make a list of 32 byte blocks, 64, 128. 256
So letās say you request a 100 byte block
mk
It will give you the block of the closest size
Which in my slab allocator would be 128
Make sense?
uhhh confused
are these pages or just "blocks"
oh
You will split a āpageā
wait i think i figured it out
you split a page in halves and then you can allocate a page partially
Kinda
You create many slabs of different object types
So you have them on standby
k
Rather than requireing a new page allocation each time
mk
what if something requests more than a page
than just like one page
Fall back to pmm
I actually made a diagram but it's way too big XD
If alloc_size < page size { pmm alloc (size) }
Thatās pseudo code
For how you would fall back to pmm
I should at least finish the brackets lol
lmao
Now in my os, I donāt fall back to the pmm
If a heap allocation goes over page size
I created a special allocator for that
Which is just a fee list
Free list
Like this
yeah fair
Just take it from your preexisting free list
The only reason I do the free list within my heap is because I donāt want it to be tied to my pmm
For some reasons
is slab also a part of a pmm or is it something else
Mainly subsystem separation
No
A pmm just shits out physical pages
Thatās all it does
yes
ok slab is just a fancier pmm that doesnt shit out pages but shits portions of pages?
or smth like that
i think my stupid take murdered the chat
I mean..... yeah pretty accurate 
quite fancy
ima make it so the regular pages get identity mapped first for paging and shit first tho
because inaccessible memory would be really funny but im boring so i dont want to do that 
make sure to implement address spaces
youāre gonna need it
No. Single address space operating systems are peak 
each process gets an address space?
yes, child processes clones parent addr space though, while the kernel has its own reserved one
Yes
Yeah and for forking the child inherent the parents addr space
fork() is a fucking mindfuck
fuck I have to implement fork 
I might just have the address space shared between processes instead of implement COW
wtf is fork()
Working on it right now
Create an instance of the parents process
no, implement spawn instead 
Oh GOD
I do have sys_spawn 
donāt do that to him
okie fine XD
ah, coolio!
Because itāll just teach him that heās better to spawn threads
When itās not
Itās always better to fork if you can
Not threads processes mb
ofc it is
you want the parent to have control over children
Yeah
wdym an instance just duplicate it?
Spawning is only for some stuff
Yes
But with the parents address space inherited by the child
I presume we're talking in terms of a UNIX-like and not just in general spawning is bad
wdym by that
the child uses the copy of a parent's address space?
No. It uses the address space of the parent
oh
Itās still better to fork
Basically the child uses the same address space of the parent
then why not just use the parent's address space am i skipping some tier 5932 knowledge here
What's wrong with spawn (kind of curious now)
my sys_spawn just creates an asynchronous task independent from the spawner with no inherited trait
which is pretty bad
and used for spawning tasks from the kernel but the user COULD call it, it just shouldnāt and should opt for fork
the fact that more resources are allocated for a process that should end when its parents is killed/exists
I should append that by "and not just in general spawning is bad" I mean the process creation mechanism not necessarily POSIX's implementation
ah
bash
|> cat
where cat should be dependent from the bash process and die in case of the parent execution end
so you use fork, donāt quote me on any of that though, Iām not the unix expert so Iām not sure if this is the real reason
well, imma do spawn anyhow š
if your spawn can link a child to its parent then spawn it is :)
works just fine for Windows, evidently
spawn is only bad in you consider it in a unix environment where fork creates a child from its parent and spawn makes an independent task
why are we spreading misinformation
it doesn't use the same address space
okie ye in a UNIX environment I could very well see spawn being not so good lol
isn't that fork()'s whole thing?
yes but they aren't "the same address space" which is why making variables in the parent won't be seen by the child after fork
implementation wise sure
but that statement makes it sound like they share the same memory and thus parent variables made after fork would be visible by child
isnāt it a cloned address space with mappings on access?
Iām genuinely asking
yes it starts as a cloned address space but this doesn't mean that it "uses the address space of the parent" throughout the entire life of the child because the child cannot see modifications (such as new variables) created in the parent in the fork
that statement (above) makes it sound like forking allows such things
I agree
the proper way to phrase it is that the parent address space is cloned at the time of fork, but whenever a parent modifies a page belonging to itself, a copy of the page at the time of the fork is mapped to the child to replace the previous parent page so the child doesn't see parent modifications after fork
Iāll end up crazy implementing COW
alternatives?
that's what I was going to say, but I got distracted by the whole spawn talk lol
btw my non unix os is becoming unix-like
Iāve fallen in the osdev pipeline
š„
It inherents the parents address space. Therefore itās the same. Sure, they donāt share it, but it is a copy of the address space
But yeah my language was unclear
š„
it also technically doesn't need to "inherit its address space" if you don't do CoW and just memcpy everything over
honestly the fact that the unix model is so documented makes it so easy to follow, and seems a more robust implementation than reinventing the wheel
š¤Ŗ
thatās cancer š
Reminds me of the memcmp acpi meme
true tho 
we should all use memset to verify that every memory address is zeroed at boot
except for kernel code
Iām gonna drop a cringe fact about my kernel lib
kernel libs when they meet kernel cons
My cringe fact is the entire thing
assert.h is a banger tho
I can instantiate vectors from C strings and the raw array in that case is a rodata const char*, so every time I delete the object I check if the array address is in the kernel heap region before using ādelete[] arr ā
make custom assert for maximum aura (just kidding I did this because my macOS build was failing because GCC couldn't find assert.h)
(no idea how that happens because it finds everything else just fine)
do asian operating systems call it chopstick instead of fork
which I think makes everything slightly slower
chopstick()
in the true spirit of C++
no but it would be ē·å()
oh god I have so many syscalls to implement
have fun š¤š¤š¤š¤
fork, execve, waitpid
open, read, write
and I donāt even have all primitives to implement them
I still have to write FDs, tables for processes and COW
1.) i want something that isnt unix!
2.) ok maybe a little bit of unix inspired stuff
3.) ima just make a terminal framebuffer its simpler
4.) ok im gonna make similar system calls to unix
5.) ykw what if i put every syscall on int 80h
6.) ah fuck it lemme make a unix compatible vfs just for shits and giggles
40 steps later
46.) shit i made a unix
so real
i might be at step 3
(problem is im considering putting syscalls at 80h
i have fallen to the unix)
nice
I'm at step 3 probably, don't think I'm going any further tho XD
BUT I donāt want to port gnu or bsd core utils
ykw i surrender
ts unix now 
Iāll write my own
chad
another one bites the dust š„
my progress report thread went from (not UNIX) to (maybe UNIX)
i noticed
saddening
its still a microkernel so im still stuck in hell
if you want to follow a better os go to AssertOS managarm or something

Thatās what I plan on doing
i wanna make my own but ill still port them for shits and giggles
I won't cause I wanna keep my sanity somewhat intact 
will there be oneium and twoium
wahr
null is zero
no 
wait how do i do page table and page directory stuff without it dying
like i mapped the framebuffer but still im not sure
wait nvm i might have an idea
What
In 32 bit you would typically do an recursive mapping
Thankfully I have a diagram of this
send
/*
* Recursive mapping:
*
* PDE 1023 points to the Page Directory itself:
*
* +-------------------------+ 0xFFFFF000
* | Page Directory (PD) | <--- PDE[1023] points here
* +-------------------------+
* ^
* ^
* +-------------------------+ 0xFFC00000
* | Page Tables (PTs) area | Covers PDE[0..1022]
* | +---------------------+ |
* | | PT 0 | | <-- PDE[0]
* | +---------------------+ |
* | | PT 1 | | <-- PDE[1]
* | +---------------------+ |
* | | ... | | <-- PDE[...]
* | +---------------------+ |
* | | PT 1022 | | <-- PDE[1022]
* | +---------------------+ |
* +-------------------------+
*
* virt address bit layout (32 bits):
*
* [10 bits PDE][10 bits PT][12 bits offset]
*
* get pt:
*
* 0xFFC00000 + (PDE_index << 12) + (PT_index * 4)
*
* get pd:
*
* 0xFFFFF000 + (PDE_index * 4)
*/
im not gonna ask why in the fuck its ascii but oh
so put a pointer to itself at the last page dir?
:) yes
Itās in my code
Rtm:)
Read the manual
I wonāt be rude to you about it lol
Intel sdm
Banger read
holy shit
i read an osdev wiki article rn tho
i got the point
its always at 0xFFFFF000
Yeah
tmrw ima go figure out the paging management thingies
the recursive mapping and/or whatever other bs exists
slab(?)
i'm door
john door the ceo of door
ok im somewhat confused about vmm like do processes just have their own specific areas that only they can access
like their own pagedir or smth???
are addresses just remapped? (system ones made inaccessible)
total mindfuck plz help
wait think time
so say a program is loaded at 10 mb
but it thinks its at 5
so 10 mb is mapped to 5
uhhhh is malloc still at 10?
is that pos fully isolated from other programs as well?
like it cant overwrite them
if a program switch happens a remap thing is done
maybe
how is it supposed to be done
trying to read a bunch of address space stuff rn
It is possible to provide each executable with its own address space, so that memory always starts at 0x0000 0000.
nice (source: wiki)
wait
holy fuck this is cool
System Pages are marked as Supervisor pages (so ye, inaccessible, but still mapped)
true
reasonable diagram (TM)
this entire thing is an absolute brainfuck
or is it
no nvm its not really
peak osdev
i figured the address shitamabobs out during the 30 seconds before math period was over 
dumb question during an isr interrupt does the system leave user mode
until i finish doing shit with it
pretty sure ye
ok cool
i needed to ask this or id go insane
i assume thats the only thing that happens and none of the vmm stuff is restored
if the pagedir was modified for a task for example
wdym by "none of the vmm stuff is restored"?
if the stuff on the page directory was modified for a program like idk address space stuff
shit i dont have any more time this has to stay a mystery now :'(
afk
ima ping u when i come back
@gloomy musk so what i meant is that say for each progress the pagetable/pagedir is modified slightly
i dont think it will modify itself back to the state the kernel uses it unless i explicitly program to make it do so
no shit moment but yeab
yeah
okie, you usually use different pagetable for each process, and the kernel should be mapped into said pagetable already.
so you wouldn't be switching back to the one you were using on startup
at least I don't think
don't quote me on any of this 
dw that gave me a brainfart anyway i dont think i can do it if i tried 
(jk i somewhat get the point
my wifi shit)
(help my wifi)
(aaaaa)
my wife
wifj
wifi
wii fit
absolute internet death
1 bar cellular service 
It is
yes
That is literally one of the best diagrams Iāve seen for that concept
dumbass confirmed? (name censored)
is it a steam chat? lol
people sending steam messages are weird
especially when you donāt know them
i know this guy irl
it happens a lot when playing cs2
the best messaging platform 
indeed
why do i associate that emoji with "gdt init ... ok"

gdt init⦠are you OK?
just download it already
remember about address spaces
seems quite simple
(this exact moment i am gonna get quadruple fucked by the universe)
kinda
cc??
c++
oh
i prefer it over .cpp
i thought the file format for that was cpp but mk
I was thinking why donāt you port the kernel progress to 64bit
I mean 32bit is really ancient and everything youāve written until now is compatible with 64bit
hmmmm
idk
maybe compatibility
tbf anything older than a core 2 duo is absolutely useless at all
and also idt and gdt?
honestly idfk if i should switch to long mode
like actually
can some random ass dude shill me limine for no reason
u should use limine
y
bet
wait do i have to rewrite the gdt and idt code
do they have differences
(ik the gdt does)
yes
aint much different tho
yeah you'd need to change the idtr structure, the descriptor structure and the way you push things to the stack when calling the handler
I mean it has more levels
oh god
but if u understand 32 bits paging it should be pretty easy to understand 64 bits
Why? Aren't you 32-bit, did I miss something?
i got threatened to use limine
to not be generic this is a unixn't
ik big stupid but if it doesnt work im just gonna revert to mb2
Oh okay 
" o k "
64 bit unix like kernel on li-
No wait I'm still confused, are you on a 32-bit machine or something, I thought you only needed a cross-compiler when you aren't targeting your machine's arch
im on a 64 bit machine
for some reason a cross compiler is necessary for shits and giggles
i can just use regular gcc for cross compiling 32 bit compiling but still
Ah okie
Use clang 
W h y
Because I said so, and I'm objectively right 
i expected you to say "that was a threat btw\nUSE clang
"
are there any differences between gee cee cee and clang
syntax
in syntax
Uh, i don't think so, maybe ask someone smarter than me lol
I don't like typing on my phone XD
me neither
it makes me want to commit pain
also i just realized limine protocol advantage
you can set whatever boot resolution you wish
The concept isnāt so bad
The implementation is hard if you wanna do it well

I mean my vm is very rudimentary and itās still 1kloc
im trying to do long mode again rn for shits and giggles
yes :/
idrk if i should even do it its not pushed to github yet
ykw im gonna add onto it by adding limine support instead of just rewriting it whole
later probably as well
i wanna rename nullium to something ngl
maybe something like deep blue (the ibm chess super computer) except not even copyright issues its just somewhat generic?
32 powerpc's 
32 powerpc's yet it still cant run google chrome
I had the idea of the name deep purpose once
I like the idea of the name Blue infinity or something like that
maybe idk
Iāve been kinda wanting to name a kernel soemthing infinity for a long time
i named mine popkernel which is a ridiculously stupid name but it works
guys i deletbed by ps2 driver
no moar pee s 2
time to not bullshit about "bruh the drivers are in userspace"
why did that separate
WHY DID THAT SEPARATE DISCORD BRUHHHHHHHHHHH
they ruined the funny now im sounding like "phase 2 edgy roblox kid bossfight"
anyways uh
doorknob
no more ps/2 driver thats gonna go into the user space now tldr
when that will appear
sometime
(never?)
what 2 do if lower mapped kernel (someone will murder me for this)
it was always lower mapped anyways 
will this affect porting software tho
i def have to recompile it thats a no brainer but in any other way
the linker file would need like an offset thing of 512 mb if i give 512 to kernel
video game idea
your only weapon is a cannonball launcher and maybe a throwable bomb
but you can do insane ass combos with both of them
throw a bomb at the cannonball to do a big boom boom
uhh more vmm wheb i get home
i hate phone keyboards
how are people using phones without going insane its miserable without a proper keyboard
the only good-ish phone keyboard i used was the windows phone/win10m keyboard
rip winphone
it died before it couldve been enshittified
Just donāt
It will make it impossible most likely
dangit
how do i map it in there tho
do i have to set it up in the entry file?
Just donāt
don't what
lower half kernel?
no
how to do higher half kernel?
no
wait
ok nvm i realized
the "just don't" still doesnt make any sense but i think i figured out how
I was saying donāt map in lower half
Wait sorry
I thought you meant
Map your kernel in
Physical low memory
I was like wtf
i mean the kernel is in physical low memory
by higher half i meant virtual high memory
you're just now finding this out? 
yes sadly
this is literally me
i swear
i can put the documentation on there tho
when the time comes
can everything be as easy as writing a hello world os
actually no
can i not be a fucking 400% dumbass distracted by everything
LITERALLY everything
multitasking is a war crime
it's absolutely necessary but i feel like it ruined me
Just work on one subsystem at a time
no i mean like i get distracted by like the internet
All of do brotha
Unplug your router 
very relatable tho 
If it makes you feel better, my friend was so down bad he bailed a random girl he thought was hot in jail and ended up getting with her. Talk about a gamble
What
how the fuck do you bail a random dude person out of jail
Yeah he was down atrocious
Like 4k š
what happened to him afterwards
Theyāre still together
thousands of dollars for some random imprisoned bitch is beyond normalities

Iām just a bit afraid he might get murdered in his sleep
I mean sheās cute sure
Like pretty cute but
Not 4k and potential death pretty
oh god
reddit user? 
no but srs i feel like if he's all that crap then i feel like the girl is with him because bro paid 4000 fucking dollars
wooot 
a
indeed
I mean he did lock in and she kinda made him have a glow up
He went from a 4/10
To like a 7/10
nice
Theyāre actually surprisingly good together but I always make fun of him because that is Down badddd
that aint worth 4000 dollars tho thats just worth a motivation
oof
She didnāt commit like murder. She was in there for tax evasion
for how long are they together
Not the worst crime in the world lmao
Almost a year now
About as long as me and my current girlfriend have been
cool
absolute ass opinion but for some reason loving people romantically is boring asf
huh š
idk man
how are you this desperate for some random ass human being
how could anyone be this desperate deadass
true tho XD
maybe i havent found anyone i like yet but still though
the disappointment i have for some people is insane
Whattt
I am so desperate for my girlfriend bro
We literally almost died together
We went to a party and we got laced
With some really bad drug
Like bro she is my ride or die
How else am I supposed to love someone
I love that girl more than life itself
now see, this is why I don't go to parties (I say but the real reason is I'm homeschooled and don't get invited to any parties lol)
My bad lol
nah its fine
to whoever's gonna be scrolling up 50 years later
that aint me im too lonely /hj
nice tho
coolio :3
You are not old enough lmao
Youāre 15 iirc
š„
birthday parties 
drink apple juice say it's "beer"
makes you look cool
+5000 style stat
i have noise cancelling headphones now they solved my fear of lightning bolts and shit
college party
Yeah
with your friend
Fucked my life up xD
Not my friend anymore
He tried to get me to do much harder shit
oh
Fuck all that
I'd rather use my shinobi sneaking skills for something else lol
Oh definitely smoke (if you do already but donāt start if you havenāt) but donāt do drugs
iphone 49 pro max
Weed made me quit everything
Yeah I unfortunately have an extremely addictive personality
Yeah Iāve been to rehab 4 times

Damn that sounds worse saying it than thinking it
I went once when I was 16, twice when I was 17, and once while I was 18
Iām sober off all drugs but weed tho :)
Have been for months
Iām almost a month sober from alcohol
First time since I was 15
i remember hearing college parties are deranged as shit
not just deranged like absolutely uber fucked
microwave popcorn banger
its supposed to be shit because microwave but its a banger
Yeah⦠they are
There was one time I was at one
And they found out I was lying about my age
And they said I had to drink a whole ass 12 pack of beers to stay
And unfortunately I did
Pepsi is gas
true
heard that coca cola was invented before refrigeration and pepsi was invented after so warm coke tastes the same as cold pepsi
or smth
idk i want to test that
Coca Cola contained cocaine at the beginning
i do know
wait fr? 
Yes
they put fucking radium in toothpaste back then
coca cola having drugs is probably the most chill thing
People took this medication called Radithor
Which had radium
And some guys JAW FELL OFF
guy drank it and his jaw fell off?
bloody hell 
nullium and floppaos thread all being gatherings for random bullshit is certainly a thing of all time
yes indeed
i think the girl who discovered radium died from radiation poisoning or smth
marie curie
Yessirrrr
literally anything else is a normal progress thread while these two have a randomized schedule of being #lounge-2 and #osdev-misc-2 (was an actual channel somehow???)
ima check out the progress threads maybe people make something that sucks less ass
ok im back
my project total doodoo farts compared to these absolute gods im now evil
My project doodoo farts compared to the gods too
they got qemu on their os's
mine as well lol
You just need to implement the syscalls it requires
to this. I don't have QEMU in my OS š¤£
KVM sounds painful
Not even remotely reachable for the majority of hobby OSās
KVM is a Linux thing but yes it means kernel virtual machine
It runs the kernel as a hypervisor
Or to function as a hypervisor
why are sgi workstations so cool
idk i remembered the indigo line when i made that color palette for my terminal
nice
progress report (finally ffs):
- added two functions
- map physical address to virtual address
- do the same but in bulk (you can remap an entire page table for example)
mmmmm
vm&m's
reworking the second function
reworked function for easier use for me
second one
mapping physical addr is fine
mapping a shit ton of them wasnt
until now 
NICE BRO
LETS GOOO
NULLIUM PILLED
what does pilled mean
i love this image because its a shitty powerpoint i made on a school laptop
and nobody can find it on like google
when you walk out of the door after fighting this shitass and then you see an actual war zone
Ferrari
whoever optimized ultrakill was stupid
or i can blame microsoft because it doesnt lag when linux
ferarbi
air strike on big ben
average linux user vs chad nullium user 
does anyone else tho not want their os to get mainstream famous
like linux
bcs the script kiddies would come in, say they're cool because they can put fucking poopOS on a usb and run it on a computer
(they cant actually install the os because they cant navigate the hard drive partitioner)
like actually
theyll also not know literally anything about osdev and will crash out that you cant run fortnite
or any windows apps
"why cant i run google chrome" ;-;
telling them what porting is theyll just go "well just build it for your os its easy"

an os we make will never get maisntream famous unless its one of the few that has like tens of contributors
chromium WAS ported to a few project but still
fair
and even then mainstream would be pushing it
true
nullium is being delayed several thousand years i have to do a spanish coloring assignment š
nullium is getting delayed 100 years instead because i did the assignment
i need an excuse to never release version 1.0
new somewhat bright-ish purple palette
if the color is literal cancer plz tell me i think its fine
discord for some reason makes the image more saturated?
looks fine to me š
the more the merrier 
i need a slab allocator or something like that now
darker colors look like ass
brighter colors slightly modified
idk what to do with magenta
it looks way too saturated
customizable color palettes are a necessity probably
what if some dude just wants his plain old boring ass VGA
(though id be offended because i took an unnecessary 20 minutes to make these stupid fucking color palettes)
(i wanted one though so whatever)
i like them
or something
anyways the purple does sadly indeed look like cancer
so ima tone it down
i think the vmm init is ok
anyways rate color palette ima do something somewhat useful
Idk if itās cancer itās just kinda
Different
the purple part is now much more noticeable tho
it was always purple but it was this specific shade where you can barely see it
for some reason discord fucked up the colors
its bright on it
on qemu its way less saturated
i should test my thing on real hardware ngl
yo any serial terminal people here
how do i use it with gdb im stupid
oh
nvm i have to implement a stub or something
guys i feel funny so ima run nullium on real hardware
there is nothing to run but shush im bored
its ⨠scientific āØ
my testing laptop :P
also the reason im still in protected mode
it looks too cool to just abandon
$75 thinkpad my beloved 
anyways since now this laptop is basically the main one if im testing on real hw
i should setup a PXE server for it ngl
giddity init ok
ayyy! š
im pretty sure grub / limine (no other bootloaders exist ever) have a tag for setting a custom framebuffer screen resolution on boot
like for mb2
and i demand to know where in the fuck are the instructions for limine
i found out how to do it for grub but how do i do the same for limine
ahem
:C
resolution- The resolution to be used should the executable request a graphical framebuffer. This setting takes the form of <width>x<height>x<bpp> and overrides any resolution requested by the executable. If the resolution is not available, Limine will pick another one automatically. Omitting <bpp> will default to 32.
it is time to try this goober
the tag works
all hail funny purple L bootloader
gnu website dead
Many modern operating system kernels, such as Mach and the microkernel in VSTa, do not by themselves contain enough mechanism to get the system fully operational: they require the presence of additional software modules at boot time in order to access devices, mount file systems, etc.
GNU mb2 spec
popkernel as a microkernel isnt dead lets goooo
if limine boot protocol doesnt have modules then i can claim superiority over the unix likes

boot args
syntax idea for the shell that will later exist
parameters start with . or : if its a long ver of a parameter
like verbose mode would be like .v but if its multiple letters itll be :verbose
if a thing is a parameter itll just accept parameters in parentheses or smth :flags(verbose,debug) (maybe square brackets?)
idk why they dont start with -- and - like normal os's š
ideas (TM)
also what if i move to codeberg 
I don't know, I don't see any difference between codeberg and github except for the interface
idk github is like microsoft managed and ai feeds off of public code
doesnt really matter i doubt its worth the effort
I actually kinda like that
thanks
idk how running programs would look like
smth like nano would be ./nano, nano, or PROG(./nano) or smth
The parenthesis are ehhhh
idk how commands would look like
Itās not intuitive
nano(text.txt)??? idfk
fair
i got the flags ok enough but what would the commands look like idk
smth like cd /evilAssFolder/ would be the simplest
idk about having like cd(/evilAssFolder/)
That isnāt shell like tho
true ig
I mean itās your thing but just from the way I see it
I think Iāll execute programs with
Either run, ex, or load
cd:/evilAssFolder/ 
lemme grab some shit from my make file and see how it would look best in my stupid fart syntax
gcc -c ./popkrnl/boot/stage1/stage1.c -o ../popkrnl/kernel/stage1.o
removed all the variable stuffs
in theory itd just look like this gcc .c ./popkrnl/boot/stage1/stage1.c .o ../popkrnl/kernel/stage1.o
no thats the linux command
what to do with smth like this
itd think its a flag or smth
I like it
put them in quotes idfk? gcc .c "./popkrnl/boot/stage1/stage1.c" .o "../popkrnl/kernel/stage1.o"
fair
wait
if a thing is a parameter itll just accept parameters in parentheses or smth
:flags(verbose,debug)
gcc .c(./popkrnl/boot/stage1/stage1.c) .o(../popkrnl/kernel/stage1.o)
damn
this looks like some c dialect
im fine with it but idk
Maybe you should use something else to suggest the pwd if youāre gonna use . for flags
ok cd is just gonna be smth like cd ./johnDoor/ it's the same in dos, linux, unix, pooix, etc
idk
everyone uses "."
Yeah
you cant have a flag inside a flag probably
current dir could be > and upper dir can be ^ idk
or <
everyone uses . and .. so i dont really want to break the unspoken rule
have a specialized (easy to type?) folder tag maybe
cd @./potato/
add a @
gcc .c(@./popkrnl/boot/stage1/stage1.c) .o(@../popkrnl/kernel/stage1.o)
Referring to all paths with @
m
I feel like thereās just a bunch of unnecessary parenthesis
It doesnāt help readability
variables can be like %VAR% or %[VAR]
does it ruin it?
if not then i think it's better for the interpreter actually it's easier to read something like that
if it found like a flag then just check for a parenthesis and start looking inside there
dos had an ungodly version of this
dir /A:DRH for example
or was it dir /A:D,R,H
(also that command looks for hidden read only directories)
(theoretically)
(i cant just pull up windows 98 out of my ass)


