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
kkd has quit [*.net *.split]
Yoofie has quit [*.net *.split]
remexre has quit [*.net *.split]
DrPatater has quit [*.net *.split]
phr3ak has quit [*.net *.split]
_whitelogger has joined #osdev
rwb has joined #osdev
phr3ak has joined #osdev
Ermine has joined #osdev
linear_cannon has joined #osdev
sauce has joined #osdev
linear_cannon has quit [Remote host closed the connection]
les has joined #osdev
TheCatCollective has joined #osdev
[itchyjunk] has joined #osdev
basil has joined #osdev
linear_cannon has joined #osdev
Arsen has joined #osdev
randm has joined #osdev
zxrom has joined #osdev
DanielNechtan has joined #osdev
hl has joined #osdev
Patater has joined #osdev
MiningMarsh has joined #osdev
Mutabah has joined #osdev
lav has joined #osdev
ChavGPT has joined #osdev
pounce has joined #osdev
joe9 has joined #osdev
jeaye has joined #osdev
xenos1984 has joined #osdev
JTL has joined #osdev
duderonomy has joined #osdev
Arsen has quit [Quit: Quit.]
stefanct has quit [Server closed connection]
stefanct has joined #osdev
cloudowind has quit [Quit: Lost terminal]
Arsen has joined #osdev
<immibis> kof13: https://immibis.com/butbeats/you_belt_me_right_round_baby.mp3 <- this is a thing made of only factorio sounds that can be assigned to speakers in game and with timing accuracy that can be achieved in-game, IIRC
<immibis> just do that with piano sounds
<immibis> a low-pass filter might also be useful :P
<immibis> put your talking piano in a padded room
<immibis> so nobody has to hear the zillions of key presses per second
<immibis> (btw this remix has a 2 minute intro so skip that far to hear what singing sounds like)
<kof13> it just makes me think of a cartoon or something and a character who only speaks as https://chrono.fandom.com/wiki/Gato ♪♪♪♪♪♪♪ fly out of its mouth when it talks
<kof13> on a fast enough system it could be a /dev/midifilter sound device :D although presumably with modern daemons/etc. that would be a better place for such a "filter"
vdamewood has quit [Quit: Life beckons]
torresjrjr has quit [Ping timeout: 248 seconds]
torresjrjr_ has joined #osdev
jjuran has joined #osdev
Gooberpatrol66 has joined #osdev
<kof13> yeah that sounds similar
<kof13> i really don't know this stuff, and not to get further off-topic, but i suspect you can simulate sounds with whatever other sound, akin to writing programming language x using/within y > no guitar samples were used for this tune... only synths.. https://modarchive.org/index.php?request=view_by_moduleid&query=59893
orccoin has quit [Ping timeout: 240 seconds]
<Hammdist> ah I was saving spsr and it I now notice it has a copy of the processor flags in it. I see now, thanks
netbsduser` has quit [Ping timeout: 240 seconds]
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
Arthuria has quit [Ping timeout: 255 seconds]
[itchyjunk] has quit [Remote host closed the connection]
vdamewood has joined #osdev
gog has quit [Ping timeout: 240 seconds]
Arthuria has joined #osdev
heat has quit [Ping timeout: 246 seconds]
heat has joined #osdev
Arthuria has quit [Ping timeout: 255 seconds]
elastic_dog has quit [Ping timeout: 255 seconds]
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
heat has quit [Ping timeout: 245 seconds]
elastic_dog has joined #osdev
<clever> immibis: ive been doing PWM audio recently, and had a surprisingly hard time getting good quality, you happen to know anything that might help?
Burgundy has joined #osdev
<zid> heh, cute series I just found on youtube, he's planning to 'start an ISP'
<zid> by which I mean, a 1993 isp, he's bought a sparcstation and some dialup modems etc
<immibis> how old is the series?
<zid> brand new, not a lot of content yet sadly
<immibis> is this a retro project or does he really think that is useful?
<zid> huh
<zid> yes, he's adamant that 14.4k baud internet serving 5 users is the future of ISPs, and has invested billions of dollars so far.
<immibis> I mean is it just for fun using old worthless hardware or are we talking about a delusional person
<immibis> some people are...
<zid> and by extension me, for promoting it?
<immibis> clever: wouldn't call myself an expert and would probably have to hear what you've made but - PWM frequency as high as you can set it, as much resolution as you can set it (sometimes those are contradictory, make a tradeoff but don't leave anything on the table), and make sure you have some lowpass filtering ability (this can come after the PWM)
Burgundy has quit [Ping timeout: 255 seconds]
<immibis> not sure why I wrote the last part in parentheses... I meant to say the speaker can be part of the filtering
torresjrjr_ has quit [Ping timeout: 255 seconds]
torresjrjr_ has joined #osdev
<sham1> hi
<zid> His Ham.
Arthuria has joined #osdev
gabi-250 has quit [Remote host closed the connection]
gabi-250 has joined #osdev
<clever> immibis: the issue, is that the refclk is basically just pwm_freq * resolution
<clever> immibis: so a 44khz 16bit audio sample, would need a ~2.8ghz reference clock (44000 * Math.pow(2,16))
<immibis> but you don't need 16 bit resolution
<immibis> not for the PWM, anyway
<clever> yeah
<clever> a lower resolution makes the clocks reasonable
<clever> this is a recording of what comes out
<clever> you can hear a lot of clicking and highfreq? content on each drum beat
<clever> https://ext.earthtools.ca/private/rpi/stock-rpi-os.m4a and this is the identical hardware and input, but with the official rpi firmware
<clever> which says its not a hardware limitation
<immibis> of course it would be bad apple. This is the normal raspberry pi audio port, and you are trying to diagnose why your firmware is worse than the official firmware?
<clever> yeah
<clever> also, i made a terrible mistake with the first audio test :P
<clever> also, re-listening to that one again, it sounds ... better?
<clever> but it doesnt have the same impulses from a drum
<immibis> you are not making this project for silliness: https://youtu.be/3RFOd_rdbro - you are actually trying to get something that is designed to be used as an audio port to play audio
<clever> yeah
<immibis> that audio is recorded directly out of the UART port
<clever> its a mix of many things, 1: a stress test of the whole stack, 2: 2d accel, 3: audio playback
<clever> i had finished implementing usb-host, and ext4/msd support
<clever> and then i got side-tracked, lets play bad apple from a usb stick :P
<clever> it wound up revealing a few bugs in my usb stack
<immibis> you could dump the PWM module registers while running official firmware and yours to see if there's any difference
<clever> i do also have a forum post explaining how the official audio is configured
<clever> > 100 * 1000 * 1000 / Math.pow(2,7) / 1000
<clever> 781.25
<clever> its generating 7bit PWM samples, and clocked at 100mhz, giving a pwm rate of 781.25khz
<clever> some vector math is then doing non-integer up-sampling, and dithering from 16bit->7bit, and applying EQ stuff to compensate for the analog filters
<immibis> clicking like that might possibly be caused by integer overflow. Drums are sine-wave-ish with low frequency and often higher amplitude than everything else combined. They could trigger overflow.
<clever> but i dont know enough to reproduce all of that math
<clever> if i just drive the PWM directly at the audio sample rate, so its 1 pulse per sample, you get what you heard in the above recordings
<immibis> dithering means add a random -1/256 to 1/256 before rounding to the nearest 1/128. You can do that to improve quality. I don't think not having it would cause this clicking
<clever> with the OVERSAMPLE flag in the above code, i can increase the pwm rate to some integer multiple of the samplerate
<clever> and just play each sample N times
<clever> but thats not properly doing a linear interpolation between the previous and next sample
<clever> and raising N makes it sound worse and worse
<immibis> you have defined BITS as 8 but you say the PWM is 7 bits
<clever> the part of the code i linked, is also responsible for converting the 16bit audio to 8bit audio
<clever> the official firmware does 7bit at 781.25khz
<clever> my code is doing 8bit at 44khz
<clever> the PWM peripheral also has 3 modes
<clever> in PWM mode, its 1 pulse per sample, where the pulse is N clocks long, and the period is always RANGE clocks long: https://i.imgur.com/EwLF1z1.jpg
<immibis> by the way is this pin hardwired as PWM? if it supports some other high speed transfer mode like SPI you could get even better audio quality with higher processing power by using delta sigma modulation
Arthuria has quit [Read error: Connection reset by peer]
<clever> in M/S mode, its randomly alternating between high and low, so its N highs out of RANGE, https://i.imgur.com/psihmB8.jpg
<clever> which gets rid of the strong tone at the pwm rate
<immibis> (M/S mode sounds the same as delta/sigma modulation)
<clever> and then it just has serializer mode, where you give it a 32bit sample, and it shifts it out at $clock
<clever> i cant hear any real difference between PWM and M/S
<clever> serializer mode, would let you implement any custom thing you want
<clever> you just have to generate an array of bits, and store them in ram
<clever> and unlike SPI, it wont pause every time your transfer-size register overflows
<clever> for the pi3b, the audio is on gpio 40/41, https://elinux.org/RPi_BCM2835_GPIOs
<clever> 41 can act as MOSI, but 40 is MISO, so you would lose an audio channel
<clever> and that plan would fail on the pi4b, where 45 is one of the audio channels, that can only do SPI CS or i2c SCL (ontop of pwm or gpio)
<clever> immibis: the other major problem i can see, is that PWM mode, has each pulse starting at the same point, relative to a 44khz clock, so there might be some weird effects, where the offset from low to next high, depends on the volume, which could introduce unwanted frequencies
<clever> but i M/S kinda complicates matters, and i cant predict what it would do then
<clever> the other major difference, between the bad-apple sample, and the wear sample (the other song), is how i manage the data buffers
<clever> wear, was a single .bin file, baked directly into the `.rodata` section, with dma configured to just copy the whole thing into the PWM FIFO
<clever> so its kind of a set it, and forget it style of playback
<immibis> the drum clicks still make me think of integer overflow. You could try a less complicated test file, just some drum by itself, or lowpass filter bad apple (audacity can do this) and then if overflow is right, it should be possible to look at the recording's waveform and see it
<clever> but bad apple, is far more complex
<clever> there is an array of 1024 samples (adjustable, line 81), which is split in half
<clever> dma is configured to copy a,b,a,b,... into pwm, and fire an irq when each half is done
<clever> a thread then blocks on an event from that irq, reads 4096 byte chunks from ext4/usb, and keeps the ringbuffer topped up
<immibis> another mistake that would be easy to make is mixing endianness - if your audio file is really quiet so all the samples are under+/-128 except for the drum beats
gabi-250 has quit [Ping timeout: 246 seconds]
<clever> hmmm, when i was using .bin format, i had to specify be vs le in ffmpeg args, and yeah it did sound way worse when that was wrong
<clever> also signed vs unsigned int
<clever> ffmpeg -i 【東方】Bad\ Apple\!\!\ PV【影絵】\ \[FtutLA63Cp8\].webm bad-apple.wav
<clever> but double-checking my notes, i dont specify anything when using .wav
gabi-250 has joined #osdev
<clever> immibis: would the le vs be be within format_type?
<immibis> actually I think all WAV files are little-endian
<immibis> is your bin file also little-endian?
<clever> that works, my cpu is LE only
<clever> extract-audio:ffmpeg -i Ken\ Ashcorp\ -\ Wear\ \[_3ux53bbVXs\].webm -ar 16000 -ac 1 -f u16le -acodec pcm_u16le output.raw
<clever> i was using this for my other .bin tests
<clever> so yeah, that was 16bit 16khz LE
<clever> but some math, says that would have been clocked at 1048mhz, which seems a bit high
<clever> not sure what numbers i last used
<clever> i did try asking ffmpeg to output ~700khz audio, but then it changed some special header in the .wav, and it was too much data for usb2 to handle
<clever> so i cant just pre-upsample it
goliath has joined #osdev
stux has quit [Server closed connection]
<clever> immibis: i'll need to get the hardware wired up again, and get back to you tomorrow, its already 3am here
<immibis> remember i'm no more an expert on this than you are - even if i did play bad apple on a uart
<clever> yeah
GeDaMo has joined #osdev
xvmt has joined #osdev
woky has quit [Server closed connection]
woky has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
KidBeta has joined #osdev
gog has joined #osdev
orccoin has joined #osdev
CaCode has joined #osdev
CaCode has left #osdev [#osdev]
HeTo has joined #osdev
Burgundy has joined #osdev
Vercas has joined #osdev
nyah has joined #osdev
xelxebar has quit [Server closed connection]
xelxebar has joined #osdev
eau has quit [Ping timeout: 255 seconds]
Vercas has quit [Ping timeout: 246 seconds]
eau has joined #osdev
Vercas has joined #osdev
Left_Turn has joined #osdev
elastic_dog has quit [Ping timeout: 245 seconds]
eschaton has quit [Server closed connection]
eschaton has joined #osdev
elastic_dog has joined #osdev
netbsduser` has joined #osdev
sudden has quit [Server closed connection]
sudden has joined #osdev
orccoin has quit [Ping timeout: 252 seconds]
KidBeta has quit [Remote host closed the connection]
netbsduser` has quit [Ping timeout: 255 seconds]
zxrom has quit [Quit: Leaving]
netbsduser` has joined #osdev
pch has quit [Server closed connection]
DanielNechtan is now known as bombuzal
grumbler has joined #osdev
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
stux has joined #osdev
kanzure has quit [Server closed connection]
kanzure has joined #osdev
Arthuria has quit [Ping timeout: 252 seconds]
<gog> hi
bnchs has quit [Quit: ZNC 1.8.2 - https://znc.in]
TheCatCollective has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
[itchyjunk] has joined #osdev
Vercas has quit [Ping timeout: 246 seconds]
Turn_Left has joined #osdev
<sham1> hi
Left_Turn has quit [Ping timeout: 252 seconds]
<Ermine> hi gog, may I pet you
<gog> yes
* Ermine pets gog
* gog prr
Vercas has joined #osdev
ornitorrincos has quit [Server closed connection]
ornitorrincos has joined #osdev
<netbsduser`> drivers for windows' Storport framework (for fast storage bus adapters) turn out to be almost completely self-contained and depending only on storport routines
<netbsduser`> i wonder whether i might be able to shim it and load these drivers for a lark
<gog> windows NT has a good driver model fite me
goliath has quit [Quit: SIGSEGV]
<netbsduser`> gog: it's profoundly asynchronous which is nice
<netbsduser`> i stole an idea from some microsoft chap as well when i was implementing a streams-like framework for my kernel
<netbsduser`> this guy invented something to do with filesystem filtering, and he suggested that in place of recursive calls up/down the driver stack as used in Windows, instead he would rather have an iterative mechanism where a driver returns information about what to do next
heat has joined #osdev
<netbsduser`> it saves greatly on kernel stack this way (windows apparently has a mechanism whereby if the call stack is getting too big in an i/o codepath, it first tries to extend the kernel stack; if that fails, it executes the driver call that would overflow in a worker thread instead)
<Ermine> heat: I'm looking at #85
<heat> Ermine, nice! see the tty code for starters
<heat> or pipe, pipe is probably simpler
<heat> test for pipe should be "write(n bytes), readv({n bytes, 1 byte})", verify it blocks, then fix, then make sure it doesn't block
TheCatCollective has joined #osdev
<heat> O_NONBLOCK is probably useful there
kpel has joined #osdev
<Ermine> so 'verify it blocks' would be 'check if it returns EWOULDBLOCK' ?
<heat> yeah sgtm
<heat> you could add it to kernel_api_tests
apokryptein has quit [Quit: Leaving]
<Ermine> Ok
bnchs has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
x8dcc has joined #osdev
<x8dcc> Hello, does anyone know if the intel manual has a similar figure for the segment descriptor as the one in the GDT page of the osdev wiki? I found one for the gdtr (vol. 3, fig. 2-6) but none for the segment descriptors
Hammdist has quit [Quit: Client closed]
Hammdist has joined #osdev
<gog> the AMD has better figures for the descriptors
<gog> hang on
<gog> section 4.6
<gog> through 4.8
<Ermine> Anadia people have fun time with wine on the streets meanwhile
gildasio has joined #osdev
<x8dcc> gog: Thanks, that's useful. I didn't even know AMD had a manual like that. Doesn't look as good as Intel, but the index at least looks cleaner :)
<x8dcc> I would still like to know if the Intel Manual has a similar figure as the one on the wiki, though
<gog> it does i just can't remember where
<x8dcc> which is basically Figure 4-13 of the amd manual you sent
<gog> the AMD manual is a little more condensed
<gog> and i just like it better
<gog> also RYYYYYYYYYYYYYZEN
<x8dcc> gog: well, at least I can search for it now that I know the intel manual has one :)
bleb has quit [Server closed connection]
bleb has joined #osdev
<x8dcc> found it: Vol. 3, Figure 3-8
kpel has quit [Quit: Leaving]
zxrom has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
joe9 has quit [Ping timeout: 240 seconds]
goliath has joined #osdev
flom84 has joined #osdev
sebastiencs has quit [Server closed connection]
sebastiencs has joined #osdev
<bl4ckb0ne> what happened to the memory acquired through allocatepool time when getting the memory map?
<bl4ckb0ne> is it omitted, or do I have to be careful not to overwrite it
<heat> it's in the memory map
<heat> assuming this is EFI AllocatePool you're talking about
<bl4ckb0ne> yep
<mcrod> hi
<bl4ckb0ne> i also dont get that from the spec
<bl4ckb0ne> >The AllocatePool() function allocates a memory region of Size bytes from memory of type PoolType and returns the address of the allocated memory in the location referenced by Buffer. This function allocates pages from EfiConventionalMemory as needed to grow the requested pool type
<bl4ckb0ne> if PoolType is EfiLoaderData
<bl4ckb0ne> will it still take memory from EfiConventionalMemory?
<heat> yes
<heat> all of DRAM is conventional memory, and you carve from it
<heat> so AllocatePages for EfiLoaderData carves from conventional memory
<mcrod> heat: i'm doing real embedded work today
<mcrod> what say you
<heat> (and allocatepool ends up in allocatepages or similar)
<heat> mcrod, ew embedded
<bl4ckb0ne> i see
<mcrod> i actually am using an oscilloscope to
<mcrod> o
<mcrod> they are fun
<mcrod> buy one
<bl4ckb0ne> so EfiLoaderData is just a fancy name for some memory region that ends up being EfiConventionalMemory
dude12312414 has joined #osdev
<gog> EfiLoaderData is the allocation type
<gog> EfiConventionalMemory is the range type
<gog> so when you look at the memory map for allocated blocks it'll tell you what the allocation type is
<gog> EfiLoaderData, EfiLoaderCode etc
<bl4ckb0ne> and they are both efi_memory_map nice
gog has quit [Quit: Konversation terminated!]
<mcrod> gog may I hug you
gog has joined #osdev
flom84 has quit [Ping timeout: 245 seconds]
<bl4ckb0ne> hmmm
bnchs has quit [Quit: ZNC 1.8.2 - https://znc.in]
TheCatCollective has quit [Quit: Meow Meow Meow Meow Meow Meow Meow Meow]
<bl4ckb0ne> so EfiLoaderData and EfiLoaderCode memory type should not be used by the kernel past exitBootServices
<heat> well yes because its *you* lol
* bl4ckb0ne loves the smell of footguns in the morning
<bl4ckb0ne> should've done that in C++
<gog> EfiBootServices{Data,Code} and EfiLoader{Data,Code} become available for use after ExitBootServices()
<gog> and data in a region may still be there, but if you need to pass data along to a kernel you may as well define your own EFI_MEMORY_TYPE > 0x80000000 iirc
<bl4ckb0ne> not efiloaderdata/code
<gog> what does the spec say
<bl4ckb0ne> gah fuck i lost it
<bl4ckb0ne> > On success, the UEFI OS loader owns all available memory in the system. In addition, the UEFI OS loader can treat all memory in the map marked as EfiBootServicesCode and EfiBootServicesData as available free memory.
TheCatCollective has joined #osdev
<gog> right, and then when the loader has passed control to the kernel then anything in LoaderData and LoaderCode are free now too
<heat> not quite
<bl4ckb0ne> doesnt seems like it
<heat> LoaderCode and LoaderData can and probably are you if you're an EFI app hybrid or some shit
x8dcc has quit [Ping timeout: 252 seconds]
<bl4ckb0ne> i shoved my boot params in there
<mcrod> gog: :(
<gog> mcrod: what is it
<mcrod> i asked for hug
<gog> oh
* gog hug mcrod
* mcrod hug gog
<bl4ckb0ne> just after you left
<gog> sorry i reboot4ed
<bl4ckb0ne> you never saw the msg
<gog> anyhow, once BootService are exited, whatever is in Loader{Data,Code} was allocated by your loader and is at your disposal
<gog> if you stuffed boot params in there that's fine, you can reclaim it at some point
<gog> i'm doing something even weirder in my dev branch though
<bl4ckb0ne> yeah, it can still be reached
<bl4ckb0ne> but i wont use it to allocate more mem
<gog> you can't after ExitBootServices anyhow
<heat> ii'm doing a bisect for a random guy on a byzantine kernel bug
<heat> gog
<gog> The Loader and/or OS may use this memory as they set fit
<gog> heat
<gog> bisecta
<gog> byzantine
<heat> you bisected my heart
<gog> whaaaaaaaa
<gog> when
<gog> i would never
<heat> in your 9th grade biology class
<heat> that was my heart
<gog> we dissected mudskippers
<gog> or some kind of lungfish
<heat> i wonder if i can disable DRM here
<heat> it pains me when doing these bisects that i build so much shit i don't need
Hammdist has quit [Quit: Client closed]
bnchs has joined #osdev
<heat> gog gog gog
<heat> buy me a cocmputer
<heat> let me program
<heat> build kernal fast go vrooooooom
<gog> i can't afford
<heat> why u cant afford
<heat> u poor?
<heat> why can u aford computer for you but not computer for me
<heat> idk seems kidna unfair
<zid> I'm first heat
<zid> I need new jippy U
Arthuria has joined #osdev
<heat> i need a new motherboard and central processing unit and random access memory and jippy u and power supply
<heat> and m.2 nvme PCIe gen 4 very fast sir pls
<gog> best i can do is a half-broken goldmont netbook from 2019
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<heat> if the kernel was written in C++ i'd be doing 1h compiles instead of 10 minutes and i find that beautiful
<heat> if the kernel was written in rust i'd be doing 2h compiles with 100 crates and 30 minutes of LTO at the end
<heat> thank god rust is never getting in the ker-fuck
<zid> Have you considered writing it all in assembly
<zid> that will rebuild super fast
<heat> mr torval had that idea in 1992
<gog> never write code
<gog> no code, no compiling
<gog> no bugs no tests
<gog> ezpz
<gog> i'm trying to write as little code as possible today
<kazinsal> a wise decision
<heat> gog what0s your favourite unix and why is it solaris 10
<gog> illumos
<gog> because it's solaris 9
<heat> illumos? more like solaris nein
<gog> when i started using illumos i had more free time to kiss women
<heat> kiss a what now
<heat> what's a 'woman'?
<zid> the things gog kisses
<zid> all you need to know
<gog> YES
<gog> yes
<kazinsal> boobs
<gog> maybe
xenos1984 has quit [Ping timeout: 258 seconds]
<gog> :<
<heat> bobs
<kazinsal> entirely unrelated I am tired as all hell and got zero hours of sleep last night after working until 1am
xenos1984 has joined #osdev
<gog> dang
<kazinsal> it's only 9:30am. I am already starting to lose it
<gog> why were you working so late
<gog> on a sunday
<kazinsal> cutover for a client that's open 7 days a week 7am-7pm
<gog> shiiiii
<gog> do you get to fuck off early today at least?
<kazinsal> maybe, idk. probably gonna tell my boss I'm going to take a two hour nap sometime around lunch
<kazinsal> hopefully manage to get enough sleep to keep going until bed
<heat> why are you LAZY
<heat> never sleep
<heat> keep working
heat has quit [Remote host closed the connection]
heat has joined #osdev
Arthuria has quit [Ping timeout: 245 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
rorx has quit [Server closed connection]
Hammdist has joined #osdev
rorx has joined #osdev
gog has quit [Quit: Konversation terminated!]
Arthuria has joined #osdev
ripsquid has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
joe9 has joined #osdev
Burgundy has quit [Ping timeout: 255 seconds]
gog has joined #osdev
Burgundy has joined #osdev
<bl4ckb0ne> OutputString is annoying
<heat> it is
<bl4ckb0ne> thought I could just snprintf it but no it requires char16_t
grumbler_ has joined #osdev
grumbler has quit [Ping timeout: 252 seconds]
<mcrod> god
<mcrod> how do I do `time += infinity;` in my life
<bl4ckb0ne> there's no god
<mcrod> duh
<bl4ckb0ne> its only agony
<gog> gnu-efi has a sort of printf implementation
<gog> sort of
<bl4ckb0ne> i dont use it
<gog> fair
Burgundy has quit [Ping timeout: 252 seconds]
xenos1984 has quit [Ping timeout: 245 seconds]
grumbler has joined #osdev
grumbler_ has quit [Ping timeout: 245 seconds]
<mcrod> god why is gitlab actually good
<heat> why do you only complain or mindlessly praise
<bl4ckb0ne> im 50% sure mcrod has french blood
<heat> bl4ckb0ne, btw you could naively just expand ASCII into UCS2
<bl4ckb0ne> heat: idk, just complaining
<heat> fair
<bl4ckb0ne> there's a printf reimpl in hboot already
zxrom has quit [Ping timeout: 252 seconds]
<mcrod> heat: i wish i knew.
<mcrod> i'm not french at all
<heat> i personally don't like gitlab, it just feels alien to me
<heat> some sort of dollar store github
<heat> yes i'll send you a pull reque- erm i mean a "Merge request"
<heat> git bisect run is nice
<zid> mrod: you mean, GOD, FRENCH IS SUCH A LANGUAGE
<zid> stay in cahracter ffs
<mcrod> i don't complain that often, in truth
<mcrod> it's just the only thing I end up saying here is indeed, some form of complaint
<zid> hmm?
<zid> compared to what? a complaining bot set to 11?
<mcrod> i am splitting hairs
<Ermine> one minor perk of gitlab is that it can remove mr branches automatically
<zid> is mr branches related to dick sites
<heat> hahahaha
xenos1984 has joined #osdev
gorgonical has joined #osdev
<gorgonical> I finally finished my first play of baldur's gate 3 last night
<zid> I'm too poor to understand this message
<zid> (game looks great though)
<gorgonical> I had to actually upgrade my graphics card so the game cost me an additional $100 lol
<gorgonical> I cannot believe how big the game is
<zid> I have BG2 somewhere, I never really played it though
<zid> it's in a cardboard foldout mess with like 5 CD pouches
<gorgonical> I never played it when it was new, I was too young to really grok it
<gorgonical> I mean I was 6 so lol
<zid> wonder how much extra it cost vs a reg game at the time
<gorgonical> oh that's really cool
<gorgonical> wow
<zid> It came with a friend's computer I think, the pack in game, along with total annihilation
<zid> I ended up with it cus he was never going to play it
<zid> we played a fuck lot of total annihilation though
<gorgonical> is that an rts?
<zid> TA is yea
<zid> The first one to use 3d models I think
<gorgonical> hmm
<gorgonical> I played loads of warcraft 3 as a kid
<gorgonical> Never did play dota though lol
<zid> wc3 was harrrd
<gorgonical> I was actually pretty good at the game and played ranked and did reasonably well
<gorgonical> certainly not top 10% but I was an excellent turtler as humans
<zid> grubby, moon, and gorgonical.
<gog> hi
<gorgonical> hello hello
<gog> wc3 was very hard i think it was a long time before i ever beat the campaign
teroshan97 has quit [Server closed connection]
teroshan97 has joined #osdev
<heat> hi
<gog> i'm making curry for dinner
<gog> i have garam masala and turmeric and paprika
<zid> paprika is just red dye
<gorgonical> unless you use a lot of it
<gog> it sort of has a flavor
<gorgonical> that's what i had to learn, to use like three times as much as you think
<zid> not that you'd taste through garam masala
<gog> yes
<gog> the turmeric and paprika are mostly for color
<netbsduser`> gog: best wishes
<zid> I bought some madras powder from ebay once, it was bad :(
<netbsduser`> i'm british asian and my first summer job was at a bengali/indian restaurant
<netbsduser`> give me a shout if you want advice
<zid> netbsduser`: make me a madras
<gog> nice ty :D
<gog> there used to be an asian grocery downtown that i loved but they lasted like a year before closing down
<gog> now it's a similar market but they don't have any of the imported snacks or spices
<zid> oh, and enough popadoms so that when stacked the ones at the bottom start to break
<zid> thanks
<gog> i've neveer tried to make popadoms i should do that
<ripsquid> Small question, How do I learn about debugging something I think is "triple fault?" or something that makes qemu close? How do I figure out what instruction that makes it happen? Could anyone lead me to any helpful resource?
<gog> ooh or samosas
<zid> -d int
<zid> -no-reboot -no-shutdown
<gog> ripsquid: -d int -no-restart
<gog> yeah
<zid> no something
<zid> reboot or restart, try!
<heat> what zid said
<heat> --no-reboot --no-shutdown
<heat> plus -d int
<gog> yes
<zid> -no-reboot
<heat> plus the qemu monitor's info registers etc etc even gdb can help you there maybe
<zid> I checked
<ripsquid> What does -d int do? I have no-reboot and no-shutdown since before.
<zid> traces interrupts
<zid> aka exceptions
<gorgonical> so if you have your output somewhere else than the monitor you'll be able to see what interrupts occurred
<zid> you'll get like old 0xffff new 0xd <info about the exception> old 0xd new 0xe <info about exception> old 0xe new 0xe <info about exception> then -no-reboot will hang it
<zid> and you have a lovely trace to look at for what caused your triplefault
<ripsquid> Okay. I am trying to setup interrupts and exceptions. My "OS" just makes qemu pause even while I think I am successfully running lidt and related code. But I'll see what -d int gives me
<gog> descriptor tables are annoying and a very common stumbling block
<gorgonical> it took me a long time to make them work correctly too
<zid> my lidt is the one thing that always worked
<zid> gdt I've fucked up a few times
<gog> idt is only one kind of descriptor really
<zid> mainly because it has loads more fields
<zid> and you load it way more often
<gog> at least i think you can only have gate descriptors in the IDT and only ones that are traps, interrupts or faults
<zid> imagine using anything but interrupt
<gog> GDT stands for God Damn Table
<gorgonical> i don't even really know what the other two do
<zid> same
<gorgonical> i never did figure out how to use traps
<gog> they don't clear IF on entry
netbsduser` has quit [Quit: Leaving]
<zid> disgasting
<gog> or rather, teh CPU won't clear them when vectored to
<gog> s/them/it
<gog> idk
<gog> i'm not a computer person really
<gog> i just spend all day with computers and make money by touching them and entering arcane symbols and formula
<gog> i should've been a dancer instead
<gog> this sucks
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<mcrod> that's ok
<mcrod> everything is terrible
<gorgonical> i'm definitely gonna be bald by the time i get my phd
<mcrod> everyone i know is bald
<mcrod> and i just turned 29
<mcrod> .
<zid> yes, everybody you know is bald
<zid> and we all believe that
<mcrod> you should
<mcrod> i'm willing to bet you're bald
<zid> my hair goes below my shoulders
<gorgonical> it could be true if you live on that mountain in greece where no women are allowed
<gorgonical> mt athos?
<mcrod> also, "everyone" isn't so literal here
<gog> i know a weird trick to prevent baldness but you probably won't like it
<zid> no fair, bald women are hot
<gorgonical> gog: lol
<zid> gog: hrt?
<gog> bingo
<zid> I was about to ask actually
<zid> if trans women dodged male baldness
<gog> it actually depends
<zid> (ngl it'd be kinda funny if they didn't)
<gorgonical> genetically i never had a chance. there's not a man in my family that isn't bald
<zid> my dad had hair when he died
<gog> my hairline was receding a bit and is a little bit high but i got about 1cm of vellus hair back
<zid> I should be okay enough
<zid> and grandad on mother's side had *some* hair left in his 80s
<zid> I've slowly been going grey for 15 years though
<zid> I think it's exponentially ramping, but I am still at the 0.00000001 stage
zxrom has joined #osdev
<zid> I'll just go FWOOMP at some point and be totally grey
<zid> gog: when you go grey are you going purple rinse?
<gorgonical> purple rinse?
<zid> https://pbs.twimg.com/media/EAzS9O0U0AIId-u.jpg stock gog footage from 2080
<gorgonical> I didn't know the old lady hair dye had a name
<zid> rip barry humpries
<gorgonical> I finally have my two kernels communicating over IPI and trustzone boundaries on hardware
<gorgonical> the value between them is not correct but that's probably a mmu/coherency misconfiguration
<gorgonical> Fuckin qemu cost me so much time and caused me so much pain
<gorgonical> :c
<zid> you expected accurate trustzone emulation in qemu? O_o
<gorgonical> no
<gorgonical> i expected accurate memory behavior in qemu
<gorgonical> worse
<zid> yea that's a bit of a hard sell
<zid> almost no emulators do that
<zid> because it's just SO much slower and much more work
<gorgonical> there is also some wildly inaccurate trustzone behavior on the board
<zid> like, 100x slower a lot of the time
<gorgonical> which qemu *did* implement correctly
ripsquid has quit [Read error: Connection reset by peer]
<gog> i have too much red for purple rinse to work :(
<gog> i tried this temporary color because i wanted some of the pink back but it didn't take4
<geist> oh grats for finally getting that going
<geist> what was the final problem you had to figure out?
<geist> well, gorgonical is who i was asking, but hair color is interesting too!
<gorgonical> geist: finally we resigned to the fact that the board is just not implementing secure/non-secure access correctly, and the behavior is seen with other secure oses
<gorgonical> i built up op-tee from their whole stack and it also shows the same behavior on my board
<gorgonical> so after that it was pretty smooth sailing honestly lol
<geist> yah makes sense. at the end of the day the secure/nonsecure stuff is just a biton the AXI trasnsactino the hardware has to actually honor
<gorgonical> the wacky thing is that linux can read the secure version but writes the non-secure version, but the bits that are supposed to be mapped between the two versions are not really
<gorgonical> it is insane
<gorgonical> like linux, running with scr_el3.ns==1, can just disable gicd security board-wide
Left_Turn has joined #osdev
Burgundy has joined #osdev
<gorgonical> i lost so much time on this because it wasn't resolved by me recognizing some mis-set bit. I had to actually sit down and characterize the strange behavior to understand what was happening
Turn_Left has quit [Ping timeout: 252 seconds]
klange has quit [Server closed connection]
klange has joined #osdev
<gog> geist: :P
<gog> i know
netbsduser has joined #osdev
ripsquid has joined #osdev
foudfou has quit [Quit: Bye]
<sham1> hi
<gog> hi
<gog> would you like some curry
<mcrod> yes
<gorgonical> I would really like some egg curry
<gog> egg curry :o
x8dcc has joined #osdev
<x8dcc> Hello, everyone
<gog> meowdy
<gorgonical> Just whole eggs cooked until the yolks are a little jammy, stirred into whatever curry you like to stain and flavor them. I use a coconut curry cause the original idea was from south indian cuisine
<gog> nice
<gog> sounds tasty
<gog> my sauce base was coconut too
<gog> i used to think i didn't like the flavor or smell of coconut but it actually doesn't bother me anymore. i still don't like the texture of flaked coconut
* zid sends gog a bounty
<zid> ite*
joe9 has quit [Quit: leaving]
<gog> no pls
<gorgonical> that's just a mounds
Hammdist has quit [Quit: Client closed]
jstoker has quit [Server closed connection]
jstoker has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
Vercas has quit [Ping timeout: 246 seconds]
joe9 has joined #osdev
mahk has quit [Ping timeout: 248 seconds]
Vercas has joined #osdev
xenos1984 has joined #osdev
bslsk05 has joined #osdev
ripsquid has quit [Ping timeout: 255 seconds]
sortie has quit [Quit: Leaving]
ripsquid has joined #osdev
cloudowind has joined #osdev
<zid> welp, bookworm finally did it
<zid> the thing it's about, happened
<heat> >I am trying to run xv-6 on kali linux
<heat> cheers mate
<heat> who the fuck uses kali linux
<mcrod> your mom
<cloudowind> heat: a lot using that
<heat> my mom does not use linux
<heat> much less pseudo-hacker linux
<heat> >With version 2020.3 in August 2020, the default shell was switched from Bash to ZSH
<heat> holy shit wow please die
<mcrod> i use zsh
<heat> i respect people that use zsh
<heat> but switching the default? fucking hell
<mcrod> therefore I am obligated to do thi-
<mcrod> okay, you have saved yourself from utter destruction
<kof13> i know for a fact that guy uses kali linux <points at indiana jones rope bridge scene>
<heat> it's like if i make a distro whose default shell is tcsh
<heat> or mksh
<heat> i'm really begging to get shot
<CompanionCube> 'Early versions of Mac OS X shipped with tcsh as the default shell, but the default for new accounts became bash as of 10.3 then zsh as of 10.15.'
<CompanionCube> heat: could be worse, default shell could be fish, but wrong vibe
<heat> yeah early versions of macOS shipped with tcsh because it's a netfreebsd ripoff
<heat> netfreebsdmach ripoff
<heat> fish being the default shell would however be funny as fuck
<mcrod> i should figure out a way to lower my blood pressure
<mcrod> before i stroke and die
<mcrod> if I ever get around to an OS
<mcrod> I would like to make it POSIX compliant
<kof13> nextstep had zsh IIRC but it wasn't default of course
<mcrod> as in, certified
<heat> lmao
<mcrod> that'll never happen
<mcrod> but I can dream
<CompanionCube> heat: microsoft should publish a distro with pwsh as the default, for the memes.
<zid> I can't tell the difference between zsh and bash other than that portage has theme packs for zsh
<heat> you realize the POSIX stamp is just something you basically pay for?
<mcrod> is it?
<heat> yes
<mcrod> don't they have a fancy test suite
<heat> horrendous test suite yes
nur has quit [Remote host closed the connection]
<mcrod> how do you know
<CompanionCube> hence why macOS is certified and linux isn't.
<heat> i've poked many holes at le dear UNIX-certified macOS's path walking from a test suite I wrote in a few hours
nur has joined #osdev
<mcrod> ah
<heat> written based on the wording
<heat> like, non-POSIX certified systems did better than macOS
<heat> POSIX is also kinda the bare minimum of everything
<heat> if you strive to be POSIX only you're like the vanilla of flavors
<moon-child> zsh is great but there is a special place for people that 'juice'/'rice' (or whatever they call) it
<heat> it's not really usable
<mcrod> sure, but that's "unix"
<mcrod> if you're fully compliant with SUS, you should be theoretically as usable as anything else
<heat> no
<heat> because anything else implements a boatload of extensions
<mcrod> still would be cool to give it a go
<heat> https://i.imgur.com/Nk6iy3B.png as usable as everything else
<bslsk05> ​i.imgur.com <no title>
<heat> GCC is just bloat, no one ever needed all those features
<mcrod> you know that's not what I'm saying
<heat> then what are you saying?
<heat> POSIX is the *bare minimum* everyone got to agree with
<mcrod> when I say "as usable" I mean at the very least I should be able to compile and run X or something
<mcrod> okay i don't quite know what I'm saying
<heat> i mean you don't need to be POSIX compliant for that
<mcrod> no, you don't
<heat> here's an example of what i'm saying: let's say you wanted to run an sql server on your theoretical OS
<heat> database software traditionally uses O_DIRECT when opening database files because the page cache and the POSIX write guarantees suck
<heat> POSIX does not have O_DIRECT
<heat> do you want high quality entropy? POSIX does not have arc4random
<heat> have a web server with lots of clients? oh no, there's no epoll nor kqueue
<zid> select is great shush
<zid> (Why is there no select but with a better interface btw?)
<heat> yeah, and that's poll, and it still sucks
<zid> poll is not select with a better interface
<heat> why not?
<zid> because it isn't? I'm not sure why
<heat> it does everything select does, in a cleaner way
<CompanionCube> also how will you run X? POSIX doesn't specify graphics APIs.
<heat> unless you're really attached to the bitmap idea
<mcrod> it doesn't, but I meant
<mcrod> you can compile X and it would (maybe?) work just fine, since all of the POSIX shit is there
<heat> that's not a reality
<heat> X heavily relies on per-UNIX-variant code for lots of stuff
<heat> like PCI device enumeration
<heat> standardize that, i fucking dare you
<zid> okay maybe poll is select with a better interface, but I sort of meant a better better interface, not select.1b
<heat> and you do, epoll and kqueue
<heat> and /dev/poll for the solaris fans out there
<zid> fine I'll fucking use epoll geez
<heat> /dev/poll actually looks really ez to implement
<heat> >The /dev/poll device, associated driver and corresponding manpages may be removed in a future Solaris release. For similar functionality in the event ports framework, see port_create(3C).
<heat> :(
<CompanionCube> funny quote from the illumos manpage: 'The /dev/poll driver does not yet support polling.'
<zid> but does it support epolling
x8dcc has quit [Ping timeout: 255 seconds]
<CompanionCube> https://illumos.org/man/7/epoll lol the notes
<bslsk05> ​illumos.org: illumos: manual page: epoll.7
<heat> oh they have epoll?
goliath has quit [Quit: SIGSEGV]
Vercas has quit [Ping timeout: 246 seconds]
Vercas has joined #osdev
<gog> hi
<nikolar> hi
<gog> native applications should continue to use this interface (that's worse)
<zid> no gog, no computer
<zid> don't think about computer
<gog> i have benerial disease
<gog> i got it from my computer
<gog> don't ask how
<gog> (my computer was cheating on me and didn't say)
<gog> illumos is aspirational for me rn
<gog> they've done what i can't even do
<gog> reimplement linux poorly
<zid> gog when are you adding an allocator to my kernel
<zid> I could write so much cool stuff after that
particleflux has quit [Server closed connection]
<zid> it doesn't even have to be good
<gog> idk just use mine
particleflux has joined #osdev
<zid> adds it!
<gog> it's not very good but it can do anonymous vm mapping
<gog> mostly
<zid> I don't even know what that means
<zid> can it.. give bytes
<gog> yes
<zid> k submit
<gog> no
<gog> you submit patches to my kernel first
<zid> but I haven't pre-written you any code yet
<zid> this is a bad trade
<cloudowind> which one is your kernel
<zid> the one on github/zid
<zid> (kernel is stretching it)
<cloudowind> k , and gog's is github/gog ?
<gog> idk it's somewhere
* gog shuffles papers around
<gog> no
<netbsduser> mcrod: i run xorg and my os is very much not sus
<zid> gog: I think someone in here is possessed by an owl
<cloudowind> peter?
<gog> do you think it's me?
joe9 has quit [Remote host closed the connection]
<gog> ¯\_(ツ)_/¯
<netbsduser> who is peter
<gog> foudn the owl
<netbsduser> st peter the apostle? peter the great?
<gog> peter griffin
<heat> hehehehehe
<heat> netbsduser, OS IS SUS
<heat> gog, submit patch to my kernal
<heat> if Ermine submit you submit
<heat> that iz deal
<gog> i will never submit
<gog> i will never yield
<heat> if gog submit mjg submit
<heat> and if mjg submit famed linox kernal dvelop linux torvald will
* kazinsal pets gog
* gog prr'
<heat> prr apostrophe
<gog> prr prime
<gog> it's the derivative of prr
<kazinsal> prr for mathematicats
<heat> oh no
<gog> oh yes
<heat> gog
<heat> gog
<heat> gog
<gog> heat
<heat> foo
<heat> bar
<heat> baz
<heat> INGA
<gog> fizz
<gog> buzzing
<gog> fizzbuzzinga
<heat> bazinga lightyear
<gog> i'm not programming
orccoin has joined #osdev
<kazinsal> need to get some better accessories to make my coding better
<kazinsal> maybe I'd actually get something done if I had some of those fancy programming socks
<gog> they say it's the socks
<gog> i think it might actually be cat ears
<kazinsal> perhaps a combination of the two
<heat> do you think K&R had programming socks
<gog> absolutely
<kazinsal> I have it on good authority that if you buy programming socks off amazon, it'll recommend you buy the K&R book along with them
<heat> rust book when??
<heat> rustc only runs if you have programming socks on