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
gog has quit [Quit: byee]
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
svm is now known as msv
edr has quit [Quit: Leaving]
TkTech has joined #osdev
c0co has quit [Read error: Connection reset by peer]
les_ is now known as les
da5id has quit [Quit: WeeChat 4.7.1]
skipwich has quit [Remote host closed the connection]
skipwich has joined #osdev
Haven0320 has quit [Ping timeout: 248 seconds]
Haven0320 has joined #osdev
Haven0320 has quit [Read error: Connection reset by peer]
Haven0320 has joined #osdev
jcea has quit [Ping timeout: 248 seconds]
eluks has quit [Remote host closed the connection]
eluks has joined #osdev
chromoblob has quit [Ping timeout: 256 seconds]
GeDaMo has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
chromoblob has joined #osdev
xenos1984 has joined #osdev
mm_x_ has joined #osdev
mm_x_ has quit [Client Quit]
ring0_starr has quit [Ping timeout: 256 seconds]
xvmt has quit [Read error: Connection reset by peer]
xvmt has joined #osdev
<bslsk05> ​<UP8> 🍪 Gate-level emulation of an Intel 4004 in 4004 bytes of C ␤ https://nicholas.carlini.com/writing/2025/ioccc-intel-4004-in-4004-bytes-c.html ␤ #electronics #programming #software #4004 #retrocomputing #microchips https://files.mastodon.social/media_attachments/files/115/142/007/830/869/495/original/d7f6b9cedf3b422a.png [An ASCII art image showing the stages of emulating a 4004 CPU at the gate label that can be found in the linked article.]
Lucretia has joined #osdev
_opr has joined #osdev
netbsduser` has quit [Ping timeout: 250 seconds]
Left_Turn has joined #osdev
<nikolar> cite
<zid> cite?
<GeDaMo> psych?
<nikolar> cute
<geist> yeah at first i was kinda eye-roll when i saw that it passed in the rom, but actually it's pretty clever in its implementation
Haven0320 has quit [Ping timeout: 256 seconds]
emneo has joined #osdev
ZetItUp has joined #osdev
goliath has joined #osdev
[Kalisto] has quit [Quit: Ping timeout (120 seconds)]
[Kalisto] has joined #osdev
valerius_ has quit [Remote host closed the connection]
<zid> It's only 1.25KB, you could shove it in a literal if you wanted
HeTo has joined #osdev
<zid> but then it isn't within 4004 bytes of source :(
valerius_ has joined #osdev
c0co has joined #osdev
<nikolar> oi heat
<heat> nik
<nikolar> one question
<nikolar> how does kernel manage things like multiple FSs having a btree implementation or whatever
<nikolar> do they just have to namespace the symbols like `whateverfs_btree_init`
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 256 seconds]
c0co has quit [Read error: Connection reset by peer]
<heat> yeah pretty much
<sortie> nikolar, I mean, yeah. That's how software is written in larger projects. C++ of course has formal namespaces but C also just lets you namespace things yourself with prefixes like that
<sortie> Although with kernel modules you can do dynamic linking where the symbols of each module might not conflict with each other
<nikolar> i know that's how it works
<heat> actually, now i'm wondering if there's more tricky behavior happening. because symbol name collision isn't a problem for modules, with syms that aren't exported
<nikolar> i just wondered if they had a cleverererer approach with symbol hiding or whatever
<heat> and they do some sort of partial linking in between
<nikolar> see, sortie
<nikolar> nontrivial
<heat> ok this is worth a test
<zid> heat: but you need to somehow tag things as weak or strong
<zid> to make that work
<sortie> I mean heat is saying what I'm saying :P
<zid> so that you can gcc -r -o mod.o main.c btree.c ; gcc -r -o mod2.o main2.c btree2.c and not have the mod.o exporting btree's syms
<sortie> You should probably have said linux instead of kernel (as in kernel.org)
<nikolar> well he's a linux dev and i asked him directly so you know :P
<zid> (then you can drop all the weak symbols leaving just the proper global symbols)
<heat> sortie: there is only one Kernel. It Is Known.
<sortie> and musl stole libc.org
<heat> zid: in theory you could do partial linking and filter out !exported symbols, for "built-in" modules
<heat> i don't think that's happening fwiw, but it's a fun idea
<zid> heat: but to filter you need to tag
<zid> that was why I didn't think that's what they were doing
<heat> yeah i don't think they're doing anything special as well
<zid> int WINAPI bob(); int bob(); and make the default weak and WINAPI __attribute(("strong")) or whatever
<zid> MODULE() is a thing though afaik?
* sortie . o o ( does any unix tools not have a website registered )
<heat> you don't need to tag
<zid> how do you link main.c to btree.c's btree_init into mod.o without mod.o exporting btree_init, but still exporting main_init
<zid> without tagging
<heat> it only becomes a problem if e.g you have a symbol that conflicts with a built-in module's export
<zid> okay but that isn't what we were talking about
<zid> You said you don't need to tag to achieve this, I asked how
<heat> you can partial link the built-in module and hide non-exported symbols (exported symbols are already tagged)
<zid> how do you mark them as 'exported'
<zid> how does it know the difference between main and btree_init
<zid> btree_init is 'internal' but needs to be seen by main
<zid> and not end up in mod.o
<heat> kernel-internal macros and sections
<zid> that's called tagging
<heat> ok
<heat> ld: fs/btrfs/inode.o: in function `btrfs_init_cachep':
<heat> inode.c:(.init.text+0x10): multiple definition of `btrfs_init_cachep'; fs/ext4/extents.o:extents.c:(.text.unlikely+0x10): first defined here
<heat> alas, i was correct, this doesn't happen
<nikolar> sortie: "stole"
<nikolar> it's not their fault no one thought of it before lol
<heat> musl definitely stole
<heat> it is not The Libc
<zid> It's pretentious
<zid> if nothing else
<nikolar> that's a separate issue lol
<nikolar> but it's not stolen
<zid> I assume they have to be tagging shit anyway though
<zid> so that the ctors can run
<zid> and support loading you know, more than one module
<zid> they need an array of pointers to anonymous init functions somewhere
<heat> correct
<heat> exports are tagged, init functions are tagged
<heat> init .text is also tagged
<sortie> heat: os-test data suggests that, at this time, musl _is_ the libc.
<sortie> It's sliiiightly ahead of glibc on my data
<heat> well i guess that settles it!
<zid> because of the 7 users of openbsd
<heat> 11 musl users and 7 of them are containers
<sortie> I used OpenBSD yesterday. What an honor to be one of 7 lol
<heat> the other 4 musl users can't get musl-obstack to work
foxdrodd_ has joined #osdev
chromoblob has quit [Ping timeout: 256 seconds]
chromoblob has joined #osdev
chromoblob has quit [Read error: Connection reset by peer]
<sortie> woohoo nlnet foundation just approved my first milestone.. who said osdev doesn't pay! :D
Left_Turn has joined #osdev
<nikolar> i mean we have several people doing osdev as their $DAYJOB here :P
Turn_Left has quit [Ping timeout: 256 seconds]
<sortie> But hey it's my own independent project :D
chromoblob has joined #osdev
agent314 has quit [Ping timeout: 256 seconds]
agent314 has joined #osdev
c0co has joined #osdev
agent314_ has joined #osdev
agent314 has quit [Ping timeout: 265 seconds]
chromoblob has quit [Ping timeout: 258 seconds]
chromoblob has joined #osdev
Turn_Left has joined #osdev
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
Left_Turn has quit [Ping timeout: 256 seconds]
chromoblob has quit [Read error: Connection reset by peer]
chromoblob has joined #osdev
c0co has quit [Read error: Connection reset by peer]
bauen1 has quit [Ping timeout: 260 seconds]
<ZetItUp> <3 chatgpt, "Add comments to the file where it's needed and give the entire file back to me", i got half the file back with some comments and it just said "Then you keep adding them with this pattern"
chromoblob has quit [Ping timeout: 258 seconds]
Left_Turn has joined #osdev
chromoblob has joined #osdev
Turn_Left has quit [Ping timeout: 265 seconds]
chromoblob has quit [Ping timeout: 258 seconds]
chromoblob has joined #osdev
<nikolar> why are you trying to do anything with chatgpt
foxdrodd_ is now known as foxdrodd
sortiecat has joined #osdev
edr has joined #osdev
emneo has quit [Ping timeout: 258 seconds]
emneo has joined #osdev
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
Haven0320 has joined #osdev
Turn_Left has joined #osdev
<ddevault> remind me what the qemu flag that dumps interrupts is
<ddevault> ah, -d int
<heat> note that it doesn't work with KVM on
Left_Turn has quit [Ping timeout: 260 seconds]
<ddevault> yeah
jcea has joined #osdev
goliath has quit [Quit: SIGSEGV]
vdamewood has joined #osdev
MrBonkers has quit [Quit: ZNC 1.9.0+deb2build3 - https://znc.in]
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 250 seconds]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
goliath has joined #osdev
GeDaMo has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
Turn_Left has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
Turn_Left has joined #osdev
chromoblob has quit [Read error: Connection reset by peer]
chromoblob has joined #osdev
c0co has joined #osdev
sortiecat has quit [Quit: Leaving]
c0co has quit [Read error: Connection reset by peer]
jcea has quit [Ping timeout: 252 seconds]
emneo has quit [Ping timeout: 248 seconds]
c0co has joined #osdev
leon has quit [Remote host closed the connection]
leon has joined #osdev
rom4ik1 has joined #osdev
rom4ik has quit [Read error: Connection reset by peer]
rom4ik1 is now known as rom4ik
gildasio has quit [Ping timeout: 272 seconds]
gildasio has joined #osdev
netbsduser` has joined #osdev
bauen1 has joined #osdev
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
xenos1984 has quit [Ping timeout: 248 seconds]
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
leon has quit [Remote host closed the connection]
leon has joined #osdev
xenos1984 has joined #osdev
da5id has joined #osdev
MelodyOwO has joined #osdev
MelodyOwO has quit [Remote host closed the connection]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
agent314_ has quit [Ping timeout: 256 seconds]
agent314 has joined #osdev
xenos1984 has quit [Ping timeout: 245 seconds]
xenos1984 has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 252 seconds]
gildasio1 has joined #osdev
gildasio has quit [Ping timeout: 272 seconds]
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
ring0_starr has joined #osdev
ring0_starr has quit [Max SendQ exceeded]
ring0_starr has joined #osdev
c0co has quit [Read error: Connection reset by peer]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 252 seconds]
<heat> geist: seems like ARM screwed up BBM Level 2
<heat> "To support BBML2 in as wide a range of contexts as we can, we want not only the architectural guarantees that BBML2 makes, but additionally want BBML2 to not create TLB conflict aborts. Not causing aborts avoids us having to prove that no recursive faults can be induced in any path that uses BBML2, allowing its use for arbitrary kernel mappings."
<heat> so now linux has a whitelist of MPIDRs for CPUs where they can do this sort of thing
jcea has joined #osdev
<geist> oh boo
<geist> though to be honest i havne't looked at BBM2 in particular
<nikolar> what's a BBML2
<heat> basically it's an ARM feature that allows you to skip the BBM sequence
<heat> aka you don't need to fully unmap a huge page before replacing it with something else
<heat> and that allows you a lot of stuff in the kernel where you kinda atomically do need to replace a huge page with a broken down version
vdamewood has joined #osdev
levitating_ has joined #osdev
levitating_ has quit [Remote host closed the connection]
eschaton has quit [Read error: Connection reset by peer]
gildasio1 has quit [Remote host closed the connection]
gildasio has joined #osdev
vdamewood has quit [Quit: Life beckons]
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
levitating_ has joined #osdev
Left_Turn has joined #osdev
Turn_Left has quit [Ping timeout: 265 seconds]
Left_Turn has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
Lucretia has quit [Remote host closed the connection]
gildasio has quit [Ping timeout: 272 seconds]
Irvise has quit [Ping timeout: 244 seconds]
Irvise has joined #osdev
gildasio has joined #osdev
asarandi has quit [Quit: WeeChat 4.5.2]
asarandi has joined #osdev
goliath has quit [Quit: SIGSEGV]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
levitating_ has quit [Remote host closed the connection]
levitating_ has joined #osdev
\Test_User has quit [Quit: \Test_User]
levitating__ has joined #osdev
levitating_ has quit [Ping timeout: 248 seconds]
\Test_User has joined #osdev