#The Flopperating System (tfos) - x86 32 bit Hobby OS

1 messages · Page 11 of 1

bold grove
#

Implemented sys_print meme

bold grove
#

Happy 20

#

Happy 20!

simple vault
elfin basin
primal nymph
#

(if it's an adroid)

#

a few seconds with iphone

#

lol

radiant grove
#

moneyay 🔥 🔥 🔥 🔥

bold grove
#

so 13 months

radiant grove
bold grove
#

Pmm rewrite may actually be due

radiant grove
#

41st pmm rewrite
59th vmm rewrite
54th scheduler rewrite

bold grove
#

My new allocation technique is now done

#

Not my pmm, my heap is now done

#

Im working on pmm rn

bold grove
#

There’s a bug in proc_create_init_process()

radiant grove
#

awh

#

REWRITE THE FUNCTION!!!

bold grove
ivory blade
bold grove
#

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

paper cloak
#

What was it

bold grove
#

@paper cloak i switched to a new allocator type and removed slab

#

wanted something unique

paper cloak
#

so you don't know what was the bug

bold grove
bold grove
paper cloak
#

Ahh fun

paper cloak
bold grove
#

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

paper cloak
#

It's not, you check for free memory by scanning O(n)

bold grove
#

oh

#

so i guess its just a bitmap then

#

but its more unique i guess

#

and its pretty fast

paper cloak
#

It's worse because you don't actually use a bitmap

#

You store a byte in every block or whatever

bold grove
#

yes

#

how could i make it better

paper cloak
#

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 meme

radiant grove
#

memory rewrite number [insert large number]

paper cloak
#

Kernel heap allocation is already solved!! Use a proper slab allocator

#

(it's not but a proper slab allocator is pretty damn good)

bold grove
#

i just wanted something different

#

i guess

#

i implemented kmem months ago

radiant grove
bold grove
#

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

radiant grove
#

RIP

bold grove
radiant grove
bold grove
radiant grove
#

tf happened?

bold grove
#

the gdt was hard for me back then believe it or not

radiant grove
radiant grove
bold grove
radiant grove
#

why is paging brown

#

is it evil

bold grove
#

yes.

#

idk actually why its brown

radiant grove
#

nullium ptsd

bold grove
#

Kvass: the return of the GDT

radiant grove
rigid root
bold grove
#

changed 4 lines of code!

#

nice...

rigid root
#

Now change 5 lines

bold grove
rigid root
#

☠️

bold grove
#

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

high hawk
bold grove
bold grove
#

and i fixed my init process farting everywhere

high hawk
#

what kind of heap allocator did you implement?

bold grove
#

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

bold grove
high hawk
#

firstly on your definition of valid

#

and secondly, on how exactly you implemented this

high hawk
bold grove
high hawk
#

so it's basically a bitmap allocator of 32 byte blocks?

bold grove
high hawk
#

I suppose it's ok

#

many people do worse allocators

bold grove
#

i just wanted something easy to understand and unique, i guess thats what i mean when i ask if its valid

high hawk
#

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

bold grove
#

true, i didnt think of that

high hawk
#

if almost all of your allocations are 32 bytes, it's fine tho

#

secondly

high hawk
#

you could store 8 such flags in per byte if you have a bitmap

bold grove
high hawk
bold grove
#

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

high hawk
#

nice

bold grove
radiant grove
#

when is floppaos getting rewritten in rust (its gonna be blazing fast 🚀)

bold grove
#

Fuck rust

#

Way too complicated for my smooth brain

radiant grove
#

i just made it up

#

there was no test until 3.14 seconds before

bold grove
#

Lowkey so much OSdev has made me a much better programmer

bold grove
radiant grove
bold grove
#

I hope that’s sarcasm

radiant grove
#

im legally obliged to put a rocket emoji

radiant grove
#

unless 🚀

bold grove
#

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

radiant grove
#

jk floppaos will obviously have a netscape fork

bold grove
#

i dont really need a browser for the goals of this os

radiant grove
#

fair

bold grove
#

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

hasty anchor
#

they are very finnicky and annoying to get right

bold grove
bold grove
#

For shit like SIGINT, etc

#

Sigint being a graceful exit

hasty anchor
#

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

bold grove
#

Sounds like a pain in the ass to implement

paper cloak
torpid viper
#

i belive posix say masking SIGSEGV is ud

#

oh maybee you were talking about SIGKILL and SIGSTOP

bold grove
bold grove
#

Working on signals rn

#

Read up on them more

#

1am code sesh

ebon mirage
# bold grove Read up on them more

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

elfin basin
#

How long did you stay up

bold grove
bold grove
#

pushed all the signal stuff

#

also i switched to a new text editor

bold grove
rigid root
#

people before compiler atomics were invented

violet anchor
#

my code had atomics like that

bold grove
bold grove
#

mutexes added

radiant grove
hasty anchor
bold grove
#

Finally using a macro for my isr stub

elfin basin
#

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

bold grove
paper cloak
bold grove
paper cloak
bold grove
#

I’m gonna make an early memory allocator

#

Just a free list of pages

bold grove
#
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

crimson plover
#

still got that race condition between spinlock_unlock and sched_block

bold grove
#

Redid my interrupts

radiant grove
#

NO THE REWRITES ARE ESCAPING MEMORY MANAGEMENT

static tartan
bold grove
#

But the mutex isn’t arch specific

static tartan
bold grove
static tartan
bold grove
#

Send the chat. But I found it

#

Star my repo and I’ll star yours

static tartan
bold grove
#

Send me your repo

static tartan
#

it's in the chat

#

but ok

bold grove
static tartan
bold grove
#

Nice

#

adding pushlocks

#

@paper cloak pushlock gang

paper cloak
#

why not turnstiles

bold grove
paper cloak
#

No

#

turnstiles provide an easy way to do PI

bold grove
bold grove
#

@paper cloak

#

here is my turnstile, what else does it need

#

i actually made it more sophisticated

#

Added priority handling within

paper cloak
elfin basin
#

Tuna?

bold grove
paper cloak
bold grove
quaint onyx
crimson plover
#

its a freestanding environment

#

there is no posix

crimson plover
#

his names are probably violating 50000 other standards

#

who cares if he is not using them

hasty anchor
quaint onyx
#

well I cause ub all the time and also never ran into issues but one day you might.

hasty anchor
#

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

quaint onyx
radiant grove
#

you dont have to abide by the rules of something that you dont want to comply with

crimson plover
#

you explicitly replied to a url of a kernel

quaint onyx
#

No.

#

I explicitly mentioned his name in a jokeful manner.

#

You started tunnel visioning on his kernel.

crimson plover
#

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

quaint onyx
#

You are excused.

elfin basin
#

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

bold grove
#

Most sane Flopperating system thread conversation

bold grove
#

Anyways

#

Turnstile work going on

azure rapids
#

always add ub

bold grove
#

made an init system

simple vault
bold grove
#

@paper cloak I did turnstiles I think

#

Added PI

paper cloak
#

Your locking in particular is wrong I'm pretty sure

#

Also looking through every turnstile to find yours is... questionable

bold grove
#

making an early memory allocator

#

idk what i will use it for

#

but itll exist

bold grove
#

new logo!

bold grove
#

@paper cloak day 3 of tryna do turnstiles

paper cloak
static tartan
radiant grove
crimson plover
#

its the dragon scroll

bold grove
#

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

radiant grove
#

ata

foggy cedar
#

And it doesn't take long to realize why

foggy cedar
#

You should still look into DMA anyway

bold grove
#

I’ll keep this PIO one for now

foggy cedar
#

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

foggy cedar
#

Yes

#

Absolute cancer

radiant grove
#

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

bold grove
#

You use inw too

#

loooooong ass macro

#

#define TURNSTILE_HASH_INDEX(lock_addr) ((((uintptr_t) (lock_addr)) >> 3) & (TURNSTILE_HASH_SIZE - 1))

#

(((( trl

radiant grove
#

i was supposed to use an inw but i used an inb

bold grove
#

Send link

#

Curious

radiant grove
#

😔

bold grove
#

So yeah, this driver is slow as fuck

radiant grove
#

anyways im gonna write another one later im making a bootloader for the funny

bold grove
#

Like. Extremely. Fucking. Slow.

radiant grove
bold grove
#

Look at my new monitor tho guys

radiant grove
#

nice

radiant grove
bold grove
#

It would sound like an tornado siren

#

POV my driver:

radiant grove
#

i have a thinkpad with an IDE hard drive it sounds like skeleton bones crackling

#

its like papyrus lives in there or smth idk nooo

bold grove
#

That’s normal

radiant grove
#

lel

bold grove
#

my driver makes my computer heat up 🔥

#

floppaos comes with free heating and air conditioning

radiant grove
bold grove
#

Making drivers is fun

radiant grove
#

real

bold grove
#

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

radiant grove
#

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" trl

bold grove
#

I get my car on Friday!

radiant grove
simple vault
static tartan
bold grove
#

I added timeout to my ata driver

#

Which fixes the freeze upon boot

#

I just set the timeout to 10000

#

Whatever

bold grove
#

Happy early new years to everyone!

#

Imma make a special winter edition of the Flopperating system today!

bold grove
radiant grove
bold grove
#

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!

bold grove
bold grove
#

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

bold grove
#

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 ^

bold grove
#

finally added all my init stuff to my init function

#

so my kmain is very simple now

#

very simple, just like my brain meme

bold grove
#

God I have this stupid ass fucking issue in my vfs

violet anchor
foggy cedar
#

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

bold grove
#

Don’t plan on having one

#

Flopperating system is purely 32 bits

#

Floppa only understands 32 bit

bold grove
#

My init() basically does everything

bold grove
foggy cedar
#

i usually use the default theme but it was too dark in broad daylight

#

with this theme i can read better

bold grove
#

Let’s get FloppaOS to 30 stars gang

#

Star it if you haven’t already!!

radiant grove
#

i ate my github account

#

have a star react

bold grove
bold grove
radiant grove
#

specifically like aluminum spaghetti

bold grove
radiant grove
bold grove
radiant grove
#

😭

#

real

bold grove
#

Waste of time to implement tbh

radiant grove
#

nah i just dont like microsoft

radiant grove
#

its useful but like

#

idk

bold grove
#

All my homies hate Microsoft

radiant grove
#

real

radiant grove
#

also i wrote an ATA driver for my bootloader

bold grove
#

Smoking that bill gates pack

radiant grove
#

horribly simple

#

it only knows like literally one controller

#

primary master only 😭

bold grove
radiant grove
#

good enough for now

bold grove
#

Take a look at my driver

radiant grove
#

mk

bold grove
radiant grove
#

i can send mine (or maybe later when i open source the entire project idk)

radiant grove
bold grove
#

Open source it then

radiant grove
bold grove
#

No reason to keep it closed

#

No one can help you lol

radiant grove
#

currently it just kind of looks pretty and thats it

bold grove
#

My kernel doesn’t do jack SHIT

#

But it’s still posted

radiant grove
#

😭

#

still tho

#

its too bare bones to post the bare bones version nooo

bold grove
#

fixed the stupid vfs issie

#

clean

simple vault
ivory blade
static tartan
crimson plover
#

why is it interesting

crimson plover
torpid viper
hasty anchor
paper cloak
#

why __assert

hasty anchor
#

Dont question my naming schemes of like 3 years ago meme

radiant grove
bold grove
#

Rewriting my init system rn

bold grove
#

Well

#

Maybe not

#

Idk

#

This is boring

#

Init system is a boring ass subsystem

#

Might work on some drivers

#

Maybe I should do uacpi

bold grove
#

Idk

#

Can’t really find anything interesting to work on

#

I guess I can make a better logging system

rigid root
bold grove
#

I’m having some shrimply krill issues

bold grove
#

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

bold grove
#

rehauled the heap allocator

static tartan
crimson plover
#

he is not

#

what gives u that impression

static tartan
#

oh im a dumbass
i didnt even look at the repo

#

mb

bold grove
radiant grove
bold grove
bold grove
static tartan
# bold grove 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

bold grove
static tartan
bold grove
#

Besides making executables

bold grove
#

Rehauled the early allocator

bold grove
#

Beer for lunch today

azure rapids
paper cloak
#

albeit not with as much control over registers

azure rapids
paper cloak
#

and you can have free "portability" using things like sse2neon

azure rapids
#

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

paper cloak
#

probably

#

but there are better more portable ways to indicate vectorization too

#

using #pragma omp simd

bold grove
azure rapids
bold grove
#

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

static tartan
azure rapids
#

Prob not here

#

I’m interested

static tartan
#

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)

bold grove
azure rapids
#

Oh okay

bold grove
#

Flopperating system thread is our thread

static tartan
static tartan
azure rapids
bold grove
#

Proleteri svih zemalja, ujedinite se!

#

Yall just radicalized me

static tartan
# azure rapids 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 🔥

azure rapids
#

oh wtf

#

that's sick

static tartan
#

log2(16 floats) = 4
i halve 4 times
checks out

static tartan
#

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

bold grove
azure rapids
#

I was TRYING to get clang to emit something like that

#

but guess what

static tartan
bold grove
#

Clang sucks assmeme

static tartan
bold grove
#

Gcc better

azure rapids
#

It decided to just constant fold the whole thing

bold grove
static tartan
bold grove
#

Ahoj motherfucker

simple vault
bold grove
#

You just triggered so many Slovaks

#

💀

#

Serbia is fucked

azure rapids
#

well okay

#

that's one way to codegen it

static tartan
static tartan
gray cairn
#

random

ivory blade
#

omg i just learned gcc is not gnu c compiler nooo

paper cloak
static tartan
bold grove
#

It does like everything

ivory blade
bold grove
bold grove
#

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.

timber terrace
#

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

quaint onyx
#

Nvm that's 16 bytes.

bold grove
#

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

bold grove
#

Dang it’s been 5 days since my last commit

#

I’m just gonna commit what I have

rigid root
#

ultra with literal months since last commit ☠️

radiant grove
bold grove
#

Sorry guys.

#

I’ll update you guys when I’m better

#

I haven’t had me medication for several days

#

So good night

radiant grove
#

WHAT HAPPENED

bold grove
#

Too much

azure rapids
radiant grove
#

sad tho

#

good luck

ivory blade
#

why didnt discord scroll wtf

#

sry

ivory blade
bold grove
#

Ok I got discharged

#

I had some mental episodes

ivory blade
#

stay hard

bold grove
#

I’m good guys :)

azure rapids
static tartan
coarse root
bold grove
#

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

bold grove
#

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()

bold grove
#

I’m thinking about making my physical allocator a free list

#

I know that a buddy system is basically a free list but

bold grove
#

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 ok

#

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

bold grove
#

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

bold grove
#

Man I’m doing some testing and Flopperating system is slow 😖

bold grove
#

This song is so good

#

This too

radiant grove
#

nice

bold grove
#

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

bold grove
#

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

bold grove
#

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

bold grove
#

Ive been doing so much yapping in here and like no work on the os

#

Imma redo my GDT (least relevant thing ever)

bold grove
radiant grove
#

you WILL, yes, WILL rewrite the gdt

#

its a part of memory management crap too

bold grove
#

i got jumpscared by floppa

radiant grove
simple vault
#

Imagine coding really late at night and having that show up.

bold grove
#

Documented my interrupts

violet anchor
bold grove
static tartan
bold grove
#

Sorry I’ve been wasting my time these past couple days doing stupid childish shit

radiant grove
#

do whatever you want man we dont care

simple vault
bold grove
#

I’m at a plateau

#

Don’t know what I can implement that will be fun anymore

#

The ata driver was fucking lit

radiant grove
#

idk its the next logical thing

#

file system then programs and crap

bold grove
#

Vfs is ok

#

Tmpfs is not it tho

radiant grove
#

the hard drive one

bold grove
#

File system ≠ ata driver

bold grove
#

I feel like if I don’t post enough people will stop looking

rigid root
#

we're always here

bold grove
#

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

radiant grove
bold grove
#

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

torpid viper
#

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

bold grove
bold grove
#

Gonna switch to @crimson plover ‘s build system, fabricate

#

Shout out to him

radiant grove
#

shout out to you random person

azure rapids
#

if only it worked on macos 😭

languid talon
bold grove
radiant grove
crimson plover
bold grove
#

fabricate works!

radiant grove
azure rapids
#

I don't do lua

#

when I get home in [today but in like 7 hours] I'll fix it

bold grove
#

keyboard driver added!

#

made a cute data structure for it

bold grove
#

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

azure rapids
simple vault
bold grove
#

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

radiant grove
radiant grove
bold grove
#

I made a nice syscall dispatch macro too

radiant grove
#

nice

bold grove
#

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

ivory blade
#

ahh everyone has multitasking except me nooo

bold grove
bold grove
#

Spent too much time documenting

#

I’m making all the source files have a description at the top after license

static tartan
bold grove
#

No work so far

#

Might work on the heap

bold grove
#

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

bold grove
#

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😭😭

radiant grove
# bold grove

this is funny even without understanding what it says

#

peak meme

ivory blade
bold grove
bold grove
#

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

radiant grove
#

insane

azure rapids
#

yay

ivory blade
#

ew kernel shell

bold grove
#

But that shell was in userspace

#

I had a cursed ass userspace entry function

ivory blade
#

otos is my first project with userspace nooo

#

other 3 times it was kernel shell with giving programs a struct with function adresses

final wyvern
#

can't wait for tf2os

bold grove
#

Real

#

My os is team fortress os

bold grove
#

i think its time for smp guys

#

rewriting scheduler

azure rapids
#

:O

bold grove
#

doing mmio tho

#

bc i didnt have that

#

LETS GOOO

blissful grove
rigid root
#

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

bold grove
#

Thank u

#

I kinda realize now that the compiler has the discretion to do that

#

I’ll fix this now

radiant grove
bold grove
radiant grove
#

off to gulag you go for insulting the highest power

bold grove
#

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)

radiant grove
#

the f***ing system kernel trl

bold grove
#

I might get smp done by tonight or tmr

bold grove
#

Done studying for school

#

Lock in time

#

Wish me luck gang

azure rapids
bold grove
#

I’m almost done with smp

#

Haven’t tested anything tho

radiant grove
#

test it and get funny printf bugs trl

bold grove
#

My str.h is a straight 1000 lines of pain

radiant grove
#

i need to make my own printf

#

just for experience

#

except like

#

no floats trl

radiant grove
bold grove
radiant grove
radiant grove
bold grove
#

In nyaux we trust

radiant grove
#

IT CAME FROM NYAUX?!?!?!?!?

bold grove
#

Ofc

#

This was before you were in the server

#

I think

#

I thonk thonk

radiant grove
#

i think i joined in nyaux's last days

#

before the dude left

bold grove
#

He didn’t leave

#

He got banned

radiant grove
#

banned

#

i wonder if he's coming back though

#

or they

#

whoever

bold grove
#

Idk they had many chances

bold grove
bold grove
#

Amarat lore goes insane

radiant grove
#

im no stranger to people getting fed up with me nooo

#

happens sometimes lel

radiant grove
#

amarat video essay (3:38:34 long)

bold grove
#

I was here when I was homeless

#

OSdev: veteran difficultly

#

OSdev with no wifi went crazy

radiant grove
#

insanity

#

i mean ive had some unjust bullcrap in life as well i empathize 😔

bold grove
#

OSdev brings me joy tho

radiant grove
radiant grove
bold grove
#

I shoved my entire apic driver into interrupts.c

radiant grove
#

WHAT

#

oh nvm

bold grove
#

I meant apic

radiant grove
#

it said ata for a moment

#

ata dma can not be this good to deplete even the budget for making .c files nooo /j

bold grove
#

I don’t even have dma

#

I just have a pio driver

radiant grove
#

relatable

bold grove
#

But I did some things to make it decently fast

radiant grove
#

fair

#

honestly make a dma driver when you can

#

speed™

bold grove
#

I need dma in general

radiant grove
#

true

#

sata when

#

floata

#

does floppaos have any ported software actually

bold grove
#

I don’t even have a proper libc

#

Only my own lib

#

Floplib ™

radiant grove
#

are you gonna make your own software

bold grove
#

Yes

radiant grove
radiant grove
#

(same)

#

there better be a floppaos sdk

#

you have 3 days, i'm gonna go assemble the mafia trl

bold grove
radiant grove
bold grove
#

Jk

radiant grove
#

gang vs mafia

#

bowser vs eggman type crap

bold grove
#

“Took her to the o” by king von

radiant grove
#

a

bold grove
#

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

radiant grove
#

many people here listen to love songs but i dont think they get any dont worry trl

bold grove
#

Real 😞

radiant grove
bold grove
#

Yes

radiant grove
#

real nooo

bold grove
#

Straight heat

radiant grove
#

good song i guess (im a metalhead 😔)

bold grove
#

ironically my smp scheduler is just 300 lines