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
Fox has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
LittleFox has joined #osdev
LittleFox has quit [Remote host closed the connection]
LittleFox has joined #osdev
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
Gooberpatrol66 has joined #osdev
<zid`> gog: Who do I fist fight? Jerry Springer retired so I've got no stage direction
<zid`> and by retired I mean died a year ago apparently
<gog> i can't lie, the number of poeple it could be is very high
<gog> so the format of the fight is going to be royal rumble
leon has joined #osdev
<gog> every minute a new fighter will enter the ring
PublicWiFi has joined #osdev
<gog> you can up your chances by doing the gimmick that mick foley did in 1998 when he entered as each of his alter egos after elimination
<zid`> Can I rip my undetaker mask off
<zid`> and there's another undertaker mask underneath
<gog> yes
gog has quit [Quit: byee]
* kof673 awards alchemy points
<gorgonical> pregananant???
oldgalileo has quit [Ping timeout: 268 seconds]
oldgalileo has joined #osdev
eschaton has joined #osdev
Matt|home has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
Arthuria has joined #osdev
foudfou has quit [Remote host closed the connection]
edr has quit [Quit: Leaving]
foudfou has joined #osdev
navi has quit [Ping timeout: 260 seconds]
stolen has joined #osdev
voidah has quit [Remote host closed the connection]
srjek has quit [Ping timeout: 268 seconds]
foudfou has quit [Quit: Bye]
foudfou has joined #osdev
spareproject has joined #osdev
m3a has quit [Ping timeout: 260 seconds]
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
stolen has quit [Quit: Connection closed for inactivity]
\Test_User has quit [Quit: e]
\Test_User has joined #osdev
_whitelogger has quit [Ping timeout: 260 seconds]
GreaseMonkey has quit [Remote host closed the connection]
_whitelogger has joined #osdev
seds has joined #osdev
xal has joined #osdev
zetef has joined #osdev
MrCryo has joined #osdev
netbsduser has joined #osdev
GeDaMo has joined #osdev
netbsduser has quit [Ping timeout: 264 seconds]
zetef has quit [Ping timeout: 264 seconds]
wantyapps has quit [Quit: ZNC 1.9.0 - https://znc.in]
wantyapps has joined #osdev
zetef has joined #osdev
wantyapps has quit [Client Quit]
wantyapps has joined #osdev
wantyapps has quit [Client Quit]
wantyapps has joined #osdev
leon has quit [Ping timeout: 268 seconds]
spareproject has quit [Remote host closed the connection]
wantyapps has quit [Quit: ZNC 1.9.0 - https://znc.in]
wantyapps has joined #osdev
leon has joined #osdev
wantyapps has quit [Quit: ZNC 1.9.0 - https://znc.in]
wantyapps has joined #osdev
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
gog has joined #osdev
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
Left_Turn has joined #osdev
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #osdev
oldgalileo has quit [Ping timeout: 268 seconds]
spare has joined #osdev
spare has quit [Remote host closed the connection]
sham1 has quit [Ping timeout: 260 seconds]
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
<zid`> nice nudes, shame about the font
navi has joined #osdev
<ddevault> yeah there's something fucky with the font rendering
<ddevault> skips the last column
foudfou has quit [Quit: Bye]
foudfou has joined #osdev
gildasio has quit [Ping timeout: 260 seconds]
gildasio has joined #osdev
srjek has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
netbsduser has joined #osdev
dalme has joined #osdev
m257 has joined #osdev
<ddevault> fixed the font issue too :)
<ddevault> 26 days
<ddevault> I think I'll have a pretty passable unix inside of a month
foudfou has quit [Ping timeout: 260 seconds]
xenos1984 has quit [Read error: Connection reset by peer]
alpha2023 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
alpha2023 has joined #osdev
foudfou has joined #osdev
<Ermine> where's the cursor?
spare has joined #osdev
<ddevault> good question
<zxrom> Try looking for it on the display.
xenos1984 has joined #osdev
oldgalileo has joined #osdev
oldgalileo has quit [Ping timeout: 264 seconds]
siw5ohs0 has joined #osdev
siw5ohs0 has left #osdev [Leaving]
oldgalileo has joined #osdev
zetef has quit [Remote host closed the connection]
edr has joined #osdev
Arthuria has joined #osdev
m257 has quit [Quit: Client closed]
xvmt has quit [Remote host closed the connection]
xvmt has joined #osdev
sham1 has joined #osdev
m3a has joined #osdev
spare has quit [Remote host closed the connection]
m257 has joined #osdev
goliath has joined #osdev
teroshan has joined #osdev
mctpyt has joined #osdev
m257 has quit [Quit: Client closed]
m257 has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
foudfou has quit [Quit: Bye]
foudfou has joined #osdev
m257 has quit [Quit: Client closed]
gorgonical has quit [Ping timeout: 264 seconds]
m257 has joined #osdev
<nikolar> ddevault very impressive
<ddevault> thanks!
heat has joined #osdev
spareproject has joined #osdev
<gruetzkopf> neat
<ddevault> anyone know how to tell groff not to build docs for cross compiling
<gruetzkopf> i was under the impression that there's a implicit make rule for what you did ( when calling it 'make main' in your example )
<ddevault> oh I think there is
<ddevault> but I don't like implicit rules tbh
<gruetzkopf> fair
<sortie> ddevault: https://gitlab.com/sortix/sortix/-/tree/master/ports ← In general, if you're looking for cross compilation advise and patches, check my patches. I don't have a groff port anymore though, since I use OpenBSD mandoc
<bslsk05> ​gitlab.com: ports · master · sortix / Sortix · GitLab
<ddevault> thanks sortie
<sortie> You can usually disable building docs with stuff like --disable-docs, calling ./configure --help can show you options, or you can dig into the configure script and figure it out. Although generally if there's a cross issue, it's better to patch it
<ddevault> mandoc gave me hell when it came to cross compiling
<ddevault> ironically so does groff, but I worked it out
<ddevault> gentoo was a good source for the issue there
<sortie> I am on an older mandoc though back from when it was called mdocml
<sortie> Need to update that
<sortie> ddevault: https://wiki.osdev.org/Cross-Porting_Software ← I assume you're familiar with my tutorial here
<bslsk05> ​wiki.osdev.org: Just a moment...
<ddevault> sure
<ddevault> I cross port software all of the time, but some stuff just sucks for it
<sortie> https://pub.sortix.org/sortix/deleteme/cisortix/man/man7/porting.7.html ← The Sortix guide may also be interesting to you
<bslsk05> ​pub.sortix.org: porting(7)
<sortie> https://pub.sortix.org/sortix/release/nightly/man/man7/porting.7.html ← Err, nevermind that above link, that will die, see this one instead
<bslsk05> ​pub.sortix.org: porting(7)
<sortie> ugh why did google index that first one
<sortie> OK deleted that old link
<sortie> ddevault: Yeah it took a lot of work, but I can cross compile all my over 80 ports out of the box now without issues
<ddevault> nicely done
<sortie> I have a bunch of tricks but it essentially it boils down to patching in more correct logic and removing issues
<sortie> That way I keep the ports system itself simple and make fixes fairly close to the root problem
<ddevault> yeah, that's the way
k_hachig has joined #osdev
<ddevault> thanks sortie, started with your patch
<sortie> Somebody check if bunnix is just a lightly reskinned sortix
<ddevault> is not!
<ddevault> at this point bunnix is mostly integration work
<ddevault> there's an issue with the EFI bootloader to sort out, I could dig into some ext4 stuff if I feel like it
<ddevault> otherwise it's choosing and integrating the ports I want for the final product (and if I include mandoc or groff or so, writing some man pages)
<ddevault> day 26
<ddevault> if I'm not too distracted I should have something shippable inside of a month
xvmt_ has joined #osdev
xvmt has quit [Ping timeout: 268 seconds]
xvmt_ is now known as xvmt
<nikolar> very cool
<nikolar> any future plans
<heat> >writing some man pages
<heat> do not, HTH
<sortie> >writing some man pages
<sortie> Approved
<sortie> heat is not a successful osdever
<sortie> Your advise has been overruled
<heat> wdym
<ddevault> nikolar: dunno, maybe
Ermine has quit [Remote host closed the connection]
Ermine has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
xenos1984 has joined #osdev
spareproject has quit [Remote host closed the connection]
<dostoyevsky2> Any ideas why Pulse Audio breaks so easily on Linux? Is it really that hard to properly interface with an Audio Device?
vikn has quit [Quit: Leaving...]
<gruetzkopf> It's not hard to do with exactly one application using exactly one audio device. it gets substantially more complicated if you exceed that (more devices is a bigger problem than more applications)
vikn has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat_ has joined #osdev
k_hachig has quit [Ping timeout: 268 seconds]
<dostoyevsky2> gruetzkopf: I guess the Linux kernel would need to have some RTOS-like feature to ensure that the audio buffers never stop being filled with many applications outputting audio at the same time... Not sure how common it is to use multiple audio devices at the same time
goliath has quit [Quit: SIGSEGV]
gog has quit [Quit: Konversation terminated!]
stux has quit [Ping timeout: 255 seconds]
k_hachig has joined #osdev
xenos1984 has quit [Ping timeout: 268 seconds]
xenos1984 has joined #osdev
k_hachig has quit [Ping timeout: 252 seconds]
k_hachig has joined #osdev
gog has joined #osdev
m257 has quit [Ping timeout: 250 seconds]
k_hachig has quit [Ping timeout: 268 seconds]
k_hachig has joined #osdev
theyneversleep has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
gorgonical has joined #osdev
<gorgonical> So I tried to install pijul and I couldn't. Because the rust crate system is immature and some developer yanked a crate because they consolidated various separate crates into one crate. And you can't install yanked crates from rust, so I installed darcs instead
<gorgonical> So, good job rust
heat_ has quit [Remote host closed the connection]
zxrom has quit [Remote host closed the connection]
heat has joined #osdev
zxrom has joined #osdev
SGautam has joined #osdev
<Mondenkind> dostoyevsky2: because poettering?
<Mondenkind> macos does have special kernel/scheduler integration with the audio daemon iirc, but that's not the problem with pulse.......
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
oldgalileo has quit [Ping timeout: 260 seconds]
frumon has quit [Read error: Connection reset by peer]
k_hachig has quit [Ping timeout: 268 seconds]
<dostoyevsky2> gorgonical: Obviously the solution is to rewrite it in Hare
frkzoid has quit [Ping timeout: 246 seconds]
k_hachig has joined #osdev
k_hachig has quit [Quit: WeeChat 4.2.2]
MrCryo has quit [Ping timeout: 255 seconds]
<heat> pulse is outdated now, everyone uses pipewire
<heat> (which seems a good bit better)
<Ermine> my headset works better with pipewire
<Ermine> heat: are you still haunted by pipewire bugs?
goliath has joined #osdev
<Bitweasil> I use Qubes. Working audio is a novelty. :(
<Bitweasil> And, yeah, MacOS has some special sauce related to audio so it can keep realtime low latency audio generally working.
<zid`> "audio is a luxury yo cannot afford" --My gameboy emulator
<Bitweasil> Audio is usually a way to hear someone yapping away in a YouTube video that could have been written.
<Bitweasil> "I will use several gigabytes of HD video to talk to the camera!"
<zid`> I'll run it through libcaca at 80x24 for you
<Bitweasil> What's libcaca?
<zid`> video renderer that outputs ansi escapes instead of bitmaps
oldgalileo has joined #osdev
<Bitweasil> Oh weird.
<Bitweasil> Okay, that's cool. :D
oldgalileo has quit [Ping timeout: 256 seconds]
<Bitweasil> mpv -vo caca [youtube URL] works...
<zid`> Now you just need to transcribe the audio to a graphical waveform
<zid`> and it's successfully swapped
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
Arthuria has joined #osdev
* kof673 points at carnegie unit, entirely time-based " Audio is usually a way to hear someone yapping away in a YouTube video"
<kof673> your grade depends on whether you sit through my lecture or not lol
<kof673> there is a long tradition lol
* kof673 insert charlie brown wah wah wah wah teacher here
gbowne1 has joined #osdev
<Ermine> I don't get the idea of shadow stacks. Does it just contain return addresses?
<zid`> it's to split the locals and params away from the return addresses yes
<zid`> so that overflows on locals can't corrupt return addresses
freakazoid332 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
<dostoyevsky2> Ermine: less buffer overflows
vikn has quit [Excess Flood]
xenos1984 has quit [Read error: Connection reset by peer]
<Ermine> And to enable it in userspace, it should be set up by an os, but do programs need to support it?
vikn has joined #osdev
<zid`> compiler
<zid`> needs to generate the shadow stack versions of the function entry/exit
oldgalileo has joined #osdev
<zid`> and the OS needs support, if it's hardware shadow stacks
<Ermine> i guess they are hw on x86
<zid`> You can do them in software if you want still
<zid`> not sure if gcc knows how though
<Ermine> okay, thank you
<Bitweasil> Hm. I thought Intel had an extension coming out for shadow stacks that didn't require program support.
<Bitweasil> Just OS support.
<bslsk05> ​www.intel.com: Access Denied
<Bitweasil> > CET enables the OS to create a Shadow Stack, which is designed to be protected from application code memory accesses, and stores CPU-stored copies of the return addresses.
<Ermine> Though SDM says that cpu modifies shadow stack on call/ret
<Bitweasil> So it'll store the call/return addresses, without needing a cooperating compiler. The compiler still has to emit the branch target opcodes if you want to support that.
<Bitweasil> Yeah, "CPU modifies" implies that the hardware is doing it, not the program.
<Bitweasil> IMO.
<Bitweasil> Though I've been in the ARM weeds a bit long so I'm a bit stale on my Intelisms.
<dostoyevsky2> would be cool to be able to use the stack for O(1) allocations again
<Ermine> alloca
<Bitweasil> But fundamentally, mixing data and control flow on the stack enables a range of attacks. You could also split the control flow and data stack, and a suitably clever compiler and cooperating OS could do that easily enough, but nobody really has that I'm aware of.
<Bitweasil> Shadow stacks are "We just check for mismatch on return and report malfeasance to the OS."
<zid`> There was a 32bit cfi which abused the segment selectors afaik
<nikolar> if i had to guess, it stores the return address to both the actual and the shadow stack
<nikolar> so the code continues to work
<zid`> you make ss: and ds/gs different
<zid`> so that push goes to one stack, and you access the stack vars with [ds:]
<Bitweasil> zid`, ah, nifty. I'm certain a lot of research papers have been written about ways to do it. Just, not aware of any that actually made into widespread use.
<zid`> yea I don't think cfi/cet is widespread at all
<zid`> It's slow without hw support, and intel's hw support wasn't very good afaik
<Bitweasil> I didn't know it had actually shipped...
<Ermine> dostoyevsky2: so it's not less buffer overflows, but more software crashed before nasty stuff happens
<zid`> it is also less buffer overflowsw
<zid`> It's *mainly* a security technique
<zid`> even
<Bitweasil> It makes ROP much more difficult, as do the branch target NOPs.
<zid`> yea ROP is just an attack that bypasses *other* buffer overflow protections :D
<Bitweasil> (those are essentially a "Your branch must land on one of these!" tag that's a NOP for non-supported CPUs, and if it's enabled, a branch to anything else will fault)
<zid`> so removing buffer overflows also protects against those attacks too, naturally
<zid`> CFG is slow and annoying
<Bitweasil> Yeah. Stack canaries help a lot too.
<Bitweasil> Computers are slow and annoying. Because software can bloat faster than hardware can improve.
<zid`> CFG on windows had some good issues where it'd make making processes suuuper slow
<zid`> because of all the faulting and missing and stuff building the security bitmaps
<zid`> and bad code
<Bitweasil> Hm. Which is CFG?
<Ermine> control flow guard?
<zid`> yea
<zid`> the 'only certain branch targets are valid' impl
<Bitweasil> Looks like Microsoft had the CFG stuff, that was pure software.
<dostoyevsky2> I wonder if shadow stacks could also help with making threads cheaper... if you can separate the stacks into just return addresses and data, then you could set the minimum stack size much lower... e.g. usually creating a thread costs you at least 2k of RAM for the stack
<Bitweasil> Intel's approach has the "End branch" targets, that are just a NOP.
<Bitweasil> If you branch, your next instruction has to be the end branch target, or you'll fault.
<zid`> dostoyevsky: stacks are usually demand faulted so they're free
xenos1984 has joined #osdev
<zid`> that's CET yea
<zid`> It's bad and weak, as mentioned
<Bitweasil> Yeah, CFG looks like it was a Microsoft software-only approach.
<zid`> CFG does actually work, but it's slow
theyneversleep has quit [Remote host closed the connection]
<Bitweasil> Intel CET is shadow stacks and endbranch instructions. Microsoft's CFG was the pure-software branch bitmap sort of thing.
<Bitweasil> In any case, I don't know if any of it's actually in widespread use. :/
<Bitweasil> ENDBRANCH is a non-trivial reduction in code density.
<zid`> -fcf-protection or something
* zid` goes back to watching pigs
<dostoyevsky2> Well, in OpenBSD they removed the stack cookies for some architectures because of those builtin features I think
<Ermine> Did anything ever use rings 1 and 2 on x86?
SGautam has quit [Quit: Connection closed for inactivity]
<Bitweasil> IIRC some of the early virtualization software made use of it.
<Bitweasil> Before hardware virtualization.
<heat> Ermine, kinda, sometimes my pipewire shits itself and i need to restart the service
<heat> but better than pulseaudio i think
<dostoyevsky2> heat: why can't pipewire detect dtect itself malfunctioning and then restart itself?
<heat> if pipewire could detect itself malfunctioning wouldn't it not malfunction in the first place?
<Ermine> define 'malfunctioning'
<dostoyevsky2> Ermine: Seems to be a feature audio drivers usually implement, not sure why
dalme has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<zid`> Poor piggies though
Gooberpatrol66 has quit [Quit: Konversation terminated!]
zxrom has quit [Remote host closed the connection]
zxrom has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
[Kalisto] has quit [Read error: Connection reset by peer]
[Kalisto] has joined #osdev
FreeFull has quit []
goliath has quit [Quit: SIGSEGV]
foudfou has quit [Ping timeout: 260 seconds]
foudfou_ has joined #osdev
<kof673> > You could also split the control flow and data stack i do not recall details, and relevant "standards" but "forth"s had "return stack" and "data stack" IIRC