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
Vercas8 has joined #osdev
Vercas has quit [Ping timeout: 276 seconds]
Vercas8 is now known as Vercas
sdfgsdfg has quit [K-Lined]
pretty_dumm_guy has quit [Quit: WeeChat 3.4]
Burgundy has quit [Ping timeout: 250 seconds]
ElectronApps has joined #osdev
ElectronApps has quit [Client Quit]
sdfgsdfg has joined #osdev
sdfgsdfg has quit [Ping timeout: 256 seconds]
sdfgsdfg has joined #osdev
sdfgsdfg has quit [K-Lined]
Oli has quit [Ping timeout: 256 seconds]
dgjhdgj2 has joined #osdev
dgjhdgj2 has quit [K-Lined]
Oli has joined #osdev
sdfgsdfg has joined #osdev
sdfgsdfg has quit [Client Quit]
moon-child has joined #osdev
<moon-child> just curious, is boot stuff coherent in riscv? I know arm is supposed to be a mess but
srjek has joined #osdev
<geist> coherent re: cache?
<geist> not sure it's specced that hard yet
<geist> honestly whast ends up happening is 'whatever linux says'
Lumia has joined #osdev
pretty_dumm_guy has joined #osdev
pretty_dumm_guy has quit [Client Quit]
heat has joined #osdev
pretty_dumm_guy has joined #osdev
gog has quit [Quit: byee]
dequbed has quit [Ping timeout: 250 seconds]
Oli has quit [Quit: leaving]
dude12312414 has joined #osdev
ZombieChicken has joined #osdev
<moon-child> no coherent like: sensible, sticks together
drewnix has joined #osdev
<moon-child> what does linux say?
<Mutabah> I think most boards use uboot?
<klange> I was going to describe ARM as "good luck, better hope your board has uboot", is riscv the same way for the extant real hardwrae?
<Mutabah> From what I've heard, yes
<Mutabah> Except that less luck is required
<Mutabah> There is SBI, which is kinda like BIOS/ACPI/EFI runtime services
<heat> note that you can run UEFI + ACPI on both arm64 and riscv64
<heat> i think that's the only way windows 10 boots in arm too
<heat> at least for your typical SBCs they just say "use UEFI + ACPI" and that's it
<geist> yep
drewnix has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
<geist> and the server spec for arm (SBSA) is much more strict about exactly what the system should look like
<geist> in that case it's very possible to build a generic kernel that boots on anything, modulo specific drivers for specific hardware
<geist> i think ARM is pushing to try to standardize 'client' socs too, but i think there's a lot of pushback from the Big Vendors (qualcomm, etc) that dont want to do it
<heat> isn't that what android is already doing with GKI?
<heat> you just add modules for drivers, but the core kernel is standardized (so it "boots" everywhere)
kingoffrance has quit [Ping timeout: 240 seconds]
<heat> yo, i'm trying to establish a TLS connection with openssl, I got curl's cacert.pem and added it to /usr/ssl/certs/, still doesn't work, but if I use openssl s_client's -CAfile option it works
<heat> any ideas?
<geist> heat: yeah but it's more that without standardization for detecting the system you're on or the bootloader or whatot, its hard to achieve even that
Lumia has quit [Ping timeout: 240 seconds]
<geist> moon-child: re: linux cache coherency was just looking into this the other day sinc someone reported a LK boot failure in a particular situation
Authenticity has joined #osdev
<geist> in the case of ARM it basically says something to the effect of 'the kernel image shall be written to memory and the cache lines shall be cleaned' and the mmu will be turned off and the data cache disabled but the i cache can be enabled for handoff to the kernel
<geist> the 'kernel image shall be cleaned' is the key
<geist> it does *not* say that all of memory shall be cache cleaned (written back) necessarily and it does not say that thecache shall be invalidated
<geist> but the kernel part shall be cleaned, so the icache can fetch correct data from memory
<geist> there are subtle failure modes one can get into if you dont take this into account
<klange> 'Hello, world; &kmain = 0x40013a60' neat
<zid> printf working is a good sign that a lot of things went right
<klange> I have stubbed out all of the arch-dependent stuff and have a working printf
<zid> abi, stack, etc
<heat> i got SSL woohooo
<heat> turns out I needed to put cacert.pem in /usr/ssl/cert.pem
<heat> if I flesh out my TCP stack a bit more I feel confident in running my discord bot under my OS
<geist> klange: oh woot!
kingoffrance has joined #osdev
<klange> Let's call that step 0... step 1, I guess, will be understanding paging and getting some of those functions squared away...
<geist> yah that is sadly pretty complicated. always here for answers to questions, but of course it's your journey
<geist> the final mechanism isn't much more complicated than x86, but the amount of configuration available is much much greater, so it seems like a large wall of complexity when getting started
<heat> i should resume my riscv port one of these days
pretty_dumm_guy has quit [Quit: WeeChat 3.4]
Lumia has joined #osdev
PyR3X_ has joined #osdev
Lumia has quit [Ping timeout: 240 seconds]
PyR3X has quit [Ping timeout: 256 seconds]
[itchyjunk] has quit [Ping timeout: 240 seconds]
[itchyjunk] has joined #osdev
Authenticity has quit [Changing host]
Authenticity has joined #osdev
Lumia has joined #osdev
Authenticity has quit [Quit: You attract the wrong things if you have no sense of who you are]
sdfgsdfg has joined #osdev
heat has quit [Ping timeout: 250 seconds]
Lumia has quit [Quit: ,-]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
vinleod is now known as vdamewood
srjek has quit [Ping timeout: 240 seconds]
sdfgsdfg has quit [Quit: You attract the wrong things if you have no sense of who you are]
ZombieChicken has quit [Ping timeout: 276 seconds]
nyah has quit [Quit: leaving]
scaramanga has quit [Read error: Connection reset by peer]
[itchyjunk] has quit [Read error: Connection reset by peer]
<klange> hm, these docs say the dtb is at 0x4000_0000 but I'm see zeros... loading myself at 0x40800000; also checked x0 at the boot, and that's 0.
<klange> I've got the system timer going since that's special registers... I've got a hardcoded RTC address for QEMU that does appear to be giving me a sufficient boot timestamp
<Mutabah> Depending on the platform being emulated, you might not get a dtb present iirc
<klange> just plain old aarch64 -m virt; any idea what I might be missing?
<Mutabah> Hmm... my aarch64 code supports not having a dtb available. Not sure, fuzzy memories
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
sdfgsdfg has joined #osdev
bauen1 has quit [Ping timeout: 268 seconds]
<geist> lemme see
elderK has joined #osdev
<geist> hmmm looks likeit should be at 0x4000.0000
<geist> maybe stop it and inspect with the command line
<geist> how are you loading the kernel at that location? you set the link address to 0x4080.0000?
<klange> yeah
<geist> FWIW I have LK set to load at 0x4010.0000 and it seems sufficiently out of the way
<klange> i tried a few just in case it wanted amount of space in ram or whatever
<geist> i'd say inspect with `xp` or whatnot and double check it really really isn't there
<geist> if it is then there's some sort of programming error
<geist> but i have code that absolutely parses the FDT and it absolutely expects it to be there
<klange> oh huh sorry I was at 0x40080000 and apparently that's not far enough
<bslsk05> ​IRCCloud pastebin | Raw link: https://irccloud.com/pastebin/raw/UVQ6f4lt
<klange> 40100000 did the thing
<geist> ah yes. gotta count those zeros, yep
<geist> yah i hit tis before too. basically in some startup logic in qemu virt machine it tries to lay out memory
<geist> and if it detects that you have tried to load something over the top of the fdt, it simply omits it
<geist> if (fdt_fits) { .... } kinda logic
<klange> and of course our little page on 'virt' uses 0x4000_0000...
* klange will probably rewrite that page after getting more of this figured out myself
<geist> kinda annoying it doesn't just put it anywhere and pass it in x0 or whatnot, but AFAIK it doesn't pass any args to the kernel via registers
zaquest has quit [Remote host closed the connection]
<geist> note it's i think slightly different on arm32 for Some Reason
<klange> if it's loading a linux it does
<geist> oh perhaps
<geist> also note you can feed it an ELF file or a raw binary. if you feed it a raw binary that it can't detect it just plonks it at a fixed address
<geist> i think 0x4080.0000
<geist> also note if you want to really really cold boot in EL3 or whatnot, you can feed it a binary via i think either `-bios` or `-rom`
<geist> i forget which one, but whatever .bin file you pass that gets mapped at 0 and that is the Real reset vector of the cpu
<geist> if you dont boot it with a -bios it just makes one up that basically vectors into your kernel, which is whats happening here
<klange> I did see that, as I was actually down a rabbit hole of "how do I start more cores" which led to both the "get this thing out of the dtb" _and_ "-bios loads you as a firmware and the other cores are running"
<geist> if you dont wanna parse FDT directly, i highly recommend libfdt. its MIT licensed, written in pretty minimal C, and has a pretty nuts-n-bolts interface that you can use for however deep you want to dive into FDT
<klange> well, you know me
<geist> yah for booting secondary cores you can use the fake PSCI 'firmware' that qemu loads
<geist> if you load your own ROM i think that fake firmware emulation is turned off because it's now your problem
<geist> but if you dont, then it basically honors some of the PSCI calls. very straightforward to load secondary cores.
<geist> also note ramdisks and command lines are passed via FDT too. or at least pointer to it
<klange> that'll be helpful, I want both of those things
<geist> also that's how you discover where ram is
<geist> nicely the virt machine always maps ram as a single linear run of memory, starting at 0x4000.0000 (1GB). blows right across the 4GB boundary and dose't look back
<geist> really refreshing. some newer ARM Socs are starting to do that too
<geist> so this reminds me. my task for the evening is related: how does one map PCI IRQ vectors to GIC IRQ vectors on ARM virt machine. i think it's described in the FDT somehow, but i dont know how it works. so that's my task for the evening
<geist> also if you want to see what's in the FDT that qemu synthesized for you, there's a command line option to dump it to file, and then you can disassemble it back to source
<geist> i dont remember off the top of my head, but you should be able to find it pretty easily
<geist> and `dtc` is the device tree compiler/decompiler
zaquest has joined #osdev
<klange> it's "dumpdtb=path" as a machine option with the very important caveat that if you're in the situation I was in ^ above, it also doesn't dump it :)
<geist> ah yeah, it's inside that if statement
scaramanga has joined #osdev
<geist> okay so it looks pretty dumb: there are 4 IRQs reserved on the GIC for *all* of the PCIE irqs ABCD
<geist> and there's a table in the device tree that basically says ABCD is conneced to all devices
<geist> (you're supposed to use MSI)
<kazinsal> oh good, it's ACPI PCI routing all over again
<kazinsal> (just use MSI)
bauen1 has joined #osdev
<geist> yah am verifiying on a linux arm64 install image i have
<kazinsal> or hell just use MSI-X if it's available. it can be theoretically lower latency and you get better multiprocessing out of it
<bslsk05> ​github.com: qemu/virt.c at master · qemu/qemu · GitHub
<geist> it seems to just say for every pin (4 of them) put a record that says all devices have all 4 pins connected
<geist> not even doing a swizzle or anything
<geist> oh wait it is, there's a devfn % PCI_NUM_PINS
<geist> so okay it's basically rotating the ABCD connection for each device through the 4 IRQs wired up to the GIC
<geist> also seems to only be doing it for the first 4 devices?
<klange> I also want to look at PCI stuff on the virt target, but I just want to get a framebuffer out of it
<geist> yea so that's a bit more complicated
<geist> can spew infos at you, but only if you're interested
xenos1984 has quit [Read error: Connection reset by peer]
<klange> It looks like it's not mapping anything, and I have yet to figure out how to access the config space (I got as far as trying to read from the ECAM space and getting guest errors out of it...)
<geist> yes. so. pci is annoying: it's not configured
<geist> i'm literally looking at that right now
<geist> you have to assign a bar to it at the minimum
<geist> which ecam space did you try to read from?
<bslsk05> ​github.com: qemu/virt.c at master · qemu/qemu · GitHub
<bslsk05> ​github.com: qemu/virt.c at master · qemu/qemu · GitHub
<klange> The low one at [VIRT_PCIE_ECAM] = { 0x3f000000, 0x01000000 },
<geist> i thin kthere's a way to force it to use the low one, but it likes to default to the high one
<geist> i think you can force the low one by setting the virt machine version to something older
<geist> -machine virt-xxxx
<bslsk05> ​github.com: qemu/virt.c at master · qemu/qemu · GitHub
<geist> machine version 2.12 it seems
<geist> newer versions default to the high ecam. *or* use the high ecam
<klange> it sure looks like it maps both and the no-highmem stuff should only disable the high one? and they're aliases to the same region / the low one is a restricted window if you have lots of devices
<klange> but fwiw this platform def stuff in qemu is a maze
<geist> possible. i haven't tried
<geist> i added code to read the ECAM location out of the FDT, since the high one is variable. its position changes based on how much ram is in the system
<klange> ah yeah that'll do it
mlombard has quit [Quit: Leaving]
<geist> hmm, trying to find the docs for how gicv2 msi works
<klange> I guess I'll stick with virt-2.12 until I get the dtb stuff figured out... or I think there's an option that disables the high mem stuff more directly than the whole version compat thing
<geist> i dunno. we still run with 2.12 in fuchsia too
<geist> but once you get the FDT stuff working you can read it out of that pretty easily
mlombard has joined #osdev
<geist> hrm, this is frustrating. looks like arm has mostly scrubbed all references to gicv2m (where 'm' is the msi extension)
<geist> since gicv3 works totally different and all new things should use it
xenos1984 has joined #osdev
<geist> the magic register is apparently SETSPI
<geist> basically you point the MSI at it and the encoding is.... still trying to find that
<bslsk05> ​github.com: qemu/arm_gicv2m.c at master · qemu/qemu · GitHub
<geist> well okay that's about as dumb as it gets: you just write the irq number to that mmio register and it fires as if it were external. no sweat.
vdamewood has quit [Quit: Life beckons]
<geist> oh dizzam! what vga thing did you config?
<klange> bochs :D
<geist> jammed an address into its bar and then configured it as normal?
<klange> qemu does the mmio interface, so yeah, just picked some addresses for the mmio and framebuffer
<klange> had a tiny little bug where I was setting VIRTX incorrectly and _apparently_ it was being ignored on x86 but a quick bit of patching around that and yay, framebuffer
<geist> yah and looks like pci has pretty much full reign of 0x1000.0000 - 0x4000.0000 with a little carve out for mmio mapped io ports
<geist> is the tick the timer or reading time out if it
<geist> ?
<klange> spinning on system timer until my own time keeping says it's a new second
<klange> basically same thing I did on x86 with the tsc, but without having to figure out how fast it is since there's a register for that
<geist> yah the arm64 timer stuff is very nice and easy to deal with
<geist> the actual timer hardware itself is basically a straightforward match register too, using the same time base
<geist> and per cpu, etc etc
vdamewood has joined #osdev
sdfgsdfg has quit [Quit: You attract the wrong things if you have no sense of who you are]
<geist> klange: question: how precisely did you add the bochs vga adaptor on the command line?
ElectronApps has joined #osdev
<klange> -device bochs-display
ElectronApps has quit [Remote host closed the connection]
<geist> kay
<geist> oh hey, look at that. linux picks it up too
<geist> i just never tried that honestly
<geist> so to note: you can get virtio devices into the virt machine without using PCI
<geist> using the virtio-mmio aperture stuff. so you can add a -device virtio-blk-device or -device virtio-net-device and you get the same virtio goodness but detected via another (and simpler) mechanism to pci
<geist> but youc an also use virtio-blk-pci and whatnot and get basically the same driver on top of PCI. the virtio spec allows both
<geist> so up until now for gfx i've always jsut used virtio-gpu which is a whole nother scheme if you've never fiddled with it
<klange> I've been meaning to, and probably should, but when I saw the BGA was an option I thought I'd take a stab at that
<geist> yah
<geist> virtio-gpu is pretty neat, but annoyingly complicated to use
<geist> i have not yet written a PCI accessor to my virtio drivers, but they are nice for network and block device. and input too
<geist> sice i dont thik there's a reasonable way to get PS2 working on arm
<kazinsal> virtio-net and vmxnet3 are a couple adapters I want to write drivers for
<geist> but, say, virtio-input is pretty straightforward
<klange> there's a virtio-net attached to the virt device by default
<kazinsal> gotta finish my core rewrite first though
<geist> yah
<geist> it's easy enough to abstract a virtio interface to handle mmio and PCI, since it still endsup being the same queing mechanism, just the discovery and interrupt logic is different
<geist> and with PCI you can do MSI but the mmio interface you're stuck with a single IRQ per device
sdfgsdfg has joined #osdev
<kazinsal> yeah
<geist> i was re-reading the virtio 1.1 spec the other day. there's basically a fairly simple mechanism to assign a different MSI to different virtio rings
<kazinsal> vmxnet3 looks fairly easy to do a driver for, the openbsd one isn't that long, only a couple thousand lines
<geist> seems like linux, for example, just allocated 5 IRQs for the virtio-blk-pci i have here. one for the main config ring, and then 4 request rings and then assigned them per cpu
<geist> looks like it allocated 8 rings if i gave it 8 cpus. so there ya go
<geist> actually in general seems likemost virtio pci based drivers like to allocate lots of rings and MSIs accordingly
elderK has quit [Quit: Connection closed for inactivity]
<CompanionCube> someone apparently did write a patch for mmio msi but wasn't merged it seens
<geist> so i do kinda wonder if the best algorithm for assigning bars is to assign all of them at the local bus first, then drill down through each bridge recursively
<geist> or just assign them as you walk through the bus and drill down if you hit a bridge
<geist> seems linux does at least the optimization of sorting the bar sizes at least within a bus and assign the largest ones first
<geist> makes sense. but it's unclear if it also drills through bridges to compute their size before sorting locally
<geist> like if a bridge is going to occupy 2MB of mmio space, and you have 3 local bars: 4MB, 1MB, 64K
<kazinsal> gotta put ECAM on the to-do list for the new core as well
<geist> would you assign them 4M, then 2MB for the bridge (and all the subdevices), then 1MB, then 64K?
<geist> or 4MB, 1MB, 64K, then bridge A, then bridge B, etc
<geist> i guess the former is more efficient, but requires more trips up and down the heirarchy to compute the total sizes
heat has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
Jari-- has joined #osdev
vdamewood has quit [Quit: Life beckons]
heat has quit [Ping timeout: 240 seconds]
pretty_dumm_guy has joined #osdev
bauen1 has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
bauen1 has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
bauen1 has joined #osdev
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
dormito has quit [Quit: WeeChat 3.3]
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
CryptoDavid has joined #osdev
the_lanetly_052 has joined #osdev
the_lanetly_052 has quit [Max SendQ exceeded]
the_lanetly_052 has joined #osdev
GeDaMo has joined #osdev
Burgundy has joined #osdev
sdfgsdfg has quit [Quit: You attract the wrong things if you have no sense of who you are]
<geist> hmm, how does a pci bridge encode 64bit memory that's not prefetchable?
<geist> the type 1 descriptor only seems to be able to describe 32bit ranges for non prefetchable
amj has joined #osdev
<geist> all the computers i've looked at around the house only put prefetchable stuff >4G
dormito has joined #osdev
lkurusa has joined #osdev
the_lanetly_052 has quit [Remote host closed the connection]
sdfgsdfg has joined #osdev
lkurusa has quit [Quit: leaving]
lkurusa has joined #osdev
the_lanetly_052 has joined #osdev
<geist> from quickly reading through the pci bridge spec. yep. only prefetchable stuff can be > 4GB
<geist> so really 64bit bars on devices only make sense for that sort of thing
<lkurusa> yo geist how's it going
<geist> sup. not too bad
<lkurusa> still busy on Fuchsia's kernel?
<lkurusa> Zircon IIRC
<geist> yep!
<lkurusa> how cool!
<kazinsal> one day I will attempt the interviewing process to work on something like that full time
<kazinsal> one day
<lkurusa> It's fun
sdfgsdfg has quit [Ping timeout: 268 seconds]
<kazinsal> unfortunately from a professional and academic standpoint it's not my field :(
<kazinsal> I am but a network/datacenter engineer and not a computer scientist
<lkurusa> well, you are in the right channel to learn about this though :-)
<kazinsal> oh, I've been here for many years
<lkurusa> i know :p
<kazinsal> I still consider myself not to be a CS person though
<lkurusa> TBH, my experience was that if you know your stuff about OSes, companies will take you in as there aren't too many folks in general who know deep enough how an OS works - let alone have built one
<kazinsal> the inherent passion of osdev is what solidified my current job but it wasn't the technical knowledge of the hobby that did it
Jari-- has quit [Ping timeout: 256 seconds]
<geist> i wouldn't say that os people are computer scientists though
<geist> i mean, i'm not a CS person
<kazinsal> fair, from the point of someone trying to enter the field as someone who hasn't been in the field of osdev professionally before it almost universally requires some kind of paperwork saying "yep, they're a CS person"
<kazinsal> and that's just to get past the HR screening
<lkurusa> I can't really say - I have a CS degree and I almost ended up going into academia
<geist> i suppose, or some prior art and a lot of enthusiasm
<kazinsal> I wouldn't mind working on kernel stuff as a full time job but I'm also thoroughly not in the field
gog has joined #osdev
<kazinsal> and I don't think my leetcode skills are enough to get me through the techbro interview
<lkurusa> I know Apple hires SMEs, at least when I interviewed they didn't ask any "techbro" questions
<lkurusa> Just regular OS stuff
<kazinsal> maybe I'll give the interview for el goog and apple and microsoft a shot one day
<lkurusa> you'll never know until you try
<kazinsal> I like my job just fine mind you but for a doubling of my salary and a green card, hell, I'll switch jobs ;)
<lkurusa> :-)
<kazinsal> on a seattle programmer salary I could buy a house. on my vancouver net/DC salary I must simply wait for all my ancestors to die and leave me assets
<gog> we could plant a house/we could build a tree/i don't even care/we could have all three
heat has joined #osdev
<heat> i've been reading about atapi and scsi
<heat> is it true that atapi is just scsi over sata or are there some differences?
<heat> i read on the wiki that all atapi commands are 12 bytes long but that's obviously not the case with regular scsi
<kazinsal> more accurately it's scsi packets over ATA, but yees
<lkurusa> I think it uses SCSI commands
<kazinsal> there is an ATA command set for "packet interface"
<kazinsal> what goes inside those is effectively just standard SCSI
<heat> yea i thought so too
<heat> the wiki must be wrong
<kazinsal> but adapted for the ATA bus
<lkurusa> yup, i agree, that's what i recall too
<ThinkT510> is sortix getting a new release?
<heat> ThinkT510, eventually but you're better off asking sortie on #sortix
<heat> (or here but its a tiny bit offtopic)
lkurusa has quit [Quit: leaving]
<heat> my mission today is to get virtio-scsi working
<heat> then I'll try to run it on gce
<gog> i should try to code today maybe idk
tenshi has quit [Quit: WeeChat 3.4]
lkurusa has joined #osdev
dennis95 has joined #osdev
vdamewood has joined #osdev
blockhead has quit []
<heat> actually i got bored
<klange> I have that problem often.
<lkurusa> Really happy I wrote scripts to build everything my OS needs - crosscompiler, host tooling, nice.
dennis95_ has joined #osdev
dennis95 has quit [Ping timeout: 240 seconds]
unmanbearpig has joined #osdev
nyah has joined #osdev
ephemer0l has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
<sortie> ThinkT510, yeah, but the 1.1 release is a good bit in the future still. Meanwhile you can always use the nightly builds which has a ton of improvements over 1.0
<sortie> And if you ask nicely I'll point you to the super duper sekret unstable builds with networking
<sortie> Which I def need finished up before releasing 1.1
CryptoDavid has quit [Quit: Connection closed for inactivity]
FatalNIX has joined #osdev
<heat> sortie, yo sortie I have a question
<heat> how do you set up your ssl certificates for sortix?
<heat> i got a solution for my OS but i'm not 100% happy with it, I'm basically using curl's .pem for openssl
<sortie> heat, I use let's encrypt. For https, I currently handle it on the Linux side due to nginx doing proxying. For irc.sortix.org, I copy the appropriate certificate into the VM whenever it's started (the host will always restart before the cert expires)
<heat> not those certs
<heat> the ca certificates that you need for TLS
<sortie> Oh the client stuff?
<heat> sí
<sortie> How basic
<sortie> :P
<heat> :D
<sortie> Basically I use libressl and it takes care of installing them
<heat> huh
<heat> >cries in openssl
<sortie> For curl, I do have to build it with an option telling it where to find them when cross-compiling
<heat> yeah I did the googlez
<heat> when in doubt search for sortix <package> ports
<sortie> https://pub.sortix.org/sortix/release/nightly/patches/libcurl.patch pkg.configure.args=--with-ca-bundle=/etc/ssl/cert.pem --with-ca-path=/etc/ssl/certs
<heat> i got https yesterday!
<sortie> :D
<heat> sadly no curl, that needs socketpair(2) and I don't have it yet
<sortie> https://pub.sortix.org/sortix/release/nightly/patches/libssl.patch ← btw if you want to switch to our openbsd friends
<sortie> A number of those hunks are my fault, others I've upstreamed recently
<heat> from what I gathered libressl is a lot worse than openssl for most projects
<heat> both in compatibility and number of contributors
<sortie> It's getting better and a lot of that is really OpenSSL's fault
<sortie> (for constantly changing their new APIs so it was hard to keep up)
<heat> i remember reading that most distros that switched to libressl or had it as an option just gave up
<bslsk05> ​gitlab.alpinelinux.org: consider LibreSSL as default OpenSSL provider again (#28) · Issues · alpine / TSC · GitLab
<sham1> Shame on them
<ThinkT510> void switched back due to openssl improvements and maintainence burden
<heat> i'm not opposed to a well maintained openssl
<heat> and that seems to be true right now
<FatalNIX> solution: Don't provide any SSL option, tell people to go the fuck home and cry about it if they want. Problem solved.
<heat> solution: roll your own crypto
<FatalNIX> then change your distribution slogan to "if we don't have it, you don't need it!"
<heat> nothing bad happens when you roll your own crypto
<heat> other solution: distribute libcrypto.so as a blockchain implementation for your OS
<FatalNIX> "Our distribution uses proven methods to protect all communications and data by using the double rot13 algorithm"
<sham1> lol
<vdamewood> pff, that's really no better than rot26.
<vdamewood> Use rot52 for better security
<heat> everybody gangsta until the gauls intercept your tcp packets
<FatalNIX> "My unbreakable crypto algorithm uses the a xor b method"
<heat> you'd need to add a whole BGP implementation and become an autonomous system in order not to route packets through france
<heat> vercingetorix can't get a chance to look at your caesar ciphered packets
<FatalNIX> Whenever I ask for IP subnets from my local HAM radio subnet distributor they ask me for BGP info :> Then bounce all Internet traffic off of the moon
<FatalNIX> I don't do that btw
heat has quit [Remote host closed the connection]
heat has joined #osdev
srjek has joined #osdev
<FatalNIX> Everyone went quiet and is now probably contemplating how to take over the world by rerouting all Internet traffic to the moon and back.
<FatalNIX> :>
<lkurusa> As a first question - is there internet on the ISS?
<gog> there is
<lkurusa> 600Mbps, wow.
<heat> i'm contemplating how vulnerable the whole internet is to a targeted bgp attack
<not_not> what's bgp?
<heat> border gateway protocol
<gog> anne mcclain actually committed a crime while on the ISS
<FatalNIX> yeah the ISS is pretty close to earth, it's quite low latency, low latency enough that whats his name played live removely with a band over a video stream once and stayed in sync.
<lkurusa> There's a lot of BGP hijacking attemptes everyday
<bslsk05> ​www.manrs.org: What is BGP prefix hijacking? (Part 1)
<lkurusa> This is also a cool site: https://bgpstream.com/
<bslsk05> ​bgpstream.com: BGPStream
<not_not> uhm, i've worked with quantum bits that can teleport back the result of a computation in 0 seconds from a universe where time goes thousands of times slower than earth
<heat> lkurusa, yeah that's what I was thinking of
<heat> https://isbgpsafeyet.com/ is also cool
<bslsk05> ​isbgpsafeyet.com: Is BGP safe yet? · Cloudflare
<FatalNIX> gog: iirc Mcclan was cleared from that and the person who tried to charge her for it went to prison for lying to the feds.
<gog> oh damn
<FatalNIX> or something like that
<FatalNIX> apparently it was her ex husband LOL
<gog> ex wife
<FatalNIX> yes that
<FatalNIX> I'm reading through the employee handbook of this place I just got a job for, and I found a section that states that viewing religious websites with company equipment is strictly prohibited :D
<FatalNIX> it is classified at the same level as hate crime
<heat> what if its just a church for tax benefits?
<FatalNIX> lol
<lkurusa> Well, my ISP in Hungary is not safe.
<not_not> FatalNIX: lol i've tricked 2 feds into killing themselves
<not_not> gotta be tough on em
<FatalNIX> ........?
<heat> lkurusa, mine in portugal isn't either :(
gog has quit [Quit: byee]
<not_not> they deserved it tho they tortured me
<heat> terry a davis vibes right here
gog has joined #osdev
<heat> i propose a new bgp based on blockchain
<heat> that's what they mean by cryptography right
<FatalNIX> It exists
<lkurusa> Can I buy an NFT for a /16 prefix ?
<not_not> why is satoshi nakamoto bitcoin an anagram for something about not having shotas in your bits?
<heat> lkurusa, ipv6 /16 or v4?
<lkurusa> v4 seems like a better investment.
<lkurusa> Mint it for .75ETH, I'll sell it for $10M and get a nice ranch
<heat> if you buy a v4 /16 you'll go to the moon
<heat> a v6 /16 you'll eventually go to the moon in a few billion years
<not_not> heat: if u walk there?
<not_not> god i wanna go to the moon
<not_not> alone
<not_not> without elon musk
<gog> no if you're leaving the planet you have to take him with
<not_not> no he dies on earth
<lkurusa> Please. So I can finally the 1000x P/E company he owns
<lkurusa> s/finally/finally short/
<gog> hard to short a cult stock
<gog> you'll never get enough shares for it to matter
<lkurusa> Indeed, thus why I don't touch it even with a stick
<lkurusa> Curious of their earnings though, due this Wed
<not_not> oh wich simple os kernel should i start hobby devingon rpi or x86_64?
<lkurusa> Both are fine - x86_64 has more documentation I think and probably more people here that can help
<lkurusa> However, IMO ARM is more fun
<not_not> ya, and i need ARM custom kernel sooner
<gog> x86_64 with uefi is really easy to get started with
<gog> since it loads you into identity-mapped long mode
<not_not> first time i coded assembly was gba homebrew when i was 12
<not_not> oooh, i have a x86 bootloader but i only gotten into 32 bit protected mode
<not_not> but before i can start writing debug info to screen
<not_not> but like if u write arm kernel mode stuff for arm im guessing you can do much faster stuff with the screen
<lkurusa> Depends what you mean by "screen". UART is not that bad on rPI as far as I recall
<not_not> like the video card
<lkurusa> That's a bit tricky, it has some odd mailbox interface
<not_not> i like tricky
Jari-- has joined #osdev
<lkurusa> I wrote this in college with some friends: https://github.com/levex/arm-mariokart
<bslsk05> ​levex/arm-mariokart - ARM11 group project; Atanas G., Norbert P., Daniel Z., Levente K.: MARIO KART (1 forks/8 stargazers)
<not_not> Nice
<bslsk05> ​github.com: arm-mariokart/framebuffer.S at master · levex/arm-mariokart · GitHub
<lkurusa> Here's the framebuffer driver
<Jari--> ikurusa: I wrote this in 2003 https://www.youtube.com/watch?v=I9DbQMdZJH8
<bslsk05> ​'New JTMOS New Millenium Kernel/OS Multitasking Windows GUI Demo (Thanks to OSDEV.org and #c-64)' by Jari Tuominen (00:05:32)
<lkurusa> I remember writing some cool optimizations, what a fun time
<lkurusa> Jari-- oh nice, I'll check it out
<Jari--> ikurusa: cool music, Ghosts and Ghouls
dude12312414 has joined #osdev
<not_not> lkurusa: awesome
<not_not> mmmmmmm arm 32
<not_not> pusn {list of regs}
ElectronApps has joined #osdev
ElectronApps has quit [Remote host closed the connection]
<lkurusa> not_not: yes, this was for the first raspi
<not_not> niice
<not_not> but i heard arm64 bit code doesnt have those cool abilities like pushing multiple regs to stack etc etc
<j`ey> arm64 only has a stp
<vdamewood> Dammit, I want an aarch64 system to make an OS for.
<j`ey> store paie
<j`ey> *pair
<not_not> bah
<not_not> that pisses me offf beyond belief
<not_not> u know how they justify that?
<vdamewood> Better to be pissed off than pissed on.
<not_not> ye i know
<not_not> my boss peed on me once i forgot to take revenge
<lkurusa> I also have an old RISC-V board
<bslsk05> ​levex/hifive1-osdev - Bare Bones OSDev template for the HiFive-1 RISC-V board from SiFive! (0 forks/2 stargazers)
<lkurusa> I wrote some bare bones
<vdamewood> Now I want an RV64GC, too.
<heat> vdamewood, get a rpi
<heat> i got a zero 2 w for 15 euro
<heat> comes with wireless as well
<lkurusa> I need to mint an NFT, sell it for $250K and then I can buy all the boards I ever wanted lol
<vdamewood> Is the zero 2 aarch64?
<heat> yeah
<heat> all the modern rpis are arm64
<vdamewood> I have a 2B and a 3B.
<not_not> heat: ya
<heat> despite the raspberry pi OS being 32-bit
<not_not> heat: lets do something about that
<vdamewood> I can still install a 64-bitbuild of Fedora if I want.
<heat> i'm running manjaro on mine
<heat> mostly because 1) i use arch btw; 2) the only distro apart from the official OS that I could get booting
<not_not> i just run the debian stuff, cuz i associate debian with stable
<heat> if it does not have the latest version of gcc, i do not want it
<not_not> but i use arch linux on my pc's
lkurusa is now known as lkurusa|afk
<gog> i use manjaro but it's basically arch
<vdamewood> The OS I use as my daily driver runs on aarch64, but my system is x86_64.
<vdamewood> Oh, interesting. I have one x86_64 build of my kernel, and four that are arm64e.
FatalNIX has quit [Quit: Lost terminal]
<heat> it's either arch or fedora for me
<heat> i like living on the edge
<not_not> same
<heat> but soon it will be onyx for me as I've just tracked down the bug(s) that weren't letting my OS connect to a real network properly
<vdamewood> I prefer Fedora myself when it comes to Linux.
<heat> turns out I should read the RFCs more
<heat> vdamewood, yah I feel like fedora is becoming more and more the best choice for a desktop OS
<heat> (desktop Linux OS*)
<not_not> heat: being in mortal danger is the only thing that stops me from having anxiety
<heat> the year of the linux desktop might not be here yet
<gog> it'll never be here
<heat> ofc
<not_not> if im in safe environments i usually drink way too much
<heat> the year of the Onyx desktop will be 2023 onwards
<bauen1> heat: it's already 2022, so this year it will be the year of the linux desktop surely
<not_not> but that seriously affects my coding
<heat> bauen1, no, this year is the year of me trying to show my OS to people that don't understand what they're looking at and so don't share my enthusiasm for something I've spent wayyy too much time on
<not_not> pisses me off cuz i placed myself in mortal danger to stop my government from passing a law that lets the authorities hack peoples phones and computers for suspiscion of 0.1 grams of pot due to the increased terrorist threats
<heat> heat go oooga booga look at virtual terminal vt100 but other people go how do i open chrome
<not_not> so to protect my computer from being siezed i did a state coup
<not_not> 2 days later i see on the news "no suddenly the crime ur suspected of needs to be violent crimes like murder and shit for the government to justify breaking human rights we suddenly care about your rights now"
<heat> on the other hand, desktop linux got wayland for audio servers
<heat> still the year of Onyx though, every year
<heat> with us, you don't need to choose between xorg or wayland, you get none!
<heat> the true soviet russia way
<not_not> XD
<not_not> love russians
<heat> can't have trouble choosing if you have nothing to choose from
<heat> do you want vim or emacs? too bad, here's nano
[itchyjunk] has joined #osdev
<heat> GNU nano is at the end of the day the editor for intellectuals
EtherNet has quit [Ping timeout: 250 seconds]
gwizon has joined #osdev
<not_not> FUCK YE 600 dollar on my account
EtherNet has joined #osdev
<not_not> thought they had neglected paying me today but i checked my account again and bam 600 dorrah
<not_not> or 600 munny as i like to call em
<not_not> (kingdom hearts reference)
<not_not> munny sounds so much nicer and innocent
alpha2023 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
Terlisimo has quit [Quit: reboot]
alpha2023 has joined #osdev
Terlisimo has joined #osdev
<heat> something really funny: proxy arp
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
lkurusa|afk has quit [Quit: Textual IRC Client: www.textualapp.com]
heat has quit [Remote host closed the connection]
heat has joined #osdev
<bslsk05> ​'A Tour of the Fuchsia Operating System | Rubber Duck Engineering | Episode #57' by RubberDuckEng (01:03:16)
<heat> the whole package server thing they have going on is super interesting
<heat> and it's doable from a pure unix-ish environment, it's just a shebang
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
dennis95_ has quit [Quit: Leaving]
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
the_lanetly_052_ has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
the_lanetly_052 has quit [Ping timeout: 268 seconds]
brynet has quit [Ping timeout: 268 seconds]
sortie has quit [Ping timeout: 256 seconds]
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
zaquest has quit [Read error: Connection reset by peer]
sortie has joined #osdev
zaquest has joined #osdev
mahmutov_ has joined #osdev
srjek has quit [Ping timeout: 250 seconds]
sonny has quit [Remote host closed the connection]
heat has quit [Ping timeout: 250 seconds]
GeDaMo has quit [Remote host closed the connection]
<geist> yah
<geist> i dont find it particularly friendly to operate, but it's very powerful
<gog> mew
<gog> i resolved to code today and have thus far failed
<zid> geist talking about his favourite giant mecha
<gog> pilot the eva zid, or geist will have to do it again
<zid> sure thing dad
<gog> pfff
<gog> shinji would never say taht to gendo
<zid> I would though
<zid> fuck it, cool mecha
<gog> true
<geist> haha yeah i need to get working on digging that underground mecha lair in my yard so i can fly out of the ground to fight the alien invasion
<zid> I'd have the tantrum AFTER I got in the mech, not before
<geist> alas, the septic field covers most of the yard
<zid> before he developed the slave system too
<gog> idk which angel i want to be
<gog> probably the one whose shadow was a sphere in the sky but the angel itself was a pool of void
<zid> doesn't everybody dream of growing up to be sariel?
<gog> seems appropriate
<zid> or ramiel
<gog> i don't remember which is which
<zid> ramiel is the triangular one who drills
<gog> oh yeah!
<gog> drill baby drill
<geist> oh oh i recently rewatched thes and actually know what you're talking about!
<zid> I've always wanted to scream a bunch of buildings over too
<zid> and shoot giant lasers
<gog> or that mecha-sized rifle
<zid> a 'national grid of japan' railgun *would* be fun to shoot
<zid> and then when I get upset, I can turn you all into fanta
<gog> mmm tasty
<geist> sort of an opposite Jim Jones situation
mahmutov_ has quit [Ping timeout: 256 seconds]
mahmutov_ has joined #osdev
wereii_ has quit [Quit: ZNC - https://znc.in]
wereii has joined #osdev
mahmutov_ has quit [Ping timeout: 250 seconds]
dormito has quit [Quit: WeeChat 3.3]
sonny has joined #osdev
dude12312414 has joined #osdev
sonny has left #osdev [#osdev]
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
xenos1984 has quit [Remote host closed the connection]
FreeFull has joined #osdev
xenos1984 has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas has joined #osdev
srjek has joined #osdev
dormito has joined #osdev
adachristine has joined #osdev
gog has quit [Ping timeout: 256 seconds]
<gorgonical> Can someone help condense the hype behind the Arm CHERI stuff? My understanding is that you have opaque tokens for a variety of operations that you have to give the hardware when you do certain ops and if you modify it the hardware invalidates the tokens? Tokens are generated by privileged code and handed out
<gorgonical> I don't know the full gamut of capabilities, but e.g. for intra-process memory you can use these capabilities sort of like an intra-process page tables?
adachristine is now known as gog
<not_not> yyyyyyyyyyyyyyyyyyyayyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
<not_not> yyyyyyyyyyyyyyyyyyyayyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyycyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
not_not was kicked from #osdev by klange [not_not]
not_not has joined #osdev
<not_not> sorry keyboard malfunction
<sortie> I have questions about the c
<klange> Thought that may have been an overly enthusiastic 'yay', but then that c snuck in there.
<gog> so do i
<not_not> i was trying to hit ctrl c to abort the terminal window
<zid> I have questions about the C standards committee
<klange> Don't we all.
<gog> "why did you think VLAs were a good idea?"
<zid> "Where have you gone and why is the C++ committee pretending to be you?" being the main one
<not_not> lol
therufuser has joined #osdev
<clever> not_not: if a key-up event is lost, the pc will think your just holding a key, but you can terminate it by just hitting the "stuck" key again
<not_not> nah had 2 keyboards plugged and one had a object on top of the y key
<clever> ah, that will also do it
<not_not> yes
<clever> everything was functioning perfectly
<not_not> and it managed to piss me off just when i was gonna put on a touchy song cuz the beer made me feel something
<bslsk05> ​'Kingdom Hearts 2 - Roxas Soundtrack [Extended]' by RhonMBLS 2 (00:15:05)
<not_not> ever play kingdom hearts 2?
<clever> never played it
<not_not> its a childrens game
<not_not> like weird crossover with disney final fantasy and a few original characters
<not_not> but that game
<not_not> an innocent child who plays it will think nothing of it
<not_not> but if you play it again as an adult the DEPTH of sadness in that game is incomprehensible
<clever> not_not: sounds like https://www.youtube.com/watch?v=ghAAnYooXbY might be similar?
<bslsk05> ​'So I finally played "A Hat in Time"...' by FlippinDingDong (00:00:26)
<not_not> idk no
<not_not> that didnt look at all like it
<not_not> u just have to play the game as a kid
<clever> more in how the art style is deceptive
<klange> Psychonauts is a good "looks like fun kid stuff but is actually dark and tackles complex emotional and psychological problems".
<not_not> well its sorta anime esque art
srjek has quit [Ping timeout: 240 seconds]
<not_not> im still savoring this game
MrBonkers has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
ElectronApps has joined #osdev
bgs has quit [Remote host closed the connection]
brynet has joined #osdev
<not_not> klange: is that a game?
<bslsk05> ​en.wikipedia.org: Psychonauts - Wikipedia
<klange> And it has a very well received sequel. https://en.wikipedia.org/wiki/Psychonauts_2
<bslsk05> ​en.wikipedia.org: Psychonauts 2 - Wikipedia
<not_not> oh ye looks like same sort of art style as kingdom hearts
<Bitweasil> Yeah, it's... a trip.
<klange> Not even close.
<Bitweasil> Some of the later Psychonauts levels are damned dark.
<Bitweasil> It's not a kid's game.
<not_not> lol
<Bitweasil> I'd love to see that kind of thing set in a "two weeks to crush the curve, two years later..." mind, but... actually, no, I don't need more of that.
<Bitweasil> I want to play the second one.
<Bitweasil> I don't know if I have any hardware that will run it.
<Bitweasil> I don't need games. :/ I feel bad enough having a running Win10 install on the house desktop.
<klange> Where Kingdom Hearts somehow takes Disney characters and puts them in a very 'anime' / Final Fantasy-derived art style, Psychonauts is more "American cartoon". It's a rather unique and well done art style.
<not_not> ahh
<not_not> Bitweasil: off windows
<Bitweasil> I recall the art being beautiful, yes.
<klange> I played Psychonauts 2 in Wine. I also played the original in Wine despite it having a native Linux port because it's just kinda broken these days - it was a _contemporary_ Linux port that didn't really get updated.
<Bitweasil> not_not, have kids, don't feel like writing letters to school about how this particular task or another can't be accomplished on our hardware.
<Bitweasil> But I've debated nuking the boot sector and seeing who notices.
<not_not> microsoft is one of the reasons i have damaged capacity for empathy
<Bitweasil> klange, how recent is your GPU?
<Bitweasil> I think the most recent turd I have around is a 980.
<klange> ~5 years old. I have a GTX 1080.
<klange> I played 2 on full settings @ 1080p, a 980 should have no trouble with a few things dialed down.
<Bitweasil> Ok.
<not_not> Bitweasil: i run a free of charge governmental revenge service
<Bitweasil> Does wine support that sort of resolution scaling? For reasons consisting of "I'm dumb and refuse to learn," that box has a 4k monitor on it.
<Bitweasil> I run Ubuntu at 150% and it's fine, don't know how games handle that with wine, if they do at all.