<Ameisen>
moon-child - it's part of my last issue I sent in for the dotnet runtime
Oli has joined #osdev
bradd has quit [Ping timeout: 256 seconds]
bradd has joined #osdev
xenos1984 has joined #osdev
Oli has quit [Quit: leaving]
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
<graphitemaster>
sortie, I appreciate the 3rd bullet point, I think we should call them sockerts from now on. A portmanteau of socket and hurt, which is synonymous with UNIX socket.
ElectronApps has joined #osdev
gog has quit []
gog has joined #osdev
biblio has quit [Quit: Leaving]
bradd has quit [Ping timeout: 256 seconds]
sdfgsdfg has quit [Quit: ZzzZ]
heat has joined #osdev
ElectronApps has quit [Remote host closed the connection]
sdfgsdfg has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Client Quit]
sonny has joined #osdev
<heat>
so apparently freebsd has a bunch of their graphics drivers that are just linux's + a drm compat layer
<heat>
how is this even legal?
<kazinsal>
they're in the ports tree
<kazinsal>
the ports system is basically compatibility patches and makefiles to build a piece of software for a BSD, and all of the code in a port collection is permissively licensed
<kazinsal>
and google v. oracle covers the drm layer
<heat>
the i915 has a weird mix of licenses iirc
<heat>
lots of MIT but a bit of GPLv2 if I remember correctly, maybe I'm wrong
<kazinsal>
sure, that's fine, but the actual content of a port collection isn't the original source
<heat>
actually I look to be wrong
<heat>
this all looks MIT licensed
<heat>
I think they relicensed stuff
<heat>
this is good
<kazinsal>
so eg. audacity is GPLv2, right, but this is the ports collection for audacity for freebsd
<bslsk05>
github.com: freebsd-ports/audio/audacity at main · freebsd/freebsd-ports · GitHub
<kazinsal>
the actual stuff for building the port is the files/ directory which contains patch files and the Makefile itself
<kazinsal>
the rest is for turning the port into a package that can be installed with the package manager
bauen1 has quit [Ping timeout: 268 seconds]
<heat>
yeah I have something like that
<heat>
it's super cool that i915 is MIT licensed
<heat>
it's portable to any project
<heat>
you just need a compat layer
<kazinsal>
arguably I'm sure the FSF people would love to find some way to say that diffs of GPL source constitute GPL source itself but I'm assuming their laywers are busy with more realistic things
<heat>
amdgpu also looks MIT licensed
<heat>
this is very good
<heat>
woah mesa is also permissively licensed
<heat>
it's actually possible for a hobby OS to port the linux graphics stack
dude12312414 has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
<dh`>
unless you want to fill your kernel with linuxisms, and also put in tons of work, it's _possible_ but not _practical_
heat_ is now known as heat
<heat>
dh`, but more practical than writing your own graphics stack no?
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<heat>
otoh looking at drm-kmod it also seems pretty freaking hard
<heat>
and you have to pull in linux headers
<sonny>
heat cpu graphics only ;)
vdamewood has joined #osdev
sonny has quit [Quit: Client closed]
sdfgsdfg has quit [Quit: ZzzZ]
sonny has joined #osdev
sonny has left #osdev [#osdev]
pretty_dumm_guy has quit [Quit: WeeChat 3.4]
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat_ is now known as heat
scoobydoo has quit [Read error: Connection timed out]
<bslsk05>
'New JTMOS New Millenium Kernel/OS Multitasking Windows GUI Demo (Thanks to OSDEV.org and #c-64)' by Jari Tuominen (00:05:32)
<Jari-->
my OS demo video
heat has quit [Remote host closed the connection]
<Ameisen>
kazinsal - GPLv4 mandates that all software written by programmers breathing air that has been in the presence of either GPLed software or programmers who have worked on GPLed software is implicitly required to be licensed under the GPL.
<kazinsal>
there's probably an optional subsection of the AGPL for that
<CompanionCube>
well, for stricter-than-agpl there's sspl
scoobydoo has quit [Ping timeout: 256 seconds]
scoobydoo has joined #osdev
x88x88x has quit [Remote host closed the connection]
elderK has quit [Quit: Connection closed for inactivity]
x88x88x has joined #osdev
<kingoffrance>
[dark cave johnson] As I live and breathe methane!
biblio has joined #osdev
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 268 seconds]
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eroux has joined #osdev
Oshawott has joined #osdev
archenoth has quit [Ping timeout: 240 seconds]
gog has quit [Quit: byee]
scoobydoo has quit [Ping timeout: 256 seconds]
gog has joined #osdev
scoobydoo has joined #osdev
<sortie>
Thanks graphitemaster, I literally knew I would be making mistakes as silly as that with the fatigue I have having finished the code more or less :)
GeDaMo has joined #osdev
<gog>
:)
<gog>
is it worth it to use guard pages at both ends of a kernel stack?
<kazinsal>
can't hurt
<GeDaMo>
Depends on how much you trust anyone writing code that might touch it :P
<kazinsal>
I don't trust anyone writing code so I don't have an interface to load programs from disk
<kazinsal>
(I am thinking of implementing something like BPF, though)
<bslsk05>
en.wikipedia.org: Berkeley Packet Filter - Wikipedia
<gog>
ah i see
<kazinsal>
Berkeley Packet Filter -- it's a simple virtual machine
<kazinsal>
its instructions are mostly just loads/compares/branches
<gog>
interesting
<kazinsal>
intended primarily to be used to run on incoming packets
dennis95 has joined #osdev
<kazinsal>
eBPF in the Linux kernel adds in non packet filtering stuff so it's more like a generic in-kernel virtual machine
<GeDaMo>
Virtual machines are everywhere :P
<kazinsal>
I'd like to do something where it's more like BPF++
<kazinsal>
where it can be used to rewrite packets instead of just classify them
<gog>
that seems like something that could be easily abused to rewrite other memory in kernel space
<sortie>
gog, I suppose that makes sense to catch both stack overflows and buffer overruns
<sortie>
Well, exceptionally bad buffer overruns that need to overrun the whole stack
<kazinsal>
the traditional BPF VM has two address spaces
<kazinsal>
P[] and M[]
<kazinsal>
P[] is the packet being classified against, M[] is a scratch buffer
<zid>
I'm not aware of that fetish, I only know S[] and M[]
<kazinsal>
piss and masochism^W^W^W
* GeDaMo
P[okes] zid
<kazinsal>
I don't know much about the eBPF VM because it's so deeply extremely linuxy
<kazinsal>
it's one of those things where they threw it together to be the kernel side of a bunch of other userspace-based tracing projects
<gog>
i just wonder how effective it'd be at defeating a deliberate stack smash where it manages to jump over a guard page, not attempt to read or write any bytes from it and hit another object in that space
<kazinsal>
"our tracing mechanism needs a kernel-based way to do foo" "okay let's make a BPF_EXTENDED_DO_FOO opcode"
<moon-child>
if somebody gets a controlled overflow decent chance they can rop wherever they want
<kazinsal>
eBPF is now at the point where there's an LLVM backend
<kazinsal>
the BSDs meanwhile just accept traditional BPF
<kazinsal>
iirc libpcap and derivatives include effectively a classic BPF compiler for their accepted syntaxes
wleslie has joined #osdev
ElectronApps has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
scoobydoo has quit [Read error: Connection timed out]
scoobydoo has joined #osdev
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eroux has joined #osdev
<gog>
should a kernel heap on x86_64 enforce 16-byte alignment? seems reasonable to me
<gog>
OR should objects requiring 16 byte alignment always request an additonal 8 bytes and use an aliased pointer to align?
<gog>
that seems more prone to idiocy, my own in particular
<zid>
I'd just align to 16 cus why not?
<zid>
make your minimum slab size 16 and start it out aligned and it'll stay it
<gog>
yeah that's probably the best way
<zid>
if something weird needs a 4 byte allocation or something adding a pool allocator for it would be pretty simple
<gog>
i can't really imagine any kernel allocations needing less than 16 bytes anyway
<gog>
like what could possibly want only 4 bytes?
<zid>
hence 'something weird'
<zid>
some bizzare driver maybe that needs to track a bunch of random integers in a list idk
<zid>
okay I read the new volume of my silly light novel series, what do now
<gog>
you're a bizarre driver
<zid>
you're a bizzare fish
<gog>
i'm a cat
<zid>
That's a pretty strange fish in my book
<froggey>
iirc the x86-64 abi requires malloc to return 16-byte aligned objects, seems sensible to stick with that
<gog>
o worm
<froggey>
I might have made that up *shrug*
<gog>
tell me lies, tell me sweet little lies
<zid>
C requires it to return aligned to whatever the C impl. needs it to be to be comforming
<zid>
so if your float type requires 16, so will malloc
<zid>
else float *a = malloc() would be illegal
<gog>
that's only if the C implementation is using the x87's 80-bit floats tho?
<zid>
no
<zid>
it was an example
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<gog>
you're an example
<zid>
at least I've got a beard
* gog
blinks
<zid>
hah stumped you there
<gog>
it's just such a wild nonsequitor
<zid>
I think that means I win
<gog>
if you say so
<kazinsal>
I think if the contest is of beardedness, it is considered a no-contest as gog is a catgirl
<kazinsal>
her opponent wins by default
<gog>
sadly i still have beard-growing capability
<gog>
looking into buying an IPL device to uninstall that
eroux has joined #osdev
<kazinsal>
we can fix this with angry photons
<kazinsal>
lol
<gog>
yes
<kazinsal>
problem: facial hair. solution: reshape the universe to emit the energies required to reverse this
<gog>
gonna go expose my face to the allen belt brb
<gog>
van allen belt*
<kazinsal>
van nyallan belt
<gog>
lol
<zid>
I think people would just be better if they didn't have hair anywhere
<froggey>
I spent the past year having my face shot with a laser, 100% would recommend
<zid>
maybe there's some gene we can disable, the one that links the keratin together or whatever
<zid>
would save a lot of shaving and malting and stuff
<gog>
IPL is ineffective on my hair color
<gog>
drat
<zid>
can't they just lazer the shit out of the foliciclesles
<kazinsal>
iirc it's gotta be dark for photons to do magic
<zid>
rather than bleaching the hair
<kazinsal>
lighter hair laser might work but electrolysis is the real shit
<zid>
yea that's the one
<gog>
i don't know if electro is covered
<gog>
i still need to ask the trans team about that
<GeDaMo>
They can shove needles into the hair follicles and zap them
<zid>
I bet it's fairly cheap though, women get it all the time for their moustaches
<gog>
right but the area of my face i need done is way larger than that
<zid>
I think it's fairly low skill labor and is a very normal beauty thing, is my point
<zid>
so probably not that expensive
<zid>
even by the squinch
<gog>
you need medical licensing to do it here
<kazinsal>
to the surprise of exactly nobody, the osdev hobbyist sphere is full of LGBTQ+ folks and friends of LGBTQ+ folks
<gog>
i love y'all <3
<zid>
I don't know what any of those letters mean I'm just not.. needlessly mean to people I don't know? heh
<kazinsal>
bizarre programming: check. small friendly space: check. four-decade-old digital communication system in use in preference to everything else: check
<zid>
I did have a trans person go absolutely ape shit at me once for SENDING SOMEONE DEATH THREATS
<froggey>
maybe you shouldn't send people death threats
<zid>
what they meant is that I used someone's previous /nick before they transitioned, and I didn't know they changed it
<zid>
muich less that I should avoid the old one
<kazinsal>
most of the time when I see an accidental deadnaming it's corrected pleasantly and quietly
<gog>
ok zid we get it a trans person was mean to you once
<kazinsal>
occasionally someone gets a bit over defensive but it's easy to defuse that
<froggey>
I'm going to be mean to zid
<gog>
lol
<froggey>
zid: you pronounce gigawatt wrong
<kazinsal>
all of my trans friends bully me because I am smol bean
<kazinsal>
it's not out of meanness just because I am smol
<zid>
good, smol people should be RUTHLESSLY bullied for being smol, then I should be allowed to sleep witht hem
<zid>
like a teddy bear
<zid>
but with sex
<gog>
anyhow
pretty_dumm_guy has joined #osdev
<kazinsal>
actually you know that was said originally as a joke but taking stock of the situation literally all of my close friends who are trans have an excellent knack for teasing the shit out of me and do so whenever possible
<kazinsal>
damn I'm good at getting bullied
<gog>
awww
<gog>
i'll never bullly you
* kazinsal
pats gog
<froggey>
I might.
<zid>
It's not bullying it's BANTS
<gog>
i've been staring at this heap code for an hour and i'm not getting anywhere so i should do something else
<kazinsal>
one of these days I'll actually finish rewriting my PMM code for x86-64
<kazinsal>
one of these days.
<kazinsal>
maybe.
<zid>
good idea
<zid>
I also agree that I will rewrite mine, one of these days, maybe
<gog>
i'm gonna need to alter mine a bit
<zid>
I rewrote mine about 3 times
<gog>
so i can keep track of which objects own physical pages
<zid>
It got worse every time I'm almost happy with it now
<kazinsal>
I've got full 36-bit PAE support but x86-64 would probably simplify some stuff
<gog>
that's a little ways off now
<zid>
I've just been playing factorio instead
<froggey>
wait, are you all actually doing osdev?
<gog>
sometimes
<zid>
oh god no
<kazinsal>
also need to write a less shit e1000 driver because right now my cycles/packet is about 60% in (emulated) hardware
<zid>
gog is the weird one for actually doing some
<gog>
i've got a flurry of work done in the last two weeks and i'm worried my momentum is going to falter and it'll lay dead for another few months while i sort my thoughts out
<kazinsal>
my queueing is basically nonexistant
<zid>
People are being noisy rn so I am listening to music, can't listne to music AND do anything else
<kazinsal>
I'm listening to a Nickelback concert because I'm fuckin drunk
<kazinsal>
time to open another beer at almost 5am
<kazinsal>
thanks zid
<zid>
yw?
<zid>
You should listen to the short song I linked while you drink
<clever>
zid: its an hour long! :D
<zid>
gj clever :P
<kazinsal>
why is there a shinji
<clever>
and i'm 9mins in
<kazinsal>
is this gonna make me start rewatching evangelion
<clever>
kazinsal: that song is from the 4th movie
<clever>
its finally out
<kazinsal>
oh, I haven't watched that yet
<zid>
this is the final song, goodbye evangelion etc
<gog>
do the osdev zid, or gog will have to do it again
<kazinsal>
I'd been waiting so long I literally forgot to keep checking to see if the fourth movie was out.
<zid>
it was really sad when I finished watching 3.0+1.0 it was a good sendoff but very sad that it's done
<clever>
kazinsal: it came out a year ago, lol
<zid>
nah it was cinema a year ago
<zid>
it 'came out' a few months ago
<clever>
ah
<clever>
i watched it last xmas, via torrents
<zid>
12/08/21 says my.. torrent client
<zid>
unless I readded it
<zid>
yea cinemas in march 21, amazon in august
<kazinsal>
I feel like it's been so long since I first watched the show that I don't know if I'd actually have any conscious emotional connection to a new evangelion movie
<clever>
last-mod timestamps say august 15th this year
<clever>
kazinsal: watch all 4 movies in a row!
<zid>
You got it 3 days after I did then
<zid>
That's what I did clever :P
<zid>
all the movies and EoE
<zid>
I was a wreck afterwards though
<kazinsal>
I remember the first two Rebuilds being like, normal evangelion to an extent
<zid>
EoE is a brilliant piece of media if what you want is to feel suicidal
<kazinsal>
and then the third being more Anno being upset about himself
<clever>
zid: i had trouble getting the subs to work right on the tv, because i wasnt home at the time, so i watched the 4th movie in dub
<zid>
yea 1.0 is the normal series, 2.0 starts to slightly diverge
<zid>
3.0 is all new, 3.0+1.0 is the conclusion to 3.0
<zid>
clever: you disgust me
<kazinsal>
EoE is great and last I checked they never actually did a 1080p release of the original english dub
<zid>
that's good
<zid>
the english releases have the wrong soundtrack anyway because of rights issues
<kazinsal>
I genuinely love the utter self-disgust and depression in the EoE english dub
<kazinsal>
Fuyutuski in particular just wants to fuckin diiiie
<clever>
zid: the netflix re-dub of the series couldnt even get the rights to the ED
<zid>
Just watch it like a normal human, in a language you can't understand
<zid>
dug
<zid>
duh
<kazinsal>
"sweet jesus it's an anti-AT field" delivered completely deadpan like "yui please just murder your husband and then me so I can fuck you in the afterlife"
<zid>
sounds awful
<zid>
ngl
<zid>
I've never liked *any* dub because they've always got californian accents
<kazinsal>
it's not great but it's not like
<zid>
like, I know where california is
<kazinsal>
FFXIV 2.0 dub bad
<clever>
zid: the original hellsing dub is one of the few good ones
<zid>
this samurai general is NOT from california, and does NOT go sufering
<zid>
surfing*
<kazinsal>
they need to go back over and fix that fuckin story
<kazinsal>
Cowboy Bebop is canonically the best english dub of an anime ever produced
<zid>
Some 8 foot tall demon with horns and a huge cape with pauldrons walks into frame and says "whoaaa, hey guysss, wanna catch some rad surfff?"
<kazinsal>
Steve Blum is a god among men
<zid>
They should get halfus to do it all
<zid>
so at least the japanese general has a japanese accent available to him
<clever>
zid: the hellsing dub is so good, because the characters are supposed to be british, and they sound it
<zid>
do they though?
<clever>
to a canadian, they do :P
<zid>
or do they sound british.. to you :P
<clever>
it at least sounds better then british characters speaking japanese
<zid>
also britain doesn't have voice actors any more than the US does so idk how well it would go even then
<zid>
than
<zid>
*googles hellsing dub*
<zid>
hellsing ultimate?
<clever>
nope
<clever>
the original, before ultimate
<zid>
much harder to find on youtube cus I don't know it by scene.. everything ultimate is tagged ultimate
<zid>
but there's a bunch of stuff that's just 'random x scene'
<zid>
ah think I found a random episode
<clever>
the aspect ratio
<clever>
original is 4:3
<zid>
oh god this is terrible
<clever>
link?
<zid>
the voice direction appears to be "here, read this"
<zid>
The voice over the radio in this helicopter is better than either character IN the helicopter, who I assume are paid actors doing proper characters :p
scoobydoo has quit [Ping timeout: 250 seconds]
scoobydoo has joined #osdev
<gog>
i wrote 10 lines of code
wleslie has quit [Quit: ~~~ Crash in JIT!]
<zid>
show-off
<kazinsal>
I just took a bong hit so hard I sneezed
<gog>
nice
<gog>
i need to pick up some of that stuff later
<gog>
and i want to hang out with my friend but idk if i should because she's not in my covid bubble
<kazinsal>
assuming you're both all hell of vaxxed and you're not in contact with potentially unvaxxed and/or immunocompromised people, do it
<kazinsal>
it's good to be with friends
<gog>
i'm in contact with IC people
<gog>
sort of
<gog>
they're in my bubble but i'm staying out because of the surge
<kazinsal>
disclaimer not valid if you *are* the immunocompromised
<gog>
i just go pick up the dog and drop her off when the walk is over rn
<gog>
not stopping in for coffee and chat etc
<gog>
and i'm often on the bus where there's no enforcement of any kind of masking requirement
<kazinsal>
I am not a doctor or a virologist but assuming you're all masked up and/or distant and stuff
<gog>
yeah i'm trying to be better safe because i don't want to be the vector that leads to one of them ending up in the hospital
<kazinsal>
whaaaaaat? there's no mask requirement on buses in iceland?
<gog>
nope
<kazinsal>
whoa
<gog>
the bus company issued a statement today saying drivers are not responsible for enforcing masking either
<gog>
and parliament and the directorate of health just shrugged
<kazinsal>
we've been in masks-anywhere-public-indoors for a while here
<kazinsal>
companies got in line after the first few dozen fines and health inspection closures went out
<kazinsal>
transit security to an extent helps handle the issue by handing out masks at stations
<gog>
the majority party in the government is more interested in the economic numbers than the covid numbers
<kazinsal>
ah yeah, I get that
<kazinsal>
ours has mercifully realized that if the covid numbers go up the economic numbers go down
Oli has joined #osdev
<gog>
our last election was a shitshow and probably something illegal happened. not fraud, but a batch of ballots was left unsealed and out of sight of election officials at the counting site
<gog>
and the results were accepted anyway for that district
<kazinsal>
no one expects any actual democratic change here
<kazinsal>
which means the same thing happens every term
<gog>
yep
<kazinsal>
no one bothers looking into anything because the average canadian is so detached from the concept of democracy that no one cares
<zid>
It's intentional
<zid>
if you make it arcane and awkward to be involved in that's for their best
<kazinsal>
we at least get a fairly consistent left of centre government out of it so it could be worse. most online leftists in canada would argue they're right of centre but we're not regressing and they've been the ones to put forward literally everything positive for the past two decades and they've done good stuff for the people so ymmv
<kazinsal>
been a while since the tories were a real actual no shit threat
<zid>
neat
<zid>
I dropped something on the floor
<zid>
and my graphics driver crashed
<kazinsal>
that's not very unix. it's either a graphics driver or a floor driver, not both
<clever>
ive seen Xorg crash hard if i so much as unplug an hdmi cable
bauen1 has joined #osdev
<clever>
attempting to restart it would cause a kernel panic
<kazinsal>
see this is why I just write networking code
<kazinsal>
raise an exception? fuck it, they didn't need that packet anyways
<gog>
i'm just trying to get this heap code up and running so i can move on
<gog>
and i'm having big deja vu
<kazinsal>
proposal: a prescribed inhalation of a modest amount of cannabis smoke
<gog>
i lack the preqrequisite substance
<kazinsal>
perfect time for a mid-afternoon toke there
<kazinsal>
oh no :(
<kazinsal>
is it technically not legal there?
<gog>
it's more than technically not legal
<kazinsal>
what in the heck iceland you're supposed to be good and shit
<kazinsal>
crossing that off the lottery winnings residence list >:(
<gog>
nah the scandinavian model for drug enforcement is massively backwards
<gog>
BUT, our domestic crop is of high quality and yield
<gog>
despite grow-op busts happening about once a year
<kazinsal>
god that's something I haven't thought about in a long time
<kazinsal>
news headlines about grow-op busts
<gog>
the ones they bust tend to be in the city. the majority comes from private landowners with greenhouses who also grow food
<zid>
good area here for growing, think we've had a couple of busts
<kazinsal>
my dad doesn't smoke but he contributes to a group grow-op here
sdfgsdfg has quit [Quit: ZzzZ]
<zid>
last one was.. october, heh
<kazinsal>
each person is allowed like four plants or something so when the people in his neighbourhood wanted to put together a group grow-op he joined for fun
<zid>
I know that house!
<zid>
oh and another one in november..
<gog>
i do tend to be more producive code-wise if i've had a toke
<kazinsal>
but for real I intend to visit iceland one of these days
<kazinsal>
seems like a neat place
<gog>
hell yeah you can come visit me :3
<kazinsal>
also I want to yell at CCP because it's customary to yell at CCP if you are an (ex-)goonswarm member and happen to visit iceland
<zid>
waste of everybody's time, but the wife of a high up politician runs the entire hemp industry in the country
<zid>
so letting people grow it would be counter to their corruption
<kazinsal>
technically speaking, illegal cannabis purchases decreased in canada after legalization
<kazinsal>
however it's not exactly quantifiable how much of that is because the previous big growers just got licenses and went legit
<zid>
There was a good interview with a policeman here
<kazinsal>
and thus supply both the black market and the legal market
<bslsk05>
en.wikipedia.org: Trusted Platform Module - Wikipedia
<kazinsal>
if I gotta try to make rent off of reselling something I'm gonna go with weed instead of TPM chips because at least the weed might get me laid
<bauen1>
Jari--: you can't run your own code on them (at least you're not supposed to be able to)
ravan has quit [Ping timeout: 240 seconds]
bxh7 has joined #osdev
<Jari-->
bauen1: development for it
<Jari-->
even Windows TPM 2.0 related drivers would make a fortune
<Jari-->
cryptographic content so complex, meaning
<zid>
I'm tempted to just ignore finland rather than updating my masks
<bauen1>
Jari--: there are already drivers to talk to the TPM 2.0 (for linux and windows) and then there are tools to actually do work with the tpm (https://tpm2-software.github.io/) not sure where you want to make money there
<bslsk05>
tpm2-software.github.io: tpm2-software community | The community around the TPM Software Stack 2.0 and its tpm2-tss open source implementation and all the tools and software that build upon it.
<gog>
ok for like a slab allocator, what about keeping track of the size of allocated objects? do i need to waste 16 bytes no matter what?
<gog>
s/waste/use
<gog>
i'm making no progress on this and it's frustrating
<zid>
do it in userspace
<gog>
what
hellstabber has joined #osdev
<zid>
mmap a gig of ram, LD_PRELOAD something with your malloc impl
<zid>
once it works, change some names, add it to kernel
<gog>
the problem isn't testing currently
<gog>
the problem is design
<zid>
yea but designing in the kernel is always more mental effort
<gog>
hm perhaps
<zid>
plus in my case, harder to get diagnostic info out of for debugging, and I get caught up on silly things like whether I have memset or whatever or whether the pages will be zero blah blah, rather than just writing some damn code
<heat>
gog: re: slab allocator; Linux keeps the list of objects in small slabs embedded in the objects themselves
<heat>
since with their design you only need that list when its free, and when it's used and you want to find the slab the object was on, you just take a look at the struct page of the object
<gog>
i'm wondering if i need to back up and rethink this a bit
biblio has joined #osdev
<gog>
the page frame allocator is fine for the moment
<gog>
and i have demand-allocated address spaces
<gog>
i feel like i should be building something atop that rather than alongside
<heat>
the slab allocator should build on top of the page allocator
<gog>
yeah right now what i'm making is sort of half on and half beside
<gog>
and that's complicating what i think it should look like
<zid>
my page allocator is.. a linked list, complicated I know
<heat>
I have 3 ways to allocate memory in the kernel: 1) page allocator, gives you loose pages(fast case) or special cases(super slow, e.g contiguous memory or 32-bit only); 2) malloc, literally the old musl malloc, maps pages in virtual memory and does the good old malloc; 3) memory_pool<T>, it's like a budget slab allocator but dead simple and can use either virtual memory backing or raw pages in the page map
<gog>
yeah that's the long-term objective here is to use the appropriate scheme for the need
<zid>
I'm goign to do byte level + vmm together at.. some point
<heat>
the fun part is that you can skip malloc and implement your malloc on top of slabs like linux does
<heat>
it has the advantage that lock contention is smaller but fragmentation is larger
<heat>
because you can't merge objects inside individual slabs
<heat>
and you can't mix slabs of course
<gog>
i think i might do that
<gog>
because one big heap for all the things seems like a lot of address space to use
<gog>
not that address space is scarce
<heat>
you'll use more address space for slabs what
<gog>
well no
<gog>
i'm not explaining my thoughts very clearly because they're not very clear in my own mind :p
<gog>
idk. i might need some pen and paper
<heat>
a big heap will be more compact than a malloc implemented on top of slabs
<heat>
*always*
<gog>
what i'm really thinking about is like my kernel's first-order thing is going to be objects that manage their own page mappings and such
<gog>
and that a heap is just another kind of object
<zid>
e820 having holes means I end up with multiple 'regions' of memory regardless, that's what the linked list fixes
<zid>
else I'd just deal with it as a huge stack
<zid>
and shave it off with a whittling knife
<gog>
i have an array that gets set up and each array index is congruent with the PFN of the page at that index
<heat>
why do objects need to manage their own page mappings?
<gog>
is there some reason they shouldn't?
<heat>
it's complex and cumbersome
<zid>
I want my memory api to look as much like userspace as possible cus.. it's simple and it works
<zid>
I wanna ask for n bytes, or I wanna ask for a mapping
<heat>
yea
<gog>
ok nerds
<zid>
if you wanna do complex shit and you're getting hung up on it
<zid>
maybe do something simple /first/
<zid>
then do the complex shit after
<gog>
i'm not getting hung up on complex shit, i'm getting hung up on implementing the simple shit
<zid>
'objects managing their own mappings'
<zid>
is complex shit
Burgundy has joined #osdev
<zid>
write a function that can return numbers that are multiples of 4096, but doesn't return repeated numbers, and can accept previously returned numbers which enables that number to be returned again
<zid>
aka kalloc(1) and kfree
<gog>
yes i have one of those
<heat>
note: the memory api can totally be more complex
<heat>
and maybe should
<gog>
i can get single pages and return single pages to the PMM
<zid>
Great, now you need a function to pick a virtual address to map it to
<gog>
that's in progress
<zid>
(mine is just +offset)
<zid>
It leaks all the pysical addresses and has gaps where the e820 regions are, but it's good enough for the girls I go out with for now
<zid>
I did add a bitmap at some point but never hooked it up :D
<zid>
(I picked a base address, divided my total memory by 128Mi, and shoved that many 0 bits there)
<zid>
vmm free is then just toggling a bit on, vmm alloc is just to scan forwards using rep, good enough for light load, and most allocations will be <4k so it'll instnatly find a bit, each cmp covers 2MB and I added a 'first free bit' counter
mahmutov has joined #osdev
<heat>
gog, use a red black tree to store allocated vm regions
<heat>
then you just use the gaps between a node and the next to find a good region
<heat>
that's the bog standard setup
<zid>
allocating nodes for that tree is catch 22
<froggey>
zid: I built a working computer!
<zid>
froggey: hah just been hammering out turing complete?
<froggey>
yah
<zid>
I got my wires in a mess on a level and put it down
<zid>
I think the updated version has zoom and stuff but I'm being cheap
<heat>
zid, nah that's easy actually, whatever you use to allocate nodes just doesn't use your kmmap
<heat>
my kernel's malloc is limited to a sbrk region I set up, no vm nodes involved
<heat>
linux uses kmalloc which goes straight to the page allocator, no vm subsystem involved
<heat>
erm actually, kmalloc goes straight to the slab allocator which goes straight to the page allocator
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
for correctness sake :)
xenos1984 has joined #osdev
<gog>
allocate this
<heat>
use new ;)
<gog>
i got my inspiration and will do more coding later
<gog>
my friend can't hang tonight :(
biblio has quit [Quit: Leaving]
dennis95 has quit [Quit: Leaving]
Bonstra has joined #osdev
heat has quit [Ping timeout: 268 seconds]
gog` has joined #osdev
gog` has quit [Read error: Connection reset by peer]
* Bitweasil
installs Qubes.
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<geist>
good morning folks
<jimbzy>
Hey geist
<geist>
how are my little osdevers?
<jimbzy>
funfzig funfzig
<jimbzy>
You?
<geist>
i had plans but i ended up spending most of yesterday playing FFXIV
<jimbzy>
It happens. I spent an insane amount of time play F1 on the PS4 yesterday.
<j`ey>
I played some PS2 recently, I was at my parents house.. I just couldn't get into it anymore
<j`ey>
not that I ever played it that much
<jimbzy>
I like consoles because I can switch them on and play for a bit. I mostly play sports and shorter games these days.
<Bitweasil>
jimbzy, is that true anymore, though?
<Bitweasil>
I hear constant references to The Update Game.
<jimbzy>
Yeah
<Bitweasil>
You turn on the console.
<Bitweasil>
Then sit there.
<Bitweasil>
And watch the status bar for an hour.
<Bitweasil>
And then go to bed.
<jimbzy>
I don't do netplay
<Bitweasil>
It's OS/game updates.
<Bitweasil>
Most of us out here are on crappy internet connections.
<jimbzy>
They still run without them.
<Bitweasil>
25Mbit is fast.
mkf has quit [Read error: Connection reset by peer]
<jimbzy>
I dig that.
<Bitweasil>
Ah, didn't realize they were optional updates.
<jimbzy>
I have 1GB now, but that's after 15 years of 1.5MB dsl :p
<Bitweasil>
I've not had anything newer than a Wii, briefly, mostly PS2.
<Bitweasil>
I've got Starlink, which... hit or miss.
<Bitweasil>
And then some rural wifi stuff.
<jimbzy>
The only game I've encountered that wouldn't work was COD:WWII
<GeDaMo>
PS/2 was the last console I bought
<jimbzy>
It needed a massive patch to play, even off line. Some sort of measure to keep people from playing it before the official launch.
<Bitweasil>
"Yes, yes, totally anti-piracy measures... definitely not that we didn't have the game finished when we sold it..."
<Bitweasil>
*checks bandwidth*
<Bitweasil>
<Echo>Spaaaaaaace Internet</> is currently delivering 38/10.
<jimbzy>
Sports games usually just update the rosters, but what does it matter if they aren't 100% up to date?
<Bitweasil>
It's honestly a lot impressive than it used to be.
<Bitweasil>
(Starlink)
<Bitweasil>
But it works, so... whatever.
<jimbzy>
I take that back, tho. I do play Diablo 3 online because of the seasons, but even that is boring since I found a place to power level.
<Bitweasil>
Rural wifi is 15/3 right now.
<Bitweasil>
Power levels are cool, but I like laser levels better.
<Bitweasil>
Alright, I need to go plow the driveway. Again. Later!
<jimbzy>
Gaining 150 levels in 48hrs using a rubber band to hold down the attack button :D
<jimbzy>
Be careful!
<vdamewood>
GeDaMo: A PersonalSystem/2?
<GeDaMo>
Yeah, I don't know why I added the / :P
<jimbzy>
We might get some snow tomorrow or Saturday. I got my shovel ready to go.
<jimbzy>
I am starting to develop a love/hate relationship with C++.
<geist>
jimbzy: that's perfect. a healthy relationship with C++
<geist>
it's not exactly like being a lion trainer, but sort of. you can learn to push it just far enough and not suddenly get mauled
<jimbzy>
It's just such a massive language.
<Bitweasil>
Read the Google C++ style guide and consider it a good set of advice.
<Bitweasil>
When it says, "This chunk of the language will blow up in your face," consider it good lessons learned.
<jimbzy>
I have been using that as a guide for a while.
<Bitweasil>
Good.
<Bitweasil>
Alright, going to plow, l8r!
<jimbzy>
Gonna fire up the Caterpillar?
<jimbzy>
Take it down to the subgrade.
sdfgsdfg has joined #osdev
heat has joined #osdev
phr3ak has joined #osdev
biblio has joined #osdev
jjuran has quit [Ping timeout: 240 seconds]
jjuran has joined #osdev
<heat>
is there a good source on the history of unix-like operating systems? like when various features appeared, why and how they evolved
<mjg>
your best bet is to spelunk through tuhs
GeDaMo has quit [Remote host closed the connection]
<geist>
mjg: what is tuhs?
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<geist>
i'm sure it's short for something, but google doesn't find anything
<bslsk05>
www.tuhs.org: The Unix Heritage Society
<geist>
ooooh!
<geist>
more stuff to read about old stuff!
<mjg>
it has various interesting people in the archives
<geist>
neat
<mjg>
e.g., doug mcilroy
<mjg>
the pipe guy
<geist>
but also in answer to heats question there are quite a few narratives about the history of. i read a book recently that was pretty good too... what was it.
<bslsk05>
'A Narrative History of BSD, Dr. Kirk McKusick' by bsdconferences (00:53:54)
<mjg>
speaking of old stuff
<mjg>
back in the 8-bit home computing you got machines like atari 65xe or c64 with a tape drive
<mjg>
games would take forever to load
<mjg>
and they may fail to do so
<mjg>
popular idea how to increase chances of success was to sit still as opposed to walking around
<mjg>
anyone knows if that was of any significance to the loading process?
Oli has quit [Quit: leaving]
Jari-- has quit [Ping timeout: 256 seconds]
<gog>
mew
<heat>
geist, cool!
<heat>
I was reading about device files and major minor device numbers and what not since I need to overhaul the current thing I have and the only thing I was thinking of was "why the fuck did anyone make this up"
<mjg>
probably to ease the hacks to reach the right driver
<mjg>
let's be real, old unix systems are hacky af
<mjg>
not that i blame anyone for it
<amazigh>
🖥️ 🕦 ☕ ... what can possibly go wrong...
<geist>
yah also original unix systems had A Filesystem, not multiple things like devfs and whatnot
<geist>
so if you wanted a device file you needed some way to intercept it
<geist>
it's kinda clever honestly, basically a way to set metadata on a file that says this isnt' really a file
<heat>
geist, yes but why statically? why does the kernel not do it? why does the kernel not have a native way to retrieve every device in the system
<geist>
the kernel does do it
<heat>
it doesn't, it just gives you mkmod(2)
<geist>
well, i mean the fs is in the kernel
<geist>
and so it intercepts opens to files that are marked device and then routes it to the right driver
<heat>
yes but that's not my point, or my frustration
<geist>
oh you mean why didn't they do it some other way? oh that's just unix
<Bitweasil>
heat, it does now, it didn't back in the day.
<geist>
Everything Is A File
<heat>
it's more with the way to discover devices and put them there
<Bitweasil>
Everything Is A File. Except Those. Those Aren't. Please Use ioctls.
<heat>
Bitweasil, yes but nobody uses it except embedded or really minimal systems
<geist>
again, i'm talking about historically
<heat>
ack
<geist>
as in back in the day it was a much simpler system
<geist>
there werent dynamic device discovery, there wasn't VFSes, etc
<heat>
it just really didn't move with the times
<geist>
there were only a handful of syscalls, etc
<kazinsal>
when your system has 16K of core despite weighing 700 pounds you tend to make things as static as possible
<geist>
sure, but that's backwards compatibility
<geist>
they already had this fairly complex system (path resolution) so it made sense to map everything into that space
<epony>
vax for you!
<heat>
like right now you either rely on the kernel to do it for you by mounting a filesystem (like you do in sysfs or procfs), or you dive into sysfs (udev) and implement complex sysfs device discovery and follow a bunch of rule files to name the devices
<epony>
(and static electricity)
<heat>
like, did this just freeze?
<heat>
pci has been around for a long time
<geist>
what do you mean this just freeze?
<heat>
froze in time
<geist>
well, they can't remove that
<geist>
or it wouldn't be backwards compatible
<geist>
they just invented more and more clever ways to make devices appear as files
<geist>
like via dynamic fses, or udev, or whatnot
<geist>
to work around the more dynamic busses that exist now
<geist>
but at the end of the day you still have a file that is the device
<epony>
timing depends on the storage controller and device operation, not just the bus to the processor and software has to know total and minimum times for various stages (it always models the hardware, not the opposite)
<heat>
after a quick google(tm) it seems freebsd has it since 1994
<epony>
so async operation of storage sub-system is.. a higher demand to the kernel scheduler and its signalling
<heat>
so its just linux that froze in time
<geist>
has what?
<heat>
has it = an automated devfs with all the devices already populated
<geist>
ah yeah linux went down that route and then undid it
<geist>
solaris and a bunch of other systems have had devfs too since forever
<epony>
you'll know after time that Linux just realised faster it does not need it
<heat>
what's the point?
<geist>
linux has generally chose the udev route for reasons i dont completely understand, but the rationale is I think that you can move the intelligence of publishing the actual nodes in user space
<geist>
so it can be more flexible
<CompanionCube>
epony: hi epony
<heat>
urrr durr policy doesn't belong in the kernel - some linux kernel dev, somewhere
<gog>
i agree tbh
<epony>
next, elimination of procfs
<geist>
but it's roughly the same thing: udevd/systemd gets the notification that a new device has appeared, then goes through whatever logic it's going to do, then publishes a node in a tmpfs that via an archaic mechanism (dev nodes, major/minor) it accomplishes the same goal as a devfs
<geist>
whats nice about it is you can also get more systematic notifcation of things, otherwise you need some sort of polling/file notification in devfs for the same thing
<sortie>
My OS doesn't have /proc and the kernel has very little policy baked into it
<epony>
yes, syscalls reduce the need for file abstractions from earlier system deficits
<geist>
indeed. linux went hog wild on /proc, much more so than any other unix
<heat>
unix went the everything is a file, except when it's not route
<heat>
and it's hilarious
<geist>
but i do remember linux *did* (maybe still does) have a devfs. it's really useful on embedded things since you dont need a udevd for it
<geist>
heat: you have to be pretty precise there when syaing that
<CompanionCube>
i imagine these days it's just busybox mdev?
<geist>
for example network devices? i think that came along with BSD. the whole sockets api
<heat>
geist, it has a modern 2009 devtmpfs and an old devfs
<heat>
old = 2.3 from a quick search
<geist>
right. i think the reason it has it is because embedded
<geist>
you can effectively get a dynamic /dev without needing the user space stuff, at the loss of some flexibility, presumably
<heat>
what do you gain with flexibility?
<heat>
it's just device nodes on some directories
<geist>
oh i dunno, for example i can set individiaul permissions on different usb devices
<geist>
i do that all the time
<geist>
or you can set it up such that some user space network manager gets notified when things appear, I guess
<epony>
that was due to direct control of earlier hardware, and it is a problem as it does not match reality most of the time so creates various modelling fallout problems, like timing and correctness
<geist>
or usb for that matter
<heat>
i'd imagine you could just chmod it, boom. problem solved