#The Flopperating System (tfos) - x86 32 bit Hobby OS
1 messages · Page 11 of 1
Charge ur phone 🙏
Anyways, how long have you worked on floppaos?
1% battery is scary
nah, it's at least 1 more hour
(if it's an adroid)
a few seconds with iphone
lol
about a year and a month
so 13 months
floppa os is 13 years old :0
oh no
41st pmm rewrite
59th vmm rewrite
54th scheduler rewrite
My new allocation technique is now done
Not my pmm, my heap is now done
Im working on pmm rn
There’s a bug in proc_create_init_process()
:(
awh
REWRITE THE FUNCTION!!!

I am doing that
yo
god this stupid fucking bug
@eternal epoch can u help me
im able to allocate anywhere else in the kernel besides in my sched_internal_init_thread_stack_alloc
any idea as to why i cant allocate only within one function
LETS FUCKING GO
I FIXED THE BUG
AYAROTHWFADWGDFOSBFVRDADSULFADSLF
THAT WAS 4 HOURS OF DEBUGGING
What was it
vmm_alloc returning bogus value when mapping to the kernel region
@paper cloak i switched to a new allocator type and removed slab
wanted something unique
so you don't know what was the bug
my vmm_alloc returns (uintptr_t)-1 on error, not 0, and i was checking for 0 instead of (uintptr_t)-1 , which was why it said the allocation failed
Ahh fun
That just looks like a bad bitmap allocator or something
no, its deeper than that
basically a box is a page
when requesting an alloc, it combines 32 byte blocks until the allocation size is fufilled
It's not, you check for free memory by scanning O(n)
oh
so i guess its just a bitmap then
but its more unique i guess
and its pretty fast
It's worse because you don't actually use a bitmap
You store a byte in every block or whatever
So you waste like 128 bytes instead of 128 bits
I wouldn't do that at all, at least use a free list
Then it's just shitty slab 
memory rewrite number [insert large number]
Kernel heap allocation is already solved!! Use a proper slab allocator
(it's not but a proper slab allocator is pretty damn good)
i mean i had slab before
i just wanted something different
i guess
i implemented kmem months ago
Yes
2^32
I definitely spent more than 10 hours debugging My stupid init process creation function
Looking back having a seperate allocator for heap allocations over page size was a dumbass idea
RIP
amarat in april 2025 was a fucking idiot
amarat from april 2025 reciprocates the feeling towards amarat from december 2025 
the wackiest month was fucking january
tf happened?
i vibe coded alot and didnt understand shit
the gdt was hard for me back then believe it or not

insanity
😎
nullium ptsd
i swear when i get to that point im playing doom eternal with the page tables it made my sanity explode 
Letsgo
Now change 5 lines
That would blow up everything
☠️
FloppaOS stable kernel!
I did fix the issue tho
And now i print the memmap
:)
@high hawk look!!
sorry for ping but im just excited
what happened?
i print the memmap now and i made my own heap allocator
nice!
and i fixed my init process farting everywhere
what kind of heap allocator did you implement?
my own
basically i lazily allocate pages and make them "boxes"
each box is made up of 32 byte blocks
and i combine blocks until the size of the allocation is satisfied
then i combine the blocks into an "object" and return a void pointer to the object
ive consumed many caffeinated beverages
is it valid?
it depends
firstly on your definition of valid
and secondly, on how exactly you implemented this
how do you keep track of which blocks are free and which are occupied?
each block has a boolean field
so it's basically a bitmap allocator of 32 byte blocks?
something like that yeah
i just wanted something easy to understand and unique, i guess thats what i mean when i ask if its valid
if you have allocations much larger than 32 bytes, it will have to scan a lot to find a sequence of free blocks
and if you have a lot of allocations of different sizes, this will lead to external fragmentation
true, i didnt think of that
the bool field takes up 1 byte
you could store 8 such flags in per byte if you have a bitmap
So it would be better if I stored a byte rather than a Boolean?
instead of having a bool (which has the same size as a uint8_t) per block, you could have 8 blocks per uint8_t, and then use bitwise operations to extract the flags
Ohhhhhh
I see what you mean
Lemme implement that
Maybe after I take a break first
I’ve been locked in all day
@high hawk i implemented what you said
i was able to get rid of the whole block_t struct too
just using a bitmap within my box_t
nice
this is what my box alloc looks like now
when is floppaos getting rewritten in rust (its gonna be blazing fast 🚀)
Absolutely never
Fuck rust
Way too complicated for my smooth brain
you passed the test
i just made it up
there was no test until 3.14 seconds before

Lowkey so much OSdev has made me a much better programmer
FloppaOS is already blazing fast lowkey 
c isnt blazing fast 🚀 enough, you need rust to become actually blazing fast 🚀
I hope that’s sarcasm
im legally obliged to put a rocket emoji
FloppaOS will never be written in Rust
c only
Like deadass
The new heap allocator seems to be pretty fast honestly
I can allocate like 3gb instantly
Idk why I’d need to allocate that much
google chrome

jk floppaos will obviously have a netscape fork
or no browser
i dont really need a browser for the goals of this os
fair
i made actual signals 😎
@hasty anchor sorry for the ping but is this a solid signal implementation? obviously not fully featured but is it valid
not really, I recommend reading more about how signals work
they are very finnicky and annoying to get right
okay thank you ill do that
I should make a dispatch table right?
For shit like SIGINT, etc
Sigint being a graceful exit
think of them like userspace interrupts, where certain events (like a bad page fault) can send a non-maskable signal or other processes (or itself) can send signals that will be handled at some point in the future
I see
Sounds like a pain in the ass to implement
Why do you lock this but no lock in the allocator
SIGSEGV is non maskable ?
i belive posix say masking SIGSEGV is ud
oh maybee you were talking about SIGKILL and SIGSTOP
I lock around box_alloc() in kmalloc()
pay close attention to the fine print around SIGTSTP and SIGCONT 😭
I hear they're very special and indeed I think I handle them incorrectly myself and will have to fix that, so yeah if something feels odd with those, I feel you
3 as well
i think i got it right
pushed all the signal stuff
also i switched to a new text editor
people before compiler atomics were invented
2009? 
my code had atomics like that
mutexes added
mootex 
Thats some spooky non atomic code
It’s fixed now
Finally using a macro for my isr stub
This is one of the few 32bit OS’s that isn’t garbage
Most are copy and paste from tutorial
No soul
No special
Some times not even a OS and just an extremely bad shell
Thank you so much, this means a lot
turnstile when
When I read up on them
Solaris internals
void mutex_lock(mutex_t* mutex, process_t* owner) {
thread_t* current = current_thread;
for (;;) {
int expected = MUTEX_UNLOCKED;
// wait for mutex to be unlocked
if (atomic_compare_exchange_strong_explicit(
&mutex->state, &expected, MUTEX_LOCKED, memory_order_acquire, memory_order_relaxed)) {
mutex->owner = owner;
return;
}
spinlock(&mutex->wait_lock);
// if mutex is unlocked, unlock wait_lock and try again
if (atomic_load_explicit(&mutex->state, memory_order_relaxed) == MUTEX_UNLOCKED) {
spinlock_unlock(&mutex->wait_lock, true);
continue;
}
// add to mutex wait queue
sched_thread_list_add(current, &mutex->wait_queue);
spinlock_unlock(&mutex->wait_lock, true);
// sets thread state to blocked
sched_block();
}
}
Here’s the final form
still got that race condition between spinlock_unlock and sched_block
Redid my interrupts
NO THE REWRITES ARE ESCAPING MEMORY MANAGEMENT
yo ur also making an OS in protected mode? 🔥
Yes
But the mutex isn’t arch specific
epik
could u ⭐ my post (coz i ⭐'d urs tehehe)
Yes send it
send?
i did
Send me your repo
I starred it https://github.com/amar454/The-Flopperating-System
why not turnstiles
Push lock better
Idk what that is, I’ll look it up
@paper cloak
here is my turnstile, what else does it need
i actually made it more sophisticated
Added priority handling within
this is not a turnstile 🥀 💀 💔
I fixed it
What does it look like now
still not
Your name uses an posix reserved identifier.
his kernel isnt using posix
its a freestanding environment
there is no posix
his names are probably violating 50000 other standards
who cares if he is not using them
I do the same never ran into issues
well I cause ub all the time and also never ran into issues but one day you might.
Me when I use names reserved by posix in a non-posix environment
Thats like saying you cant define some windows reserved type on linux because its reserved on windows
well I guess you missed the talk in osdev misc 0 but I was talking about posix environments.
you dont have to abide by the rules of something that you dont want to comply with
yes but here you arent
you explicitly replied to a url of a kernel
No.
I explicitly mentioned his name in a jokeful manner.
You started tunnel visioning on his kernel.
well excuse me for assuming you were refering to the turnstile typedef in his kernel as you replied to the url that points to it and which his name is a reference of
You are excused.
UB is good for you
UB being bad is a lie made up by the CIA
dont use Rust
stick to writing raw machine code in a hex editor
its the best way
UB and memory issues are your best friend
the issues part is also a lie
made by the CIA
its actually memory lovely issues
remember kids
UB and memory issues are lovely and safe
don't listen to that CIA agent
listening on your chat messages and phone calls
evil
Most sane Flopperating system thread conversation
yeah when you write perfect code it's how the cia writes code so they can figure out your code and steal it
always add ub
made an init system
Fire
@paper cloak I did turnstiles I think
Added PI
That's much better but there's some stuff that's just plain wrong
Your locking in particular is wrong I'm pretty sure
Also looking through every turnstile to find yours is... questionable
@paper cloak day 3 of tryna do turnstiles
You should look at Solaris
flopperation
i love it
just rolls off the tongue
the scroll contains the rewrites
its the dragon scroll
made an ata driver
i just used port i/o
didnt wanna deal wit the ahci bullshit
i need to add locks to this though
ata
Pio is the slowest thing in existence if you're running under KVM btw
And it doesn't take long to realize why
I’m not so
You should still look into DMA anyway
Yeah, I should
I’ll keep this PIO one for now
For reference, bash would take 27 SECONDS to load when using my ATA PIO driver in old bentobox before I optimized my ext2 driver and wrote an ahci driver
27 seconds 
What 
The 
Fuck 
i remember writing my own ata pio driver and used inb's instead of inw's and then wondered why every second byte was a 0


You do use inb in a pio ata driver
You use inw too
loooooong ass macro
#define TURNSTILE_HASH_INDEX(lock_addr) ((((uintptr_t) (lock_addr)) >> 3) & (TURNSTILE_HASH_SIZE - 1))
(((( 
yeah ik
i was supposed to use an inw but i used an inb

Where can I find this driver
Send link
Curious
i'd tell you but it's overwritten by team fortress 2 about 49000 years ago
😔
So yeah, this driver is slow as fuck
anyways im gonna write another one later im making a bootloader for the funny
Like. Extremely. Fucking. Slow.

Look at my new monitor tho guys
nice
im scared of what it would be like on an actual spinning hard drive
i have a thinkpad with an IDE hard drive it sounds like skeleton bones crackling
its like papyrus lives in there or smth idk 
Nah you just got an ancient Egyptian scribe In your thinkpad
That’s normal
lel
my driver makes my computer heat up 🔥
floppaos comes with free heating and air conditioning
depending on whether any file is read 
Making drivers is fun
real
My parents drive me up the wall
Like holy fucking shit
Like
I’m not gonna get any kernel shit done because I’ve had 192728 panic attacks just this fucking morning
i thought they broke into your house and sued you for rights for floppaos
"the parts made in our household belong to us, and we did not give you the rights to use them" 
I get my car on Friday!
ayy
Ayy nice
let's goooo
I added timeout to my ata driver
Which fixes the freeze upon boot
I just set the timeout to 10000
Whatever
Happy early new years to everyone!
Imma make a special winter edition of the Flopperating system today!
hohoho™
The Flopperating System, hohoho edition™
New years edition is almost done!
It’s not a kernel change, it just changes the logs and logo and stuff
I just wanted a fun version of FloppaOS for you guys!
Happy new years guys! It’s not time for me yet but I wanted to say it anyways now because I’m gonna be drunk as fuck later lol
Cheers to yall
Enjoy the holiday edition
Anyways, I think I’m gonna get to making a text editor
Idk maybe not
Userspace stuff is kinda boringggg
My kernel has nice name spacing now thankfully
It was so shit before
The only place idc about name spacing is kernel/kernel.c
I could further integrate my init system
Bc technically I still have some initialization before I call my general init() function
Guess I’ll do that
Like my framebuffer init and stuff
Oh shit
I do ata_prepare_op twice…
Well fuck me
Gotta fix that
Dumbass amarat moment
Me ^
finally added all my init stuff to my init function
so my kmain is very simple now
very simple, just like my brain 
God I have this stupid ass fucking issue in my vfs
mines simple too!
mine is a bit different, kmain is defined in arch specific code where it initializes the arch specific stuff (incredible right?) and then manually calls generic_startup and then initializes some stuff that requires the vfs (which is initialized by generic_startup) and finally calls generic_main
the random elf64_module call in kmain is for it to load the kernel symbols btw
Yeah everything for me is generic bc I don’t have a hardware abstraction layer
Don’t plan on having one
Flopperating system is purely 32 bits
Floppa only understands 32 bit
Looks similar to mine
My init() basically does everything
I use the same theme
i usually use the default theme but it was too dark in broad daylight
with this theme i can read better
Yeah it’s really nice
Let’s get FloppaOS to 30 stars gang
Star it if you haven’t already!!
Thank u
Did u enjoy your meal
it tastes like AI and bad code 😔
specifically like aluminum spaghetti
Did u vibe code any of your os’s?
it depends on if a single itoa function counts as vibe coding
Everyone vibe codes that shit lmao
Waste of time to implement tbh
nah i just dont like microsoft
All my homies hate Microsoft
real
also i wrote an ATA driver for my bootloader
Smoking that bill gates pack
horribly simple
it only knows like literally one controller
primary master only 😭
Nice bro
good enough for now
Take a look at my driver
mk
i can send mine (or maybe later when i open source the entire project idk)
ight
Your project isn’t open source??
uhhh currently
Open source it then

once my bootloader actually does something maybe then
currently it just kind of looks pretty and thats it
Mine's pretty simple:
your future self is very insulted 
the only thing that interests me is that if () condition
why is it interesting
meanwhile mine is 800 loc
mine is uh something
why __assert
Dont question my naming schemes of like 3 years ago 

_______init_fart_subsystem
Rewriting my init system rn
Well
Maybe not
Idk
This is boring
Init system is a boring ass subsystem
Might work on some drivers
Maybe I should do uacpi
Idk
Can’t really find anything interesting to work on
I guess I can make a better logging system
Yes
alphabetic? ascending?

Fixing some bugs in my heap allocator rn
I was overwriting my data structure which I keep within each box
Boxes are just pages divided into 32 byte blocks
And I place the box info then after that the bitmap, then the actual blocks themselves
So [info][bitmap][block 1][block 2] etc etc
rehauled the heap allocator
are u making this in assembly (i assume)?
Why would I make an os in assembly
because its funny
Funny waste of time
It’s ok lol
thx lol
but trust me assembly is based af if you use AVX2/AVX512
also fasm lets u make assembly -> executable app
for linux, windows and others
Any assembler lets you makes executable application…
oh
well im stupid ig
What else would an assembler do?
Besides making executables
Rehauled the early allocator
C intrinsics do this
Beer for lunch today
That sounds like fucking torture
its a bit of a weird statement because you can totally use SIMD intrinsics in C
albeit not with as much control over registers
Yeah that’s what I was thinking why not just use intrinsics
and you can have free "portability" using things like sse2neon
Iirc you can use some syntax to force gcc/clang to put a variable into a specific register
If that works for sse/avx regs idk
probably
but there are better more portable ways to indicate vectorization too
using #pragma omp simd
Yeah there’s a register keyword
Yeah I just don’t know if that works for sse/avx regs
It doesn’t iirc
I think it’s just gprs
I’m actually pretty proud of this heap allocator I made
It’s like the only unique thing I’ve done
Dude I made so much money today
Fucking amarat is stacked
it is but i love it
i can sum N (where N is a power of two) numbers in O(log2(N)) time
Hm send it somewhere
Prob not here
I’m interested
it's just movaps, shufps and vaddps
not much to see there
but if u still want it incase u wanna sum 16 floats together
i can give it to ya
(warning: avx2 required)
It’s ok if he sends it here
Oh okay
Flopperating system thread is our thread
da
do u need to sum up 16 floats tho
nah I'm just curious what it looks like
vmovaps ymm0, [floats1]
vmovaps ymm1, [floats2]
; --- Fast summation algorithm - Time O(log2(n)) ---
; halved once
vaddps ymm0, ymm0, ymm1
; halved twice
vextractf128 xmm0, ymm0, 0
vextractf128 xmm1, ymm0, 1
vaddps xmm0, xmm0, xmm1
; halved thrice
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xee
vaddps xmm0, xmm0, xmm1
; halved 4x (final result)
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x11
vaddps xmm0, xmm0, xmm1
vcvttss2si eax, xmm0 ; this is just the "extract result" step
i am madlad 🔥
log2(16 floats) = 4
i halve 4 times
checks out
Nice
Cool stuff
if you have enough space, you can sum up any amount of floats where N is a power of 2, but efficiency will decrease
though registers are preferred
Do u speak a slavic language
but uhh i think u need to have 64 bit
Clang sucks ass
ano 👍
Gcc better
It decided to just constant fold the whole thing
Czech?
so close yet so far
🇸🇰 Slovak
Ye
I’m bosnian 🇧🇦
You just triggered so many Slovaks
💀
Serbia is fucked
and could u pls delete this one
wait do u measure in uops or uflops 
bro wha
random
omg i just learned gcc is not gnu c compiler 
Used to be
Using AVX that literally takes like two operations tho
i made it better by using vhaddps btw
Gcc isn’t just a c compiler
It does like everything
gnu compiler collection
Ye
Life is an uphill battle. Appreciate what you have. One day it might be taken away from you. In this world there is very little good and lots of bad. Appreciate the good that you have and appreciate the opportunities you have to succeed and take them. Stay in school. Stay off drugs. This is coming from the biggest addict ever. Don’t break laws, don’t get in trouble, don’t get in fights. These are trivial mistakes that have impacted my life. I have a criminal record due to my recklessness. Please stay safe and strong. Sorry for the rant. Have a good day guys and please, again, appreciate what you have.
Drugs are the main issue. Please stay off them. Your sober life is much more valuable than a high one.
Please listen to me when it comes to this, and other stupid mistakes. I got a criminal record from vandalism and getting in fights at school. Don’t make these trivial mistakes. At this point I’ve lost everything.
your doing well with how well your holding up mate, genuinely you should be proud of yourself - you've made mistakes but any other person i know would've succumbed by now - you'll find your way out of this somehow
Paragraphs?
Nvm that's 16 bytes.
I feel mentally better today.
There will be progress on the os, sorry it’s been like 3 days since I’ve updated the repo
Cool stuff coming though
Stay tuned
ultra with literal months since last commit ☠️
kvass with NO commit ☠️☠️
Im in the hospital now
Sorry guys.
I’ll update you guys when I’m better
I haven’t had me medication for several days
So good night
WHAT HAPPENED
Too much
Aw :( hope you get better
hope you get better
I’m good guys :)
Yay 🥳

nice!
there seems to be an issue within my vfs again
not quite sure what
ive been kinda lazy on the os
school started so ive been busy asf
might be taking a slight break
i say that but theres still a 20% chance i drop something new today
theres a bug in my vfs i cannot figure out
gdb is not helping
im page faulting when mounting
which makes no damn sense
it happens within my tmpfs_init()
I’m thinking about making my physical allocator a free list
I know that a buddy system is basically a free list but
I wanna make a kernel that is a NT larp
I don’t think I’m skilled enough for that tho
The Flopperating system barely works half the time
Reliability 

I need better rng within my kernel
My rng is bullshit
I think imma base it off my time_get_current integer
And just create a random number based off that
The second I say this I got hella motivation
I’m gonna actually document some shit today maybe
Recently I’ve been doing less new implementations… just been fixing my old ones
Like for example I made my framebuffer thing alot better
I need to make a dev fs
Still have get to get to that
I made my ata driver better too
Added a proper timeout
Previously it took like 40 seconds to boot Because of all the busy waiting
Man I’m doing some testing and Flopperating system is slow 😖
:(
nice
If yall listen to the lyrics of took her to the o you’ll know what my life is
Honestly I live a pretty ratchet life
Not even a flex
Life is hard
My physical allocator is quick as FUCK though
Like my pmm
It benchmarked very well
And I looked at the disassembly and it was pretty efficient
So I won’t be changing my pmm
Because a simple free list will be slower
Well idk
Will a FIFO free list be faster or slower than a buddy system
Does anyone know
Idk how to test it without making a new ass allocator
Ive been doing so much yapping in here and like no work on the os
Imma redo my GDT (least relevant thing ever)
Decided this was a dumb idea
nono
you WILL, yes, WILL rewrite the gdt
its a part of memory management crap too
fleppa
Fucking scary
Documented my interrupts
use ansi to make floppas eyes red
Evil floppa
make bad apple
Sorry I’ve been wasting my time these past couple days doing stupid childish shit
if anything, osdev is a waste
do whatever you want man we dont care
As long as you do stuff that makes you happy and that doesn't hurt yourself we'll all be happy
Yeah. I honestly agree with this atm
I’m at a plateau
Don’t know what I can implement that will be fun anymore
The ata driver was fucking lit
uhh file system
idk its the next logical thing
file system then programs and crap
I need to rewrite my file system entirely
Vfs is ok
Tmpfs is not it tho
the hard drive one
File system ≠ ata driver
I don’t want people to lose interest in my project tho :’(
I feel like if I don’t post enough people will stop looking
we're always here
yay thank you infy
guess what guys
keyboard driver

my old one is outdated
so im making a new one
and re adding it
because for a long time it didngt work with my new kernel api
i made the keyboard driver way in the beginning
PLAYSTATION/2
Made a keyboard data structure
With a normal and shift key map
Each keyboard_t struct has a keyboard_layout_t enum in it
So I can easily make many layouts
I have an interesting idea
Making each subsystem have its own binary
So each is a loaded elf file
Running as a process
Like a userspace process
Maybe I just redescribed fucking microkernels god damn it
so basicly tou want to make a microkernel ?
you can mix what you have currently with thay if you want
to get a hybrid
like for exemple driver in userspace but vfs in kernel spacz
Yeah but the hybrid term is kinda dumb
shout out to you random person
ayy
if only it worked on macos 😭
Fab kinda goated ngl
not random person 
shout out to you not random person
bro it should but u wont help me fix it and I dont have a macbook 😭
fabricate works!
certified unix, they said
I have no idea what the problem is lmao
I don't do lua
when I get home in [today but in like 7 hours] I'll fix it
I’m not gonna use the keyboard for now
I’m not even close to a good userspace
I should start porting software
I have all the syscalls to implement bash
the chariot ecosystem must grow
Just need to port a stdlib then
I made my pio ata driver better and faster
Also thank u guys for your continued interest and support towards my project. I really appreciate all of you and it makes me happy.
OSdev is actually one of the few things that makes me happy
Anyways. It might be smp time
I need to figure out AP startup
Thankfully I have synchronization primitives so my whole kernel api is thread safe
Also I might make my kernel modular soon
I’ve been reading lots of FreeBSD code
Which is ironically used by the iPhone I’m on rn
Darwin ftw
Ok I decided what I’m gonna work on
New vmm
The api will stay the same
At least the core api
It’s too much work to to keep aslr so I’m removing that. It’s basically a useless feature
Also I might work on making my heap allocator even faster
based
OHNO MULTIPROCESSING 
Yeeee
I made a nice syscall dispatch macro too
nice
Imma make a new todo list
Let’s see if I get any of these goals done tonight
I think fixing the box allocator is doable
ahh everyone has multitasking except me 
It’s not super hard
well i got nothing done

Spent too much time documenting
I’m making all the source files have a description at the top after license
🍎 🥀
I promise I’ll work on the kernel tonight it’ll just be later at night
Probably some more documentation work and some kernel internal stuff
Particularly the allocator
I really wish i could explain why this is so funny but I can’t
This is fucking hilarious
The joke is that those are the three rotating presidents (yes, that’s not a joke) and all of their names say shit like “seik the cheater” “seik that’s fucking us” and “seik that will destroy us” but it’s stylized as Arabic names😭😭
its a meme from 2027, you wont understand
True statement
Working on the kernel rn
First time in a bit that I’ve sat down and worked on it
I usually do it for short periods of time but now I’m locked in
Redbull at 9pm
Most locked OSdev
insane
yay
ew kernel shell
That was before I knew how cringe that was
But that shell was in userspace
I had a cursed ass userspace entry function
oh
otos is my first project with userspace 
other 3 times it was kernel shell with giving programs a struct with function adresses
can't wait for tf2os
:O
u really want inline asm for this
first of all u want to use EAX, you also want the compiler to not attempt to change the width of the store, which it may do
Ok bet
Thank u
I kinda realize now that the compiler has the discretion to do that
I’ll fix this now
oof
now I gotta fix it too
FUCK YOU
Anyways
Apic driver in the works
I already did the trampoline
So the protected mode jump is done
Now I just need a routine to actually call my trampoline
Then I need an ap start up function
Which will be called by the trampoline after the task register and shit is loaded
Just wish life didn’t get in the way as much because I would have a much better kernel
I never had a name for my kernel but I think I’ll just name the TFSK
(The Flopperating system kernel)
the f***ing system kernel 
I might get smp done by tonight or tmr
good luck!
so you ain't 
test it and get funny printf bugs 
My printf implementation might be some of the most horrendous shit I’ve ever made
My str.h is a straight 1000 lines of pain
DIE
DONT BRING THAT UP EVER
"thy end is now"
You’re banned from the crusty crab for bringing up my attempted mmio
secret formula (the real contents of void fuckshit())
krusty krab knockoff 😔
void fuckshit() lore goes hard
In nyaux we trust
Idk they had many chances
The whole staff got fed up bc he has some mental issues
oh
I’m no stranger for mental illness either tho
Amarat lore goes insane
I wish I was here for the real bad parts of my life lol
I was here when I was homeless
OSdev: veteran difficultly
OSdev with no wifi went crazy
Life sucks man
OSdev brings me joy tho
nah mostly america 
same
I shoved my entire apic driver into interrupts.c
I meant apic
it said ata for a moment
ata dma can not be this good to deplete even the budget for making .c files
/j
relatable
But I did some things to make it decently fast
I need dma in general
No idc to port anything
I don’t even have a proper libc
Only my own lib
Floplib ™
are you gonna make your own software
Yes
fartslibC--
based
(same)
there better be a floppaos sdk
you have 3 days, i'm gonna go assemble the mafia 
Yeah there will be
yay
Me with gang connections:
Jk
“Took her to the o” by king von
a
My ass is tryna stay out of crime and I listen to music that does nothing but talk about crimes 🔥
Abg by quando rondo is fire too
many people here listen to love songs but i dont think they get any dont worry 
Real 😞
time to add this song into "the temporary brain contents (wiped every time i sleep)"
Yes
real 
Quando Rondo - ABG [Official Music Video]
Life B4 Fame Mixtape out now!
Stream/Download: https://quandorondo.lnk.to/LB4FID
From The Neighborhood To The Stage Out Now!
Stream/Download: https://quandorondo.lnk.to/FTNH2TSID
[email protected]
Follow Quando Rondo
https://www.facebook.com/QuandoRondo/
https://www.instagram.com/quando_ron...
Straight heat
good song i guess (im a metalhead 😔)
ironically my smp scheduler is just 300 lines


