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
<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
<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]
<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]