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
craigo has quit [Ping timeout: 260 seconds]
gog has quit [Quit: byee]
Mutabah_ is now known as Mutabah
ionut_f_ has joined #osdev
Halofreak1990 has quit [Ping timeout: 268 seconds]
bzimage has joined #osdev
<bzimage> goodays osdev
ionut_f_ has quit [Quit: Going offline, see ya! (www.adiirc.com)]
monkeyPlus has joined #osdev
<monkeyPlus> hey. Can we use .o files, to link to our program, instead of .so (shared libraries), what are the gains / loses
<Mutabah> What do you mean by "link to our program" here? Linking into a full executable uses `.o` files already
<Mutabah> `.so` is "shared objects", so runtime-loaded code
<monkeyPlus> link as in makefile...like all: sharedLib.o myprog.o, and then put it together
m3a has quit [Ping timeout: 248 seconds]
<Mutabah> That
<Mutabah> That's the standard way, not sure what makes you think that it's standard to link `.so`s at that part of the makefile
<monkeyPlus> what do you mean standard
<Mutabah> Conventional
<monkeyPlus> im not saying that link .so is standard, im wondering if we could do it like i said
<monkeyPlus> what are the advantages , if we do use it
<Mutabah> You can (and should) use `.o` files when linking at build-time
<clever> a static library (.a file) is baiscally just a zip of .o files
<clever> what your thinking of is just static linking
<monkeyPlus> but like, gcc links to libc, without user specifying it
<heat> disclaimer: monkeyPlus is trying to get hacking help
<clever> monkeyPlus: because there is an implicit -lc in the arguments
<monkeyPlus> yes
<monkeyPlus> so do that or do libc.o
<clever> it would be called libc.a
xenos1984 has quit [Read error: Connection reset by peer]
<clever> and thats just staticly linking libc
<monkeyPlus> that means, it has several object files, on libc ?
<clever> yes
<monkeyPlus> ah
<clever> 2025-02-05 22:11:32 < clever> a static library (.a file) is baiscally just a zip of .o files
<monkeyPlus> ok
<monkeyPlus> there isnt any libc.o?
<clever> that doesnt exist
<monkeyPlus> ok
<monkeyPlus> what are a few object files, that are on libc.a?
<monkeyPlus> can you point some of them
<monkeyPlus> well, we can just include the object files we want
<monkeyPlus> no need to link the entire library
<clever> from memory, glibc likes to put every single function into its own .c file, which then becomes a .o file
<monkeyPlus> ok
<clever> thats what gcc does already, and why the .a contains many .o files
<clever> only the ones it needs get used
<Mutabah> linking a `.a` file only pulls in the `.o` files it needs
<monkeyPlus> wouldnt it be , more simple, to use object files, instead of shared libraries
<clever> the whole point of shared libraries, is to share them at runtime
<monkeyPlus> well they are going to be called anyway
<clever> the kernel can load libc.so into ram once, and use that one copy in many programs, to SHARE it
<clever> static linking increases both disk and memory usage, by including a duplicate copy in every program
<monkeyPlus> each process has its own library loaded in its process address space
<clever> if 2 processes load the same library read-only, the kernel only loads one copy
<monkeyPlus> doesnt mmap it?
<monkeyPlus> into process address spcae
<clever> when you mmap the same thing twice in a read-only mode, you just get the same physical pages
<monkeyPlus> you refer to RAM not HD
<monkeyPlus> you would mmap twice the library into processes ram
<monkeyPlus> memory...
<bzimage> thank you clever , youve been doing a nice refreshement of my dusty long forgotten foundations
<monkeyPlus> say, if we did use object files, no need to search for libraries, no got/plt, no dynamic linking on runtime..right
<clever> most of that would be done at build time, by normal ld
<clever> the point of things like the GOT, is to help with the sharing of shared libraries
<monkeyPlus> yeah...but ld would be a lot smaller / simpler
<clever> if you patch a function to insert the right load-address, then that page differs, and you cant share it
<monkeyPlus> faster..
<clever> the GOT puts a able of pointers into one region, so the function itself isnt patched
<monkeyPlus> i know
<clever> and now youve invented go :P
<monkeyPlus> all the share libraries logistics, would be off
bzimage has quit [Quit: time to go .]
Yoofie646446 has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
Gooberpatrol66 has joined #osdev
surabax has quit [Quit: Leaving]
cloudowind has quit [Ping timeout: 245 seconds]
cloudowind has joined #osdev
<ring0_starr> any of you write an OS for a tagged architecture?
cloudowind has quit [Ping timeout: 265 seconds]
cloudowind has joined #osdev
agent314 has joined #osdev
cloudowind has quit [Ping timeout: 268 seconds]
cloudowind has joined #osdev
cloudowind has quit [Ping timeout: 245 seconds]
m3a has joined #osdev
cloudowind has joined #osdev
Arthuria has joined #osdev
<cloudowind> hmm so we need to acquire/refresh CA certs , openssl
<cloudowind> periodically
osmten has joined #osdev
monkeyPlus has quit [Remote host closed the connection]
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
ionut_f_ has joined #osdev
alifib has joined #osdev
heat has quit [Ping timeout: 248 seconds]
Halofreak1990 has joined #osdev
ionut_f_ has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<the_oz> yeah if you want secure ones
<the_oz> WRT tagged architecture, I'd much rather use arenas of memory implicitly types rather than tagging each whatever sized item therein
<the_oz> implicity typed*
<the_oz> if you're gonna go around typing everything, at just makes sense to not add runtime cost
<the_oz> because by the time you end up having "forgotten" the typing, you're either at a boundary (like network, or strange process) wherein you WOULD need to be more explicit than you'd think, or you're close enough to be able to not forget
<the_oz> but having said that, what do you want to know?
<the_oz> virtual memory has some bits
Arthuria has quit [Ping timeout: 268 seconds]
GeDaMo has joined #osdev
Halofreak1990 has quit [Ping timeout: 268 seconds]
antranigv_ is now known as antranigv
<cloudowind> me package manager is menu selection ,originally there were 7 options 7 was exit , now after few more days of spending i do have like 20 options in the main menu of package manager , but the exit still there on the 7th , its like 1, install packages , 2- remove package ...7-exit(get me out of here) , 8- add a new package repo , 9-..10th..20th
<cloudowind> :)
eau_ has quit [Ping timeout: 245 seconds]
pebble has joined #osdev
Lucretia has joined #osdev
goliath has joined #osdev
<kof673> eh, nethack style 1. 2. .... 9. a. b. c. d. you got 26 more lowercase letters to keep things "single digit" :D
<kof673> that works until you hit option 36
netbsduser` has joined #osdev
mrpops2ko has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TkTech has quit [Ping timeout: 252 seconds]
gog has joined #osdev
gog has quit [Client Quit]
<cloudowind> :/ true , as because i dont have stable connection (am from a remote little town , 4g here) i dont have luxury to build binaries and let people suck it , but i planned doing a package manager that does gets from source and compiles itself instead , so a package manager with a git and tarball databse n build and compile instructions and config ,
<cloudowind> apperently there ar 4-5 distros out there following smilar method , gentoo , kiss linux and few more
<cloudowind> hello kof , time for me to rest you guys have a good one
<cloudowind> and hello the_oz as well sorry i just realised you answered my silly output
<clever> cloudowind: nix(os) also does this, but builds things under a sandbox to maintain purity, and make sharing binaries reproducable
zenmov_ has joined #osdev
zenmov_ has quit [Client Quit]
zenmov_ has joined #osdev
zenmov_ has quit [Client Quit]
foudfou has quit [Quit: Bye]
Left_Turn has joined #osdev
osmten has quit [Quit: Client closed]
Halofreak1990 has joined #osdev
MiningMarsh has quit [Ping timeout: 260 seconds]
d1rg3 has joined #osdev
q3lont has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 244 seconds]
mrpops2ko has joined #osdev
Halofreak1990 has quit [Ping timeout: 260 seconds]
Halofreak1990 has joined #osdev
omarelfouly has joined #osdev
omarelfouly has quit [Quit: omarelfouly]
Turn_Left has quit [Remote host closed the connection]
Turn_Left has joined #osdev
craigo has joined #osdev
d1rg has joined #osdev
<d1rg> hi guys
<d1rg> osdev feels hard
<d1rg> where do i even start
<d1rg> i mean, os and compiler stuff is very cool, admittedly
<zid`> You start about 10 bus stops beforehand
<zid`> by learning about compiled languages and computers
<d1rg> i mean, i sure can write a c program lol
<d1rg> but i've no idea about the internals
<froggey> start small (hello world on bare metal) and add stuff from there. then lose 15 years of your life to it and wonder where everything went wrong. simple as
<zid`> well, time to start actually learning about binary formats and linkers and compiler and stuff, to go with your "i can write a C program"
surabax has joined #osdev
<kof673> to mis-paraphrase klange: spite. what's your goal? just inch towards that
MiningMarsh has joined #osdev
<kof673> just put up a goatse logo and get to work with the spite j/k
<kof673> but, all you need is determination...
jedesa has joined #osdev
<kof673> you break your vendetta/manifesto down into little pieces, same as any other programming j/k
<kof673> and then prioritize lol "must have" "nice to have" "ok if time" "cool but not productive"
jedesa has quit [Client Quit]
<kof673> if you haven't developed your spitey sense yet, use more software until you built up a reservoir
<kof673> an "enemies list" as it were
Yoofie646446 has joined #osdev
cloudowind has quit [Quit: Lost terminal]
cloudowind has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.9.1 - https://znc.in]
MiningMarsh has joined #osdev
<sbalmos> it really helps if you call your initial kernel builds, in this order, annoyance, frustration, anger, hatred, rage
ionut_f_ has joined #osdev
d1rg has quit [Ping timeout: 252 seconds]
d1rg3 has quit [Ping timeout: 244 seconds]
<kof673> moby thesaurus is always interesting lol spite: "crow to pluck" "vials of wrath" lol
d1rg3 has joined #osdev
heat has joined #osdev
alifib has quit [Ping timeout: 252 seconds]
Halofreak1990 has quit [Ping timeout: 268 seconds]
goliath has quit [Quit: SIGSEGV]
d1rg has joined #osdev
MiningMarsh has quit [Ping timeout: 260 seconds]
alifib has joined #osdev
MiningMarsh has joined #osdev
q3lont has quit [Ping timeout: 260 seconds]
xenos1984 has quit [Read error: Connection reset by peer]
pebble has quit [Read error: Connection reset by peer]
hwpplayer1 has joined #osdev
zenmov is now known as m5
ZipCPU_ has joined #osdev
ZipCPU has quit [Ping timeout: 260 seconds]
ZipCPU_ is now known as ZipCPU
xenos1984 has joined #osdev
d1rg3 has quit [Ping timeout: 252 seconds]
d1rg3 has joined #osdev
goliath has joined #osdev
q3lont has joined #osdev
<the_oz> Spitey sense. Freelance, best thing for a developer your age. Meat. A nice christmas meat.
alifib has quit [Quit: .]
<kof673> i just meant if you haven't seen some software that made you say "i can do better than that" then.......
the_oz has quit [Quit: Leaving]
<kof673> you should have a list of grievances
the_oz has joined #osdev
<the_oz> it's not your fault my brain got saidetracked by a meme, if even
<kof673> most that stuff is over my head, it is karma i am sure :D i just meant be familiar with something siimilar to whatever you are shooting for.......be a lowly user...what are the things you would want "fixed" ?
eddof13 has joined #osdev
<the_oz> spiterman!
<kof673> versus....magical ideal system noone has ever done before, but to each their own :D
<kof673> scope out the other cartels j/k
<the_oz> lel
d1rg has quit [Ping timeout: 252 seconds]
d1rg has joined #osdev
q3lont has quit [Quit: Leaving]
d1rg has quit [Ping timeout: 260 seconds]
d1rg3 has quit [Ping timeout: 268 seconds]
d1rg has joined #osdev
d1rg3 has joined #osdev
d1rg has quit [Read error: Connection reset by peer]
d1rg has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
d1rg3 has quit [Quit: leaving]
vai has joined #osdev
<vai> yo
vai is now known as Jari--
<nikolar> ILLUMOS
jistr_ has quit [Quit: quit]
jistr has joined #osdev
agent314 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
geist-sdf has quit [Quit: Lost terminal]
asarandi has quit [Quit: WeeChat 4.2.2]
asarandi has joined #osdev
d1rg has quit [Ping timeout: 268 seconds]
d1rg has joined #osdev
gog has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
eddof13 has quit [Quit: eddof13]
asarandi has quit [Ping timeout: 252 seconds]
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
asarandi has joined #osdev
bauen1 has quit [Ping timeout: 244 seconds]
guideX has quit [Read error: Connection reset by peer]
guideX has joined #osdev
Halofreak1990 has joined #osdev
craigo has quit [Ping timeout: 248 seconds]
Turn_Left has quit [Ping timeout: 265 seconds]
fmierlo has joined #osdev
eddof13 has joined #osdev
Turn_Left has joined #osdev
bauen1 has joined #osdev
fmierlo12 has joined #osdev
fmierlo has quit [Ping timeout: 240 seconds]
fmierlo12 is now known as fmierlo
gog has quit [Quit: byee]
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
Halofreak1990 has quit [Ping timeout: 272 seconds]
<cloudowind> hm ok clever there seems like also one called mage linux seems interesting exactly doing smilar stuff
<cloudowind> goodays osdev people
fmierlo has quit [Ping timeout: 240 seconds]
urandom__ has quit [Ping timeout: 276 seconds]
urandom__ has joined #osdev
vismie has quit [Ping timeout: 252 seconds]
jleightcap has quit [Ping timeout: 276 seconds]
jleightcap has joined #osdev
janemba has quit [Ping timeout: 276 seconds]
vismie has joined #osdev
Halofreak1990 has joined #osdev
frytaped has joined #osdev
frytaped has quit [Client Quit]
hwpplayer1 has quit [Quit: Tomorrow is another day ! see you and take care]
janemba has joined #osdev
valeriusN has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
valerius_ has joined #osdev
netbsduser` has quit [Ping timeout: 268 seconds]
cloudowind has quit [Remote host closed the connection]
cloudowind has joined #osdev
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
netbsduser` has joined #osdev
eddof13 has quit [Quit: eddof13]
eddof13 has joined #osdev
TkTech has joined #osdev
ionut_f_ has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<heat> KERN
ryoskzypu has quit [Ping timeout: 264 seconds]
ryoskzypu has joined #osdev
<nikolar> AL
<heat> glibc is actually late stage C
<Lucretia> anyone using xv6-public and getting into a bootloop in qemu?
<bslsk05> ​gist.github.com: fstatat64.c · GitHub
<heat> Lucretia, the x86 xv6?
<Lucretia> yeah
<nikolar> so the one you can run on actual hardware :P
<bslsk05> ​askubuntu.com: 19.10 - Qemu hangs in "Booting from Hard..." - Ask Ubuntu
<Lucretia> it worked on my old machine, but this is a new one
<nikolar> oh i think i remember something about this
<nikolar> i think there was maybe a qemu regression or something
<heat> that soudns unlikely
<Lucretia> the source already has the BYTE(0)'s removed from the linker script
<Lucretia> on app-emulation/qemu-8.2.7
<Lucretia> and gcc-14.2.1_p20241221
<heat> x86 xv6 is probably all sorts of broken
<heat> have you tried with an older gcc? that might do the trick
<nikolar> apparently one of the issues that caused it to hang were due to a bug in binutils
<nikolar> though that should've been fixed
<heat> i can't stress enough how much xv6 sucks
<heat> IIRC rv xv6 is a little nicer
<Lucretia> yeah well, I kind of want to learn to target amd64
<nikolar> heat, at least that one is maintained
<nikolar> i wonder if it would boot on actual hardware
<Lucretia> gcc-13 does the same
<heat> let me see if i can repro the fuckyness
<Lucretia> and sys-devel/binutils-2.43-r2
<Lucretia> heat: you'll need a couple of patches
<heat> yeah i can see it doesn't compile
<nikolar> Lucretia: what kind of patches
<heat> which patches?
<Lucretia> Ones I had to apply myself, https://bpa.st/UBQQ https://bpa.st/EQXQ
<bslsk05> ​bpa.st: View paste UBQQ
<bslsk05> ​bpa.st: View paste EQXQ
<heat> yep i can confirm it doesn't boot
<heat> seems to be hanging in the bootloader, not even triple faulting
<nikolar> huh
ryoskzypu has quit [Remote host closed the connection]
ryoskzypu has joined #osdev
eddof13 has quit [Quit: eddof13]
eddof13 has joined #osdev
eddof13 has quit [Client Quit]
gog has joined #osdev
<Lucretia> latest qemu doesn't make a diff
Halofreak1990 has quit [Ping timeout: 268 seconds]
<Lucretia> seems jos does the same
<nikolar> jos?
<Lucretia> it's the other os that this course uses
<nikolar> ah right
<nikolar> and it dies too
<Lucretia> yeah, same thing boot loop, only faster for some reason
<Lucretia> installing the earliest qemu gentoo has to see
<Lucretia> 7.2.14
<Lucretia> yup, no diff
<heat> what course are you following?
<Lucretia> planning to...
<Lucretia> the neil rhodes one from a few years ago
<heat> consider not doing so
<nikolar> lol
<heat> i have two arguments
<heat> 1) xv6 really isn't good
<heat> 2) it's not worth your time to debug arcane xv6 issues
<heat> actually, 3: 3) maybe give xv6-riscv a try
<heat> you can also, uhh, you know, read the book or watch the vids or whatever, without trying to execute it
<Lucretia> I find doing helps
<Lucretia> I already did a theory only course at uni years ago, it wasn't great
<nikolar> to be honest, i'd like to know why xv6 suddenly stopped booting
<heat> xv6 is really just a poor emulation of a system that really wasn't good from the start
<Lucretia> yeah I know unix aint great...
<heat> like, UNIX v6 kinda fucking sucked
<heat> xv6 is that but someone decided to place every .c in the project root
<Lucretia> yeah
<heat> i would say UNIX only started to be good around the BSD era
<Lucretia> someone did clean it up, got to find it again
<nikolar> Lucretia: if you do, ping me :P
<Lucretia> k
<heat> xv6-riscv is pretty cleaned up
<Lucretia> I had it on disk somewhere
<heat> cleaner at least
<nikolar> heat: i ask because i have a 386 machine
<nikolar> and i want to run xv6 on it if possible lol
<heat> oh cool
<heat> you should try something cooler
xenos1984 has quit [Read error: Connection reset by peer]
<kof673> this all supports my "must have a list of grievances" theory? no, fact.
<nikolar> heat: any suggestions
<heat> 386BSD or actually porting 4.4BSD or early free/netbsd
<nikolar> eh might give it a go at some point
<heat> these ones have fancy stuff like *network stacks*
<Lucretia> ultimately, I'm interested in a µkernel, but need to understand the basics first
<heat> xv6 won't really teach you the basics of an OS
<heat> it's an opinionated take on an OS (UNIX) but from the 70s, and this is like completely antithetical to a microkernel
<Lucretia> I know
<nikolar> i seem to vaguely remember stumbling upon a fixed up version
<nikolar> though i don't think i've tried it myself
<nikolar> so it might be out there somewhere :P
<heat> are you people actually going to make me work on hsd again
<nikolar> hsd?
<heat> heat software distribution
<heat> an attempt to recreate something with the early BSD vibes
<nikolar> Oh does it boot on 386
<heat> it doesn't do anything useful
<heat> yet
eddof13 has joined #osdev
<nikolar> What does it do
<heat> basic memory management and interrupts
eddof13 has quit [Client Quit]
<heat> i remember getting stuck on not wanting to write disk drivers for that shit
<nikolar> Use bios calls :P
<heat> idea would be to go "basic fs format (probably my own?)" -> some sort of a.out support (does binutils still do aout? could i write an elf2aout conversion tool?) -> userspace
<heat> skipping the vfs and page cache, maybe adding a buffer cache
<nikolar> heat i am pretty sure you can write a linker script to output a.out
<nikolar> it's a stupidly simple format
<heat> worst case you can probably add it in crti.o and output flat binaries
xenos1984 has joined #osdev
<nikolar> something like that
Lucretia has quit [Remote host closed the connection]
goliath has quit [Quit: SIGSEGV]