#Nullium

1 messages Ā· Page 7 of 1

wild glen
#

(dont forget about that kernel rename trl)

#

Joe

#

JoeOS

#

learn vga colors with the microkerneln't

wild glen
#

i ported my stupid pmm debug table to my terminal emulator

#

i need to allocate some memory for it so i can get more than 80x25

#

its 80x25 by default idk why it's vga and it should fit on most screens

#

if it doesnt then destroy computer

wild glen
#

pmm lore

#

i am not good with words at all

wild glen
#

ok so uh

#

i got a really funky asf triple fault

#

i am not dealing with this shit so im gonna make my list have like 16000 entries and refuse to elaborate

#

ok once i merge free entries i am done with this shit

#

messed around with color palette

#

ok i need to get a better color choice

#

this shit is literally the mac terminal 😭

#

questionable

gloomy musk
wild glen
#

holdup this is fire

gloomy musk
#

yeah it's quite neat!

wild glen
#

beige terminal trl

#

might look good

#

i wanted beige because that's how (more mac :s) the open firmware screen looked on my ibook

#

though uhhh it's supposed to be white

#

rip screen

gloomy musk
wild glen
#

if you look at colorful images this is unnoticed but if its like white then it will look yellow

wild glen
wild glen
#

palette

#

indigo :0

gloomy musk
#

oooh, that looks really nice!

wild glen
#

didnt use the palette generator though

#

idk how to add more colors to it

#

yeah idk im keeping this it looks nice

#

anyways so im almost done with the pmm then i can turn on paging

#

then i need to figure out how to use something thats like 3 gb far into the memory

wild glen
#

the startup terminal was originally on the top left but i think this is kinda really dum dum

#

so i centered it

#

i can make the black border some other color but it's still centered

#

no more border

gloomy musk
#

nice šŸ˜Ž

wild glen
#

banger terminal

#

it should just take up the entire screen but this is really only for boot

fluid moon
wild glen
wild glen
#

yo guys

#

im done with the pmm

#

no seriously i finished it somehow

gloomy musk
#

let's goooo!

wild glen
#

paging and vmm time!111111111!!!!!!!!!

#

(round 3 trl)

gloomy musk
#

šŸŽ‰

wild glen
#

ok its on github

wild glen
#

my thing triple faults

#

it survives for like 10 seconds then dies

#

now it froze up and doesnt triple fault?

#

what the fuck is going on

#

it just sits there menacingly

#

maybe the framebuffer is hidden somewhere in the world's ass and i have to add it to the page directory?

#

it literally doesn't output anything it isnt dead

#

it's just silent

#

it's the framebuffer i swear

#

because if i mark all tables as present it doesnt crash

#

(idk what absolute dumbass marks all page directory entries as present but still)

gloomy musk
#

hmm

wild glen
#

idk it drew some weird lines at the top of the screen

#

before dying

gloomy musk
#

sounds like improperly mapped framebuffer and/or IVT mayhaps

wild glen
#

ivt??

gloomy musk
#

Interrupt Vector Table

#

IDT basically

wild glen
#

that's real mode tho iirc

#

yeah i think it's a framebuffer thing i need its' address

gloomy musk
wild glen
#

all good

#

i thought the framebuffer is in the first 4 mb but i guess not

#

theas fucking gnoo multibto 2nd gnuslashtroll

gloomy musk
#

You can just get the framebuffer's address and start mapping there

wild glen
#

yeah ik

#

ima print the address on the screen first i wanna know where it is

#

0x3000000 (50331648)

#

50 mb

#

i dont think that's the first 4 mb trl

gloomy musk
#

XD

wild glen
#

i think i already know how to map it

#

ok yeah ima just map it

#

i need to update my pmm slightly so it wont allocate 3 gb's in 😭

#

mildly funky piece of shit

hushed briar
#

FloppaOS kernel init face ahh

wild glen
# hushed briar

i do not see anything wrong with whatever the fuck this is

hushed briar
#

I just found it funny because of the :meme I put after GDT

wild glen
#

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

hushed briar
#

BRO DIDNIT

#

DID IT

gloomy musk
wild glen
#

redemption arc

#

i can finally do somethi- vmm jumpscare

fluid moon
hushed briar
#

Slab allocator šŸ—£ļø šŸ—£ļø

gloomy musk
#

Slab is quite fun to implement :3

hushed briar
#

It’s a banger

#

Free lists of different object sizes šŸ—£ļøšŸ—£ļøšŸ—£ļø

#

Everything is a fucking free list at the end of the day

wild glen
#

are they vmm stuffs?

gloomy musk
#

you use it for variable sized objects

wild glen
hushed briar
hushed briar
wild glen
hushed briar
#

Imagine you were to do a 64 byte allocation

wild glen
#

yes

hushed briar
#

With a page allocator

#

You would waste

#

A whole page

#

For one allocation

wild glen
#

true

hushed briar
#

To mitigate this issue

#

Which is called fragmentation

#

You create a list of smaller sized objects

#

So for example

#

Make a list of 32 byte blocks, 64, 128. 256

#

So let’s say you request a 100 byte block

wild glen
#

mk

hushed briar
#

It will give you the block of the closest size

#

Which in my slab allocator would be 128

#

Make sense?

wild glen
#

uhhh confused

wild glen
hushed briar
#

Well a page is bigger than these blocks

#

They’re typically called objects

wild glen
#

oh

hushed briar
#

You will split a ā€œpageā€

wild glen
#

wait i think i figured it out

hushed briar
#

Into blocks of these did

#

Size

#

So for example

#

A slab with a size of 64

wild glen
#

you split a page in halves and then you can allocate a page partially

hushed briar
#

Would divide a whole page

#

Into blocks of 64

hushed briar
#

You create many slabs of different object types

#

So you have them on standby

hushed briar
#

Rather than requireing a new page allocation each time

wild glen
#

what if something requests more than a page

#

than just like one page

hushed briar
gloomy musk
#

I actually made a diagram but it's way too big XD

wild glen
#

make another stack trl

hushed briar
#

If alloc_size < page size { pmm alloc (size) }

#

That’s pseudo code

#

For how you would fall back to pmm

#

I should at least finish the brackets lol

wild glen
#

lmao

hushed briar
#

Now in my os, I don’t fall back to the pmm

#

If a heap allocation goes over page size

#

I created a special allocator for that

#

Which is just a fee list

#

Free list

#

Like this

wild glen
#

i mean i alr have a freelist so i can just somewhat add onto it

#

or not

#

ok no wait

hushed briar
#

Yeah

#

You can

wild glen
#

yeah fair

hushed briar
#

Just take it from your preexisting free list

#

The only reason I do the free list within my heap is because I don’t want it to be tied to my pmm

#

For some reasons

wild glen
#

is slab also a part of a pmm or is it something else

hushed briar
#

Mainly subsystem separation

#

No

#

A pmm just shits out physical pages

#

That’s all it does

wild glen
#

yes

hushed briar
#

And frees them

#

So a slab doesn’t do that

wild glen
#

ok slab is just a fancier pmm that doesnt shit out pages but shits portions of pages?

#

or smth like that

#

i think my stupid take murdered the chat

gloomy musk
wild glen
#

quite fancy

#

ima make it so the regular pages get identity mapped first for paging and shit first tho

#

because inaccessible memory would be really funny but im boring so i dont want to do that trl

fluid moon
#

you’re gonna need it

hushed briar
wild glen
fluid moon
hushed briar
#

Yeah and for forking the child inherent the parents addr space

#

fork() is a fucking mindfuck

fluid moon
wild glen
#

wtf is fork()

hushed briar
gloomy musk
#

no, implement spawn instead trl

fluid moon
hushed briar
#

don’t do that to him

gloomy musk
#

okie fine XD

gloomy musk
hushed briar
#

Because it’ll just teach him that he’s better to spawn threads

#

When it’s not

#

It’s always better to fork if you can

#

Not threads processes mb

fluid moon
#

you want the parent to have control over children

hushed briar
#

Yeah

wild glen
hushed briar
#

Spawning is only for some stuff

hushed briar
#

But with the parents address space inherited by the child

gloomy musk
wild glen
hushed briar
#

No. It uses the address space of the parent

wild glen
#

oh

hushed briar
gloomy musk
wild glen
#

then why not just use the parent's address space am i skipping some tier 5932 knowledge here

gloomy musk
fluid moon
#

which is pretty bad

#

and used for spawning tasks from the kernel but the user COULD call it, it just shouldn’t and should opt for fork

fluid moon
gloomy musk
#

I should append that by "and not just in general spawning is bad" I mean the process creation mechanism not necessarily POSIX's implementation

fluid moon
#

bash
|> cat

where cat should be dependent from the bash process and die in case of the parent execution end

#

so you use fork, don’t quote me on any of that though, I’m not the unix expert so I’m not sure if this is the real reason

gloomy musk
#

well, imma do spawn anyhow šŸ™ƒ

fluid moon
gloomy musk
#

works just fine for Windows, evidently

fluid moon
lethal summit
#

it doesn't use the same address space

gloomy musk
fluid moon
#

irrc

gloomy musk
lethal summit
# fluid moon it’s COW

yes but they aren't "the same address space" which is why making variables in the parent won't be seen by the child after fork

#

implementation wise sure

#

but that statement makes it sound like they share the same memory and thus parent variables made after fork would be visible by child

fluid moon
#

I’m genuinely asking

lethal summit
#

that statement (above) makes it sound like forking allows such things

lethal summit
#

the proper way to phrase it is that the parent address space is cloned at the time of fork, but whenever a parent modifies a page belonging to itself, a copy of the page at the time of the fork is mapped to the child to replace the previous parent page so the child doesn't see parent modifications after fork

fluid moon
#

alternatives?

lethal summit
gloomy musk
fluid moon
#

I’ve fallen in the osdev pipeline

gloomy musk
#

šŸ„€

hushed briar
#

But yeah my language was unclear

lethal summit
#

šŸ’„

lethal summit
fluid moon
# gloomy musk šŸ„€

honestly the fact that the unix model is so documented makes it so easy to follow, and seems a more robust implementation than reinventing the wheel

lethal summit
#

🤪

hushed briar
#

Reminds me of the memcmp acpi meme

lethal summit
#

we should all use memset to verify that every memory address is zeroed at boot

#

except for kernel code

fluid moon
#

I’m gonna drop a cringe fact about my kernel lib

lethal summit
#

5 minute boot process with 4 minutes and 59 seconds of memset

#

satisfying

lethal summit
hushed briar
#

assert.h is a banger tho

fluid moon
lethal summit
#

make custom assert for maximum aura (just kidding I did this because my macOS build was failing because GCC couldn't find assert.h)

#

(no idea how that happens because it finds everything else just fine)

#

do asian operating systems call it chopstick instead of fork

fluid moon
lethal summit
fluid moon
lethal summit
#

have fun šŸ¤‘šŸ¤‘šŸ¤‘šŸ¤‘

fluid moon
#

open, read, write

#

and I don’t even have all primitives to implement them

#

I still have to write FDs, tables for processes and COW

wild glen
# fluid moon I’ve fallen in the osdev pipeline

1.) i want something that isnt unix!
2.) ok maybe a little bit of unix inspired stuff
3.) ima just make a terminal framebuffer its simpler
4.) ok im gonna make similar system calls to unix
5.) ykw what if i put every syscall on int 80h
6.) ah fuck it lemme make a unix compatible vfs just for shits and giggles

40 steps later

46.) shit i made a unix

wild glen
#

i might be at step 3

fluid moon
#

the unix-like vfs saves lives

#

I’m at step 6 already

wild glen
#

(problem is im considering putting syscalls at 80h

i have fallen to the unix)

wild glen
gloomy musk
#

I'm at step 3 probably, don't think I'm going any further tho XD

fluid moon
wild glen
#

ykw i surrender

ts unix now trl

fluid moon
wild glen
gloomy musk
fluid moon
wild glen
#

its still a microkernel so im still stuck in hell

#

if you want to follow a better os go to AssertOS managarm or something

hushed briar
wild glen
#

i wanna make my own but ill still port them for shits and giggles

gloomy musk
#

I won't cause I wanna keep my sanity somewhat intact KEKW

lethal summit
#

will there be oneium and twoium

wild glen
lethal summit
#

null is zero

wild glen
#

oh

#

didnt get it at first

wild glen
wild glen
#

wait how do i do page table and page directory stuff without it dying

#

like i mapped the framebuffer but still im not sure

#

wait nvm i might have an idea

hushed briar
#

In 32 bit you would typically do an recursive mapping

#

Thankfully I have a diagram of this

wild glen
hushed briar
#

/* 
    * Recursive mapping:
    *
    * PDE 1023 points to the Page Directory itself:
    *
    *   +-------------------------+ 0xFFFFF000
    *   | Page Directory (PD)     | <--- PDE[1023] points here 
    *   +-------------------------+
    *              ^
    *              ^
    *   +-------------------------+ 0xFFC00000
    *   | Page Tables (PTs) area  |  Covers PDE[0..1022]
    *   | +---------------------+ |
    *   | | PT 0                | | <-- PDE[0]
    *   | +---------------------+ |
    *   | | PT 1                | | <-- PDE[1]
    *   | +---------------------+ |
    *   | |        ...          | | <-- PDE[...]
    *   | +---------------------+ |
    *   | | PT 1022             | | <-- PDE[1022]
    *   | +---------------------+ |
    *   +-------------------------+
    *
    * virt address bit layout (32 bits):
    *
    *   [10 bits PDE][10 bits PT][12 bits offset]
    *
    * get pt:
    *
    *   0xFFC00000 + (PDE_index << 12) + (PT_index * 4)
    *
    * get pd:
    *
    *   0xFFFFF000 + (PDE_index * 4)
    */
wild glen
#

im not gonna ask why in the fuck its ascii but oh

wild glen
hushed briar
wild glen
#

mk

#

what for tho? (why)

hushed briar
hushed briar
#

Read the manual

#

I won’t be rude to you about it lol

#

Intel sdm

#

Banger read

wild glen
#

holy shit

#

i read an osdev wiki article rn tho

#

i got the point

#

its always at 0xFFFFF000

hushed briar
#

Yeah

wild glen
#

tmrw ima go figure out the paging management thingies

#

the recursive mapping and/or whatever other bs exists

#

slab(?)

wild glen
#

i'm door
john door the ceo of door

#

ok im somewhat confused about vmm like do processes just have their own specific areas that only they can access

#

like their own pagedir or smth???

#

are addresses just remapped? (system ones made inaccessible)

#

total mindfuck plz help

#

wait think time

so say a program is loaded at 10 mb
but it thinks its at 5
so 10 mb is mapped to 5
uhhhh is malloc still at 10?

#

is that pos fully isolated from other programs as well?

#

like it cant overwrite them

#

if a program switch happens a remap thing is done

#

maybe

#

how is it supposed to be done

#

trying to read a bunch of address space stuff rn

#

It is possible to provide each executable with its own address space, so that memory always starts at 0x0000 0000.

nice (source: wiki)

#

wait

gloomy musk
wild glen
#

true

#

reasonable diagram (TM)

#

this entire thing is an absolute brainfuck

#

or is it

#

no nvm its not really

#

peak osdev

wild glen
#

i figured the address shitamabobs out during the 30 seconds before math period was over trl

#

dumb question during an isr interrupt does the system leave user mode

#

until i finish doing shit with it

gloomy musk
#

pretty sure ye

wild glen
#

i needed to ask this or id go insane

#

i assume thats the only thing that happens and none of the vmm stuff is restored

#

if the pagedir was modified for a task for example

gloomy musk
wild glen
#

shit i dont have any more time this has to stay a mystery now :'(

#

afk

#

ima ping u when i come back

wild glen
#

@gloomy musk so what i meant is that say for each progress the pagetable/pagedir is modified slightly
i dont think it will modify itself back to the state the kernel uses it unless i explicitly program to make it do so

#

no shit moment but yeab

#

yeah

gloomy musk
#

so you wouldn't be switching back to the one you were using on startup

#

at least I don't think

#

don't quote me on any of this KEKW

wild glen
#

(jk i somewhat get the point

my wifi shit)

#

(help my wifi)

#

(aaaaa)

#

my wife
wifj
wifi

#

wii fit

#

absolute internet death

#

1 bar cellular service nooo

hushed briar
wild glen
hushed briar
#

That is literally one of the best diagrams I’ve seen for that concept

wild glen
#

true

#

HAVE LOT
S OF
#######
FUN

wild glen
#

dumbass confirmed? (name censored)

fluid moon
#

is it a steam chat? lol

wild glen
#

yes

#

he sent "fuck" afterwards

#

vro? šŸ’€

fluid moon
#

people sending steam messages are weird

wild glen
#

this guy literally has discord but chose to use fucking steam

fluid moon
wild glen
#

i know this guy irl

fluid moon
wild glen
#

bro needs urgent help bruh

#

no excuses

#

he's mentally insane

fluid moon
wild glen
wild glen
#

why do i associate that emoji with "gdt init ... ok"

fluid moon
#

gdt init… are you OK?

wild glen
#

oh god he's crashing out on discord now

fluid moon
#

just download it already

wild glen
#

fine

#

anyways ima program my vmm

#

probably

#

map pages without triple fault trl

fluid moon
wild glen
fluid moon
wild glen
#

seems quite simple
(this exact moment i am gonna get quadruple fucked by the universe)

wild glen
#

cc??

fluid moon
wild glen
#

oh

fluid moon
#

i prefer it over .cpp

wild glen
#

i thought the file format for that was cpp but mk

fluid moon
#

I was thinking why don’t you port the kernel progress to 64bit

#

I mean 32bit is really ancient and everything you’ve written until now is compatible with 64bit

wild glen
#

idk

#

maybe compatibility

#

tbf anything older than a core 2 duo is absolutely useless at all

#

and also idt and gdt?

#

honestly idfk if i should switch to long mode

#

like actually

#

can some random ass dude shill me limine for no reason

grave wadi
#

u should use limine

wild glen
#

y

grave wadi
#

that was a threat btw

#

u SHOULD use limine

wild glen
#

ok

#

using limine now

grave wadi
#

bet

wild glen
#

wait do i have to rewrite the gdt and idt code

#

do they have differences

#

(ik the gdt does)

grave wadi
#

were they written for 32 bits?

#

if yes then yeah

wild glen
#

yes

grave wadi
#

aint much different tho

wild glen
#

vmm is probably way different

grave wadi
# wild glen slightly modify it?

yeah you'd need to change the idtr structure, the descriptor structure and the way you push things to the stack when calling the handler

grave wadi
wild glen
grave wadi
#

but if u understand 32 bits paging it should be pretty easy to understand 64 bits

wild glen
#

reasonable

#

shit i have to make an x64 cross compiler

gloomy musk
wild glen
#

to not be generic this is a unixn't

#

ik big stupid but if it doesnt work im just gonna revert to mb2

gloomy musk
wild glen
#

" o k "

#

64 bit unix like kernel on li-

gloomy musk
#

No wait I'm still confused, are you on a 32-bit machine or something, I thought you only needed a cross-compiler when you aren't targeting your machine's arch

wild glen
#

for some reason a cross compiler is necessary for shits and giggles

#

i can just use regular gcc for cross compiling 32 bit compiling but still

gloomy musk
#

Ah okie

wild glen
#

(also regular gcc has different results)

#

(some stuff works only on a cross compiler)

gloomy musk
#

Use clang trl

wild glen
#

W h y

gloomy musk
#

Because I said so, and I'm objectively right meme

wild glen
#

i expected you to say "that was a threat btw\nUSE clang trl"

#

are there any differences between gee cee cee and clang

#

syntax

#

in syntax

gloomy musk
#

Uh, i don't think so, maybe ask someone smarter than me lol

#

I don't like typing on my phone XD

wild glen
#

it makes me want to commit pain

#

also i just realized limine protocol advantage

#

you can set whatever boot resolution you wish

wild glen
#

my pee cee crashed

#

then i had to update half my entire os

#

even qemu updated

hushed briar
#

The implementation is hard if you wanna do it well

wild glen
hushed briar
#

I mean my vm is very rudimentary and it’s still 1kloc

wild glen
#

im trying to do long mode again rn for shits and giggles

hushed briar
# wild glen

Bro hasn’t your whole kernel up until now been ia32?

wild glen
#

idrk if i should even do it its not pushed to github yet

#

ykw im gonna add onto it by adding limine support instead of just rewriting it whole

#

later probably as well

#

i wanna rename nullium to something ngl

#

maybe something like deep blue (the ibm chess super computer) except not even copyright issues its just somewhat generic?

wild glen
#

32 powerpc's yet it still cant run google chrome

hushed briar
wild glen
#

well mine doesnt exactly have a purpose

#

so i can just make it blue as fuck

hushed briar
#

I like the idea of the name Blue infinity or something like that

wild glen
#

maybe idk

hushed briar
#

I’ve been kinda wanting to name a kernel soemthing infinity for a long time

wild glen
#

i named mine popkernel which is a ridiculously stupid name but it works

#

guys i deletbed by ps2 driver

#

no moar pee s 2

#

time to not bullshit about "bruh the drivers are in userspace"

#

why did that separate

#

WHY DID THAT SEPARATE DISCORD BRUHHHHHHHHHHH

#

they ruined the funny now im sounding like "phase 2 edgy roblox kid bossfight"

#

anyways uh

#

doorknob

#

no more ps/2 driver thats gonna go into the user space now tldr

#

when that will appear

#

sometime

#

(never?)

wild glen
#

what 2 do if lower mapped kernel (someone will murder me for this)

#

it was always lower mapped anyways trl

#

will this affect porting software tho

#

i def have to recompile it thats a no brainer but in any other way

#

the linker file would need like an offset thing of 512 mb if i give 512 to kernel

wild glen
#

video game idea
your only weapon is a cannonball launcher and maybe a throwable bomb

but you can do insane ass combos with both of them

#

throw a bomb at the cannonball to do a big boom boom

wild glen
#

uhh more vmm wheb i get home

#

i hate phone keyboards

#

how are people using phones without going insane its miserable without a proper keyboard

#

the only good-ish phone keyboard i used was the windows phone/win10m keyboard

#

rip winphone

#

it died before it couldve been enshittified

hushed briar
wild glen
wild glen
wild glen
#

lower half kernel?
no
how to do higher half kernel?
no

#

wait

#

ok nvm i realized

#

the "just don't" still doesnt make any sense but i think i figured out how

hushed briar
wild glen
#

oh

#

i mean it was already mapped in the lower half

hushed briar
#

Wait sorry

#

I thought you meant

#

Map your kernel in

#

Physical low memory

#

I was like wtf

wild glen
#

i mean the kernel is in physical low memory

#

by higher half i meant virtual high memory

wild glen
#

nvm

#

i in fact do not know how to map it in the higher half

wild glen
#

guys

#

github has wikis

#

yooooooooooooooooo

gloomy musk
wild glen
#

this is literally me

#

i swear

#

i can put the documentation on there tho

#

when the time comes

wild glen
#

can everything be as easy as writing a hello world os

#

actually no

#

can i not be a fucking 400% dumbass distracted by everything

#

LITERALLY everything

#

multitasking is a war crime

#

it's absolutely necessary but i feel like it ruined me

hushed briar
wild glen
hushed briar
gloomy musk
#

very relatable tho KEKW

hushed briar
wild glen
#

how the fuck do you bail a random dude person out of jail

hushed briar
#

You look at mugshots

#

All jails have a record of their inmates online

wild glen
#

no no i know

#

how do you just get them OUT of it

hushed briar
#

Go to the jail

#

Pay their bond

#

Boom

wild glen
#

oh

#

how much money did that guy pay

hushed briar
#

Yeah he was down atrocious

hushed briar
wild glen
#

what happened to him afterwards

hushed briar
#

They’re still together

wild glen
wild glen
hushed briar
#

I’m just a bit afraid he might get murdered in his sleep

#

I mean she’s cute sure

#

Like pretty cute but

#

Not 4k and potential death pretty

wild glen
#

he had priorities

#

questionable ones but priorities

hushed briar
#

Nah he’s a gooner

#

Really bad

#

Like

#

Neck beard

#

All the shit

wild glen
#

oh god

#

reddit user? trl

#

no but srs i feel like if he's all that crap then i feel like the girl is with him because bro paid 4000 fucking dollars

wild glen
hushed briar
#

He went from a 4/10

#

To like a 7/10

wild glen
#

nice

hushed briar
#

They’re actually surprisingly good together but I always make fun of him because that is Down badddd

wild glen
#

that aint worth 4000 dollars tho thats just worth a motivation

hushed briar
#

She didn’t commit like murder. She was in there for tax evasion

wild glen
#

for how long are they together

hushed briar
#

Not the worst crime in the world lmao

hushed briar
#

About as long as me and my current girlfriend have been

wild glen
#

cool

#

absolute ass opinion but for some reason loving people romantically is boring asf

wild glen
#

how are you this desperate for some random ass human being

#

how could anyone be this desperate deadass

gloomy musk
#

true tho XD

wild glen
#

the disappointment i have for some people is insane

hushed briar
#

I am so desperate for my girlfriend bro

#

We literally almost died together

#

We went to a party and we got laced

#

With some really bad drug

#

Like bro she is my ride or die

hushed briar
#

I love that girl more than life itself

gloomy musk
hushed briar
#

In the guy on the right

#

She’s the girl next to me

wild glen
#

welcome random ass image to the nullium thread šŸ”„

#

(joke)

hushed briar
#

My bad lol

wild glen
#

nah its fine

#

to whoever's gonna be scrolling up 50 years later

that aint me im too lonely /hj

wild glen
gloomy musk
hushed briar
#

You’re 15 iirc

gloomy musk
#

I'm not anyhow ye lol

#

16

hushed briar
#

Yeah

#

I started going to parties at that age unfortunately

gloomy musk
#

šŸ„€

hushed briar
#

I partied alone at the age of 13 tho

#

Stole my parents liquor 🤣

#

Good times

wild glen
#

drink apple juice say it's "beer"

#

makes you look cool

#

+5000 style stat

#

i have noise cancelling headphones now they solved my fear of lightning bolts and shit

hushed briar
#

Actually scratch that

#

I snuck into a college party at 15

#

With My ā€œfriendā€

wild glen
#

college party

hushed briar
#

Yeah

wild glen
hushed briar
#

Fucked my life up xD

#

Not my friend anymore

#

He tried to get me to do much harder shit

wild glen
#

oh

hushed briar
#

Fuck all that

wild glen
#

drugs evil

#

dont smoke kids trl

gloomy musk
#

I'd rather use my shinobi sneaking skills for something else lol

hushed briar
#

Oh definitely smoke (if you do already but don’t start if you haven’t) but don’t do drugs

hushed briar
#

Weed made me quit everything

wild glen
#

sad

#

addictions are brutal

hushed briar
#

Yeah I unfortunately have an extremely addictive personality

#

Yeah I’ve been to rehab 4 times

wild glen
hushed briar
#

Damn that sounds worse saying it than thinking it

#

I went once when I was 16, twice when I was 17, and once while I was 18

#

I’m sober off all drugs but weed tho :)

#

Have been for months

#

I’m almost a month sober from alcohol

#

First time since I was 15

wild glen
#

i remember hearing college parties are deranged as shit

#

not just deranged like absolutely uber fucked

#

microwave popcorn banger

#

its supposed to be shit because microwave but its a banger

hushed briar
#

There was one time I was at one

#

And they found out I was lying about my age

#

And they said I had to drink a whole ass 12 pack of beers to stay

#

And unfortunately I did

wild glen
#

12 beers

#

i cant even drink a single pepsi can sometimes

#

jesus christ

hushed briar
#

Pepsi is gas

wild glen
#

true

#

heard that coca cola was invented before refrigeration and pepsi was invented after so warm coke tastes the same as cold pepsi

#

or smth

#

idk i want to test that

hushed briar
wild glen
gloomy musk
#

wait fr? flnsh

hushed briar
#

Yes

wild glen
#

coca cola having drugs is probably the most chill thing

hushed briar
#

People took this medication called Radithor

#

Which had radium

#

And some guys JAW FELL OFF

wild glen
hushed briar
#

FROM IT

#

YES

wild glen
#

guessed it

#

famous story

gloomy musk
#

bloody hell KEKW

wild glen
#

nullium and floppaos thread all being gatherings for random bullshit is certainly a thing of all time

wild glen
#

i think the girl who discovered radium died from radiation poisoning or smth

#

marie curie

wild glen
#

literally anything else is a normal progress thread while these two have a randomized schedule of being #lounge-2 and #osdev-misc-2 (was an actual channel somehow???)

#

ima check out the progress threads maybe people make something that sucks less ass

#

ok im back

#

my project total doodoo farts compared to these absolute gods im now evil

hushed briar
#

My project doodoo farts compared to the gods too

wild glen
#

they got qemu on their os's

gloomy musk
#

mine as well lol

wild glen
#

i wanna run qemu tho ngl

#

would be worth it

hushed briar
#

You just need to implement the syscalls it requires

gloomy musk
hushed briar
#

Idk how many syscalls it requires

#

If you wanna do something like KVM, good luck

gloomy musk
#

KVM sounds painful

hushed briar
#

Not even remotely reachable for the majority of hobby OS’s

wild glen
#

kernel vm's?

#

oh hell no

hushed briar
#

It runs the kernel as a hypervisor

#

Or to function as a hypervisor

wild glen
#

why are sgi workstations so cool
idk i remembered the indigo line when i made that color palette for my terminal

wild glen
wild glen
#

progress report (finally ffs):

  • added two functions
  • map physical address to virtual address
  • do the same but in bulk (you can remap an entire page table for example)
#

mmmmm

#

vm&m's

wild glen
#

reworked function for easier use for me

#

second one

#

mapping physical addr is fine

#

mapping a shit ton of them wasnt

#

until now trl

hushed briar
#

LETS GOOO

#

NULLIUM PILLED

wild glen
#

i love this image because its a shitty powerpoint i made on a school laptop

#

and nobody can find it on like google

wild glen
hushed briar
#

Ferrari

wild glen
#

or i can blame microsoft because it doesnt lag when linux

wild glen
wild glen
#

average linux user vs chad nullium user trl

wild glen
#

like linux

#

bcs the script kiddies would come in, say they're cool because they can put fucking poopOS on a usb and run it on a computer

#

(they cant actually install the os because they cant navigate the hard drive partitioner)

#

like actually

theyll also not know literally anything about osdev and will crash out that you cant run fortnite

#

or any windows apps

#

"why cant i run google chrome" ;-;

#

telling them what porting is theyll just go "well just build it for your os its easy"

balmy stump
#

an os we make will never get maisntream famous unless its one of the few that has like tens of contributors

wild glen
balmy stump
#

and even then mainstream would be pushing it

wild glen
#

true

wild glen
#

i might change my discord name for shits and giggles

wild glen
#

nullium is being delayed several thousand years i have to do a spanish coloring assignment 😭

wild glen
#

i need an excuse to never release version 1.0

wild glen
#

new somewhat bright-ish purple palette

#

if the color is literal cancer plz tell me i think its fine

#

discord for some reason makes the image more saturated?

gloomy musk
wild glen
#

mk

#

two vmm's trl

gloomy musk
#

the more the merrier trl

wild glen
#

i need a slab allocator or something like that now

#

darker colors look like ass

#

brighter colors slightly modified

#

idk what to do with magenta

#

it looks way too saturated

#

customizable color palettes are a necessity probably

#

what if some dude just wants his plain old boring ass VGA

#

(though id be offended because i took an unnecessary 20 minutes to make these stupid fucking color palettes)

#

(i wanted one though so whatever)

#

i like them

#

or something

#

anyways the purple does sadly indeed look like cancer

#

so ima tone it down

#

i think the vmm init is ok

#

anyways rate color palette ima do something somewhat useful

hushed briar
#

Different

wild glen
#

it was always purple but it was this specific shade where you can barely see it

#

for some reason discord fucked up the colors

#

its bright on it

#

on qemu its way less saturated

#

i should test my thing on real hardware ngl

wild glen
#

yo any serial terminal people here
how do i use it with gdb im stupid

#

oh

#

nvm i have to implement a stub or something

wild glen
#

guys i feel funny so ima run nullium on real hardware

#

there is nothing to run but shush im bored

#

its ✨ scientific ✨

#

my testing laptop :P

#

also the reason im still in protected mode

#

it looks too cool to just abandon

#

$75 thinkpad my beloved trl

#

anyways since now this laptop is basically the main one if im testing on real hw

#

i should setup a PXE server for it ngl

#

giddity init ok

gloomy musk
#

ayyy! šŸŽ‰

wild glen
#

im pretty sure grub / limine (no other bootloaders exist ever) have a tag for setting a custom framebuffer screen resolution on boot

#

like for mb2

#

and i demand to know where in the fuck are the instructions for limine

#

i found out how to do it for grub but how do i do the same for limine

#

ahem

#

:C

#

resolution - The resolution to be used should the executable request a graphical framebuffer. This setting takes the form of <width>x<height>x<bpp> and overrides any resolution requested by the executable. If the resolution is not available, Limine will pick another one automatically. Omitting <bpp> will default to 32.

#

it is time to try this goober

#

the tag works

#

all hail funny purple L bootloader

#

gnu website dead

#

Many modern operating system kernels, such as Mach and the microkernel in VSTa, do not by themselves contain enough mechanism to get the system fully operational: they require the presence of additional software modules at boot time in order to access devices, mount file systems, etc.

#

GNU mb2 spec

#

popkernel as a microkernel isnt dead lets goooo

#

if limine boot protocol doesnt have modules then i can claim superiority over the unix likes

wild glen
#

boot args

wild glen
#

syntax idea for the shell that will later exist

parameters start with . or : if its a long ver of a parameter
like verbose mode would be like .v but if its multiple letters itll be :verbose
if a thing is a parameter itll just accept parameters in parentheses or smth :flags(verbose,debug) (maybe square brackets?)

#

idk why they dont start with -- and - like normal os's 😭

#

ideas (TM)

#

also what if i move to codeberg trl

rocky elbow
#

I don't know, I don't see any difference between codeberg and github except for the interface

wild glen
wild glen
#

idk how running programs would look like

hushed briar
#

run <program>

#

That’s what I’m doing

#

Or ex <program>

wild glen
#

smth like nano would be ./nano, nano, or PROG(./nano) or smth

hushed briar
wild glen
#

idk how commands would look like

hushed briar
#

It’s not intuitive

wild glen
#

nano(text.txt)??? idfk

wild glen
#

i got the flags ok enough but what would the commands look like idk

#

smth like cd /evilAssFolder/ would be the simplest

hushed briar
#

Yeah

#

That’s how mine will be

wild glen
#

idk about having like cd(/evilAssFolder/)

hushed briar
#

That isn’t shell like tho

wild glen
#

true ig

hushed briar
#

I mean it’s your thing but just from the way I see it

#

I think I’ll execute programs with

#

Either run, ex, or load

wild glen
#

cd:/evilAssFolder/ trl

hushed briar
#

Oh god

#

That is just cursed

wild glen
#

lemme grab some shit from my make file and see how it would look best in my stupid fart syntax

#

gcc -c ./popkrnl/boot/stage1/stage1.c -o ../popkrnl/kernel/stage1.o

#

removed all the variable stuffs

hushed briar
#

Yeah

#

That’s nice

#

More shell like

wild glen
#

in theory itd just look like this gcc .c ./popkrnl/boot/stage1/stage1.c .o ../popkrnl/kernel/stage1.o

wild glen
wild glen
#

itd think its a flag or smth

wild glen
#

put them in quotes idfk? gcc .c "./popkrnl/boot/stage1/stage1.c" .o "../popkrnl/kernel/stage1.o"

wild glen
hushed briar
#

The quotes are a bit much

#

In my opinion

wild glen
#

if a thing is a parameter itll just accept parameters in parentheses or smth :flags(verbose,debug)

#

gcc .c(./popkrnl/boot/stage1/stage1.c) .o(../popkrnl/kernel/stage1.o)

damn

#

this looks like some c dialect

#

im fine with it but idk

hushed briar
#

Maybe you should use something else to suggest the pwd if you’re gonna use . for flags

wild glen
#

ok cd is just gonna be smth like cd ./johnDoor/ it's the same in dos, linux, unix, pooix, etc

hushed briar
#

Yeah

wild glen
#

you cant have a flag inside a flag probably

#

current dir could be > and upper dir can be ^ idk

#

or <

#

everyone uses . and .. so i dont really want to break the unspoken rule

#

have a specialized (easy to type?) folder tag maybe

#

cd @./potato/

#

add a @

hushed briar
#

I like the @

#

I’ve been considering something similar actually

wild glen
#

gcc .c(@./popkrnl/boot/stage1/stage1.c) .o(@../popkrnl/kernel/stage1.o)

hushed briar
#

Referring to all paths with @

wild glen
hushed briar
#

It doesn’t help readability

wild glen
wild glen
#

if not then i think it's better for the interpreter actually it's easier to read something like that

#

if it found like a flag then just check for a parenthesis and start looking inside there

#

dos had an ungodly version of this

#

dir /A:DRH for example

#

or was it dir /A:D,R,H

#

(also that command looks for hidden read only directories)

#

(theoretically)

#

(i cant just pull up windows 98 out of my ass)