ZombieChicken has quit [Ping timeout: 255 seconds]
ZombieChicken has joined #osdev
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
[itchyjunk] has joined #osdev
ZombieChicken has quit [Ping timeout: 255 seconds]
ZombieChicken has joined #osdev
bgs has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
ZombieChicken has quit [Quit: WeeChat 3.7.1]
heat has quit [Ping timeout: 252 seconds]
mimmy_ has joined #osdev
mimmy_ has quit [Ping timeout: 252 seconds]
invalidopcode has quit [Quit: Ping timeout (120 seconds)]
invalidopcode has joined #osdev
scoobydoo has quit [Ping timeout: 260 seconds]
bauen1 has quit [Ping timeout: 268 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
fedorafan has joined #osdev
danilogondolfo has joined #osdev
hmmmm has quit [Read error: Connection reset by peer]
hmmmm has joined #osdev
heat has joined #osdev
bauen1 has joined #osdev
gog has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
eroux has quit [Read error: Connection reset by peer]
eroux has joined #osdev
leitao has joined #osdev
gog has quit [Remote host closed the connection]
gog has joined #osdev
pg12 has joined #osdev
fedorafan has quit [Ping timeout: 246 seconds]
GeDaMo has joined #osdev
lockna has joined #osdev
fedorafan has joined #osdev
<gog>
moin
bauen1 has quit [Ping timeout: 260 seconds]
* moon-child
pets gog
* gog
prr
<gog>
moon-child: play factorio with me, kerio and deepy later
<moon-child>
ehhh
<moon-child>
I've been off of factorio for 2 years now, I don't wanna relapse
<gog>
3:
<QuietlyConfident>
moon-child: do it coward
<zid>
I'm playing rn
<zid>
kerio as in edoardo spadolini?
<QuietlyConfident>
who else
<QuietlyConfident>
the one and only, obviously
<QuietlyConfident>
also how do you know kerio :O :monocle:
<zid>
kerio's a little weenie
<zid>
tell him that for me
<moon-child>
QuietlyConfident: i bet he just ran whois
<moon-child>
and doesn't actually know who kerio is
<moon-child>
what a loser
<zid>
and his password is blackbear
<heat>
bazungo
<zid>
QuietlyConfident: My nethack password was just known cus idgaf, kerio was the only one who logged into it to change my fruit name
<zid>
so I hacked the channel bot, dumped the user database, decrypted his password, and changed his too.
<moon-child>
what
<zid>
You heard me.
<QuietlyConfident>
zid: which server tho
<QuietlyConfident>
NAO or ascrun?
<zid>
nao ofc
<QuietlyConfident>
lmao
<zid>
fuck is ascrun
<QuietlyConfident>
ascrun was kerio's server
<QuietlyConfident>
it's retiredn ow
<zid>
yea there's 0% chance I'd have played on that, weenieville
<QuietlyConfident>
lmao
<QuietlyConfident>
zid: im one of the top best nethack players in the world ever btw, have ascended in under 2 h
<moon-child>
or nethack.xd.cm
<zid>
I had the #3 spot on hsn at one point
<moon-child>
or acehack.de?
<zid>
me zadir and art
<moon-child>
my one claim to fame is that I was almost the first person to ascend 3.6.2
<moon-child>
but then I died
<zid>
then berry decided he wanted the top 100 all to himself :P
<zid>
I have 100% ascension rate in ais' nethack four
<QuietlyConfident>
that bastard
<zid>
cus I played it once during junethack
<zid>
hardfought pls, moon-child
<lockna>
Does anyone have some good sesources about how to implement a devfs?
<zid>
*goes to check on his rice*
<QuietlyConfident>
zid: I also have the #2 bonesless non-TAS turncount speedrun record for nh 3.6.x and the #1 turncount overall for nh 3.7.0
<zid>
yep, still rice
<zid>
I never liked 3.6
<zid>
I just liked abusing the speed system to get through the painfully awkward early game, then doing the trivial lategame
<zid>
"let's make the early game randomer" k bye
<QuietlyConfident>
coward
<heat>
lockna, what do you not
<heat>
s/not/need/
<lockna>
pardon?
<heat>
what do you need?
<zid>
how does the 'node' system work that linux has? (had?)
<heat>
how to implement a devfs mostly depends on your kernel's design and if its a UNIX
<zid>
but the dynamic stuff seems simple enough
<zid>
driver registers a filename in the vfs
<lockna>
Yeah, well I thought about a pdf or something about how linux/bsd/solaris/sunos implemented there devfs?
<zid>
then implements read and write and open and close
<lockna>
Yeah, well I thought about a pdf or something about how linux/bsd/solaris/sunos implemented there devfs
<heat>
at the end of the day a typical UNIX devfs is just something with a bunch of device files in there
<heat>
traditionally you do it statically but people moved towards dynamic for a good while
<heat>
i.e linux's devtmpfs is just tmpfs with a bunch of pre-populated device files
<lockna>
Hmm, okay. In oriented my vfs design on how BSD did it but I don't really seem to understand how bsd manages devices (like relations between virtual node, device struct, device operations, vnode operations)
<heat>
ok
<heat>
i guess the struct device is just the generic thing they look up when opening a device file
<heat>
(right? I have no idea about BSD)
<zid>
(heat is a freebsd nerd, he's holding out on you)
<heat>
i am Mateusz Guzik
<heat>
you can reach me for questions or hot dates mjg@freebsd.org
<lockna>
I'm not sure about that either, how they look up a device. When they create a new devfs node, they have a function called devfs_link which gets the device struct as argumment and creates a new node in the devfs. But as far as I can tell from the struct defintions, the vector for device operations is different from file operations (which is somewhat very logical) but how does is a vnode able to hold a device if its a device node? The device has a reference
<lockna>
to the vnode, but not the other way around
<lockna>
So how does the vnode on read know to call read on device, when the read is different from the read in vnode_operations_vector
<dminuoso>
to be fair, the expression "machine word size" and "word" is extremely ambiguous
<GeDaMo>
«The domain "catb.org" has expired.»
<dminuoso>
for instance, by the definition "size of the registers" makes little sense on modern AMD64 processors
<ghostbuster>
"[char] are a special case; they’re equally expensive from anywhere they live inside a single machine word. That’s why they don’t have a preferred alignment"
<dminuoso>
Modern AMD64 processors have 512bit AVX2 registers. Is the machine word size 512 bit now?
[itchyjunk] has joined #osdev
<zid>
noo catb was good
<kaichiuchi>
you're fucking kidding me
<kaichiuchi>
that's unfortunate
<heat>
dminuoso, yes it does make sense. it's the size of the GPRs
<kaichiuchi>
esr may have been a lunatic gun nut but his technical writings were good
<heat>
not that "machine word size" is anything remotely close to defined in the C standard
<dminuoso>
heat: See I have my issue with "general purpose register" too
<zid>
I prefer architectures where the gprs and the memory is the same size
<zid>
so that I can scalar my pointers
<zid>
and pointer my scalars
<zid>
6502 can suck a poo
<dminuoso>
The whole notion of "machine word size" is an antiquated time when CPUs were extremely simple and mundane
<dminuoso>
In reality, what is often way more interesting than this "GPR" notion, is cache width.
<dminuoso>
*cache line width
<dminuoso>
perhaps not necessarily in the scope of this channel for a bunch of reasons, but when we look at CS discussions in general
<heat>
<ghostbuster> "[char] are a special case; they’re equally expensive from anywhere they live inside a single machine word. That’s why they don’t have a preferred alignment"
<heat>
huh???
<heat>
??????
<heat>
????????????
<zid>
just nonsense
<zid>
I zoned straight through it
<ghostbuster>
lol
<ghostbuster>
i just want to know how structs are packed on x86 and ARM
<zid>
if they're packed, they're packed
<ghostbuster>
glad to know i'm not the only one not intimately familiar with the meaning of that sentence
<zid>
you're welcome
<ghostbuster>
sorry by packed i meant aligned
<zid>
ABI determines that, it's just informed by the cpu
<zid>
x86 flip flops on whether float are 4 or 8 or 16
leitao has quit [Ping timeout: 255 seconds]
<heat>
Usually(tm) they're all naturally aligned to the size
<heat>
so load16bits (addr), %reg does a naturally aligned load, yadda yadda
<heat>
also chars probably need to be intrinsically 1-byte aligned, else they couldn't be much useful
<zid>
pfft
<heat>
in C-standard-speak "byte" is defined as sizeof(char)
<zid>
sizeof(uint32_t) = 2
<zid>
best architectures, DSPs
<heat>
yeah, that works
<heat>
sizeof(char) == 1, CHAR_BITS = 16
<zid>
BIT
<heat>
whatever
<heat>
BIT_BITS = 16
<heat>
better zid?
<zid>
yep
bauen1 has quit [Ping timeout: 246 seconds]
<dminuoso>
ghostbuster: That being said, alignment can be impacted by: a) ABI, b) architectural requirements (e.g. some CPU instructions requires data to be aligned)
Left_Turn has joined #osdev
fedorafan has joined #osdev
fedorafansuper has quit [Ping timeout: 256 seconds]
gog has quit [Quit: Konversation terminated!]
fedorafansuper has joined #osdev
fedorafan has quit [Ping timeout: 255 seconds]
xenos1984 has quit [Ping timeout: 252 seconds]
xenos1984 has joined #osdev
fedorafan has joined #osdev
fedorafa_ has joined #osdev
fedorafansuper has quit [Ping timeout: 252 seconds]
fedorafan has quit [Ping timeout: 260 seconds]
gog has joined #osdev
bauen1 has joined #osdev
ChanServ has quit [shutting down]
gabi-250 has joined #osdev
Brnocrist has quit [Ping timeout: 260 seconds]
xenos1984 has quit [Ping timeout: 260 seconds]
ChanServ has joined #osdev
Brnocrist has joined #osdev
wootehfoot has joined #osdev
gabi-250 has quit [Ping timeout: 255 seconds]
wootehfoot has quit [Quit: Leaving]
gabi-250 has joined #osdev
wootehfoot has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
dude12312414 has joined #osdev
gabi-250 has quit [Ping timeout: 255 seconds]
gabi-250 has joined #osdev
<mjg>
so i got an e-mail from bonwick asking if anyone seen DOORS
<mjg>
i told him everyone has DOORS
<mjg>
at first he was happy, but then it turned out he mean the solaris subsystem
<mjg>
hated to break his heart
<mjg>
the upper case might have give it away, but did not
gabi-250 has quit [Ping timeout: 255 seconds]
gabi-250 has joined #osdev
stux has quit [*.net *.split]
zhiayang has quit [*.net *.split]
ozarker has quit [*.net *.split]
doppler has quit [*.net *.split]
moon-child has quit [*.net *.split]
ElementW has quit [*.net *.split]
pounce has quit [*.net *.split]
moon-child has joined #osdev
ElementW has joined #osdev
pounce has joined #osdev
zhiayang has joined #osdev
stux has joined #osdev
ozarker has joined #osdev
doppler has joined #osdev
ozarker has quit [Max SendQ exceeded]
ozarker has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<geist>
honestly never really looked at the doors stuff. as with all things there's probably a good idea in the core of it
<geist>
but probably design by committeed to death or something
fedorafa_ has quit [Ping timeout: 252 seconds]
fedorafan has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
srjek has quit [Ping timeout: 246 seconds]
gabi-250 has quit [Remote host closed the connection]
<geist>
mats2: i'd appreciate it if you didn't link stuff like that
<geist>
and i'm being very nice
bgs has quit [Remote host closed the connection]
wootehfoot has quit [Read error: Connection reset by peer]
fedorafansuper has joined #osdev
fedorafan has quit [Ping timeout: 252 seconds]
dude12312414 has quit [Ping timeout: 255 seconds]
<jimbzy>
Sup?
dude12312414 has joined #osdev
<mats2>
geist: you're the nicest guy we know
<QuietlyConfident>
damn, that's unfortunate
<QuietlyConfident>
i hope one day you meet nicer guys
<mats2>
rude
<jimbzy>
I'm 99% sure it is impossible to order everything for a project in a single order...
gabi-250 has quit [Ping timeout: 255 seconds]
danilogondolfo has quit [Remote host closed the connection]
gabi-250 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
fedorafa_ has joined #osdev
fedorafansuper has quit [Ping timeout: 256 seconds]
<geist>
Word
<geist>
And when you do you should always order 2
<jimbzy>
I did for a lot of the components.
<jimbzy>
Varicap double diodes in a TO-92 package, and other stuff that's not exactly 'easy' to order.
<geist>
Reminds me, i need to order more of the MISTr parts. I have the DE-10 nano board, which i expected to take forever because it was on preorder, but then ended up shipping a day later
<jimbzy>
That a FPGA board?
<jimbzy>
Sounds familiar, but I can't put my finger on it.
mimmy__ has quit [Ping timeout: 252 seconds]
bgs has joined #osdev
fedorafa_ has quit [Ping timeout: 256 seconds]
gabi-250 has quit [Ping timeout: 255 seconds]
fedorafansuper has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
Left_Turn has joined #osdev
gabi-250 has joined #osdev
<geist>
Yeah, it’s one of the terasic fpga boards, but this one in particular is the core to the MISTer project
<geist>
which is basically an uber emulator of everything
<geist>
you get a de10 and then there are a few auxiliary boards to connect to game controllers and whatnot and add some extra SDRAM
<geist>
I think the gist is it runs linux on the hard arm cores in the fpga, and then based on what thing you ask it to emulate it loads another bit file onto the fpga side and runs it
<sortie>
Sometimes osdev is just documentation work :)
<sortie>
Protip for all the wannabes out there, if you can't code, you can just make up a fictional operating system and write a vast, complicated, accurate, internally consistent collection of manual pages for it and then just fool everyone into thinking it's a real proprietary system
<sortie>
That's what aix secretly is btw
<sortie>
osdev is all about the unix fan fiction
<geist>
Heh
<geist>
You an even add some sort of source repository, but you have to make sure it’s so hard to build it that no one can actually reproduce it, and thus never prove that it does or doesn’t exist
<geist>
:achievement unlocked:
<sortie>
geist, I do very much enjoy writing very good manual pages for the depths of my OS that will barely be read by anyone
<sortie>
It's a strange exercise :)
<geist>
Yeah i wish i had that same knack. I love a good man page but i am so bad at getting the momentum to write them
<geist>
Even though every time I end up having to it’s generally no big deal
<geist>
And almost kinda fun
<sortie>
It's nice having the body of them, having them interlink, having a html repository of them
<geist>
Totes McGovern
<geist>
Mcgotes… damnit auto fix
<sortie>
Motivates me to keep building on them, and anticipating what actual users of my OS might actually want to know if they were to use it
<sortie>
Surely if it's as hard to build as Android or G3 then surely it's a real big project
<geist>
tesstr okay, good. i just figured out how to disable auto correct for when typing on the physical keyboard attached to the ipad
<sortie>
Obviously the source code must be checked out using a custom tool
<geist>
yah a prebuilt tool that doesnt run on your computer
<geist>
you can get a cloud image to build it, but it costs $10/hr
<sortie>
And obviously 100 G of prebuilts (that doesn't run on your computer) must be downloaded (to /tmp)
<geist>
obviously
c2a2 has joined #osdev
<jimbzy>
Yeah, I was checking out. Very noice.
<geist>
you need to go full self hosted, sortie. like only builds on sortix
<geist>
then the cycle will be complete
fedorafa_ has joined #osdev
<sortie>
And obviously you must accept 7 license agreements before you can even get the toolchain
<sortie>
(which may or may not be the right version and may or may not contain what you need)
<sortie>
Obviously you should've downloaded the IDE solution instead
<sortie>
geist, this has already happened?
<geist>
yeah but youcan still cross build, right?
<sortie>
I do support cross builds, but sortix.org does run on a sortix that was built on sortix, automatically, every night
<geist>
you need to complete the cycle where youcan only realistically build sortix N on sortix N-1
<geist>
when i worked at apple back in the mid 2000s that was effectively the situation with OSX
<geist>
pretty sloppily done, but worked. they’d image the build machine with the previous build, then build the next one, repeat
fedorafansuper has quit [Ping timeout: 256 seconds]
<sortie>
geist, yeah that's technically the rule. Sortix X+1 builds only on Sortix X, or can potentially be cross-compiled (at least from a good supported Linux)
<sortie>
It's gotten a good bit complicated though because Sortix 1.0 is _not_ fully self-hosting, so you gotta do a complicated mixed mode bootstrap to incrementally become the latest 1.1dev
<geist>
yeah makes sense. with a posix system it’s also fairly straightforward. i think where a lto of the OSX problems could arise is all the gui layers
<sortie>
It lets me have requirements like version X must be able to build X+1, and X+1 should be able to build X (so git bisect works)
<geist>
something adds feature X in version N and then N+5 some part of the build needs it to already be present in the SDK installed on the machine, etc
<geist>
yah you’d need that for bisect
<sortie>
Yeah I have a well defined 'build tool' concept that are programs from X+1 that must be built on X to build X+1
<sortie>
(so those programs must also be backwards compatible)
<geist>
we have somewhat of that problem on fuchsia, but not because it’snot hermetic (the build is hella hermetic, almost to a fault) but that we also roll prebuilts very frequently, sopart of the build is downloading all the appropriate tools
<geist>
so bisect is a pain because you have to rewind all the toolchains, etc to sync up
<sortie>
Mmmm
<sortie>
At least gclient sync takes care of that for us
<geist>
yep, but it’s of course a large portion of the reason a fuchsia sync pulls down GB of data basically daily
<geist>
since tons of tools roll all the time and then the build system foreces basically a full rebuild because any of the tools change, everything downstream of it does too
<sortie>
Life at the big G
<geist>
word.
<geist>
cpu is cheap, memory is cheap, disk is cheap
<sortie>
But yeah it's fun defining all of these policies for my hobby project :)
<sortie>
Moving a bit more slowly but doing it right, my way
<geist>
yeah totally
<geist>
listening to you talk about this stuff always gets my hobby os juices flowing too
<sortie>
:)
mimmy__ has joined #osdev
<sortie>
Haha yeah I feel that more osdev stuff happens when I just am online on IRC talking about it, it's shared motivation
<geist>
yah totally
<geist>
though sometimes i have to turn it off and heads down, but that’s been kinda rare lately
<geist>
haven’t been as hobby productive the last month
<sortie>
Yeah I have also been making Sortix pretty tertiary in my life
<geist>
wsas all motivated to learn rust about a month ago and i think that consumed all my hobby cpu cycles
<sortie>
Although right now I feel 1.1 within reach, I FINALLY FINISHED NETWORKING, so I wanna do that in 2023
<geist>
woot, did you get that merged back into mainline?
<geist>
iirc it was some dev branch
<sortie>
Yeah networking is all merged as of a few das ago, except dhclient(8) which I'm still finishing up
<sortie>
So right now if you boot up a nightly, networking will work if you manually ifconfig
<geist>
noice. and i mentioend before it hink but you’re not working on v6?
<kaichiuchi>
you know
<kaichiuchi>
it's kinda hard to believe there isn't a CMake policy for enforcing out of source builds
<sortie>
IPv6? Yeah not yet, out of scope for now
<sortie>
After dhclient, I gotta merge my ssh port and then this thing hits 88 mph
<geist>
yah i’ve actually been almost more interested in v6 over v4. for embedded stuff i think v6 has some neat advantages, most notably zero conf
<geist>
but then i also have full v6 at my house, so it’s actually usable
<geist>
or at least routable v6. everyone has ipv6 even if they dont know it, it’s just probably all link local
<geist>
but even that works fairly well, since it’s zero conf if you dont do anything about it
<sortie>
Yeah alas no ipv6 routing in my home
<sortie>
I do have ipv6 on my pub.sortix.org server though so can totally use it on irc.sortix.org but I just gotta write an IPv6 stack
<sortie>
But ipv4 is good enough for now
<geist>
totes
<sortie>
The rule is to merge, not delay with more features
<geist>
okay i’m freezing here, need to go. (sitting outside a coffee shop in like 5C weather)
<sortie>
Once the tail of networking is merged, I'm very far towards 1.1