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
<heat> so is the freenode #osdev channel just going to be crystalmath as OP talking to himself
<geist2> dunno, they were talking about becoming staff on freenode too, so quite possibly
<jeaye> Not as long as klange is in there with his op hat on, anyway. They'd have to boot him, -m the channel, and re-grow it. Seems unlikely.
<moon-child> they did it once...
<doug16k> sortie, I get to "found your hostname" then it stops until timeout
<sortie> doug16k, yeah port 6667 seems to work
<sortie> I think somehow it's not hearing your client talk
<klange> is 6667 serving tls?
<sortie> Plain text
<klange> ah, well, you don't get points for that :)
<geist> like a commoner
<doug16k> ya now I get like heat, Connection failed. Error: (336130315) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
<doug16k> ah I see
<heat> i can usually get the handshake going
<heat> that only happened once
<doug16k> that's what I got if telling my client to always use tls and specifying port 6667
<jeaye> heat makes for sweaty handshakes.
<jeaye> And melty milkshakes.
<heat> doug16k, you're not getting TLS on 6667
<doug16k> yeah, that's why I said "I see"
<doug16k> it's plaintext
<klange> hm, did I set up the toaru irc client to support tls with mbed... no, it does not look like I did...
<klange> something to do in 2.0 i guess
<doug16k> what the? { char buf[80]; strerror_r(42, buf, 1000000000); cout << buf; } says ��MZ�[\DEL]
<doug16k> (seeing if they strncpy it :)
<doug16k> it must be returning something
<doug16k> what the hell? { char buf[80]; cout << strerror_r(2, buf, 1000000000) << ":" << buf; } says No such file or directory:���#�[\DEL]
<moon-child> manpage says 'If the function stores a string in buf, then at most buflen bytes are stored'
<moon-child> so presumably it doesn't have to use buf if it doesn't want to
<doug16k> so it just invokes potential UB and makes it point to string literals with char *
<klange> The whole put of the _r version is that it stores in buf, though; I think that statement means if it doesn't store _anything_ because the errno value is invalid, then the 'up to' doesn't mattter.
<doug16k> 2 is valid. that's ENOENT
<doug16k> no such file
<doug16k> billion is buf size. lying to see if they use strncpy
<doug16k> it'd fill it
<moon-child> 'This [returned pointer] may be either a pointer to a string that the function stores in buf, or a pointer to some (immutable) static string (in which case buf is unused)'
<heat> doug16k, uses snprintf
<heat> they also don't fill buf yeah
<heat> buf is only filled for unknown errors
<bslsk06> ​elixir.bootlin.com: _strerror.c - string/_strerror.c - Glibc source code (glibc-2.33.9000) - Bootlin
<moon-child> note the xsi strerror doesn't return a string, so it has to fill buff
iorem has joined #osdev
<moon-child> and apparently you get it if you #undef _GNU_SOURCE and #define _POSIX_C_SOURCE 200112
<doug16k> I guess it would have been 10x clearer if I said ENOENT instead of 2
<moon-child> const thing isn't ub, it's only ub if you try to write to the result
<heat> btw g++ implicitly defines _GNU_SOURCE
<heat> *for some reason*
<klange> I think that depends on your choice of -std
<doug16k> yeah that's why I said potential ub
<klange> And the whole suite defaults to the gnu* ones
isaacwoods has quit [Ping timeout: 244 seconds]
<heat> oh pointing to string literals with char *? that's classic C
<doug16k> so glibc assumes it is dynamically linked or doesn't really care about executable size much
<klange> seems I've got some catching up to do on this new network stack if I want to compete with sortix
<klange> glibc absolutely assumes it's being statically linked and has entire subsets of functionality that do not work otherwise
<klange> dynamically*
<klange> fuck
<klange> why do i have this bad habit of typing the exact opposite of what I meant to say
<klange> it's like target fixation but for irc
<doug16k> typing has become so automatic it goes fully autonomous sometimes
<klange> "don't say literally the wrong thing, don't say literally the wrong thing-oh you said literally the wrong thing..."
<klange> spoiled by discord where I can type first and think later
<doug16k> yeah that's awful when you are trying to help someone escape being confused and you say the opposite by accident right before they get it
<doug16k> so strerror_r is a trainwreck where you aren't quite sure if it uses buf or not or what TYPE it returns? wow
<heat> yes
<heat> fun fact: glibc supports statically linked dlopen
<klange> "supports" is a stretch
<heat> kinda works
<heat> doug16k, why do you say it doesn't care about the executable's size?
<klange> They don't "support" static linking at all any more, but if you do it there's some stuff in place so it can dlopen, which it needs to support some functions (eg. some socket stuff).
<heat> 1) it doesn't lol; 2) I don't see how that's related to strerror
<doug16k> sledgehammering out a simple memcpy + itoa with snprintf
<heat> riiiight
<doug16k> chance that they use printf already is near 100%? sure
<doug16k> but I want someone to get 4K .text maybe
<heat> wrong libc homie ;)
<heat> musl is very minimal
<doug16k> rolling my own so far
<doug16k> didn't give up yet
<heat> you also have uclibc but the quality is way down compared to mus
<heat> musl*
<heat> I wonder if bionic is also tiny
<moon-child> I think bionic is normal-sized
<moon-child> based on bsd libc with some extra junk
freakazoid333 has quit [Ping timeout: 244 seconds]
<doug16k> I felt bad when I duplicated a hex lookup table like static char const hexlookup[] = "0123456789abcdef";
<doug16k> and that 0 I don't need at the end!
<heat> bionic is based on like 3 or 4 different libcs
<heat> it's the macOS of libc's
<doug16k> almost crazy enough to make it say { '0', '1', '2,' ... so there's no null terminator
<klange> Given the variance in code size just from different optimization flags, shaving a single byte off a string by dropping its nil terminator is idiotic ;)
<doug16k> yeah it won't help
gog has quit [Ping timeout: 264 seconds]
<heat> also, padding
<doug16k> yeah it could be 4 to 7 bytes actually
<doug16k> even 15 but doubt it
<doug16k> it could be just enough to tip you over the edge and add 4K to the executable
<doug16k> needing one more page to cover .rodata before .data begins, for example
<doug16k> I guess the question is, does anyone care about what happens if you statically link anymore
<doug16k> you can call everything from everything in the shared library
<Mutabah> w/ 25
<Mutabah> Gah.
<doug16k> I mean, can without making anything bigger
<moon-child> doug16k: you can just use char hexlookup[16] = "..."
<moon-child> also compilers will do interning so you don't have to worry about duplicating
<doug16k> moon-child, that appears to work actually, thanks
<doug16k> no wait sorry
<doug16k> it's an error: error: initializer-string for 'const char [32]' is too long [-fpermissive]
<doug16k> that one is 32 because: static char const formatter_hexlookup[32] = "0123456789abcdef0123456789ABCDEF";
<doug16k> I have it on heavy pedantry
<moon-child> huh. Works in c but not c++
freakazoid333 has joined #osdev
<doug16k> not having designated initializers in C++ breaks my heart
<doug16k> traded that in for locks that always unlock and memory that always frees and files that always close :P
<moon-child> iirc there's a neutered version in c++20
<heat> and vectors that vector, and strings that string
<moon-child> I usually use macros for the raii stuff. with_mutex(m) { stuff guarded by m }
<heat> what do you mean you don't have to use a realloc loop to have a dynamic array
<heat> blasphemy
<doug16k> if you returned it wouldn't work though right?
<doug16k> or continue, or break
<moon-child> yeah. Though there are hax to work around that
<doug16k> yeah it has tolerable limitations
<moon-child> there's also a gcc thing that will do what you actually want
<moon-child> __attribute__((cleanup)) iirc
wgrant has quit [Ping timeout: 264 seconds]
<doug16k> yeah I use(d?) that at one point
<moon-child> heat: you're just not macroing hard enough!
<heat> monthly reminder that this(https://clang.llvm.org/docs/ThreadSafetyAnalysis.html) is a thing
<bslsk06> ​clang.llvm.org: Thread Safety Analysis — Clang 13 documentation
<doug16k> heat, you missed my favourite: sets that set
freakazoid333 has quit [Ping timeout: 252 seconds]
<heat> maps that don't require you to find a crummy implementation of a self balancing binary tree
<moon-child> oooh, thread safety thing is cool
<doug16k> self balancing binary trees are how you show off your big muscles though right?
wgrant has joined #osdev
<heat> big muscles small cache
<geist> oh reminds me, someone wrote a decent C self balancing tree in a fork of LK. need to bring that back
<heat> geist, yes, that google thing right?
<doug16k> you can make them have excellent locality
<geist> heat: yeah, in trusty
<heat> i should try to bring parts of the fbl to onyx
<heat> good intrusive containers? oh my
<geist> oh fbl is a different can of worms
<doug16k> I have it so you can give it an allocator and it uses a page map backed bump allocator you can share among trees holding same type
<geist> but i did manage to pull some of that too
<heat> especially after I spent 2 days looking for an ASAN bug that didn't exist and it turns out I accidentally forgot to remove a process from a list_head in its dtor
freakazoid334 has joined #osdev
<klange> geist: so a random internet article tells me you guys are finally shipping?
<geist> yep!
<geist> already rolling out
<klange> In retrospect, Nest really makes sense as a target platform.
<klange> Like, duh, of course that's where you'd want a new OS focused on security that also has a shiny Flutter GUI...
<geist> word.
<geist> and about 5 years is about right to go from zero to a working OS
<geist> it's actually what we pretty much said on day 1
<doug16k> ready for everyone to take a dependency on everything? :)
<geist> heh well
<geist> FWIW the internal arch of fuchsia is far more distributed, so lots of cross deps are in the form of messaging
<geist> so you can in theory replace services with different implementations
<geist> much to my chagrin the number of processes and threads in somethig like the home device is much higher than i'd think
<geist> but makes sense given that there are lots of little micro services
<doug16k> what philosophy will it be? "never break anything ever", or, "no way we're keeping it like that"?
heat has quit [Ping timeout: 264 seconds]
<geist> what do you mean?
<doug16k> where the os did something wrong, and they depend on that and you break their code when you make it do it right
<doug16k> but their code worked for quite a while then broke because you fixed it
<klange> This is a problem I avoid by not having anyone else write stuff for my OS. :headtap:
<geist> oh i dunno. we generally have tried to build into the system a decoupling of APIs and versions so that we can evolve and not get stuck in particular patterns
<geist> but time will tell
freakazoid334 has quit [Ping timeout: 264 seconds]
<geist> as is always the case, dealing with 5 or 10 years from now will be the real interesting problem
<geist> and definitely somethig that keeps me up at night
<doug16k> os is the ultimate case of everyone taking crazy dependencies on weird details
<geist> yep. there's a rule about that
<geist> forget the name but the idea is if you make an api eventually everyone will write load bearing code against all the bugs and idosyncracies
<geist> posix is a great example of 50 years later all these quirks still being load bearing
<klange> At least with Posix there's a dozen implementations full of hardcore ~~goblins~~ users who will tear you apart, unlike that other OS full of load-bearing bugs.
<klange> _It is dark and you have assumed something true on Linux applies to all Unix-likes. You are likely to be eaten by a FreeBSD user._
<geist> but yeah the syscall layer i drew a lot of lines in the sand over this or that
<geist> based on the idea of projecting it forward N years and then how does this innoculous feature someone wanted work with all the other ones
<doug16k> anyone that says "hey I'll try it and see what it does" potentially adds one more backward compatibility nightmare
<geist> every time some new thing is added there's this matrix of interactions with other things
<geist> idea is hold it still long enough that it solidifies, you get real code running against it, then release the grip a bit and see what really doesn't work
Lucretia has quit [Quit: Konversation terminated!]
<bslsk06> ​fuchsia.dev: Zircon System Calls  |  Fuchsia
<klange> ugh, I completed my DHCP request and got an ACK but qemu gives me the same address on this other port... is my naive configuration making them separate networks...
<geist> heh yeah i was just tooling up to fiddle with taking the cheesy net stack in LK up a notch so i can connect to sorties irc channel
<geist> bummer he's not doing ipv6, since that's kinda what i'm interested in rght now, but so it goes.
<doug16k> klange, usermode network would be isolated right?
<doug16k> what kind is it?
<klange> I just gave it two -netdevs and they are slirp, are they isolated from each other?
<doug16k> should be
<klange> I want to... not have them isolated - what incantation can give me that?
<doug16k> that is two nats right?
<klange> It must be, and in retrospect that does make sense.
<doug16k> you need a host only network, then have nics connected to it
<klange> I guess that's actually fine and I can configure the other one with a different address range...
<doug16k> that is like having two vms on a lan together
<klange> Or... learn how to deal with the fact I have two interfaces with the same IP in different networks?
<doug16k> ya you can probably get it to work a few ways
<klange> My old network stack didn't support multiple interfaces at all, the driver took over and handled all the network stuff, trying to fix that from the start here but the default setup qemu gives when I throw two devices at it is not to my liking :)
<doug16k> my kernel half expects 128 nics :P
<klange> I have my fresh new Kindle copy of TCP/IP Illustrated vol 1 'cause I want to do this right this time.
<geist> yah the old newos one i wrote 20 years ago expected lots of nics and routing
<klange> Userspace DHCP client, resolver in the libc (or in a separate lib dlopen'd by the libc, like glibc does it ;) )...
<geist> but its pretty dated now so i've been hesistant to port it without basically rewriting with it as inspiration
<klange> tbf, I hacked together toaru32's in two days with some work colleagues for an open hackathon.
<geist> yah simple stacks are fun
<geist> the current one in LK is called 'minip' for a reason :)
<klange> The fact that it worked on a real piece of hardware is a miracle in its own right.
<geist> basically good enough to slam some UDP packets are a high rate and then some basic TCP sockets for debugging/firmware updates
<geist> was using it in some product at work
<doug16k> geist, how min. window scaling is there right?
<geist> of course not
<doug16k> ok it is min
<geist> it's minip!
<geist> but it's really there for more embedded stuff, so tuning the socket receive buffer/etc is fun
<klange> toaru32's was only good enough to offer bruteforce TCP sockets to userspace, and you better hope you were behind something smart enough to deal with the rest.
<geist> trying to design stacks like that to work on embedded and scale up always makes it more complicated
<klange> Happily I target something a bit newer - even my "ancient" test rig offers 4 cores and 4GiB of RAM to waste.
<klange> s/newer/bigger/
<doug16k> the max it thinks about at once is one datagram I guess
<klange> I have half a mind to do this stack in userspace, but I don't want to think about the IPC changes...
<doug16k> hard to think like that knowing the normal windowing stuff
<geist> well that's UDP
<geist> TCP wise you can do a lot without window scaling
<geist> you get a full 64k window. i wouldn't call that terrible
<doug16k> oops I meant segment
<geist> just hard to se.... oh
<doug16k> oh it's not even tcp?
<doug16k> just ip?
<geist> wait hang on.
<geist> what are we talking about?
<klange> what _are_ we talking about
<doug16k> nevermind me, proceed
freakazoid333 has joined #osdev
<geist> if we're alking about the minip think in LK it basically does UDP sockets plus tcp sockets but no fancy options
<doug16k> ah so it does do tcp
<geist> ie, no window scaling, SACK, etc
<geist> of course.
<klange> toaru32 has no fancy options, and doesn't even expose UDP :D
<doug16k> then it's mintcpip
<geist> sure.
<doug16k> actually isn't it mintcpiparpdhcpethernet
<geist> actually admission: it doesn't do the connect side of the state diagram
<klange> toaru32 didn't even expose _listening sockets_, that net stack existed pretty much entirely to allow simple HTTP requests
<geist> it only accepts incoming connectinos. need to implement that part
<geist> then i can connect to irc sortix
<geist> if i'd quit talking on irc i'd actualy get to working on it :)
aquijoule_ has joined #osdev
<doug16k> good luck with that
<doug16k> even if you did it, you'd be back
<geist> well yeah but in the form of on an irc client :)
<geist> then i can flash it on a embedded board with ethernet and you have literally an irc device
<doug16k> ya I still have a baffling bug in my bootloader I introduced recently
<geist> (AKA a bot)
<kazinsal> irc thin clients
<kazinsal> the wave of 2021
<geist> and or a node on a botnet i guess
<kazinsal> hey, we just sell the devices, it's fine
<doug16k> ever had a bug where you don't have the slightest clue why or how it happens and when you step everything it's all perfect?
<doug16k> usually you can home right in on it
<klange> I have had some of the most interesting bugs in my OS over the years.
aquijoule__ has quit [Ping timeout: 272 seconds]
<kazinsal> yall are making me want to finish up a proper terminal implementation and sockets so I can connect to sortix IRC from the router I'm connected to sortix IRC through
<klange> Like the time nyancat was showing up in the wrong places...
<doug16k> for me the letter "x" is appearing perfectly in the initrd directory entry in the sector buffer, lol
<doug16k> you'd think I'd just set a data breakpoint and poof. not helping
<doug16k> it becomes the boy who cried wolf. you have to keep removing/recreating it or it will break at other innocent use of that location before then
<doug16k> on each debug rerun
<doug16k> you could figure out how to automate that with conditional breakpoint with commands
<doug16k> always fun taking code and running it in a completely different environment with different architecture, with different string encoding :D
<doug16k> bios 32-bit pmode utf8 vs efi 64-bit longmode
<doug16k> ...utf16
<doug16k> neat how much just works usually
<bslsk06> ​security.googleblog.com: Google Online Security Blog: Introducing Half-Double: New hammering technique for DRAM Rowhammer bug
<doug16k> good. 1st one doesn't work on my machine :D
<doug16k> I mean days straight of running rowhammer-test
<klange> ayyy
<doug16k> my test is mean though, I have ecc so even if it could provoke it, it might correct it. edac-util reported no problems though
<doug16k> being 64GB probably made it hard too. I guess that means, good luck rowhammering me right?
<doug16k> just having a lot of ram mitigates it right?
<doug16k> too hard to know for sure how the rows map to addresses
<doug16k> in a thought experiment, sure, you activate exactly the neighbouring rows
atilla has joined #osdev
<doug16k> no github repro repo?
<doug16k> if it needs to know 3 nearby rows, it probably has 1/3rd chance of working on my machine
<atilla> my Macbook M1 16gb arrived, thinking of grabbing some of the work Asahi Linux made and doing my own little aarch64 OS, I got uart over usb and memory mapping working so far
<CompanionCube> well
<CompanionCube> crystalmath will probably have #osdev soon enough
<CompanionCube> freenode opers did a bulk sweep of takeovers and redirects
<doug16k> atilla, are you allowed? :P
<atilla> doug16k: who cares, im in a 3rd world country they prob cant get me
<klange> who is "they"
<atilla> the glowie
<atilla> s
<doug16k> lawyers I thought
<klange> whose lawyers?
<atilla> i will run them over if i see them during the night
<klange> Apple actually seems to be perfectly happy to let people pursue ports to M1, and marcan's work is obviously getting upstreamed so it's all GPL
<klange> Apple sure as shit isn't _helping_ anyone, but they aren't blocking anything.
<doug16k> license agreement doesn't say anything about running macos?
<klange> No?
<atilla> Yes they are basically "no help but go off"
<klange> They even pushed the fact they weren't going to do anything restrictive with the boot setup so you could run "alternative OSes"
<doug16k> could even send one booting into arch for repairs then
<moon-child> well, let's not be hasty!
<doug16k> geniuses all know how to use arch I heard
<doug16k> isn't the repair place genius bar?
<doug16k> I went to install arch and I was like, yeah right, why would you drag me through the boot installation like that, and never used it once
puckipedia is now known as puck
illegal has joined #osdev
illegal is now known as V
V has quit [Client Quit]
<doug16k> it would be funny to make a fork of it called autoinstalled-arch so having arch won't mean you got past the installation barrier anymore lol
V has joined #osdev
<moon-child> I think people have done that
<doug16k> I want to know how many total km of expansion+shrinkage a cpu die accumulates when bouncing between 45 and 55 all day over some years
<moon-child> haha
<doug16k> 7nm temp sensor is a hardware accelerated RNG
<doug16k> it's as quiet as a church mouse down to 38C then TURBO TO HELL!!!111 and spike to 55
<doug16k> that's the desktop and software and stuff I guess
<doug16k> it's what happens though
<doug16k> I guess the spike is caused by being way below power limits for a while and accumulating a huge turbo budget
<doug16k> thread wakes up and lives long enough to get to 4.4GHz or something
ZombieChicken has joined #osdev
<doug16k> the die is wondering when you are going to install the processing thing with no moving parts :P
<ZombieChicken> So osdev fully migrated to libera?
<klange> Yes.
<ZombieChicken> ok
<Mutabah> officially, yes.
<moon-child> osdev sans crystalmath :P
<ZombieChicken> because ##osdev on freenode doesn't even mention this channel...
<radens> How do I suppress unused macro warnings for system headers?
<radens> <built-in>:170:9: warning: macro is not used [-Wunused-macros]
<radens> #define __UINT16_MAX__ 65535
<klange> Of course not, we have nothing to do with that.
<klange> And you're not allowed to mention Libera on Freenode.
<klange> It's against their new policies.
<Mutabah> ZombieChicken: Freenode mass-renamed channels earlier today
<klange> They just banned thousands of channels for it.
<Mutabah> Side-effect, ##osdev is currently modeless
<doug16k> radens, your define?
<Mutabah> *mod-less
<ZombieChicken> klange: Ah. Alright. Reason I ask is because #osdev there redirects to ##osdev, which is fun
<doug16k> radens, built-in? how
<klange> ZombieChicken: Yes, that was forced by Freenode, we have nothing to do with it.
<klange> They stole the channel.
<moon-child> radens: gcc docs say 'Built-in macros, macros defined on the command line, and macros defined in include files are not warned about'
<doug16k> radens, is that -Weverything in clang?
<radens> yes doug16k
<doug16k> "everything" is insane. don't even use it
<klange> Weverything exists to test warnings
<doug16k> I think it's a joke
<moon-child> clang doesn't even recommend using -Weverything
<doug16k> klange, ah
srjek|home has quit [Ping timeout: 264 seconds]
<doug16k> when I saw the output of everything, it made me think, "ok ok I get. I don't want *everything*" and seemed like a joke :P
<doug16k> I guess it fills that role simultaneously
<zhiayang> i once used -Weverything and turned it off pretty much instantly
<zhiayang> but i did discover a bunch of useful warnings that I enabled
<doug16k> yeah that is a nice idea
<doug16k> put it on everything and note good looking ones [-fthing]
<doug16k> er -W
<kingoffrance> put it on and grep the lines it doesnt warn about as suspicious
<doug16k> lol
<zhiayang> you mean the blank lines?
<doug16k> what are they hiding, right?
<zhiayang> what made it really clear was when it warned about struct padding
<zhiayang> like... okay thanks
<doug16k> be afraid of the person successfully hiding the gun, not the guy with a gun out :P
<kingoffrance> ^
<kingoffrance> the poison labelled poison is not the bottle to worry about.
<doug16k> isn't it dumb for linux to just leave the boot partition mounted forever?
<doug16k> why? in case I update? that means put it in fstab??
<doug16k> ya let's leave the most sensitive and easy to exploit thing mounted forever
atilla has quit [Ping timeout: 264 seconds]
<doug16k> it should be so worried that it worries about the pages from the disk accesses still being in the cache
<doug16k> in bootloader update
<doug16k> I guess signing covers a lot
<doug16k> could you actually self sign a bootloader and enable secure boot and sign it and make firmware able to verify signing by putting in stuff?
<kc8apf> yes, you can do that
<bslsk06> ​safeboot.dev: safeboot
<doug16k> encrypted disk is too far for me
<doug16k> it might be funny to have the config so if someone stole it, they are totally screwed and it won't even boot normally without clearing cmos, lol
<kc8apf> there are a few projects that require a yubikey or similar to boot the system
<doug16k> even put hard disk passwords so the hard drive doesn't even work right when they try to wipe it? lol
<doug16k> hard disk password is surprisingly effective
<doug16k> nevermind your data - thing is bricked when he wants to reuse it stolen
<ZombieChicken> doug16k: fwiw, Linux doesn't /have/ to have /boot constantly mounted; it's just that it's easy and most distros just pick the easy option
<bslsk06> ​www.nitrokey.com: NitroPad: Secure Laptop With Unique Tamper Detection | Nitrokey
<ZombieChicken> kc8apf: boot partition on a USB key works rather well
<moon-child> imo, way to go if you're worried about boot attacks is to put the bootloader on a separate usb stick and unplug it as soon as you're booted
<moon-child> bonus: protects against evil maid attacks too
<moon-child> ubikey&co are a distraction
<kc8apf> moon-child: that's a fairly minor obstacle to get into a system
<kc8apf> I can bring my own bootloader
<moon-child> (evil maid attacks--only if you also use fde)
<ZombieChicken> moon-child: Sorta. Still could mess with the BIOS or something
<moon-child> well sure. It's never perfect. But I don't think any other solution beats that one
<kc8apf> Many systems have BootGuard setup incorrectly so you can modify PEI or similar
<kc8apf> Heads gets pretty far. It just requires fairly specific hardware since coreboot support isn't widespread
<moon-child> heads?
<bslsk06> ​osresearch.net: About - Heads - Wiki
<moon-child> ooh, neat
<kc8apf> I can pull off an evil maid attack in under 5 minutes including using spispy to exploit TOCTOU to break ACM
<kingoffrance> is that a pun off of "tails" ?
<kc8apf> kingoffrance: it's a reference in taking an opposite approach
<kingoffrance> :)
<kingoffrance> that means yes :)
<doug16k> I didn't know maids were so dangerous, I'll be careful around them from now on
<kc8apf> depends on your threat model
<kc8apf> breaking into people's hotel rooms during DEFCON is an unofficial sport
<doug16k> were they maid first then evil, or evil first, then maid?
<doug16k> yeah if someone wants to they can get past security
<doug16k> always a way
tenshi has joined #osdev
<kc8apf> My day job includes designing threat models for enterprise hardware so I'm a bit more paranoid
<doug16k> in my experience, you are guaranteed to lock yourself out with 2FA
<doug16k> 100% guaranteed
<doug16k> usually sooner, maybe later
<kc8apf> at scale, someone in an org will lock themselves out regardless of technology
<kc8apf> account recovery is a necessity
<doug16k> it's weird how that is though, I have zero problems with one factor auth at all
<kc8apf> I used 2FA every day and rarely run into a problem. I don't expect that to be the case for others.
<kc8apf> though HOTP is more error-prone than TOTP or U2F
craigo has joined #osdev
<doug16k> "scan-build: 0 bugs found." Too bad every command line says error: invalid value 'c++20' in '-std=c++20'
<doug16k> my clang is old
<doug16k> 6.0 lol
<jjuran> :-O
<doug16k> nice, I can get -9 from package manager
<doug16k> does that help? I need c++-analyzer updated
<gorgonical> doug16k: clang on slackware 14.2 is 3.8
<doug16k> gorgonical, wow
<gorgonical> I don't like updating packages, lol. I have to use slackware-current for my desktop ("have to", heh) and I regret it constantly
<doug16k> nice, I need clang-tools-9
<doug16k> I don't stay up to date, as you can probably tell by my old dusty clang install
gareppa has joined #osdev
<doug16k> I had to blow it out with compressed air before mentioning it in chat, in case you saw it
<doug16k> scan-build-9 has way more horsepower than scan-build-3.8 right? :D
<doug16k> probably dual overhead cam direct injection vs pushrod carb
<gorgonical> I should hope man. Do you have difficulties using these static analyzers? I tried to tool my hypervisor with one some time ago
fireglow has quit [Quit: Gnothi seauton; Veritas vos liberabit]
<gorgonical> But all the inline assembly and wonky build flags made it really ugly
<doug16k> a while ago clang analyzer worked almost perfect on my project
<doug16k> even bios bootloader
<doug16k> modules, efi, whatever. it seemed to not matter what environment
<doug16k> it looked at what the code says
fireglow has joined #osdev
<doug16k> right now it totally doesn't work
fireglow has left #osdev [#osdev]
<doug16k> not sure if it is my build's fault yet
<doug16k> probably
<doug16k> inline assembly was the main nice thing. clang was way more picky about them and even noticed wrong constraint
<doug16k> gcc just obeys asm no matter how wrong
<doug16k> it assumes you must be right
<gorgonical> I inherited a huge list of gcc flags for this project, one of which turns on "be angry about inline asm" which is nice
<gorgonical> But it isn't very good -- I spent some hours wondering why xsaveopt was just not working
<gorgonical> Turned out that I wasn't supposed to put the memory region in the output operands, but gcc didn't complain. Have to put it in input with m+ constraint
<doug16k> can you make gcc nitpick asm now?
<gorgonical> I will check the flags and see if one stands out
<doug16k> I say bring it on, my asm are perfect. with a jinx like that it'll definitely find something
<gorgonical> It must be due to -Wall, which has so many flags now
<CompanionCube> since freenode took over #osdev
<gorgonical> I wonder if maybe it was the linker that was complaining at me... ?
<CompanionCube> globbot says it stops logging when kicked...what happens when it DCs and can't join #osdev?
<Mutabah> According to discussion in other channels, it'll delete them
<gorgonical> That is a very important and strange choice
<gorgonical> It would just delete 15+ years of logs?
<CompanionCube> gorgonical: not 15
<gorgonical> I am not sure how much it logs
<CompanionCube> logbot was only in use since 2018
<gorgonical> Ah
<CompanionCube> before that there was a different service
<Mutabah> clog iirc, whatever that was
<doug16k> nice name
<doug16k> see log?
graphitemaster has joined #osdev
Shikadi` has quit [Ping timeout: 264 seconds]
<graphitemaster> I guess the freenode channel is now properly dead
<Mutabah> Very likely. At least until an oper can recover it
<graphitemaster> freenodecom is basically going across freenode disabling every channel for violating the policy of not having two hashtags, pound signs, what ever in their name
<doug16k> throwing weight around?
<doug16k> why piss everyone off, that's what I want to know
dragestil has joined #osdev
<jjuran> I wonder if it's a political stunt
<zhiayang> feels more like a "it makes me uncomfortable that people are leaving in droves because of my bad decisions, so i will make more bad decisions" stunt
<geist2> whoa, i just saw the mass kick
<Mutabah> Where?
<geist> on freenode, the #osdev channel
<geist2> is there anything actually happening on the ##osdev channel?
<Mutabah> That wasn't a mass kick
<Mutabah> it was a wipe of the banlist
<geist> yah but also i dont seem to have op status anymore?
<Mutabah> and a redirect rule, and chanserv wiped
<geist2> ah. oh well, end of an era i guess
<Mutabah> o7
<geist2> ah you're right, it forwards you to the new channel ify ou try to join the old one
<geist2> huh. well okay
<geist2> anywa back to writing a tcp stack :)
<air> at least we can all finally leave the channel there
<geist> yah solved that problem. end of an era
<geist> now i just need to move my github irc bot poster things
<CompanionCube> finally ##osdev will be relevant! ;p
<doug16k> is it okay to have gcc 5, 6, 7, 8, and 11, all at once? I just realized my config is that
<doug16k> something is screwed up, some builds error with Error: unknown .loc sub-directive `view' repeated
<doug16k> one as. what could be wrong with binutils
<doug16k> cc, c++, gcc, g++ all show expected v11.1.0
<radens> Okay, so the LAPIC is per-core, and the 8259 PIC is global, what about the IOAPIC? Is that global or per-core? Or I guess specifically, can external IRQs be masked on a per-core basis?
<radens> You know it's getting interesting when the good google search results are in Chinese
dh` has joined #osdev
ZombieChicken is now known as JudgeChicken
JudgeChicken is now known as ZombieChicken
ZombieChicken is now known as JudgeChicken
JudgeChicken is now known as ZombieChicken
<doug16k> radens, global
<doug16k> radens, you can route ioapic irqs to a particular cpu
<doug16k> it just translates wire irqs to message signalled
<doug16k> each one
<doug16k> each irq input can be whatever cpu you like
<radens> okay thanks
<doug16k> you give address and data value for interrupt message
<doug16k> tldr: address encodes which cpu, data value encodes which vector
<doug16k> address also says what delivery type, so how to react
<doug16k> there might be multiple ioapics, but that just means you get to have more input pins for more interrupt wires
k4m1 has joined #osdev
<doug16k> not sure about really big machines with crazy amounts of i/o
<doug16k> they would use message signalled more than ever, not more wire irqs, though
<doug16k> interrupt wires are a bit silly when you can bus master
<doug16k> utterly redundant waste of copper
<radens> what's a message signaled interrupt?
<doug16k> it's when the device writes a data value to some address
<doug16k> you program that into the config space when you enable MSI
<doug16k> (or MSI-X for pcie)
<doug16k> it generates a store to wherever you said to send an irq
<doug16k> the LAPICs are listening for accesses there. they see the store and pick up the IRQ
<doug16k> they see if it is for them from address, what to do with it from address, and get vector to schedule for dispatch from data
<doug16k> that's x86 anyway
<doug16k> MSI in general is "it writes a value somewhere and something happens that causes an irq somehow platform specific"
ecs has joined #osdev
<doug16k> then no wires and infinite irqs that can be routed to any number of cpus on a whim!
<radens> I see, so the memory controller or whatever translates physical addresses and dispatches them to devices will send some sort of a message over the system bus? Or ring interconnect?
<radens> Or am I terribly confused?
<bslsk06> ​github.com: dgos/irq.h at master · doug65536/dgos · GitHub
<radens> Also, dumb question, how do I write to a GPIO port?
<radens> *pin
<radens> do I just do like uh port io? Seems wrong
<doug16k> what do you mean "GP" IO
<doug16k> yes you just use I/O port instructions to access I/O ports. which thing exactly?
<Affliction> Which chip is the GPIO on?
<radens> Okay, so minnowboard docs say that I can blink the onboard LED with a GPIO port. There are lots of tutorials for doing this via the linux sysfs.
wgrant is now known as wgrant_
<radens> But clearly I wouldn't be here if I was content to write to sysfs ;)
<doug16k> what path on there
<Affliction> Intel Atom
<bslsk06> ​github.com: minnow-max-extras/d2-led.sh at master · MinnowBoard-Projects/minnow-max-extras · GitHub
<radens> /sys/class/gpio/gpio$LED1/value
wgrant_ is now known as wgrant
<doug16k> have to look at the source of whatever is putting thing in gpio
<Affliction> or at the documentation for the chip
<doug16k> probably a driver symlink in there
<radens> I'm looking for the right docs still, a bunch of stuff is falling off the internet.
<radens> And I was hoping there would be a simple answer
<doug16k> I haven't touched gpio class unfortunately, only hwmon
<doug16k> I bet there is a kernel documentation for gpio
<bslsk06> ​www.kernel.org: General Purpose Input/Output (GPIO) — The Linux Kernel documentation
<doug16k> sys class stuff is good
<bslsk06> ​www.kernel.org: Legacy GPIO Interfaces — The Linux Kernel documentation
<doug16k> cat everything in sys/class/gpio
<doug16k> should be something in there indicating it is I/O port or something
alexander has joined #osdev
Guest36 has joined #osdev
<doug16k> gpiochip properties
<doug16k> ah you are doing virtualization project on atom? neat
<doug16k> imagine being intel person having to test that? omg
<doug16k> you could test it for a year and not have any idea whether it works right :P
<doug16k> looks like they can be pci so they can be MMIO or I/O
<bslsk06> ​mjmwired.net: Linux Kernel Documentation :: acpi : gpio-properties.txt
Guest36 has quit [Quit: Textual IRC Client: www.textualapp.com]
<radens> It looks like the linux GPIO subsystem can talk over MMIO, port IO or maybe even I2C? But I'm not sure how to talk to it from hardware
<doug16k> if you know the MMIO or I/O it's trivial. i2c not so easy
<clever> radens: i believe you implement a driver for the gpio, and linux calls a function in the driver to do the actual pin wiggling
<doug16k> it has the driver already
<clever> one of the rpi drivers, does gpio over an rpc to the firmware
<radens> clever: okay, so how do I uh find the driver?
<doug16k> it's in /sys/class/gpio already I think
<clever> the sysfs interface i think is deprecated, it required writing a 0 or a 1 to a file, the gpiochip interface i think is ioctl based?
<doug16k> the docs for the device say to use sysfs I thought
<clever> both should work
<radens> Right but I want to do this in like my own os
<bslsk06> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/LrSegkit
<clever> ahhh
<bslsk06> ​github.com: linux/pch_udc.c at ef1244124349fea36e4a7e260ecaf156b6b6b22a · torvalds/linux · GitHub
<doug16k> ah I see, they are right there on the cpu package
<radens> doug16k: sorry?
<doug16k> the gpios are right on the atom
<radens> Yes
<doug16k> pins on cpu
<radens> Yeah. Unfortunately I don't know how to wiggle them from software
<bslsk06> ​github.com: onie/driver-gpio-intel-sch.patch at master · opencomputeproject/onie · GitHub
<doug16k> drivers/gpio/gpio-sch.c
eight has left #osdev [#osdev]
<radens> Looks like there are a lot of them?
<doug16k> they are PCI
<doug16k> table 45
<doug16k> makes it easy
<doug16k> PCI = extremely plug and play
<bslsk06> ​git.kernel.org: pinctrl-baytrail.c « intel « pinctrl « drivers - kernel/git/stable/linux.git - Linux kernel stable tree
<radens> Okay slick
<doug16k> you can probably go read the BAR and find the address
<radens> Thanks for your help
<geist> noice! i hacked enough TCP connect logic to connect to sortie's irc server
<geist> and i didn't crash his net stack!
<j`ey> geist: on which platform are you testing?
<doug16k> wouldn't be nice to say you are fuzzing his net stack though
<geist> yeah
<geist> j`ey: at the moment i'm running.... qemu riscv64 supervisor mode + virtio-net
<geist> was just the last project i had set, and riscv is picky about unalignment so it's a good test of the net stack
<j`ey> cool!
<doug16k> I have my bug narrowed down to a baffling thing where suddenly the call stack is broke and I don't see why. at least I know exactly where and when now
<doug16k> interrupts are enabled in ovmf
<j`ey> https://m1racles.com/ cute m1 cve
<bslsk06> ​m1racles.com: M1RACLES: M1ssing Register Access Controls Leak EL0 State
<j`ey> assuming it wasnt posted yet
<geist> and not magnets?
<sortie> geist: Woohooo no net stack crashes! (Also: The port is proxied by qemu so you don't talk directly to the IP stack)
<sortie> Gotta figure out bridged networking
<jjuran> I'd join, but I don't trust your net stack not to fuzz my IRC client :-)
<geist> sortie: awww
<geist> i was impressed that your stack was that well behaved witha bunch of fancy option and whatnot
<geist> should have known it was linux
<geist> or at least qemu's user stack
<geist> ya took a while here to bridge it. i had to create a local bridge and add a tun for qemu and a vlaned versino of my ethernet
<sortie> I'm quite scared to set up a bridge on my hetzner host.. the whole bridged if design frightens and confuses me, seems I have to replace the real interface with a fake one with a subone replacing the real one, and I'm afraid to loose connectivity to my server
<geist> oh true that
<geist> it was slightly less dangerous here since i was actually bridging it with enp5s0.10
<geist> and if that gets all hosed it doesn't matter because that's my test vlan
<sortie> I wonder if my host can add more network controllers to my server
<sortie> Or maybe I should just try it and set up a fallback reboot if I don't act
<XgF> sortie: I'd connect your server to the host with a TAP device and then use iptables to forward the port
SanchayanM has joined #osdev
<sortie> XgF: I don't know what that actually means. I need a guide for absolute beginners that explains this stuff and walks me through example use cases.
<sortie> The guides that I found were mostly trash or depended on distro magic
<sortie> I.e. a bunch of steps and I have no idea what exactly is going to happen or what the risks are
<geist> with modern tools i think you can do all of it with 'ip' and 'brctl'
<sortie> I'm tempted to implement bridged networks in Sortix and then I know how they work
<raggi> ip link add mybridge type bridge; ip link set qemutap master mybridge
<geist> ah see, dont even need brctl even
<sortie> If you actually understand this stuff, consider writing a really nice guide
<klange> ugh, this damn qemu ps/2 issue... i'm still not sure who's being stupider, but we're both wrong
riposte has quit [Quit: Quitting]
<klange> But I did finally find a workaround on my end...
<klange> QEMU has this issue where there's a race between getting an irq1 or irq12 and reading the data from the PS/2 controller - normally you should be able to just read and you'll be getting the data for whichever interrupt tripped, right? That's how it's worked on all the real hardware I've used, and even virtualbox seems to get this right and I can play quake and move the mouse and mash keys all I want...
riposte has joined #osdev
<raggi> sortie: i probably should do that
ZombieChicken has quit [Ping timeout: 264 seconds]
<klange> But in QEMU... sometimes, nay - frequently - you can get the interrupt for one and read the other because when you read from the data port qemu will check its own bit to determine what is pending, but it can change that between sending the irq and you reading
<klange> But I found a workaround... throw both interrupts at the same handler, turn off both ports, read the status byte and the data byte, and QEMU implements bit 5 to say there's mouse data. No mouse data? It's keyboard. Mouse data? It's the mouse. Both regardless of which interrupt you're in.
<klange> And now finally I can wiggle and mash and nothing gets confused.
<kingoffrance> re: bridges, maybe not 100% apples and oranges, i remember bridges were always advertised as letting you snoop/reroute/firewall without giving the bridge any ip ("transparent") https://man.openbsd.org/bridge.4 dunno if that's 100% the same terminology, but general, generic idea "This link between the interfaces selectively forwards frames from each interface on the bridge to every other interface on the bridge." "can act as a transparent filter
<kingoffrance> for ip(4) datagrams" [allows to] " provide an IP firewall without changing the topology of the network." "Some chipsets have serious flaws when running in promiscuous mode"
<bslsk06> ​man.openbsd.org: bridge(4) - OpenBSD manual pages
<sortie> raggi: Like if it can explain to me how I can get my hetzner host with multiple IPs (I need to set that up) bridged so one of them refers to the main server and the other ones refer to the qemu VMs I have running that would be handy :)
<kingoffrance> back when someone might stick a "bridge" of physical machine with mutiple interfaces to sit between other stuff :)
<klange> I assume this is based on some faulty assumptions on their end about interrupt handling... like maybe it works if you set up gating correctly for nested IRQs... maybe? I suspect there's still a bad race there in the intervening instructions...
<raggi> oh, ipvlan yeah, someone really should write a good guide on that
<doug16k> klange, so to repro it you mash keyboards while moving mouse a lot with PS2 both? I'll have to try that on my stuff
<XgF> sortie: if you want bridging, setup qemu to expose a tap device, and then bridge your ethernet connection and the tap device using brctl. you'll need to adjust the host's settings to refer to br0 instead of eth0 (or whatever your ethernet adapter used to be called)
<klange> Previously they had a bug where they weren't asserting interrupts at all, and no one noticed for ages because it only applied to the regular, relative-mode PS/2 mouse. usbtablet? nope. vmware mouse? nope.
<klange> That was fixed a few years ago, though.
<doug16k> klange, using ioapic or pic?
<klange> PIC
<sortie> XgF: I don't think you understand me at all.
<klange> That's probably the other contributing factor to this, maybe it doesn't happen on IOAPIC.
<sortie> XgF: I need careful explained steps with theory and reassurances that my remote server isn't going to become unreachable.
<klange> Though I'm still not sure, the way this is set up, the race seems like it would just always potentially be there...
<XgF> sortie: uh, i cannot reassure you of this. ...this is why I have IPMI access to my dedicated server :p
<sortie> XgF: Just telling me steps without knowing the theory, I won't even know what you are talking about let alone how to do it, and it's not helping me :|
<XgF> Its networking, it will probably go wrong and render your server unreachable :| Hopefully you haev some out-of-band management sytsem
<doug16k> I barely understand bridge stuff
<geist> i generaly only know the basics: make a bridge interface and bridge a bunch of physical (or taps) to it
<sortie> XgF: Exactly that's my fear. I can probably handle with a scheduled reboot I can cancel to restore boot settings
<doug16k> yeah I can get virt-manager bridge to work, that's about it
<sortie> I really don't want a multi hour outage of my server :)
<doug16k> klange, do you send those magic sequences to detect wheel and 5 button mouse?
<doug16k> just wondering because I'd guess guests that don't do that are hardly tested
<klange> just wheel, I don't do 5 button
<klange> that's handled at a different level, though; the 'bug' is in the controller implementation and not related to the devices which are generic ps/2 stuff
<doug16k> the packet size changes with magic sequences
<doug16k> it could switch to completely different (tested) code when you switch to a larger one
<geist> oh hey, gcc 11 was released a while back
<doug16k> which byte you get in handler is the thing, how it delivers those bytes could change subtly
<klange> wheel and 5-button are the same packet size
<klange> and the codepaths are not packet-size-dependent, I have read them, that's how I figured out the workaround
<doug16k> sorry
SanchayanM has quit [Quit: SanchayanM]
SanchayanM has joined #osdev
<doug16k> strange how it works in the other guest oses with separate irq handlers
<doug16k> I found my bug. stupid fat32 LFN struct has a misaligned fragment of the long name and I used char to make it not packed :(
<doug16k> then later some pointer arithmetic went nuts thinking countof was sizeof/2
labistp has joined #osdev
augustl has joined #osdev
Mikaku has joined #osdev
<radens> yay my hypervisor interrupt interception works!
<radens> I still need to figure out if the interrupt cache should be per core though?
<doug16k> linux could move it to be sent to a different if that's what you mean, by irqbalance
<doug16k> different cpu
<doug16k> or the guest
<doug16k> if they can access the real ioapic
<doug16k> each cpu has a different set of pending irqs if that is what you mean
<doug16k> irqs are sent and one cpu is selected and it sets request bit for that vector in that cpu's lapic
<radens> okay, sounds like it might need to be per core then
<radens> It means I'll have to allocate a vcpu struct with the interrupt cache and stick it in the fsbase, but that sounds like a tomorrow problem
lonzo has joined #osdev
dormito has quit [Ping timeout: 264 seconds]
isaacwoods has joined #osdev
meridion has joined #osdev
dormito has joined #osdev
Arthuria has joined #osdev
dennis95 has joined #osdev
lleo has quit [Ping timeout: 264 seconds]
Retr0id has joined #osdev
SanchayanM has quit [Quit: SanchayanM]
SanchayanM has joined #osdev
SanchayanM has quit [Client Quit]
SanchayanMaity_ has joined #osdev
SanchayanMaity_ has quit [Client Quit]
<klange> ooh, i booted with smp on my thinkpad and was able to run a bunch of demos _and_ listen to the fan wrrrrrrrr because the cores just spin waiting for input
<klange> also my thinkpad has "real" ps/2 keyboard/mouse and it's super broken - it doesn't seem to reset some things properly on reboot
<klange> My ps/2 driver has been using translation to legacy scancodes forever, so I tried switching it to not translating and enabling legacy scancode set, which worked... but then I rebooted into Linux and it was all messed up until a hard shut down
grange_c has joined #osdev
<grange_c> Hello everyone!
<klange> hello!
<klange> doug16k: I can reproduce the issue on an Ubuntu live CD - but only if I turn off vmport as apparently they're shipping with support for 'vmmouse' now.
<klange> they must be doing something better than me because vmmouse seems to not have any issues in Linux but I get occasional 7's out of the keyboard with it... maybe because of scancode sets?
<klange> But the problem is there and I'm not crazy!
<klange> the old sortix iso i have on hand also does it
drewlander has joined #osdev
jbg has joined #osdev
<klange> oh I think I see... so with the vmmouse the mouse itself can't be affected, but the keyboard sometimes gets 0x8 which confusingly is '7'
<klange> and that or 0 are the only bytes that seem to show up...
gog has joined #osdev
<klange> but on scancode set 2, 0x08 is nothing
<klange> so with the vmmouse and an OS that actually uses scancode set 2 - eg. Linux - there are no apparent ill effects
craigo has quit [Read error: No route to host]
<klange> but switch to regular ps/2 mouse and now the mouse data is corrupted and KABOOM!
<gog> whoopsie
<klange> and I'm staring at these files in qemu's repo and most of this hasn't been touched in _years_, so this bug has probably been there a while
freakazoid333 has quit [Ping timeout: 264 seconds]
GeDaMo has joined #osdev
<klange> tempted to detect qemu through one of the other backdoor methods and enable this there regardless, currently it's a kernel arg
<klange> I swear I was just moving the mouse in a figure 8 pattern - no clicking, no jerking motions: https://www.youtube.com/watch?v=Qa3zi_noBf8
<bslsk06> ​'2021 05 26 20 26 17' by K Lange (00:00:48)
labistp has quit [Ping timeout: 265 seconds]
heat has joined #osdev
<klange> this is rather old qemu, though... I'm building 6.0 to see if it happens there, but _also_ a cursory check of history on hw/input/ps2.c and hw/input/pckbd.c suggests nothing of substance has happened to either between the two releases
<klange> ! It in fact does not happen on 6!
<klange> hm, should I just switch to this build of 6...
<klange> oh wait that had my patch enabled
<klange> ... it still happens in 6
<klange> ugh
<klange> well at least I can file a bug report
<klange> and confirmed same behavior in ubuntu as described above
Plazma has joined #osdev
KidBeta has joined #osdev
mid-kid has quit [Quit: WeeChat 3.1]
mid-kid has joined #osdev
elastic_dog has quit [Quit: elastic_dog]
<heat> "Some game developer somewhere is going to try to use this as a synchronization primitive, aren't they. Please don't. The world has enough cursed code already. Don't do it. Stop it. Noooooooooooooooo" D:
<KidBeta> heat: it actually happened
<KidBeta> but not game dev
elastic_dog has joined #osdev
isaacwoods has quit [Quit: WeeChat 3.1]
<dormito> game dev's aren't the only ones who do stuff without knowing *anything* about what they are doing... or even attempting to educate themseles.
<KidBeta> the worst code ive seen is embedded stuff (specifically routers) not game dev.
<heat> yes but they frequently reimplement locking primitives and thatsthejoke.jpeg
<GeDaMo> I feel personally attacked :|
mid-kid has quit [Quit: WeeChat 3.1]
Raito_Bezarius has quit [Quit: free()]
Raito_Bezarius has joined #osdev
Raito_Bezarius has quit [Remote host closed the connection]
Raito_Bezarius has joined #osdev
specing has joined #osdev
Guilt has joined #osdev
geist has quit [Ping timeout: 264 seconds]
geist has joined #osdev
riverdc has quit [Ping timeout: 264 seconds]
_whitelogger has joined #osdev
geist2 has quit [Ping timeout: 264 seconds]
Oli______ has joined #osdev
geist2 has joined #osdev
rb has joined #osdev
rb is now known as Guest860
seds has quit [Ping timeout: 264 seconds]
mallow has joined #osdev
tenshi has quit [Quit: WeeChat 3.1]
rwb has quit [Ping timeout: 264 seconds]
nur has quit [Ping timeout: 264 seconds]
Oli has quit [Ping timeout: 272 seconds]
Benjojo has quit [Ping timeout: 264 seconds]
lonzo has quit [Quit: Leaving]
seds has joined #osdev
Benjojo has joined #osdev
<klange> after much testing across different guest and host configurations... i have posted a bug report to the qemu gitlab
<klange> and now I will go do other things
augustl has quit [Ping timeout: 264 seconds]
gareppa has quit [Quit: Leaving]
gareppa has joined #osdev
ids1024 has quit [Ping timeout: 252 seconds]
brynet has quit [Quit: leaving]
paulbarker has joined #osdev
augustl has joined #osdev
brynet has joined #osdev
Guest860 is now known as rwb
fwg has joined #osdev
vizard has joined #osdev
dormito has quit [Ping timeout: 244 seconds]
dormito has joined #osdev
elastic_dog has quit [Quit: #linux]
elastic_dog has joined #osdev
asymptotically has joined #osdev
gareppa has quit [Quit: Leaving]
Plazma has left #osdev [#osdev]
ahalaney has joined #osdev
Celelibi has joined #osdev
gog has quit [Quit: bye]
gog has joined #osdev
elastic_dog has quit [Quit: elastic_dog]
elastic_dog has joined #osdev
Robbe is now known as robbe7730
robbe7730 is now known as Robbbe
Robbbe is now known as Robbe
srjek|home has joined #osdev
<j`ey> this is weird.. clang (lld?) seems to be generating a .text section with SHF_WRITE
elastic_dog has quit [Quit: elastic_dog]
elastic_dog has joined #osdev
osdev has joined #osdev
heat has quit [Ping timeout: 265 seconds]
heat has joined #osdev
KidBeta has quit [Ping timeout: 272 seconds]
cmrg has joined #osdev
<heat> j`ey, very weird
<heat> what's the linker script?
osdev has quit [Quit: Leaving]
<j`ey> didnt think to look in the linker script
<j`ey> I was thinking it would have been in a .c/.s file
<heat> sortie: is irc.sortix.org dead?
<sortie> heat: Responds for me?
<sortie> You timed out tho
<heat> sortie: I keep timing out
<sortie> heat: The existing connections are working. I think the /REHASH I did earlier caused the problem.
<sortie> 2021/5/26 13.36 Cannot bind for TCP listener irc.sortix.org[]: Address already in use
<heat> oh
<heat> TIME_WAIT?
<sortie> heat: I think it's not even listening on 6667 anymore
<j`ey> ah yes, using irc via wireshark lol
<sortie> OK I gotta restart it
brightside has joined #osdev
cmrg has quit [Quit: leaving]
MiningMarsh has joined #osdev
elastic_dog has quit [Quit: elastic_dog]
elastic_dog has joined #osdev
elastic_dog has quit [Client Quit]
gareppa has joined #osdev
elastic_dog has joined #osdev
renopt has joined #osdev
heat_ has joined #osdev
heat_ has quit [Client Quit]
heat_ has joined #osdev
heat has quit [Ping timeout: 244 seconds]
brightside has quit [Ping timeout: 264 seconds]
renopt has quit [Quit: leaving]
_whitelogger has joined #osdev
zegalch96 has joined #osdev
heat_ is now known as heat
<heat> wtf my crappy wireless extender's ipv6 keeps dying
_whitelogger has joined #osdev
renopt has joined #osdev
ksroot has joined #osdev
junon has joined #osdev
<junon> Is there a good way to download the entire osdev wiki as a PDF of some sort? Trying to get this on an e-reader is a PITA and chrome doesn't seem to want to allow me to safe anything.
<alexander> I think there is a link to an offline archive on this page https://wiki.osdev.org/OSDev_Wiki:About
<bslsk06> ​wiki.osdev.org: OSDev Wiki:About - OSDev Wiki
<junon> Thanks!!
<FireFly> sortie: what ircd did you port to sortix? :p
<heat> solanum
renopt has quit [Changing host]
renopt has joined #osdev
<sortie> It's part of my wider agenda to hostile takeover libera to run on Sortix
lleo has joined #osdev
ids1024 has joined #osdev
ids1024 has quit [Quit: WeeChat 2.9]
ids1024 has joined #osdev
zgrep has quit [Ping timeout: 272 seconds]
<Oli______> Why my nick got so many undercores appended to it?
Oli______ is now known as Oli
<j`ey> lol
lleo has quit [Remote host closed the connection]
<heat> because you're extra reserved identifier
lleo has joined #osdev
zgrep has joined #osdev
iorem has quit [Quit: Connection closed]
zyxwvu has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
MiningMarsh has joined #osdev
fwg has quit [Quit: so long and thanks for all the fish.]
MiningMarsh has quit [Client Quit]
MiningMarsh has joined #osdev
srjek|home has quit [Ping timeout: 264 seconds]
<Bitweasil> Super duper double secret squirrel private variables in a class!
heat has quit [Ping timeout: 264 seconds]
heat has joined #osdev
chocabloc0 has joined #osdev
<chocabloc0> hello there
<GeDaMo> Hi chocabloc0 :)
<chocabloc0> i usually go by just chocabloc lol
<chocabloc0> but it was taken
<chocabloc0> anyways, what should i implement now that i have a basic ramdisk?
<heat> filesystem code
<chocabloc0> hmmmm
<chocabloc0> do you mean things like fat32, or a vfs?
<heat> vfs
<chocabloc0> i already have one
chocabloc0 has quit [Quit: Leaving]
pretty_dumm_guy has joined #osdev
fwg has joined #osdev
brightside has joined #osdev
brightside has quit [Client Quit]
mallow has quit [Quit: Textual IRC Client: www.textualapp.com]
zhiayang has quit [Quit: oof.]
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
MiningMarsh has joined #osdev
kanzure has joined #osdev
zhiayang has joined #osdev
Shikadi` has joined #osdev
zhiayang has quit [Quit: oof.]
zhiayang has joined #osdev
zhiayang has quit [Quit: oof.]
nur has joined #osdev
zhiayang has joined #osdev
zhiayang has quit [Remote host closed the connection]
zhiayang has joined #osdev
vizard has quit [Quit: WeeChat 3.0.1]
<Bitweasil> :/ Wow, it would be a lot simpler for freenode to just turn off the servers at this point. :(
<Bitweasil> #osdev on the old server is invite only, it seems.
<GeDaMo> There's now an ##osdev
fwg has quit [Quit: .oO( zzZzZzz ...]
<sham1> Freenode lost basically all good will it had
air has quit [Remote host closed the connection]
<Bitweasil> Yeah.
<Bitweasil> But I literally do not understand their endgame.
<Bitweasil> "Drive everyone off."
<Bitweasil> If you want to do that, just turn the servers off.
<bslsk06> ​atheme.github.io: An open letter from Atheme’s developers and community | atheme-open-letter
<GeDaMo> They don't control the servers
<clever> they even alienated the dev team for the irc server software
<sham1> I think Korean Crown Prince and such miscalculated
<Bitweasil> I just don't understand what one gains from driving people off freenode.
<Bitweasil> Which is very clearly what the actions are doing.
rb has joined #osdev
rb is now known as Guest6358
rwb has quit [Ping timeout: 264 seconds]
<sham1> Andrew Lee did the same thing in Snoonet for example, and unlike with Freenode, a similar exodus didn't happen, although a lot of opers resigned. I suppose there might have been a bit of a hope for it to repeat with FN
bslsk06 is now known as bslsk05
<Bitweasil> *sigh* Ok. Well, and IRC shrinks a bit more.
rowbee has joined #osdev
Guest6358 has quit [Ping timeout: 272 seconds]
<GeDaMo> Quality not quantity :P
<Bitweasil> True.
rowbee is now known as rwb
<nur> what the hell is going on at freenode
<nur> I'm just going to quit that one
<bslsk05> ​gist.github.com: freenode-faq.md · GitHub
<nur> well that's it then, I'm closing that tab forever
<gog> the essential problem is that lee is an entrepreneur and he tried to monetize a service that does not align with the values of entrepreneurs
<gog> and in his hubris he believed he could align fundamentally opposed thing
<gog> the corollary problem being his tendency toward egotism and self-aggrandizement
<gog> :p
<CompanionCube> gog: i don't think he's in it for the money
<gog> you don't think so?
<CompanionCube> he's in it because he has good memories of irc from his childhood
<gog> heh so maybe i can just scratch off the first two points and leave the third
<gog> that one is fairly obvious
gareppa has quit [Quit: Leaving]
chartreuse has joined #osdev
<dh`> he's a fool, in the traditional "nothing can be foolproof because fools are so ingenious" sense
<Bitweasil> So, best options for CollapseOS, in the coming future where we just have scavenged computers cobbled together? :D
<Bitweasil> Maybe ship it with a copy of Wikipedia compressed or something.
<Bitweasil> (sorry, my pessimist streak is being optimistic compared to reality lately)
<PapaFrog> Bitweasil: You sound like my friend.
<kingoffrance> no, noone needs information. you just need an archive of amiga mods.
<PapaFrog> I need to know how to run a generator off of wood gas.
robert_ has joined #osdev
<Bitweasil> Low Tech Magazine has some stuff on wood gasifiers with links to other pages on it.
<Bitweasil> I've been generally less than optimistic for the past decade about things, but at this point, global supply chains are just broken.
<kingoffrance> collapseos actually sounds awesome lol
<Bitweasil> Heh.
<Bitweasil> No.
<Bitweasil> Er
<Bitweasil> wait.
<Bitweasil> *collapseOS*
<Bitweasil> Not *collapse*
<Bitweasil> Got it.
<kingoffrance> i like offline databases that dont need connectivity
<Bitweasil> Yeah, something that's not net-first.
<Bitweasil> Framebuffer based Linux kernels would probably be reasonable for it.
<Bitweasil> Don't bother with the weird hardware acceleration requirements, just the FB.
<Bitweasil> It's good enough for a lot.
<Bitweasil> https://collapseos.org/ <-- Got beaten to the punch, apparently.
<bslsk05> ​collapseos.org: Collapse OS — Bootstrap post-collapse technology
<PapaFrog> Veronica/Gopher over packet radio!
fwg has joined #osdev
<Bitweasil> Ugh. Yeah.
<Bitweasil> I need to get my HAM HF license.
<Bitweasil> It's the only tech that doesn't rely on the internet for communication anymore. :(
<clever> Bitweasil: i was just looking at some lora modems
<clever> Bitweasil: oh yeah, and i found this weird thing a few months ago: https://www.sparkfun.com/products/17844
<bslsk05> ​www.sparkfun.com: Nebra Outdoor HNT Hotspot Miner (915MHz) - WRL-17844 - SparkFun Electronics
<Bitweasil> I've not messed with them personally but a friend has for property area network. They look really promising.
<clever> a crypto coin, based on running lora repeaters
<clever> and it encourages you to run a repeater in an area without too much coverage
<clever> so you cant just make a mining farm, you must spread the repeaters far and wide
<Bitweasil> o.O That's interesting, and I believe entirely insane.
<Bitweasil> I'll have to read up on it more.
<clever> yeah, when i first saw it, i was like "wtf?" lol
<clever> but reading it a bit, it solves a number of problems i thought of
<Bitweasil> The "helium" stuff?
<clever> not sure, forgot the finer details after reading it a few months ago
<Bitweasil> I'll have to read, looks potentially useful as civilization comes crumbling down.
<Bitweasil> Of course, you can't get the APs anymore...
<clever> also, its just a CM3 module inside, so its basically just an rpi with a lora modem
<Bitweasil> Ok.
<clever> in theory, you could make a compatible node, using an off the shelf gps, lora modem, and rpi
<clever> if the software is open
<clever> > Using a system called Proof-of-Coverage, Hotspot Miners earn more HNT when they're in range of other miners, but need to be at least 300 metres apart.
<Bitweasil> Yeah. I'll have to look.
dormito has quit [Quit: WeeChat 3.1]
lava has joined #osdev
dormito has joined #osdev
<clever> Bitweasil: i have to wonder, what kind of range could such a repeater network give, could they maybe incentivise you if your a critical link in joining 2 distant clouds?
<Bitweasil> I don't know. I'll have to do some reading on it.
<Bitweasil> I've thought about doing something less mesh, more standalone.
zyxwvu has quit [Ping timeout: 272 seconds]
<Bitweasil> Solar powered Pis with wifi, containing useful information.
<Bitweasil> And I have friends out here who think the same way.
<Bitweasil> I could even toss a node up in town, up halfway high.
<Bitweasil> ... though I think we faraday'd that bell tower.
<PapaFrog> I wonder what would happen with HNT if I am 1km from the nearest hotspot.
<Bitweasil> I saw a good analogy the other day - industrial civilization is a car with a transmission that can only upshift, and we're cruising the highway in 5th. Except, we slowed down a lot for Covid. And now there's a hill.
<Bitweasil> PapaFrog, the long range LORA stuff has a range of miles.
<Bitweasil> Not fast, but it can do it.
<Bitweasil> So hopefully it would do the right thing.
dutch has quit [Quit: WeeChat 3.1]
<PapaFrog> The next nearest is about 5km.
<clever> Bitweasil: not counting the hills, a 2km radius circle around my house covers a pretty large chunk of the town, 3km radius would cover the entire town
<clever> and thats if i was to put the central node in a non-ideal location
<Bitweasil> PapaFrog, is there a map of them?
<Bitweasil> Oh, yes. Neat.
<clever> where?
<bslsk05> ​explorer.helium.com: Coverage Map — Helium Explorer
<clever> thanks
<Bitweasil> ... wow, there are actually some out here!
<Bitweasil> Not near enough to me to link, likely.
<Bitweasil> I'm on the wrong side of a hill.
dutch has joined #osdev
<PapaFrog> I know where I can put two. :P
<clever> 195km to the next nearest hotspot for me
<Bitweasil> Ok, how does one build these gizmos?
<clever> judging from the gaps, it looks like these hotspots are likely using regular internet uplinks?
<Bitweasil> This is very interesting, I'd not heard of it before. Thanks!
<Bitweasil> I'm unclear as to if you can build your own hotspot.
<Bitweasil> Oh, looks like it won't "mine" if you build your onw.
<Bitweasil> :(
<clever> PapaFrog: it would help if the explorer showed the range of a given hotspot, so you know how good the coverage actually is
<PapaFrog> Yeah.. that would be nice.
<Bitweasil> I'll have to look into it more, but if you have to buy $400 gizmos to participate, less interested.
<clever> given that i am >100km from another hotspot, i would be the only consumer of its bandwidth
<Bitweasil> I don't even care about the mining, just the "Is this a mesh that may actually work?"
<clever> at which point, why should i even bother with this crypto chain?
<Bitweasil> Yeah.
<clever> at a glance, a repeater mints coins, which they can sell on an exchange
<clever> and a end-user (leeching off repeaters) buys coins on an exchange, and spends them to pay for bandwidth used
<clever> but if i am the only end-user of a repeater, i can just not partitipate, and then its free (ignoring eletricity cost)
<Bitweasil> Interesting. I'll read up more on it later, fighting timers for now. :)
<Bitweasil> And need more coffee.
<clever> there are 3 repeaters a few hours drive away, that are 4km and 9km from eachother
<clever> assuming they are in range, that covers a one of the bigger cities in the area
<clever> > Hotspot has no nearby hotspots (within 2km)
<clever> seems they are out of range of eachother
pyzozord has joined #osdev
<bslsk05> ​intercom.help: What is a Proof-of-Coverage Challenge? | Helium Support
<bslsk05> ​explorer.helium.com: Narrow Amethyst Deer | Hotspot — Helium Explorer
<vin> clear
<clever> Bitweasil: it looks like a random repeater (or collective?) will pick a random node at regular intervals, and challenge it to proove itself useful
<clever> Bitweasil: the challenged node, must then broadcast an RF packet, and then will get bonus points if other repeaters witness receiving it
<clever> but the actual enforcement, seems to be done entirely over the internet
<clever> at a glance, this doesnt seem like its really a complete multi-hop mesh network
<clever> its more about just having a lot of internet<->rf gateways, and wide coverage
<clever> without the internet holding it together, it will rapidly fragment into 1000's of seperate nodes
<clever> Bitweasil: for another hotspot, i can see witness records on the activity tab, where a node 2.3 and 3.4km away heard it
isaacwoods has joined #osdev
gareppa has joined #osdev
<Bitweasil> Yeah, interesting... hrm.
<Bitweasil> I'll have to look into it more.
<clever> for a more populated area with witnesses, i could see it being an option
<clever> but the 1st adopter, doesnt get much incentive to be first
* geist yawns
<geist> good afternoon folks
* zhiayang yawns back
<geist> zhiayang: didn't know ifyou were always idling but welcome back
<kazinsal> aloha
<geist> havent seen you in some years?
<zhiayang> oh yea, i pretty much left znc running, totally forgot about irc, and idled for years
Oli has quit [Ping timeout: 264 seconds]
lleo has quit [Ping timeout: 272 seconds]
<geist> well, still here
<bslsk05> ​twitter: <DrawsMiguel> @tmandry at long last when i scream "OK GOOGLE TIMER FOR FIVE MINUTES" i know memory safety is on my side. the future is here
dennis95_ has joined #osdev
<clever> i reference to fuschia
dennis95 has quit [Quit: Leaving]
dennis95_ is now known as dennis95
<pyzozord> hello, I was wondering how do drivers actually work. Is os mapping the device's IO on some memory addresses and that's it? Is it handled via irq/signals/syscalls?
<Bitweasil> pyzozord, "It depends." On just about everything.
<pyzozord> Bitweasil: yeah that figures :)
<Bitweasil> But, usually, yes. You'll have some chunk of the device mapped into some chunk of address space (or IO port space on x86), route interrupts, and you do what it needs.
<clever> pyzozord: https://github.com/cleverca22/v3d2/blob/master/v3d2.c is a driver i wrote a while ago
<bslsk05> ​github.com: v3d2/v3d2.c at master · cleverca22/v3d2 · GitHub
<Bitweasil> If it sends an interrupt, you do what it needs and clear the interrupt. if you want it to do something, you give it what it needs and poke it if required.
<Bitweasil> And beyond that is going to be very device and OS specific.
<clever> pyzozord: it does a number of things, writing to MMIO when requested, allocating large chucks of dma coherent ram, mmap'ing that ram into userspace, and reacting to IRQ's to schedule more actions with MMIO
Oli has joined #osdev
<pyzozord> so it is essentially just reading/writing ram and IRQs? I'm sorry I'm not very knowelegable in the topic, I was just looking for a high level very oversimplified understanding
<geist> basically yes
<Bitweasil> Many drivers are just about that, yes.
<pyzozord> I'm not sure what is IO port space
<Bitweasil> x86ism.
<geist> it's an x86 specific thing
<GeDaMo> A separate address space for I/O
<geist> basically an alternate, small (64k) address space that's like ram but separate
<Bitweasil> You register a handler for the IRQ, so if IRQ 123 fires, your IRQ handler gets called, and you go check the device.
<Bitweasil> And then (usually) you have to clear the interrupt as well.
<pyzozord> ooh so io address space can be read and written like ram but it's not ram and it has it's own addresses?
<GeDaMo> Its own instructions too https://www.felixcloutier.com/x86/out
<pyzozord> so it's like an alternative to mapping device's io to normal memory address space?
<bslsk05> ​www.felixcloutier.com: OUT — Output to Port
<Bitweasil> Don't worry about port IO on x86.
<pyzozord> oh I see, ok
<Bitweasil> Very little uses it anymore.
<Bitweasil> You don't use the "memory" instructions, you use the "port IO" instructions.
<Bitweasil> But most modern drivers won't need it.
gareppa has quit [Quit: Leaving]
<geist> right, mostly legay devices like ps2 keyboard, serial ports, etc
gog has quit [Ping timeout: 252 seconds]
<pyzozord> the memory/io address space will be mapped on actual pins on the device right? As in if I write a bit on a address it will literally send current to some pin to the device?
<Bitweasil> Yes...ish.
<Bitweasil> You can imagine that's the case, it's often just messages on a bus now, but that's the effect.
<clever> with pcie entering the mix, everything is now packets
pbx has joined #osdev
pyzozord has quit [Quit: leaving]
zhiayang has quit [Quit: oof.]
GeDaMo has quit [Quit: Leaving.]
zhiayang has joined #osdev
vin has quit [Changing host]
vin has joined #osdev
__sen has joined #osdev
__sen has quit [Changing host]
dormito has quit [Quit: WeeChat 3.1]
thaumavorio has quit [Quit: ZNC 1.8.2 - https://znc.in]
thaumavorio has joined #osdev
<heat> i took the last 3 hours to figure out how linux does arp and now i'm disappointed it's surprisingly stupid and genius at the same time
Mikaku has joined #osdev
Mikaku has quit [Changing host]
<heat> /me thought "hmm how do they wait for an ARP reply without blocking?"
<heat> turns out they queue packets on a struct neighbour and then when it gets updated with the actual result, it outputs the packets
<heat> freaking genius
<kazinsal> yeah, that's sorta what I do. packet gets tagged as "waiting for arp reply" with a pointer to the ARP request and once the request gets fulfilled anything waiting on that L3->L2 mapping gets thrown into the head of the appropriate output queue
<heat> you're very good at networking, i'll tell you that
<heat> it's not fair :(
<kazinsal> the real nasty thing I haven't sorted out yet is how to effectively traffic shape/police/queue
<kazinsal> basically, given a set of input parameters on what limitations you want to apply to traffic going through a box, mangle/requeue/delay/drop traffic appropriately
Izem has joined #osdev
<heat> iptables?
<kazinsal> it's more the backend implementation of protocol-based traffic classification and stuff that I need to sit down and graph out or something
<heat> is your code open source?
<kazinsal> not presently
<heat> :(
<kazinsal> I don't want to release anything until it's in a state where you can sit down and use it
<heat> having a smaller networking-correct OS sounds pretty useful as a reference
<kazinsal> my final "is this usable" test is going to be "can I run it as my firewall at home without issues"
sprock has quit [Quit: goodbye forever freenode]
sprock has joined #osdev
dormito has joined #osdev
dormito has quit [Client Quit]
dormito has joined #osdev
dennis95 has quit [Quit: Leaving]
srjek|home has joined #osdev
alexander has quit [Quit: Goodnight o/]
* kc8apf digs into illumos drivers
<jimbzy> You're doing it backwards, kazinsal.
asymptotically has quit [Quit: Leaving]
<jimbzy> You're supposed to release it with as many bugs as possible and then patch it up until the next major release.
yuu has joined #osdev
zyxwvu has joined #osdev
<Oli> Talking about open source and software realease-related paradigms; I find myself reluctant about uploading my code to business-driven sites, while I feel very good about the idea of openly sharing the full code of projects of mine: I would feel way more comfortable about using an open, community-sustained public repository: I feel curious to ask you about: Which, may there be one for, consider the best
<Oli> approach for me in this case?
ZetItUp has quit [Ping timeout: 272 seconds]
ZetItUp has joined #osdev
<Bitweasil> Host your own website. :/
<Bitweasil> Github as about as community based as it gets, but didn't Microsoft purchase it?
<ZetItUp> im a genious, disabled mouse and keyboard for the VM, my host lost them too then :P
<Bitweasil> lol
<kazinsal> Microsoft purchased GitHub and their free packages got better, lmao
<kazinsal> Like, unironically, after getting big daddy redmond bucks behind them, basically everything in the pro tier plan was made free.
<Bitweasil> Ok.
<doug16k> Oli, who's paying for the open free idealistic service though?
<doug16k> I'd rather burn microsoft's electricity than github's :)
<jimbzy> Hehehe
<j`ey> https://codeberg.org/ not really looked into it
<bslsk05> ​codeberg.org: Codeberg.org
<heat> commiehub.org should be a thing
<heat> the people's code repository
<jimbzy> heat, I was playing Fallout 4 the other night and found a weapon called a Commie Whacker.
dh` has quit [Read error: Connection reset by peer]
zyxwvu has quit [Remote host closed the connection]
zyxwvu has joined #osdev
<kazinsal> modern fallout and classic fallout have some interesting aesthetic differences
<kazinsal> modern fallout is a lot more verhoevenian
<jimbzy> Never thought about it, but you're right.
<heat> what's verhoevenian?
<kazinsal> in the style of paul verhoeven
<kazinsal> a filmmaker who is well known for making excellent dramatic satire films
<Oli> It is more of myself currently feeling that a community based project has it's heart on serving a community; a business may change the policies of hosted code or sell it to another who will, and data hosted by may be used for purposes I don't consent. Thank you so much for sharing about codeberg.org, j`ey, and all for your insights!
<kazinsal> eg. robocop, a cyberpunk-ish drama that satirically portrays a hypermilitarized corporate police state
<jimbzy> Total Recall?
<heat> ah
<Oli> I haven't put money in my thought, albeit I understand how they relate to hosting, electric and storage services.
<kazinsal> and starship troopers, a sci-fi drama that satirically portrays a hypermilitarized fascist united earth in war against an "other"
<kazinsal> and yeah total recall
<jimbzy> Do you have what it takes to be a citizen, kazinsal?
<kazinsal> basically he takes source material, looks at it, goes "what the hell", and turns it into a really good satire
<kazinsal> jimbzy: I'm doing my part!
zyxwvu_ has joined #osdev
<jimbzy> Good stuff.
zyxwvu has quit [Ping timeout: 265 seconds]
<jimbzy> I showed that movie to several friends when it first came out and they didn't get it.
<kazinsal> the classic Fallout games are exactly what they say on the tin - roleplaying games set in a post-global nuclear exchange america
doug16k has quit [Remote host closed the connection]
zyxwvu__ has joined #osdev
<kazinsal> modern Fallout games are *also* RPGs set in a post-global nuclear exchange america, but they really lean heavily into the "people are trying to emulate the 1950s" aspect of it
<jimbzy> I've been playing it for years and still find new bits here and there.
<kazinsal> whereas that was just kind of a side note in the artists manual for the originals
<kazinsal> which is why in Fallout 3 you have things like Liberty Prime crushing communism
<jimbzy> It's in 4, too.
<jimbzy> I usually backstab the BoS, tho. :)
<kazinsal> and in the lore for I think 2 it's just mentioned that China was a participant in the nuclear war and was not on the same side as the US, and that they did some land grabs beforehand
doug16k has joined #osdev
stux has joined #osdev
<kazinsal> yeah, the BoS is another faction that is portrayed a bit differently between the two eras of Fallout (Interplay vs. Bethesda)
dh` has joined #osdev
<jimbzy> kazinsal, Are you familiar with the industrial designer Viktor Schreckengost? I get his vibe from 3 and beyond.
<kazinsal> in the Interplay games they're nuts, but they have a goal that isn't just "techno-theocracy"
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
zyxwvu_ has quit [Ping timeout: 264 seconds]
<kazinsal> jimbzy: name isn't familiar but googling it, some of his work is
<jimbzy> He never really got the recognition he deserved back in the day.
opios2 has joined #osdev
<jimbzy> I was turned on to his work by an artist blacksmith I trained with.
<opios2> hey
Oli has quit [Remote host closed the connection]
jmpeax has joined #osdev
Oli has joined #osdev
Griwes is now known as Griwes_
Griwes_ is now known as Griwes
aejsmith has joined #osdev
<jimbzy> Check our vector, Victor. Do we have clearance, Clarence?
<kazinsal> anyone here have an M1 macbook? tempted to get one
<Bitweasil> I've got a M1 Mini.
<Bitweasil> Wait right now, they're announcing new stuff soon.
<Bitweasil> Which will either be worth picking up for the upgraded capabilities, or will lead to a glut of M1s on the used market.
<doug16k> used one for a bit. mini is quicker than you might expect
<doug16k> ended up having to use x86 emulation because arm didn't have some of the dependencies we used
<Bitweasil> Rosetta is properly quick.
<doug16k> in a website. can you believe website stuff that won't build on other cpu
<Bitweasil> I can.
<Bitweasil> I run on ARM boxes.
<Bitweasil> Node is a CF.
<kazinsal> yeah, I'm liking the possibility of having a super fast arm64 laptop that can also actually run x86 code quickly
<kazinsal> not reaaaallly sure if I want to spend two grand on a 13" laptop but
<Bitweasil> *shrug*
<j`ey> Bitweasil: CF?
<Bitweasil> WAIT.
<Bitweasil> j`ey, Charlie Foxtrot.
<Bitweasil> Clusterfsck.
<j`ey> lol
<Bitweasil> See what's announced.
<doug16k> it'
<kazinsal> my dumb ass also wants an apple watch
<Bitweasil> Either about the same coin will buy a 13" with more RAM and more external displays, or you can get one of the current ones lightly used.
<doug16k> node is also compact fluorescent, but I understood :P
<kazinsal> but that's also an insanely large purchase and my $40 armitron works just fine
<Bitweasil> kazinsal, for /what/?
<Bitweasil> If you're going to drop a couple hundred on a watch, get something classy, timeless, and that doesn't need firmware updates.
<kazinsal> mostly the exercise features
<j`ey> fitbit?
iorem has joined #osdev
<kazinsal> already have an iPhone 12 so it's the apple health integration stuff that I was looking at
<PapaFrog> The Apple Watch will notify you if you are in A-Fib.
<PapaFrog> None of the other watches do.
<doug16k> I think watch is an awful idea because I have seen what you get for UI on it. pretty rough
<kazinsal> yeah, real neat feature for folks with heart conditions (which, as far as I know, I don't have)
<PapaFrog> But, I refuse to use an iPhone, so I won't buy it.
<doug16k> expect to have to have phone anyway
<doug16k> if you want health monitoring you'd probably be better off with one that is focused on that
<kazinsal> I went into a Telus store last fall and said "hey my plan is old and shit and my phone is dying, what can you do" and they offered a better plan for less money and an iPhone 12 on top so I rolled with it
<kazinsal> part of me wants to get a really beefy new M2 or M1A or whatever macbook and a multi-display thunderbolt KVM so I can switch my monitors/keyboard/mouse between my PC and the macbook really easily
<doug16k> they made phones disposable by making it so you keep buying new phones forever with the phone bill
<doug16k> makes me wonder how often people waste their still good phone and take the new one just because they might as well
<jimbzy> I buy sub $100 phones, use them until they break, and then just switch over my SIM card.
<kazinsal> the nexus 4 was the longest lasting flagship type phone I've ever had
<jimbzy> It seems like every Android update makes them run just a bit slower.
<kazinsal> I'm hoping to get three or four years out of this timphone
<doug16k> jimbzy, that is exactly what it does. not even on purpose
<jimbzy> I also use prepaid service instead of an annual contract.
<doug16k> when is there an update to make it way faster? never
<doug16k> I can't think of an update where it was a performance boost
ZombieChicken has joined #osdev
<jimbzy> https://i.imgur.com/pKMTRJf.jpg <-- True story
<doug16k> I believe it
<doug16k> I have a story that is hardly believable about how durable those nokia phones were
<jimbzy> I remember my boss had one of those and got so mad one day he threw it at the ground as hard as he could. As he started to walk back in the shop the freaking thing rang.
<doug16k> chewed screen with hole in it from dog, broke case glass wide open, left fully immersed in puddle overnight. worked fine
<jimbzy> I pretty much stopped caring about phones when they went "smart"
<jimbzy> I like them as a computing platform, but they are worthless as a phone.
<doug16k> I bet your boss didn't damage it
<jimbzy> No, it damaged him. He just sighed heavily and kept walking because he knew he had lost the fight.
<doug16k> samsung isn't that good but they are pretty durable too
<jimbzy> I've had good luck with Motorola phones, too.
<kazinsal> My biggest gripe about cell phones these days is that nobody implements a codec that doesn't suck and works on multiple networks.
<Izem> for audio & music?
<doug16k> kazinsal, they had one job, right?
<kazinsal> For calling.
<Izem> err video
<Izem> oh
<kazinsal> doug16k: Seriously! It's a telephone. It should make good sounding phone calls.
<kazinsal> The hardware is *more* than sufficient to encode, decode, transmit, and prepare media for fullband Opus voice.
<jimbzy> kazinsal, It sounds exactly like this https://youtu.be/FGBhQbmPwH8
<bslsk05> ​'Daft Punk - One More Time (Official Video)' by Warner Music France (00:05:21)
<doug16k> hoping to find a way to charge a lot for that I guess
<jimbzy> Classic song, too.
<kazinsal> The actual microphone and speaker are much better quality than a GSM codec can provide
<kazinsal> And I know that wideband cell calling *works* because A) two phones on the Telus network will negotiate a wideband codec, I think G.711
<kazinsal> and B) I can make fullband calls via a SIP softphone over LTE
<kazinsal> But for some reason, inter-carrier cell calls even to someone I'm hypothetically standing right next to are crunched so hard that even an acoustic coupler would go "sorry mate, can't squeeze bits in and out of this"
<kazinsal> Ah, okay, so, Telus and Bell both implement G.722
<kazinsal> But Rogers seems to implement one of the incompatible *variants* of G.722.
<doug16k> aliens will get here and say our music is nothing but screeching noise because they hear all the stuff the codec did :P
<kazinsal> I've often wondered how to effectively communicate something like "how to decode this audio stream I'm about to send you" from literallly no reference point
<moon-child> there's never _no_ reference point
<moon-child> the question is what is your reference point, and how much shared ground do you have
<kazinsal> eg. if you are in a spacecraft with a relatively powerful SDR transciever and you need to talk to someone else in a different spacecraft who speaks none of the same languages that you do but also has a relatively powerful SDR transciever, how do you establish communication
<kazinsal> Like, do you start by sending a clock signal, hoping that they receive it and understand that it's a clock signal?
<Bitweasil> You fire a nuclear weapon across their bow.
<PapaFrog> Porn.
<kazinsal> It's a whole sort of field of on-the-fly technolinguistics
<Bitweasil> I use a Babelfish.
<doug16k> tell them how many bytes are free then say ready
<kazinsal> Okay, say, you want to send your favourite pornographic image as first contact, because you're from the mirror universe
<moon-child> kazinsal: godel escher bach ch6 talks about that
<kazinsal> How do you *establish* that you're about to send an image?
<moon-child> there's also the voyager golden record thing, which is along similar lines
<PapaFrog> I was really being flippant.
<kazinsal> How do you even begin to explain that you're about to modulate an image as a series of pixels represented as 32-bit integers onto a carrier wave
<kazinsal> That whole initial bootstrapping of first contact thing is incredibly my shit
<doug16k> you don't have to say. if someone is decoding it they are looking for it
<kazinsal> That's one of those ultimate problems that would be just incredibly difficult to solve
<PapaFrog> I wouldn't even think of anything but black & white at first.
<doug16k> yeah it would be easy to communicate some things and almost impossible for others
<kazinsal> I guess maybe you could start establishing a basic modulation system and clock rate by pulsing out the fibonacci sequence in binary
<doug16k> it would be funny if there were another voyager, and they explained the deflate algorithm so they could zip up a bunch of stuff :P
<kazinsal> Presumably any advanced enough species is going to recognized 1 1 2 3 5 8 13 etc
riposte has quit [Ping timeout: 272 seconds]
<kazinsal> and now you've established binary communication, of a sort, and math
<kazinsal> then you pulse out the frequency in Hz or whatever that you're on
<kazinsal> and then you establish something relatively understandable
<kazinsal> then again, Hz won't work because it's dependent on human seconds
<doug16k> we have to assume they are more advanced and intelligent and/or have better tools than us
<kazinsal> So maybe establish how to represent exponents, and then pulse out your frequency in planck time per cycle
<doug16k> we have had computers for a millisecond on galactic timescales
<kazinsal> this is one of those bizarre cases where there *is* no reference unit
<moon-child> doug16k: maybe we're smarter than everyone else, and their rate of progress dragged along
<kazinsal> other than the speed of light
<moon-child> I don't think we have to--or, indeed, can--assume anything
<doug16k> we may have gotten really lucky and it's mostly a lot of natural habitat out there
<kazinsal> Fermi's paradox. If there's so much space, where is everyone else?
<jimbzy> Far away :)
<kazinsal> The most likely explanation is "there's a LOT of space"
<doug16k> they all blow themselves up sooner or later after they figure out antimatter power
<moon-child> 'great filter'
<kazinsal> The most human-realist explanation is intelligent life tends to self-genocide before they can figure out how to go to the stars
<doug16k> yeah, they are too good at blowing each other up
<kazinsal> It's unfortunate but we're never going to know really what's out there because we're too damn good at killing each other
<kazinsal> But not good enough to stop killing each other so we can go out there and kill new things
<doug16k> it would be so great if we found certain proof of alien life. suddenly everyone else is just a human, not a "race"
<jimbzy> Well, if you managed to survive such a fate would you really cruise the universe trying to make friends?
<kazinsal> Travel the galaxy, meet facinating life forms, and kill them
<jimbzy> kazinsal, FMJ?
<kazinsal> Schlock Mercenary
<jimbzy> It reminds me of a quote from Full Metal Jacket ;)
<kazinsal> I think the greatest invention we could possibly suddenly have would be basically being able to build stargates
<kazinsal> Not only have you possibly solved FTL travel, but you've also solved FTL communication and surface-to-orbit costs
riposte has joined #osdev
<jimbzy> How many shovel loads of coal would it take to power a stargate?
<kazinsal> Plonk a stargate on a space station and the other end on the ground and now you can get materials into orbit for the low low cost of "try not to vomit when you step through and are suddenly in freefall"
<kazinsal> (Of course, the "solution" to that is to put the stargate in a rotating hab, so now your cost is "try not to vomit when your inner ear suddenly has to deal with a whole new world of coriolis effect and your head is experiencing different gravity than your feet".)
<jimbzy> That doesn't sound pleasant.
<kazinsal> Yeah, there are some logistical/engineering issues with rotating habitats for artificial gravity
<kazinsal> You need to rotate them fast enough to "generate" "gravity" but not so fast that the coriolis effect screws with your balance.
pretty_dumm_guy has joined #osdev
<kazinsal> And if your habitat is too small in diameter, then the gradient of gravity is too steep
<Oli> You reminded me of this fantasy I have since reading magazines as a kid to communicate with an alien telephatically while I look at stars, and enjoy sharing together; I also by getting to experience both it's natural and technology-aided abilities.
<kazinsal> And if you have 1.0 g at your feet and 0.9 g at your head, your brain is going to be VERY upset with you.
<kazinsal> There's also an unsolved question of exactly how much gravity your body *needs*
<kazinsal> We know that prolonged microgravity causes bone density loss and muscle atrophy.
<kazinsal> But we don't know exactly how much gravity is required to make maintaining bone and muscle not take several hours a day.
<kazinsal> If it just takes a tenth of a gee or so then that's perfect, because a moon habitat will be livable with the assumption that you go for a walk every day.
<kazinsal> Much like the earth is livable with the assumption that you go for a walk every day.
<geist> yay taking a walk
<Oli> By maintaining you do mean a body inherent function, or induced effort?
<j`ey> Oli: star gazer!
<kazinsal> Kind of both. In full gravity, existing takes effort.
<kazinsal> In microgravity, it really doesn't, so you can just float from one side of the ISS to the other and back a hundred times with about as much effort as it takes to walk to your kitchen and back.
<kazinsal> The purpose of a rotating habitat drum or torus is basically causing everything in it to "fall" towards the outside surface of the habitat, thereby simulating gravity.
<kazinsal> So walking in a rotating habitat is in theory similar to walking on earth, and living in a rotating habitat in theory exerts similar forces on your body.
gog has joined #osdev
* gog meows
* kazinsal pats
* gog purrs
<gog> this exact exchange happened in another channel not two seconds ago
<gog> synchronicity
<jimbzy> It's a glitch in the Matrix.
* jimbzy gets ready to pop Elrond in the mouth.
<gog> that reminds me, i should take the red pill tonight
<gog> 'cept it's more turquoise
tricklynch has joined #osdev
Izem has quit [Ping timeout: 264 seconds]
<kazinsal> there's another group I'm in where my role appears to be designated catgirl headpatter too
<kazinsal> so in this case I'm at least used to it
<gog> it's an important job
<gog> true fact: catgirls die without headpats
thinkpol has quit [Remote host closed the connection]
thinkpol has joined #osdev
merry has joined #osdev
<doug16k> I am more curious what happens if you just live in 3 g acceleration continuously. does it all adjust so that is the new 1 g?
<kazinsal> That's another good one. Especially what happens if you live in higher gravity then come to Earth.
<gorgonical> I think muscularly that's what would happen. But your bones and bloodflow aren't as good at adjusting
<gorgonical> E.g. consider what happens when you strength train. At some point 200lbs squat is very hard, but once you can squat 300lbs, 200 is easy. I suppose it'd be like that
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
<kazinsal> I really liked the Expanse having people from Mars be able to function on Earth but having issues adjusting because things like a horizon that's dozens of km away and completely open air all the way to space is something that just doesn't compute when you're born under a dome in two fifths gravity
springb0k has joined #osdev
<geist> yah i could see agoraphobia being a thing
<doug16k> mars is a vacuum. there is negligible atmosphere
<geist> was playing Mass Effect again the other day and Tali mentions something about 'your ship is so quiet! where i grew up (on a fleet of Quarian ships) a completely quiet ship means something serious has failed"
<kazinsal> In a sense I get that. Quiet in any place that I live in means the power's out
<kazinsal> If the half dozen various computer-y things aren't spinning, something's wrong
<geist> yah. if you're on a ship and you dont hear anything means the engine is off and there's no air scrubber running, etc
<gorgonical> I dislike the idea that if something someone else built fails, I die
<kazinsal> In space, nobody can hear you scream at the guy who just overloaded the air scrubbers by vaping into them
<doug16k> gorgonical, ever been in an apartment building?
<gorgonical> I am in one now, as a matter of fact. I dislike taking the elevator, too
<kazinsal> gorgonical: time for you to revert to agrarianism and hide in the woods
tds has joined #osdev
<doug16k> if that fails you will be squashed like an insect
<kazinsal> Elevators have been "cut the cable while I'm standing in it" safe for literally almost a hundred and fifty years
<doug16k> it won't though
<kazinsal> Correction: OVER a hundred and fifty years.
<kazinsal> Elisha Otis died in 1861.
<gorgonical> I have been conditioned by movies like alien to assume everyone they send into deep space will be unconscionably stupid and incompetent
<kazinsal> He demonstrated the predecessor to the modern elevator safety brake in 1853 by standing on an exposed elevator platform and cutting the cable holding it up with an axe.
<kazinsal> Elevators have been safe to an unreasonable degree for damn near two centuries.
<doug16k> an engineer can make anything have any properties you want
air has joined #osdev
<geist> yah almost all elevator accidents are probably some hastily constructed temporary thing at a construction site, etc
<geist> stuff in a building, no sweat
Brnocrist has quit [Ping timeout: 252 seconds]
thinkpol has quit [Remote host closed the connection]
<doug16k> "can't plummet" is a good one for elevators
thinkpol has joined #osdev
<kazinsal> The only elevator I'm not a fan of is paternosters.
<kazinsal> But those are bizarre and antiquated and nobody builds them anymore
Brnocrist has joined #osdev
<geist> even better are the hydraulic piston ones
<geist> like those cant really fail catastrophcially really
<doug16k> severing accidents concern me way more than falling accidents, with elevators
<kazinsal> My understanding is that they somewhat solve the shabbat elevator problem but since computerized elevators became a thing now elevators just have a shabbat mode
<kazinsal> Elevators are great! You can just buy elevator keys online.
<doug16k> try not to let the elevator chop you in two, and you'll be fine
<kazinsal> anyways speaking of elevators and work and stuff it is no longer work time and it's still somehow not raining out there so I'm going to pack a bowl and go for a stroll
<gorgonical> Man I can't wait for Friday to come. I'm finishing up a paper and it sucks. Nice to see it all come together, though
<gorgonical> It probably won't even get in to this conference, but we can't just not try
thinkpol has quit [Remote host closed the connection]
thinkpol has joined #osdev
<ZetItUp> is there a way to force make to check vars?
<bslsk05> ​pastebin.com: all: CROSS_CFLAGS := -DCROSS $(FREESTANDING_CFLAGS) $(COMMON_CFLAGS)dbg: CROSS - Pastebin.com
<ZetItUp> say i do make all, that works, but then i need to make clean (delete all files) if i want to do make dbg
<ZetItUp> not sure whats going on really hehe :P
<geist2> what do you mean check vars?
<geist2> oh i see what you mean
<doug16k> I have it so I configure a debug build dir and another release build dir with their own generated make
<geist2> yah usually for that sort of thing i build it in another dir
<geist2> yah, exactly
orthoplex64 has joined #osdev
<ZetItUp> aah makes sense i guess
<geist2> good idea anyway to keep the build stuff in a subdir
<geist2> that way a make clean can just delete the top level dir
<geist2> well top level build dir
<ZetItUp> yeah
<doug16k> ZetItUp, idea is, why not keep around the object files for both so it's not a completely scratch build to move back and forth
<doug16k> you an have other things that make it an oddball build too, like asan or other sanitizers
<ZetItUp> alos i don't really switch between them that often so i don't see why i think it's an issue in the first place hehe
<ZetItUp> also*
<geist> well, if you do want to switch flags a tricky thing to do is write out a stamp file with all the clfags in it or whatnot
<geist> and then have the whole build depend on the stamp file
<geist> if you only update the file if the contents change you can have it dynamically recompile
<doug16k> plan to support multiple architectures?
<geist> alas, the logic for that is a little convoluted, but that's what i do for newos
<geist> er LK
<ZetItUp> doug16k nah
<doug16k> you'll end up needing to clean to switch that. nice to be able to build them all without wipes
<ZetItUp> not for the time being :D
<geist> i do highly recommend putting everything in a build dir though *anyway*
<geist> even if there's just one
<geist> that way ou can just rm -r it
fwg has quit [Quit: .oO( zzZzZzz ...]
<ZetItUp> or i could just add .debug or something at the end of the obj files and remove them too :D
<ZetItUp> but yeah can get abit messy