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
zoey has quit [Ping timeout: 264 seconds]
iorem has quit [Quit: Ping timeout (120 seconds)]
mctpyt has joined #osdev
piotr_ has joined #osdev
nyah has joined #osdev
ElectronApps has joined #osdev
nyah has quit [Quit: leaving]
freakazoid334 has quit [Read error: Connection reset by peer]
isaacwoods has quit [Quit: WeeChat 3.2]
aquijoule__ has joined #osdev
aquijoule_ has quit [Ping timeout: 252 seconds]
Sos has quit [Quit: Leaving]
freakazoid334 has joined #osdev
freakazoid334 has quit [Quit: Leaving]
freakazoid333 has joined #osdev
adachristine has joined #osdev
kkd has joined #osdev
Oli has quit [Ping timeout: 252 seconds]
iorem has joined #osdev
Oli has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.3-dev]
adachristine has quit [Quit: byee]
<doug16k> what are the chances of gcc 11.1.0 working with binutils 2.35 (rather than latest 2.36)?
<doug16k> I'm going to try it and see if it doesn't utterly screw up pe link in 2.35
<doug16k> (uefi)
<Mutabah> I think they're not that heavily coupled
mctpyt has quit [Ping timeout: 265 seconds]
srjek_ has quit [Ping timeout: 265 seconds]
<doug16k> :( 9 .text 000150e0 0000000000000000 0000000000000000 0012a610 2**4
<doug16k> 0 is wrong. 0x40xxxx is expected
<doug16k> oh right, I moved it to 0x100000000 to see if that made ld happy
ElectronApps has quit [Ping timeout: 258 seconds]
ElectronApps has joined #osdev
<doug16k> I tried putting .broken before .text so it would get its base destroyed, then remove it with objcopy
<doug16k> too bad objcopy makes sure the first section vma and lma are zeroed
<doug16k> ld is a trainwreck
srjek_ has joined #osdev
<doug16k> look how hard I am beating it over the head with the base address: https://gist.github.com/doug65536/74c3acba86167b002635678c116e672c#file-bootefi-ld-L8
<bslsk05> ​gist.github.com: bootefi.ld · GitHub
<doug16k> does same thing with none of that
<doug16k> I did a mortal kombat style 3-hit combo. presumably there's an uppercut after the AT and the dude says "excellent"
<doug16k> I wish
<doug16k> more like it blocked all three and just footsweeped me
srjek|home has joined #osdev
onering has joined #osdev
rowbee has joined #osdev
particleflux_ has joined #osdev
Oli_ has joined #osdev
srjek_ has quit [*.net *.split]
ElectronApps has quit [*.net *.split]
Oli has quit [*.net *.split]
iorem has quit [*.net *.split]
rwb has quit [*.net *.split]
doug16k has quit [*.net *.split]
aejsmith has quit [*.net *.split]
elastic_dog has quit [*.net *.split]
Beato has quit [*.net *.split]
particleflux has quit [*.net *.split]
rowbee is now known as rwb
elastic_dog has joined #osdev
ElectronApps has joined #osdev
doug16k has joined #osdev
<bslsk05> ​gist.github.com: M.C Escher disassembly, it's at zero yet somehow rip relative 0x2804c resolves to 0x28068, from rip=0xe · GitHub
<doug16k> link map is same as earlier
<doug16k> except I deleted .broken 16 byte thing
<doug16k> what do you do when link map says what you want and executable has 0 section base
<doug16k> and it is linked with rip relative that would be right if loaded properly, but floating in space at zero references in executable
<doug16k> debug ld?
mctpyt has joined #osdev
<doug16k> I should just hex edit the VMA of that section and I bet it suddenly works
<doug16k> objcopy can do it actually
<doug16k> it won't
<doug16k> it succeeds but still 0 VMA
<doug16k> `x86_64-dgos-objcopy --change-section-vma .text=0x100000000 bootx64.efi bootx64-fix.efi`
<doug16k> OMG
<doug16k> wtf is it doing?!
<doug16k> so I have to change it to zero then?
<doug16k> no way. if you --change-section-vma=.text=0x0 then it puts it at 0. if you --change-section-vma=.text=0x1, then it puts it at 0x0000000100000001
<ZetItUp> does qemu have an option in the monitor to show current pci devices on the vm?
<doug16k> info pci
<doug16k> info qtree
<ZetItUp> cheers :D
<doug16k> for another angle
<doug16k> that is the whole device tree, but it shows the pci subtree details that the OS sees
<doug16k> like BARs
<ZetItUp> yeah :D
srjek|home has quit [Ping timeout: 252 seconds]
ChanServ has quit [shutting down]
<ZetItUp> well that was fun, trying to find an error in my code cause it was not displaying the data i fetched, turned out that my va_args was not working properly :P
<ZetItUp> %s did it's job but i forgot to print the final output
<ZetItUp> so i thought i didn't get the data back from the function i was writing
ChanServ has joined #osdev
iorem has joined #osdev
mctpyt has quit [Ping timeout: 268 seconds]
mctpyt has joined #osdev
archenoth has joined #osdev
sortiecat has joined #osdev
sortiecat has quit [Remote host closed the connection]
aejsmith has joined #osdev
piotr_ has quit [Remote host closed the connection]
piotr_ has joined #osdev
dennis95 has joined #osdev
GeDaMo has joined #osdev
flx has quit [Ping timeout: 268 seconds]
Belxjander has joined #osdev
Burgundy has joined #osdev
piotr_ has quit [Ping timeout: 240 seconds]
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
Arthuria has joined #osdev
pretty_dumm_guy has joined #osdev
vdamewood has joined #osdev
dormito has quit [Ping timeout: 252 seconds]
gmacd has quit [Remote host closed the connection]
vinleod has joined #osdev
vdamewood has quit [Killed (zirconium.libera.chat (Nickname regained by services))]
vinleod is now known as vdamewood
aquijoule__ has quit [Ping timeout: 265 seconds]
richbridger has joined #osdev
KidBeta has joined #osdev
f11 has joined #osdev
xenos1984 has quit [Ping timeout: 244 seconds]
xenos1984 has joined #osdev
jakesyl has quit [Ping timeout: 272 seconds]
jakesyl has joined #osdev
Sos has joined #osdev
particleflux_ is now known as particleflux
ornitorrincos has quit [Ping timeout: 272 seconds]
ornitorrincos has joined #osdev
pretty_dumm_guy has quit [Ping timeout: 252 seconds]
dormito has joined #osdev
<immibis> hmm, someone brought it up on the pinebook channel - why should device files be a special kind of file, rather than normal-looking files on a special filesystem?
<immibis> e.g. other than compatibility, why is /dev/sda not a symlink to /sys/devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0/raw_data
<immibis> (raw_data being a thing that doesn't currently exist)
<vdamewood> For one, some devices can't seek.
<vdamewood> For another... I'm not sure.
<klange> I don't use 'device special files'.
<klange> I've come to refer to the sort of files /sys or /proc or my /dev offer as 'virtual files'. The ones in /dev still return stat bits that say they're block or character devices, but there's no magic numbers.
<immibis> not sure that you can seek all files anyway. Everything in /sys and /proc looks like a normal file
<klange> I don't use a dedicated filesystem for /dev, though... it has a pseudo-filesystem that just offers directory entries for stuff in my dumb overlap mount list.
<klange> And mounts can be whatever, they provide a root node and that could be a directory or a file or a symlink, it's entirely up to the method table to do whatever the file does
<clever> immibis: one benefit for block devices like sda being in /dev, is that udev can dynamically create additional aliases under /dev/disk/
<immibis> clever: it could make symlinks
<clever> and it already does currently
<clever> another i think is just legacy
<clever> /sys came after /dev
<klange> Linux did the whole "device files are actual things on the disk" for a while before the various iterations of 'dynamic' 'filesystem's for /dev came about.
<klange> (And of course it all still works...)
<klange> Personally think the whole thing is rubbish that made sense on mainframes but lost all sensibility the moment "plug and play" was invented.
<klange> Also the only reason I even set the bits in 'stat' to mark device files as such is so they show up yellow in `ls` as per the default color scheme I swiped from Debian.
<clever> klange: i remember my older systems having a shell script called MAKEDEVS? that would mknod everything, for the initrd
<klange> Yep, relic of the past there.
piotr_ has joined #osdev
<clever> klange: when i was working out some bugs on my rpi firmware, i had to make a custom /init in the initrd, that did mknod, open, and write() to confirm that userland was fully working
<clever> and thats when i discovered, printf was fatal, and thats why more basic debug wasnt working
<clever> tldr, the FPU was disabled, and printf always tries to touch it
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<klange> I'm not sure when devtmpfs or sysfs or whatever are generally mounted on Linux these days... I've personally skipped worry about that stuff because as much as I know it's nicer if userspace can choose where things go I've just hardcoded all my /dev stuff and you get /dev and /proc right from kernel startup, before init even runs.
<clever> for nixos, its using a tmpfs and udev
<klange> One nicety if that is specifying the root partition on the kernel command line is by /dev entry, generally /dev/ram0 for the initrd.
<clever> there are 2 styles of initrd also
<clever> an actual ramdisk, and a cpio archive that gets auto-unpacked to a tmpfs
ahalaney has joined #osdev
<clever> i always use the cpio form
<klange> I unpack a gzipped ustar archive into a tmpfs.
<klange> Or rather, I have a ustar 'tarfs', the kernel detects gzipped initrds and decompresses them to make /dev/ram{n}, /bin/init is run out of the read-only tarfs, and part of the startup process is to move it to a read-write tmpfs, and then that's the root from then on because live CD.
<clever> ahh
<klange> and there's an ioctl you can throw at /dev/ram{n} to evict them so that also happens after the migration
<klange> and it's supposed to be updating the f*ing size but that screenshot clearly shows /dev/ram0 is 22MiB, wtf...
<clever> in the case of linux, since its just a tmpfs, it gets evicted upon umount, or when pivot_root causes all references to get lost
<klange> Since it's a two-stage process and /dev/ram{n} are just virtual files mapping to pages given to the kernel by the bootloader, there's no referencing counting to know when it's no longer needed
<clever> yeah, if its a block dev, its harder to know when your actually done using it
elastic_dog has quit [Ping timeout: 240 seconds]
<immibis> https://www.youtube.com/watch?v=9yT9KPQqBtE 20:19 - wow, look at how much of the monitor the windows take up. Higher resolution monitors have fundamentally changed UI design
<bslsk05> ​'Building a Windows 95 PC! Socket 7 AMD K6 & 3Dfx' by LGR (00:47:06)
<gog> ah i watched this a few days ago and it reminded me of my first computer lol
elastic_dog has joined #osdev
<immibis> the start menu takes up 1/3 of the screen
<immibis> it's almost a modal design akin to a smartphone app
<HeTo> immibis: you had higher resolution back in the day, he just hasn't set up drivers or chosen a higher resolution yet, or wants to keep the resolution low for the camera
<immibis> you have one thing open at a time, and you can switch between them
<immibis> HeTo: this looks like 640x480 which i think is win95's minimum resolution. So the UI is designed for this
<HeTo> that looks like 640×480 or 800×600 at tops. I suppose the latter was fairly common in Windows 95 days but at least when 98 came out 1024×768 was the norm for the cheapest boxed PCs and monitors
<gog> my second monitor was from around 1997 and it was 1024x768
<gog> always had trouble getting it to work right with linux too :
piotr_ has quit [Ping timeout: 252 seconds]
<klange> Well, this was not a rabbit hole I wanted to go down... but I figured out why the ramdisk still says it's 20mb...
Arthuria has quit [Ping timeout: 258 seconds]
pretty_dumm_guy has joined #osdev
<GeDaMo> Is it because it's 20mb? :P
<klange> no it's because it's the ioctl is modifying a copy because the whole vfs node thing is making copies everywhere and ugh, this is how it's always worked but this is so dumb and I should change it
<immibis> your ramdisk is a vfs node?
<klange> `/dev/ram0` is a vfs node
vdamewood has joined #osdev
isaacwoods has joined #osdev
<klange> this while system needs a rethink but it is 11pm on a Monday so not right now
vinleod has joined #osdev
vdamewood has quit [Killed (zinc.libera.chat (Nickname regained by services))]
vinleod is now known as vdamewood
srjek|home has joined #osdev
vai has joined #osdev
<vai> hi all
vai has quit [Ping timeout: 252 seconds]
KidBeta has quit [Quit: Leaving...]
<vdamewood> Bye one.
ElectronApps has quit [Read error: Connection reset by peer]
pretty_dumm_guy has quit [Ping timeout: 265 seconds]
Izem has joined #osdev
ahalaney has quit [Remote host closed the connection]
ahalaney has joined #osdev
mahmutov has joined #osdev
gmacd has joined #osdev
Izem has quit [Quit: Izem]
Izem has joined #osdev
mctpyt has quit [Ping timeout: 268 seconds]
Izem has quit [Quit: Izem]
Izem has joined #osdev
tenshi has joined #osdev
mctpyt has joined #osdev
srjek_ has joined #osdev
srjek|home has quit [Ping timeout: 264 seconds]
Izem has quit [Quit: Izem]
mahmutov has quit [Ping timeout: 258 seconds]
srjek_ has quit [Ping timeout: 252 seconds]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Sos has quit [Quit: Leaving]
remby has joined #osdev
remby is now known as Izem
IRCMonkey has joined #osdev
dutch has joined #osdev
sts-q has joined #osdev
Izem has quit [Quit: Izem]
Izem has joined #osdev
piotr_ has joined #osdev
Izem has left #osdev [Good Bye]
f11 has quit [Quit: WeeChat 3.2]
IRCMonkey has quit [Quit: .oO (bbl tc folks~!)]
amanita_ has quit [Ping timeout: 268 seconds]
amanita has joined #osdev
ausserz has joined #osdev
iorem has quit [Quit: Connection closed]
mahmutov has joined #osdev
sprock has quit [Ping timeout: 252 seconds]
sprock has joined #osdev
flx has joined #osdev
tacco has joined #osdev
netbsduser has joined #osdev
freakazoid333 has quit [Read error: Connection reset by peer]
Oli_ has quit [Ping timeout: 265 seconds]
Fox is now known as LittleFox
zoey has joined #osdev
drewlander has quit [Ping timeout: 252 seconds]
Sos has joined #osdev
piotr_ has quit [Ping timeout: 244 seconds]
maurer has quit [Ping timeout: 252 seconds]
dutch has quit [Ping timeout: 265 seconds]
dutch has joined #osdev
amanita_ has joined #osdev
amanita has quit [Ping timeout: 258 seconds]
brcolow has joined #osdev
ausserz has quit [Ping timeout: 252 seconds]
freakazoid333 has joined #osdev
zoey has quit [Ping timeout: 268 seconds]
zoey has joined #osdev
pretty_dumm_guy has joined #osdev
pretty_dumm_guy has quit [Client Quit]
GeDaMo has quit [Quit: Leaving.]
freakazoid333 has quit [Read error: Connection reset by peer]
freakazoid333 has joined #osdev
freakazoid333 has quit [Read error: Connection reset by peer]
freakazoid333 has joined #osdev
dennis95 has quit [Quit: Leaving]
shikhin has quit [Quit: Quittin'.]
zgrep has quit [Quit: It's a quitter's world.]
zgrep has joined #osdev
shikhin has joined #osdev
drewlander has joined #osdev
dormito has quit [Ping timeout: 250 seconds]
bradd has quit [Ping timeout: 258 seconds]
bradd has joined #osdev
gog has quit [Quit: bye]
gog has joined #osdev
dormito has joined #osdev
tacco has quit []
pretty_dumm_guy has joined #osdev
srjek_ has joined #osdev
gmacd has quit [Remote host closed the connection]
freakazoid333 has quit [Read error: Connection reset by peer]
Burgundy has quit [Ping timeout: 252 seconds]
amanita_ has quit [Ping timeout: 265 seconds]
amanita has joined #osdev
doug16k has quit [Remote host closed the connection]
doug16k has joined #osdev
ahalaney has quit [Quit: Leaving]
ausserz has joined #osdev
Celelibi_ has joined #osdev
Celelibi has quit [Ping timeout: 264 seconds]
ZetItUp has quit [Ping timeout: 258 seconds]
Celelibi_ is now known as Celelibi
zoey has quit [Ping timeout: 264 seconds]
mahmutov has quit [Ping timeout: 265 seconds]
sortie has quit [Quit: Leaving]
pretty_dumm_guy has quit [Quit: WeeChat 3.3-dev]