#The Flopperating System (tfos) - x86 32 bit Hobby OS
1 messages Ā· Page 7 of 1
ho chi minh just wanted it more
he was fighting invaders of his country for literally 60+ years straight
no wonder they named a city after him
from his 20s until he was elderly
dang... what a life
he was an admirer of george washington because they were both liberators of their people from colonial oppression and he had a portrait of washington in his office
while we were actively at war with him
yeah.. but at that point the united states government had already strayed so far away from the ideas of george washington
GW would be rolling in his grave
ho chi minh's military career was objectively far more impressive than washington's though
the entire histry of the vietnam war
damn
i mean washingtojn was just an average british military general
ho chi is a legend
we literally lived long enough to see ourselves become what we hated
so fucking unfortunate
if anythingwe did some things that were much wrose than the british
like we intered random japanese people here
for what reason
"please no political parties"
yeah what a joke
we yall just ignored him so hard
we also rounded up all the inuits in alaska and put them in concentration camps deeper in the usa as well so that imperial japan couldnt kidnap them and turn them into spies
ppl forget that one
i remember reading about that yeah
im not responsible im not a citizen in usa
only time mainland usa has been invaded since war of 1812
Oh god HOW did this chat devolve from osdev to Japan invading Alaska
the japanese committed their own holocaust
who cares
based autistic people
i know
yeah fr
OMG DISCUSSION IS ORGANIC I JUST REALIZED HTIS FOR THE FIRST TIME CUZ IM A BABY
im talking AMERICAN japanese camps
uhh
also most discord moderators
No we must talk about the population of North American River Otter and how it relates to MOSFETs
moving my eax to her cr0 till she paging init ... ok
nothing pisses me off more than discord mods seeing a discussion organically evolve into something off topic in an on topic channel, and nobody is trying to use the on topic channel for anything else, and they go "erm. please move to general"
thats just power tripping imo
serves zero purpose
just destroys an ongoing conversation (people never actually move, it always ends there)
for no gain
fr
other than ego stroking
x86 register tier list when
im the moderator here fr
mine too
im glad the mods here dont usually do that but it has happened a few times
my thread always turns into osdev-misc-2
yeah
it's pure poison
i really can't stand it
deadass
its mainly people who arent mods doing it too
becuase 5they think they will get brownie points
but it is annoying when youre on topic and someone starts talking about something off topic over the original conversation
but if there is an actual conversation
who cares
yes this is the problem
whenever i've seen a conversation redirected never once have i seen it survive the redirection
some servers have this stupid bot that posts a link to the "correct channel" but it still doesn't do anytihing
true
even if its an on topic convo
yo dont tell people irl who are talking to go to another room bexcause its not the "conversation topic X room"
or if someone decides to bring up something on topic while a conversation is ongoing that had become off topic, the former should of course take priority
but if neither of these are happening then i see no reason for moderators to become involved
release deadly neurotoxin otherwise
what colorscheme do you use in your terminal
i use campbell (from windows)
campbell windiows
This is why Discord needs to implement a feature to view the population of parrots
copycat
theyre called moderators bc theyre meant to moderate discussion. for some reason some of them decide to become terminators who terminate discussion
isnt it the default
yeah. the mods here are mostly good tho
some outliers but
not many issues here
plus the actual chat is moderated well
any obscene stuff/ slurs
gets taken care of quickly
i only talk in this server becuase so many otyhers have annoying ass mods
ToaruOS has affected brie cheese in a lot of ways
i remember seeing a thread where some guy said the n word and then right after a mod is like "ok thats it the guy's getting banned"
he was never seen since
it's really such a dispiriting experience to be having a conversation and this happens
sometimes i think it means you rattled the moderators' sensibilities by having a different position to them, and they redirect out of spite
it can also be laziness
they get annoyed conversation is happening at all while theyre busy and cant pay attention
i think its pretty thoughtless and a sign of a terrible person to have petty power though
its incompetence plain and simple
dont tell THEM that though!
unfortunately it's widespread
or you might get banned 
theyll incompetently inflame the issue until they have an excuse to incompetently ban you
we all know exactly which server we have in mind when we talk about this kind of moderation, and exactly the conversations we've had that were terminated this way
i was on this embedded systems server and i got banned because i suggested that the i386 isnt the best embedded processor
Fufu and egusi has affected Bosnian OS Development Time rates by a LOT!
š
PMAO WHAT??
there are a few mods here who rarely appear in chat and whenever they do its to kill a conversation by doing this
i wont name names
but theres a few mods here i literally only ever see when they do that
its infrequent but it occurs
yeah we know who too
what
Emacs is really nice for developing cat food devices
are you turkish, albanian, chechen, texan or what?
oh aight
i found a mod for ultrakill that allows to change style rank names
whats ultrakill
video game
idk
shooter game
shoot people
they die
doom eternal on steroids
and also lots of blood because lore (and gameplay) reasons
stream osdev fr
truly
i was thinkking about doing that
but i realized it would be alot of me reading
and sitting
and banging my head on my desk
OSDev ā¢
would you watch an osdev sstream
ā ļøAchtung: Hier ist rechtlich ALLES Werbung, da Markennennungā ļø
Computer scientist and designer from Berlin; Germany.
Think different, in-depth video content. No script, my personal opinion, real world reviews, stuff that actually matters, and some more technical insights.
I do Linux and OpenSource stuff since ~1998, and founded the Exa...
idk
Watch AI engineer use 100 CPU threads & 240GB RAM to finish porting AMD ROCm AI to RISCV-64!
imo this is a cool use of ai
it might be boring as shit but idk
:0
vibe coders i just dont understand
writing something cool with ai as a shits and giggles thing is really cool
but making it a career is just kinda weird
making it a career is crazy
yall ever just have intrusive thoughts of deleting your whole repo, banishing it from your brain, and starting over?
i do
smp is really making me consider it
because i wrote alot of my os without smp in mind
and now its just a process of migrating everything
i honestly just sometimes want to be reborn as a big ceo so i can have free slave workers and not pay taxes
dont we all
sometimes i wanna be a hunter gatherer in the steppes of mongolia and throat sing for my wife

subset of C
llm's are confusing
its hard to make them understand you
like a person might immediatelly understand your request but an ai is big stupid so it wont
they dont really speak human language
they speak what they think to be human language
i mean
theres a phenonmena where
if you make two ai's talk to each other
they will evntually start talking in a labguage only they can understand
and it sounds like gibberish to us measly human mortals
which is really fucking scary
gibberlink
i swear that video was a shitpost
there is no way that wasnt programmed intentionally
no ive literally recreated it
what
it's intentional
it's a half satire thing
this is fully intentional
and by design
yeah its not as intense as the meme makes it seem but its still crazy
they end up just speaking weirdly
GibberLink is an acoustic data transmission project, posted in GitHub, in which two conversational AI agents switch from speaking to one another in a Human-listenable language (such as English) to their own unique language that consists of a sound-level protocol after confirming they are both AI agents. The project was created by Anton Pidkuiko ...
proof?
https://github.com/PennyroyalTea/gibberlink powered by typescript
guessed it
this would be ridiculously infeasible for LLMs to just go and do on their own
Nah it was a drunk experiment me and my girl did and it was really off
what š
Like we made our chat gpts talk to each other and the language kept getting harder to understand
And eventually it stopped
it probably actually relies on a human to be understandable
just barely... and I could have done it by hand many times faster.. but IMO it's important to understand the tools and how to use them
This song makes me feel like taking over half the world
I feel like youād enjoy this
enjoy what?
it makes the cpu shit
cpushit.asm
truly
this is a cpushit of all time
what does this even do
floating point stuff?
whats xchg
This part of it yes
assembly version of atomic_exchange
oh
Itās smp stuff
mk
You know what atomics are?
unstoppable operation iirc
someone forgot the lock prefix š¤Ø
wait you dont need it nvm
i forgor
_______________atomic_set_and_test
lost me at leave
If a memory operand is referenced, the processorās locking protocol is automatically implemented for the duration of the exchange operation, regardless of the presence or absence of the LOCK prefix or of the value of the IOPL.
š„
This is just a file full of cpu shit
Thatās why I called it that
Basically
Has everything
reminds me of when i named a variable
wait can i say this
probably yes or no
"howcanibehomophobicmybitchisgay'
LMAO
THATS HILARIOUS
and no, you wonāt get banned for that lol
If anything that ISNT homophobic
In my new vmm I have a variable called āpage_to_shit_outā
at least capitalize it to be inclusive 
in that same lexer i also have vars named fuck and useless
all my debug variables are named france
?? why š
oui
page_to_shit_out
why just why
i also wrote this masterpiece in my acpi thing
also why 8 bytes of 0
oh so uh it was offset to the left for some reason
limine couldnt scan the framebuffer tag (i use mb2)
so i just added a few blank items to shift it back
and why are you doing this in asm
multiboot2
why would i use limine's boot protocol 
do you align 8 before each tag
@flint cobalt flex your variable names
this is your time
no
if it works it works
if anyone ever is gonna change it im bringing the wrath of zeus onto your house
void fuckshit();
Everyone looks mildly concerned
Or high
Or mental
Or all of the above
Yes we were all high
Yeah
š¤
Yo do you have the speech bubble meme png
nop
Do you have the bubble image
@small hound Iām doing tlb shootdown
š„
So basically the concept is to invalidate the page mapping for the current cpu then send an ipi to tell all the other CPUs to invalidate it too?
Am I correct or
that's the naive approach yes, it can get you a simple, slow, but functional TLB shootdown
it can be good enough if you have 4 cores but as soon as you start scaling beyond that things get hairy
I just have to register an interrupt handler for the ipi right?
it's not standard no, real kernels use much more advanced things
indeed
it will be "simple, functional, and slow", so if that's fine with you then yeah it would be decent
you can always make it more complete later on
Well Iām not going for complexity or anything like that
@small hound do you register your ipi handler before or after initializing smp
I do it when I IDT init... ok
you should already have some dynamic ISR registration method
š
are you doing per core IDTs?
I havenāt gotten that far but thatās the plan
Okay bet
just one global IDT
I wonāt do that then
idt_set_entry()ā¢
Yeah I figured
or isr_register for something more arch agnostic lol
Yeah but my shit is ia32 or leave the room
š„
I have 8, is that fine?
I guess you'll find out after you implement and test it, it varies from kernel to kernel
Yeah true
Iām also gonna do proper mutexes after this
Is making a purely cooperative scheduler insane
not unheard of
I mean we obviously have stuff like language runtimes that do that but in kernels it's not unheard of
how come
whimsical even
I just saw some bizarre kernel that had one and it looked interesting
Forgot the name but
It was from like 2007
And it supported xorg
Which is insane
macos?
it was cooperative only
no but that is a notable example of one
I don't really think you gain anything from cooperative only scheduling, besides you can always make standard scheduling that is preemptive and cooperative and then just turn off ticks with some syscall or whatever
so you can just build a standard scheduler and then have a way to switch to cooperative only mode or something
not super hard to do
I mean it is quite literally just a
void lapic_timer_disable() {
uint32_t lvt = lapic_read(LAPIC_REG_LVT_TIMER);
lvt |= LAPIC_LVT_MASK;
lapic_write(LAPIC_REG_LVT_TIMER, lvt);
}```
with some fancy stuff and other wrappers around it
So like for video games and stuff I would probably want to do that
To get the highest frame rate
or you can make realtime threads that disable the scheduler tick :)
this way when they finish running (block or the thread terminates) the scheduler tick comes back to run the timesharing threads
and then it goes away again when the realtime thread runs once again
what do you mean
like you want the bubble
Thank you
POV floppaos
cpushit.asm 
whyyyyy?????
done plus d'info
are you france .. i mean french
yes
"ile de france"
So Paris
yeah really close to paris
what contient is this on ?
europe
8 CPUs seems to work fine
Iāll post some tests later
Imagine parler franƧais
Scalability issues will rise when you get hundreds of tlb shootdowns
Yeah I figured but Iāll only support 8
#define MAX_CPUS 8
Ohhh
Mine is 1024 I think
lame
Nvm it's 4096
How do you do a more efficient shootdown
there we go
queues of shootdown pages
rcu is the limitation here
Iām assuming
yea and also don't send the page to everyone if you can guarantee some don't have it in their tlb
like if you have a process and it only ever has run on core 0 there is no need to do any shootdowns at all for its pages
Yeah invlpg is a slow instruction
and so is the IPI
Iām pretty sure itās probably the slowest one period
you havent seen many x86 instructions i guess
there's also the more interesting ones like rdseed
No im more of a C guy lol
mov cr3
I donāt know every mnemonic and what it does is what Iām saying
is rdseed that slow?
also it depends on how you count instruction speed
Like wbinvd has very slow side effects
But is the execution of it actually slow?
movnti sucks
cpuid is like 100
fbstp 288
xsave 339
xsavec 623
so xsavec is the slowest direct instruction on zen4
no... I fucked up.. .thats is the number of microops
invlpg seems to take ~200ish clock cycles
idk I'm relying on kvm with -cpu host, might be very wrong
bunch of moves which are around 1000
Big things are coming my friends. @crimson plover knows

U cant leave us hanging
Iām making a new version called CaracalOS that is long mode that uses @crimson plover ās bootloader :)
Thats cool
Yes and since my shit was 32 bit x86 a lot of the code can be copied from FloppaOS
So I guess this will be a descendant of FloppaOS just in long mode
For example my pmm can literally stay the exact same
Same with my synchronization primitives, etc
Makes sense
Iām in Hawaii tho so the progress wonāt be as quick as it has been lol
Iām getting sushi in Hawaii rn yall wanna see?
for sure
Iām a big back so I forgor
But my dad took a nice photo of me
Also
I have a sneak preview (cool amarat)
Amarat with glasses
Faceass
damn leave some for me
:0
I ate all that spicy tuna already šš

I got kava⦠itās like a traditional Hawaiian/pacific island drink that gets you buzzed
Dude this shit got me buzzed as hell
you are drunked
Mom takes nice photos
Iāll post some progress tonight
Non alcoholic cocktail btw
hell yeah, enjoy hawaii šø
hey gang
i got the bootloader working
tomrrow will be source tree structuring!
good night chat
kiss me
questionable statement at best
Buzzkill /j
Xi jinping on his way to eat you after making that joke
evil
kermbrl
nice
FloppaOS thread became food picture thread real
FloppaBlog
FloppaOSIsFarting
So Iāve gotten some stuff done
With the new fart
what stuff
The NewFart Microkernel Technology is a revolutionary new system, allowing deep integration of Apple Intelligence in its' core, now powering over 6 million MacBooks worldwide 
Well Iāve got long mode, got the new bootloader working, ported my pmm and started on my new vmm
Powered by FloppaOS
Imagine the day where every computer runs FloppaOS
I think they would all blow up
im addicted to microkernels now they're somewhat peak
Lol we all had a phase of that
I was convinced that I should change mine to a microkernel
be me
works at nuclear reactor
horse installs REACTOS?!?!?!?!?!?!?!?!?!?!!?
WHAT THE FUCK
reactor explodes
m
i kinda already changed it
Do you have userspace
idk i might just have a shit ton of hard disk and storage drivers to boot the everything
no
Okay then your kernel isnāt a microkernel, by default itās monolithic
ok fair
You cannot have a microkernel without running drivers in userspace
At that point itās a buzzword
Maybe you should read up again lol
Yeah nothing wrong with that
Itās okay lol
im planning it to be a microkernel like run 99% of the drivers in userspace
hybrid ke- 
I forgot what initrd meant for like 5 minutes earlier because I didnāt have my morning coffee lol
Donāt you fucking dare in my thread
Keep that cancer away from me
I feel like 99% is all of them unless you literally have 100 drivers and only run one outside of userspace
i meant General Assembly resolution 39/46 of the Geneva Convention
-# (Convention against Torture and Other Cruel, Inhuman or Degrading Treatment or Punishment)
oops
Hahahahahaha
Balkan Slavs donāt follow the Geneva conventions
More like Geneva suggestion 
uhhhhhhhh
maybe idk
I donāt even think most Linux kernel images have 100 drivers lol
But thereās definitely more than 100 in the whole kernel
i just realized i dont think i can write a microkernel that actually works on things
nvm
because i need like a shit load of hard drive access points
to get like 99% of the drivers
a microkernel runs all its' drivers in userspace but idk if i should run the fucking ps/2 driver in userspace or some other thing
ykw im gonna move it to user space when i get there 
Theas Fucking Keybordbs
Whoās kernel is this šš
I found this funny code comment in my os
// TODO pt2: fix clunky bits of the allocator such as alignment, guarding, and setting the heap vmm region
// so uhhh basically everything but it works so I don't care for now.
all comments on my pmm are crash outs
I love yall just saying
Thank you for caring about my dumb os
Floppa fart
Good night
Okay maybe not good night
Maybe a little kernel dev first
I decided on a name
FloppaOSx64
drop the x
yes
Bet
Good point
I sent this to @crimson plover
But imma explain my concept for the vfs
Iām gonna represent physical memory regions in the vfs
I also will represent virtual memory regions in the vfs
I'm really aiming to make an abstraction of the hardware in the vfs
I think it'll make my life a lot easier
Like each slab will be represented with a vts object
I'm gonna try to make a new standard
Like not Unix at all
Butttt | plan to make a posix compatibility layer
I think I'll make something similar to wsll... where Linux syscalls are represented using the equivalent windows syscall
I kinda like NT in some ways, especially its VFS and I like the concept of the registry I am gonna do something similar But it won't be nt-like at all
Just some inspiration
I'm thinking about calling it the Keywall
"Keys" represent registries
And are hierarchal
I have this written down somewhere
Keys will also be... you guessed it... represented in the VFS
Thereās my vfs yap :)
WSL is not a translation layer
It's a whole-ass virtualized Linux
WSL1 was a translation layer, which was cooler from a technical point of view but it sucked
Also NT doesn't have a VFS 
Well not in the way Unix does
But the registry, security control, task scheduler, all that shit is part of the vfs
I meant to say wsl1
Which converted Linux syscalls to windows syscalls
No what
These are all their own subsystems lol
Pretty much
The scheduler/dispatcher is in the kernel (Ke)
Yeah but the registry is inherently a virtual file system no?
At least thatās what I see it is
Itās hierarchical
Or I guess a form of a vfs
No?
Where are the files
Each registry entry is a vfs object no? Idk maybe I throught of it wrong
It's just a hierarchical structure with named objects, like a VFS is
NT does not have a VFS
I see. I thought that was just kinda referred to as a vfs
it sorta does
In a context like this
not in the unixlike way though
He wasn't referring to the object namespace
it does
the object namespace anyway is not a very elegant design
the object namespace has similar functionality to a VFS but it is pretty far from a traditional unix-like VFS
i'm not talking about this
The thing where you have to re-parse the entire path when you enter a different filesystem (or something like that, I haven't read about it in a while)
the thing that allow to mount stuff as a:/ b:/ and other is a vfs
not a very complex one
but still it's a vfs
- the vfs handle some special devices
Isn't A:/ just translated to like \Device\Disk whatever
like COM0 and stuff
In the object namespace
then in that case it's a vfs
No, how?
This
Anyway, there is better stuff to steal from NT imo
turnstiles tho
TURNSTILE GANG DESTROYS PUSHLOCK GANG
Also astral's is broken afaik?
he fixed it
Ah great
Truth nuke
Probably easier to implement anyways
A nice thing to steal from NT is generic handles/capabilities instead of just FDs
Also the layering is pretty nice imo
And irql
(those are not all unique NT concepts)
NT does them well tho yeah
pushlocks are easier to implement
initially
when you add priority inheritance is when the picture changes
then pushlocks are harder
and turnstiles are easier
No this is very easy
Just implement autoboost
autoboost is hard
fym skill issue none of us even know how it works other than the broad strokes
You didn't try hard enough 
Will if you ever work at Microsoft will you come back to this server with autoboost wisdom
It's essentially priority inheritance.
this is common with turnstiles
with autoboost there is a very unclear moment in the case when all autoboost entries exhausted
theres no longer a limit of 6 entries but apparently there's still some limit since EtwTraceAutoBoostEntryExhaustion exists
All I know about those is that they try to recover from a deadlock using priority inversion
wdym
this not how deadlock recovery works
linux workqueues have this funny deadlock recovery with rescuer threads
Regular work processing on a pool may block trying to create a new worker which uses GFP_KERNEL allocation which has slight chance of developing into deadlock if some works currently on the same queue need to be processed to satisfy the GFP_KERNEL allocation. This is the problem rescuer solves.
When such condition is possible, the pool summons rescuers of all workqueues which have works queued on the pool and let them process those works so that forward progress can be guaranteed.
This should happen rarely.
𤪠pretty silly
Idk itās just something I read from a windows article about the topic
Deadlocks are another set of problems
They avoid priority inversion
I see
maybe u misheard something or something misspoke
š„
deadlock recovery is definitely an interesting thing tho and there are places where they can be recovered from (like the linux workqueue GFP_KERNEL allocation deadlock)
Man honestly I might switch back to vga text mode and I donāt care what anyone says about it
A functioning system shouldn't have deadlocks at all
linux isn't functional I guess 
There's probably a cleaner way to do it
But it's slower or something so they just hack around it
I guess they could have the gfp_kernel allocation spawn a separate thread/wake a separate thread on that path
Locking related deadlocks yeah but that's not quite what this is
where did you find a deadlock?

he lost losing to flanterm :'(
https://docs.kernel.org/core-api/workqueue.html
Regular work processing on a pool may block trying to create a new worker which uses GFP_KERNEL allocation which has slight chance of developing into deadlock if some works currently on the same queue need to be processed to satisfy the GFP_KERNEL allocation. This is the problem rescuer solves.
When such condition is possible, the pool summons rescuers of all workqueues which have works queued on the pool and let them process those works so that forward progress can be guaranteed.
This should happen rarely.
it's recoverable
hmmm ok I guess they just described it differently
picture this...
you have tasks A, B, C, and D
A needs to complete before B, C, and D
they get inserted into the queue as
Head -> B, C, D, A
If you have 3 workers then they will pickup B, C, and D
and it will never progress
might not be the exact issue here, but sounds similar
Drinking Hawaiian monster flavor on my last day in Hawaii :)
No issues over here in Hawaii ššš
does it taste of Hawaii
you keep keep beaches and sand... I like mountains and trees
Hawaii has mountains that spray molten rock. the best kind of mountains. tends to set fire to trees though
Donāt worry, I live in the Pacific Northwest, thatās all weāve got here :)
Sure did
Itās my last day here I had to a little 
courier ptsd
What do you think about the font I made
1.) YOOOO nice font
2.) Times New Roman
I was kinda going for that
floppa os if it was medieval:
Work has continued
when GPU 
gpu init - not ok
GPU: Segmentation fault
Okay Iām making the operating system less shit
So I decided to keep on with this kernel for now
Just because I want it to be good first
And it was not good before
I mean, they don't look too bad lol
Am I tripping or is that just a purple screen
yes thats just a purple screen
peak logs fr
i dont need these filthy logs anyways 
how's progress doing tho
Yeah no theyāre pretty fucking braindead
it's two thousand yard stare nevermind
Also I removed my vmm because it was shit
fair enough š¤£
rip vmm
Yeah it was horrendous
Okay so we have a vmm again
Iāll push it sometime
I was thinking about doing modules
But eh I donāt need them
Gonna work on scheduler
And all that good stuff
Iām doing tlb shootdown by sending an ipi to each cpu
Eventually Iāll make this lockless
By having per cpu allocators
Or something idk
okay so i worked on it
heres the start
no multicore yet though bc of invlpg
mapping works
My vmm region just has a pointer to the pd and the next region
Dude Iām fucking cooking
Okay so now I have to
Make this multicore
When I get back to my pc
damn
void vmm_fuckshit();
how so
void* return_vmm_fart(vmm_region * fuck);
Arenāt you making a vmm
well i have a vmm but it cant clone pagemaps
How you planning on forking then
Yoink mine
Actually donāt
Please donāt
I still treat all my pds and pts as 32 bit ints
Donāt even use a pde struct
I mean thatās what they are
wait pds and pts as in pagetables?
But itās not as clean
and pagedirs?
Yeah
I mean thatās what they are
and also my code works probably way differently
like beyond different
No. Just as a rule of thumb donāt yoink my code
Itās shite
Well
I want a decently featured vmm
Iāve got
Mapping and un mapping (
Regions
Cloning and destroying them
nice
CoW?
Yeah
boring
Is it much more involved to do copy on write
depends
your copy routine will be much simpler
but your page fault handler will do more things
Yeah mine currently just says āfuck youā and halts
Yeah my copy routine is actually really complicated
I do, and it sucks, I just clone the regions whenever a page fault is handled and whenever it's requested it is freed independently from the parent address space :)
wha
you should use a per-page refcount
and you know that if you have a write fault with ref > 1 and the paged is marked CoW then you need to make a new mapping and copy the data there
yep, I probably worded it wrong
once a region is cloned and flagged as CoW and a write page fault occurs, the physical address is retrieved, a new page is allocated and the data is copied into it then a new mapping that points to the newly allocated page overwrites the old one
but I don't keep any refcount, as I said it sucks, it's held together with duct tape and not optimal at all
okay i pushed stuff
not tlb yet
heres pagemap cloning
heres my (simple) vmm region data structure
its interesting that after the rewrite my vmm init became much simpler
@torpid viper vmm rewrite!
@radiant grove heres how i did the copy pagemap
yeah my copy routine rn is way too complicated lolll
yayyyyy
now we do nothing
still cool
heres how i copy mappings @torpid viper
good
i think a little bit of arch abstraction would have been better
Yeah Iāve been thinking about that
I donāt have any hardware abstraction layer
Itās just ia32
you should try to do it early
trust me this will avoid a lot of shit
nah
if u are just tryina finish ur x86 kernel dont do the hal
just finish it and do a hal for the x86_64 one
okay thank you
I added aslr
And this thing called randframe
Which randomizes all of the physical frames within a virtual region
Kinda just extra security
Idk I thought the idea was cool
heap allocated region descriptors?
really cool
cool
flbopa os
Is that bad
nah, Iām just used to make the vmm before the heap allocator
I added more stuff
Into the vmm
More physical page randomization within the vmm
And cloning
With randomization
Fair
I made my vmm before the heap back in the day
I just rewrote my vmm
And my heap doesnāt rely on my vmm
Im gonna work on expanding my region descriptors
Gn chat
Yeah region descriptors are getting better
Hey gang
No work today on the os most likely
Iāve been doing a lot of vmm stuff
Kinda a bit burnt out for now
Weāre gonna work on smp tomorrow though
And actually integrating it
First Iāll need proper trampoline code which
I think Iāve almost figured it out
Reallyā¦.?
yeah, you should look at mine, it's a mess of namespaces and naming styles
do you plan to port the kernel?
Port the kernel?
oops. To other architectures
Iām probably just gonna stick to single core
For a while because
I need to relearn scheduling concepts
Mine just doesnāt work how it should
Working on scheduler
good
Iām making a round robin with preemption
Iām gonna make a word processor too
flord
amazing name

Ok gang
Scheduler has some issues lol
Iām doing preemption with the PIT
Kinda running into an issue where certain threads get starved
Man fucking hell
I have so many ideas for the scheduler but I am not at my computer or at home š
this is why we need to design the fucken pcb
lol
unfortunately this weekend im not at home
next one I might be but then im going to paris
so basically fuckall time this month
Iām so down
I wish I was home š
What pcb

Me and wux (and a few friends) are designing something cool
I donāt wanna give it away without @crimson plover permission
3 days later im going to see "FLOPPABOT DESTROYS THE MOON WITH THE SHEER UNRIVALED POWER OF THE SUN" in the news
In userspace that is
cyberdeck type of thing
we need to make the main board the SOC is going to slot into
Okay new scheduler is up
So
Itās able to handle multiple cores but for now itās just preemptive with the PIT timer
So we have priority handling
And also I have a way of pushing starved threads to the front of the queue when they wanna run
So basically each thread gets a starting quantum of 10 ticks then if it gets starved it gets a gold quantum of 20 ticks
I came up with this shit in a dream
I think itās valid
Threads arenāt getting starved anymore
Then other threads get starved?
I still am
I'm dieting
Thanks for being insensitive
No, it updates constantly
The gold quantum gets set back to the base after the starved thread runs
Idk why you need this
If they all run at the same timeslice then there is no starvation
No basically I up the priority of low priority threads whenever it starts wanting to run. The new priority is called the effective priority
There can be if he has priorities
yes that is true
I didn't know he had priorities tho
What does wanting to run mean
I added those


