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
mkwrz has quit [Ping timeout: 268 seconds]
netbsduser has quit [Ping timeout: 264 seconds]
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 256 seconds]
zid has quit [Read error: Connection reset by peer]
Gooberpatrol_66 has quit [Quit: Leaving]
zid has joined #osdev
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 260 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
mkwrz has joined #osdev
Gooberpatrol66 has joined #osdev
[_] has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
mkwrz has quit [Ping timeout: 246 seconds]
[itchyjunk] has quit [Ping timeout: 268 seconds]
vdamewood has joined #osdev
eddof13 has quit [Quit: eddof13]
Vercas has quit [Quit: Ping timeout (120 seconds)]
mkwrz has joined #osdev
Vercas has joined #osdev
mkwrz has quit [Ping timeout: 256 seconds]
Gooberpatrol66 has quit [Ping timeout: 256 seconds]
mkwrz has joined #osdev
Vercas has quit [Ping timeout: 240 seconds]
mkwrz has quit [Ping timeout: 245 seconds]
Vercas has joined #osdev
Vercas has quit [Quit: Ping timeout (120 seconds)]
Vercas has joined #osdev
Vercas has quit [Client Quit]
Gurkenglas has quit [Ping timeout: 250 seconds]
<Matt|home> im looking at my own code.. code i wrote.. and i have no fucking clue what i was doing. i vaguely remember it making sense at the time but.. jesus what am i doing
<clever> Matt|home: and thats why you add comments
<Matt|home> i did ;_;
<clever> better comments? cleaner code?
<Matt|home> ... it made sense at the time..
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 255 seconds]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
gbowne1 has quit [Quit: Leaving]
mkwrz has joined #osdev
<Mutabah> It's an important piece of development, reviewing the code and adding comments
<Mutabah> I mean the step you're at now - read, understand what you were doing, and comment it this time
[itchyjunk] has joined #osdev
mkwrz has quit [Ping timeout: 256 seconds]
mkwrz has joined #osdev
[_] has quit [Ping timeout: 256 seconds]
<Mutabah> Aah... the feeling of re-visiting code, reading it, and wondering "how the fsck did this work"?
<kof123> we've divided your cases into failure, miserable failure, and what were they even thinking hiring you in the first place? -- fluffy and uranus, duckman
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 245 seconds]
gamozo has joined #osdev
<gamozo> Anyone off the top of their head know if UEFI platform initialization allows for booting APs, taking them over, and exiting boot services on the BSP? The spec doesn't seem clear if these threads are "loaned" out or if it's okay for them to exist beyond boot services
<clever> gamozo: i think AP's are under acpi?
<clever> and UEFI just tells you where to find the ACPI tables
<Mutabah> I'm pretty sure that the APs are paused once ExitBootServices is called (ready to be restarted via a standard AP bringup procedure)
<clever> yeah, that sounds right
<gamozo> That's what I'm scared of. Was hoping to not have to do INIT-SIPI-SIPI myself, not sure if there was a UEFI way of doing it rather than being x86_64-specific
<gamozo> I didn't know if the intent of MP services was to allow OSes to get APs in an arch-agnostic way (and normalize a flat memory model)
[itchyjunk] has joined #osdev
<gamozo> Thinkin about making a new OS, making sure I'm not missing out on some new/better ways of doing things!
<gamozo> Hope everyone is doing well
[_] has quit [Ping timeout: 240 seconds]
heat_ has quit [Ping timeout: 246 seconds]
sbalmos has quit [Ping timeout: 240 seconds]
sbalmos has joined #osdev
<gamozo> Yep, in `MpInitChangeApLoopCallback` in EDK2 it definitely INITs all APs on exit boot services
<gamozo> Cool. That lines up with what I'd expect
srjek|home has quit [Ping timeout: 256 seconds]
vdamewood has joined #osdev
Gooberpatrol66 has joined #osdev
Arthuria has joined #osdev
pebble has joined #osdev
rustyy has quit [Ping timeout: 260 seconds]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 268 seconds]
gamozo has quit [Quit: Lost terminal]
Arthuria has quit [Remote host closed the connection]
rustyy has joined #osdev
m3a has quit [Read error: Connection reset by peer]
heat_ has joined #osdev
m3a has joined #osdev
m3a has quit [Remote host closed the connection]
elastic_dog has quit [Quit: elastic_dog]
elastic_dog has joined #osdev
mkwrz has quit [Ping timeout: 245 seconds]
mkwrz has joined #osdev
Brnocrist has quit [Ping timeout: 276 seconds]
Brnocrist has joined #osdev
mkwrz has quit [Ping timeout: 256 seconds]
goliath has joined #osdev
mkwrz has joined #osdev
pretty_dumm_guy has joined #osdev
mkwrz has quit [Ping timeout: 245 seconds]
heat_ has quit [Remote host closed the connection]
heat_ has joined #osdev
mkwrz has joined #osdev
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 260 seconds]
mkwrz has quit [Ping timeout: 260 seconds]
q3lont has joined #osdev
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 268 seconds]
pebble has quit [Ping timeout: 268 seconds]
GeDaMo has joined #osdev
q3lont has quit [Quit: Leaving]
pretty_dumm_guy has quit [Ping timeout: 246 seconds]
pretty_dumm_guy has joined #osdev
netbsduser has joined #osdev
Left_Turn has joined #osdev
mkwrz has joined #osdev
netbsduser has quit [Ping timeout: 264 seconds]
mkwrz has quit [Ping timeout: 260 seconds]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 268 seconds]
elastic_dog has quit [Quit: elastic_dog]
elastic_dog has joined #osdev
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 268 seconds]
netbsduser has joined #osdev
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 260 seconds]
srjek|home has joined #osdev
srjek|home has quit [Ping timeout: 245 seconds]
Left_Turn has quit [Ping timeout: 255 seconds]
mkwrz has joined #osdev
roper has joined #osdev
mkwrz has quit [Ping timeout: 260 seconds]
Left_Turn has joined #osdev
elastic_dog has quit [Ping timeout: 256 seconds]
GeDaMo has quit [Ping timeout: 256 seconds]
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 246 seconds]
elastic_dog has joined #osdev
GeDaMo has joined #osdev
<zid> fourwordsalluppercase
<zid> shit, typed my wifi password onto irc again
GeDaMo has quit [Ping timeout: 255 seconds]
GeDaMo has joined #osdev
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 255 seconds]
zarock has joined #osdev
mkwrz has joined #osdev
mkwrz has quit [Ping timeout: 268 seconds]
Burgundy has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 276 seconds]
edr has joined #osdev
mkwrz has joined #osdev
Burgundy has quit [Ping timeout: 256 seconds]
mkwrz has quit [Ping timeout: 260 seconds]
HeTo has joined #osdev
mkwrz has joined #osdev
goliath has quit [Quit: SIGSEGV]
mkwrz has quit [Ping timeout: 255 seconds]
Gooberpatrol66 has quit [Ping timeout: 260 seconds]
mkwrz has joined #osdev
<bl4ckb0ne> heh mine is all caps no spaces
FreeFull has joined #osdev
pebble has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
bitoff has joined #osdev
wereii has quit [Quit: ZNC - https://znc.in]
wereii has joined #osdev
brynet has quit [Quit: leaving]
randm has quit [Remote host closed the connection]
randm has joined #osdev
brynet has joined #osdev
bitoff has quit [Ping timeout: 256 seconds]
goliath has joined #osdev
zetef has joined #osdev
srjek|home has joined #osdev
eddof13 has joined #osdev
zetef has quit [Ping timeout: 246 seconds]
rustyy has quit [Quit: leaving]
pebble has quit []
stolen has joined #osdev
FreeFull has quit [Quit: rebooting]
FreeFull has joined #osdev
elastic_dog has quit [Ping timeout: 255 seconds]
elastic_dog has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
xenos1984 has joined #osdev
<Ermine> days without windows codepage weirdness: 0
<zid> cp-1251 is the only codepage
<Ermine> so I switch stuff to 65001
xenos1984 has quit [Ping timeout: 246 seconds]
gorgonical has joined #osdev
<gorgonical> did day 1 yesterday in zig and felt fully lobotomized
<gorgonical> struggled for nearly 20 minutes to figure out how zig wants me to read fucking lines out of a flie
xenos1984 has joined #osdev
<gorgonical> Also a real question: I have noticed that my ld.so across a few arches and toolchains all want to put the first loadable segment at 0x0. Is there some reason they do this? Even when built without pic/pie they still do this
<gorgonical> Even glibc on my desktop right now has a loadable segment at 0x0 vaddr. Is the assumption that the library code is "more reliable" and so we can omit the nullptr catching?
bitoff has joined #osdev
LittleFox has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
LittleFox has joined #osdev
kpel has joined #osdev
Turn_Left has quit [Ping timeout: 256 seconds]
stylefish has joined #osdev
stylefish has quit [Client Quit]
muffin has joined #osdev
srjek|home has quit [Ping timeout: 252 seconds]
kpel has quit [Quit: .]
Turn_Left has joined #osdev
<zid> 0 just means dynamic
<zid> didn't you ask this yesterday
<zid> it isn't loaded to 0
Turn_Left has quit [Ping timeout: 246 seconds]
Turn_Left has joined #osdev
Turn_Left has quit [Remote host closed the connection]
Turn_Left has joined #osdev
MajorPing5 has joined #osdev
Gooberpatrol66 has joined #osdev
<MajorPing5> Got a question: I've never programmed on an OS before, let alone made one. I'm trying to follow Bare Bones, using Cygwin as my main system operates on Windows, and I am trying to get GRUB installed. I am brand new to all of this, and have never installed GRUB on anything before. Where do I start, outside of the documentation?
<MajorPing5> I only say outside of the documentation, because I've been reading the same page for the past month and a half. I am missing something obvious, but no clue where.
<nortti> how are you trying to install it?
<MajorPing5> I am trying to install it through the Cygwin environment
[_] has joined #osdev
<nortti> how?
<nortti> (I don't know anything about cygwin specific stuff, but if I know the approach you're taking I may be able to help)
<zid> install it as in install it to a disk image? install it to a drive? install the package to your cygwin?
bitoff has quit [Ping timeout: 255 seconds]
<zid> grub1? grub2?
<zid> I just use mkisofs and skip most of this, but not from cygwin (we have wsl2 now anyway)
[itchyjunk] has quit [Ping timeout: 268 seconds]
<MajorPing5> I am using grub2 and am installing the files to Cygwin. I'm trying to avoid all the OS overlapping between GRUB and Windows by redirecting it all into Cygwin only
<MajorPing5> I actually went to the grub website and pulled the source files from the repository. That's the most that I've been able to do so far.
<zid> have you considered.. using literally anything other than cygwin?
<zid> It's literally the hardest way to do this
<MajorPing5> I would have considered it if I wasn't over 2 months into a project for a class that is ending within the next couple of days.
<zid> And this is why anyone would have told you not to use it :P
<MajorPing5> This is just me trying to finish the mountain I started at this point.
<zid> "You might be able to get some stuff done, but you'll be on a pile of .bat files at the end and nothing will work right and you'll be stuck"
<MajorPing5> At the time, I had no clue what it was referencing when I read that.
<zid> cygwin at some point did seem to package grub2 though
<bslsk05> ​cygwin.com: New package: grub 1.96-1 -- GRand Unified Bootloader 2 [experimental]
<zid> how are you making your disk images? mkisofs can just install grub
<zid> as long as you have a copy of its files untarred into a dir
<zid> -b stage2/ or whathaveyou
<MajorPing5> I have made 0 disk images. Just downloaded files, and have been trying to figure out what to do from there. Even gone through the README in GRUB2, but none of the commands are working as I thought they would at this point.
<zid> so how have you been booting? qemu with -kernel?
<MajorPing5> No boot as of yet. Was trying to verify the multiboot first before I tried to start it up.
<zid> okay so you haven't got any way to make disk images at all first, so, solve that problem, and end up with mkisofs, and it'll also solve the grub problem
<zid> you can use the grub2 package directly I *think* but that makes grub be in control of making the image and meh
<zid> ftp://ftp.berlios.de/pub/cdrecord/alpha/win32 (does anybody have an ftp client anymore since firefox nuked their support?)
<bslsk05> ​ftp.berlios.de: cdrtools - Kostenlose CD / DVD / Blu-ray Software
<zid> https://github.com/zid/bootstrap/tree/master This has a copy of grub1 and an example invocation of mkisofs if you get really really stuck
<bslsk05> ​github.com: GitHub - zid/bootstrap: AMD64 bootstrap example. Sets up long mode and paging starting from a 32bit ELF booted by grub.
<MajorPing5> I appreciate the tips and references. Going to bury my nose back in to get it finalized. Thanks again!
gbowne1 has joined #osdev
<geist> yah re: cygwin i assume that the general replacement for it is WSL1 or 2
<geist> i used to use it a lot back in the day for Reasons, but haven't honestly thought about cygwin in years
<zid> It never worked on 64bit, fork was broken
<zid> so I barely ever used it, I switched to vmware almost immediately
<zid> (and now wsl2)
<geist> yah
<geist> if there was any wind left in the sails i assume WSL1 and 2 would have killed it off
<GeDaMo> zid: curl works for ftp
<geist> or just general mingw
<zid> firefox killing ftp and gopher is still sad though
<zid> mingw is still useful
<zid> cross compiling to windows, windows on windows without having to bother with msvc, things that don't build without gnu extensions, etc
<geist> yeah though as GeDaMo points out, curl and wget are pretty good
<geist> just wish you could get a nice browsing display. you need some sort of UI for that, which i'm sure windows has fine
<geist> ncftp is my go-to for interactive ftping
<zid> I used erm, winscp
ppmathis has quit [Quit: Ping timeout (120 seconds)]
ppmathis2 has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
ripsquid has quit [Remote host closed the connection]
roper has quit [Quit: leaving]
netbsduser has quit [Ping timeout: 246 seconds]
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
Matt|home has quit [Remote host closed the connection]
<zid> good news, it's honzuki time
<heat_> i had to help a friend install gcc (on windows) for a formal verification tool named spin
<heat_> which is bell labs shite so ofc it needs a C compiler
<heat_> it was HELL ON EARTH, but i ended up going for cygwin
<mjg> y not wsl
<heat_> because you can't invoke wsl programs from non-wsl AFAIK
<heat_> btw, funny anecdote: the spin "windows64" version is actually not "windows64" and disagreed with 64-bit gcc, so i had to painfully install a mingw32 toolchain from cygwin and use that
<heat_> ofc the only indication you get is that spin realized their word size != gcc's
<heat_> it's seriously a piece of crap to use and install
MajorPing5 has quit [Remote host closed the connection]
muffin has quit [Ping timeout: 246 seconds]
spikeheron has joined #osdev
eddof13 has quit [Quit: eddof13]
spikeheron has quit [Quit: WeeChat 3.8]
zxrom has quit [Quit: Leaving]
zxrom has joined #osdev
janemba has quit [Ping timeout: 260 seconds]
srjek|home has joined #osdev
eddof13 has joined #osdev
Matt|home has joined #osdev
janemba has joined #osdev
eddof13 has quit [Quit: eddof13]
<gorgonical> zid: I did ask but my point is that's the address of the loader itself
<gorgonical> Does this just mean the OS has to make some arbitrary decision about where to load it?
<zid> yes
<zid> the point is that you really don't want your loader at any specific address, as it won't be able to load things at random that happen to want that address
<gorgonical> I don't understand then how that helps if the loader has a specified address of 0x0
<zid> it isn't
<zid> 0 means any
<gorgonical> Right yes but how does that help with collision?
<gorgonical> If you do /lib/ld.so my_dyn_exec the loader still gets loaded first
<zid> because any means it will never clash with the binary doing dlopen, for example
<zid> or any other open .so files
<zid> it might fail to load the new one if you got super unlucky, but .so are 0s too so they don't care either
<gorgonical> When pie/pic, right
<gorgonical> ?
<zid> good luck finding a non-pic .so
<gorgonical> That's a good point
Turn_Left has quit [Read error: Connection reset by peer]
<gorgonical> So the loader will be expected to discover its own location in the address space and remember this when it's loading the so deps of the elf argument
<zid> I mean
<zid> it can basically just call mmap blindly
<zid> and have it as a guarentee from the OS anyway
<heat_> gorgonical, did you see my reply the other day
<zid> if the field is 0, mmap does the right thing anyway
<zid> so you can literally do mmap(elf->vaddr, ...);
<gorgonical> heat_: I didn't, let me check the logs I think
goliath has quit [Quit: SIGSEGV]
<heat_> zid, that doesn't work, you need the whole thing to be contiguous
<heat_> mmap(0) will do the right thing, mmap(0x200000) will not
<zid> if that's what it asked for, that's what it asked for
<zid> if it fails at mmap time, it fails at mmap time
<zid> what's the problem?
<zid> if I write an ELF with 4 program headers all asking to be loaded at the same address, that's a broken elf
<zid> not a problem with mmap
<gorgonical> okay I saw what you wrote. So there's no reason it can't be at 0x0 and the bottom line is that I have to maek some arbitrary decision about where to load a vaddr 0x0 elf program
<Ermine> heat_: y not install clang for your windows friend
<Ermine> mingw is shite
<Ermine> cygwin and mingw are too
<Ermine> They translate posix stuff to win32, so anything using fork/exec intensively is going to be SLOW
<zid> that's the point of cygwin, yes
<zid> mingw is.. fine, just annoying to actually install
<Ermine> s/mingw/msys64/
<zid> like, getting a gcc newer than 6 is.. a challenge?
<zid> msys2 has one yea, but then you're stuck using a 4MB msys2.dll with all your programs, woot
<Ermine> And I failed to build win32 program properly with mingw
<Ermine> since then I use clang and ms build tools under windows
<heat_> gorgonical, ET_DYN you'll always need to make the arbitrary decision