klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<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]
scoobydoo has joined #osdev
elderK has joined #osdev
sdfgsdfg has joined #osdev
Jari-- has joined #osdev
<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)
<gog> BPF?
<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
<zid> must be VERY drunk
<bslsk05> ​'【1時間耐久】One Last Kiss & Beautiful World (Da Capo Version) - 宇多田ヒカル【Mix】' by Yuji (01:03:42)
<gog> ok i might have to bully you a little now kazinsal
<kazinsal> lmao
<kazinsal> I unironically enjoy Nickelback, but I will thoroughly shit on Dark Horse because that is a TERRIBLE album
<kazinsal> like I one day hope to end up at a party with Chad Kroeger so I can ask him what the fuck he was thinking
<gog> lmao
<gog> he's from BC right?
<kazinsal> (also because dude seems super chill irl and is well known for being able to party hard)
<kazinsal> alberta originally but moved to Vancouver in 96
<gog> ah ok
<kazinsal> I've driven past the mansion he used to own in abbotsford BC and it's huuuuuuuuuuge
<kazinsal> has its own hockey rink
<gog> wow
<kazinsal> think he primarily lives in LA now
<kazinsal> not sure, might have moved back here after he and Avril got separated
<kazinsal> (canadian music tabloid shit: it's bizarre)
<kazinsal> I know he's a frequenter at Sammy Hagar's places tho
<gog> i respect avril lavigne because she still does her eye makeup the same way she did in 2002
<kazinsal> for real, massive respect for doing extremely thick emo skater girl makeup for two straight decades
<zid> avril lavigne is *super* hot
<zid> she has what every anime girl wishes she had, a fang
<kazinsal> CHAD KNEW
<kazinsal> oh good
<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
<zid> ah found it
<zid> https://www.youtube.com/watch?v=y_TV4GuXFoA The takeaway being.. even the police officers involved know it's a waste of time that makes the problem worse
<bslsk05> ​'How Drug Gangs Actually Work | How Crime Works' by Insider (00:12:31)
dude12312414 has joined #osdev
<kazinsal> one of the few remaining weed dealers I know literally buys an ounce from the local legal shop of whatever's on special for the day
<zid> so he's effectively grubhub or whatever
<kazinsal> not worth trying to buy yourself a pound or so of illegal weed a month
<kazinsal> not when an ounce of legal is as low as a hundred canadian bucks on special
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<bslsk05> ​www.amazon.com: Amazon.com : TPM Chip
<Jari--> this basically could score a business to do
<Jari--> build a system (OS (OSDev) for it
<Jari--> so rare commodity to know it
<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
<gog> ok guess i'll whip up a testbed program
scoobydoo has quit [Ping timeout: 240 seconds]
janemba has joined #osdev
<gog> zid help me
janemba has quit [Client Quit]
scoobydoo has joined #osdev
janemba has joined #osdev
janemba has quit [Client Quit]
janemba has joined #osdev
<zid> okay what basic design did you come up with
hellstabber has quit [Quit: Textual IRC Client: www.textualapp.com]
<gog> none lol
<zid> what about a buddy allocator then
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
<gog> yeah that's what i'm thinking
<gog> if my minimum allocation is a fixed size then it's reasonable to always do multiples of that size
<gog> and have the minimum allocation be 32 bytes instead of 16
<zid> you don't need the metadata alongside the allocation for a buddy
<gog> that's helpful too
<zid> you just do it all by inspecting the address bits
<gog> yeah i like that best
<gog> i'm concerned 32 bytes might be too small though and the internal fragmentation gets much higher
<gog> maybe i should just go with it and worry about that later
<zid> you can layer a slab on it later if you want
<Jari--> osdev.org premium support center would be needed to maintain the average of 1000 projects active
<zid> I'd just get it working
<Jari--> :-)
<gog> but my obsessive-compulsive tendencies are getting in the way zid help
<Jari--> cloud OS = the way to go
<zid> do 128 byte minimum or riot
<zid> it gives.. overflow protection
<FireFly> mew
<clever> id say that the min should vary depending on the use-case
<clever> i have targets where there is only ~5-10kb of ram available
<clever> wasting 100 bytes on overhead would make that much harder
<zid> I wouldn't use dynamic allocation on something with 5kB of ram
<clever> well, it has 128kb of ram, but .text and static allocations take up a large chunk of it
<zid> I'd be taking written requests from the engineering department and they have have a static that gets banked out when their code isn't running
<Jari--> zid: Finland as well
<Jari--> I have been living in China and Finland.. thats all locations
<Jari--> wife Chinese, now completely over
ElectronApps has quit [Remote host closed the connection]
dude12312414 has quit [Ping timeout: 276 seconds]
biblio has quit [Quit: Leaving]
scoobydoo has quit [Read error: Connection timed out]
* gog pats FireFly
scoobydoo has joined #osdev
dude12312414 has joined #osdev
heat has joined #osdev
<Jari--> like this music
<Jari--> from a C64 composer
<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
<geist> the unix history something?
<mjg> wat
<mjg> you are in for a treat man
<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> ​www.amazon.com: UNIX: A History and a Memoir: Kernighan, Brian W: 9781695978553: Amazon.com: Books
<mjg> heh, archive starts in 1990
sdfgsdfg has quit [Quit: ZzzZ]
<geist> it had a lot of the initial development at bell labs background which was interesting
<mjg> featuring dennis ritchie
<mjg> well in that spirit there are talks by mckusick about early bsd days
<geist> yah totally
<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
<CompanionCube> https://lwn.net/Articles/331818/ has details
<bslsk05> ​lwn.net: The return of devfs [LWN.net]
<geist> heat: well yes. that's what udev is basically doing by creating the node with the right perms
<geist> but there's no race there where the perms are old or whatnot
<kazinsal> truly we should all just go back to running hacked together V6 systems based off samizdat copies of the Lions book
<epony> v8 happened and BSD took up further
<epony> standardisation too, self publishing has to follow it
mahmutov has quit [Ping timeout: 240 seconds]
<epony> these are just "similar" decisions various systems pick on their own pace
<gog> as soon as i can i'm using my OS as a daily driver watch me
<gog> see you in another 10 years
<kazinsal> one of these days I'll probably give up on doing anything interesting and just badly reimplement unix
<kazinsal> or maybe I'll badly reimplement unix as an april fools joke
<heat> kazinsal, join us
<heat> lets make poor man's linux together
<gog> i want to badly implment my own designs
<gog> tyvm
<froggey> please, no more linux clones, make a weird and quirky system!
<heat> so, linux clones?
<heat> gotcha
<heat> github.com/heatd/Onyx
<bslsk05> ​heatd/Onyx - UNIX-like operating system written in C and C++ (2 forks/17 stargazers/MIT)
sdfgsdfg has joined #osdev
<sortie> I can't believe it's not Linux!
<sortie> froggey: https://pub.sortix.org/sortix/screenshots/trianglix-4.png ← They weren't ready!!