<heat>
whereas with vnodes you have a single table of VOP crap, and the exercise is left to the reader
_73 has quit [Ping timeout: 276 seconds]
<kof123>
> what if there were no synchronous io api that is kind of what i figure; one can wrap around async to simulate if wanted
<heat>
Ermine, what would that gain you?
<Ermine>
idk, some random thoughts
<heat>
like, yes, async is better, but synchronous is a more useful programming paradigm in many situations
<geist>
hmm, i bet Portuguese 'b' and 'v' is even less harsh than spanish, right?
<geist>
re: ebil evil
<geist>
hmm, might actually be stronger than spanish
<heat>
wdym harsh
<geist>
well, i mean different i guess, more pronounced. but according to the interwebs, portuguese has a distinct b and v sound
<geist>
more so than most spanish dialects
<zid>
how's your spanish dialect going heat
<heat>
poorly
<heat>
in my portuguese dialect, b is pronounced like a b, v is pronounced like a v
<zid>
disgasting
<heat>
but if you go further north they start switching the v's and b's
<heat>
vaca => baca
<zid>
no, you're the baka, senpai
<geist>
heat: interesting
Turn_Left has joined #osdev
epony has quit [Remote host closed the connection]
Turn_Left has quit [Read error: Connection reset by peer]
epony has joined #osdev
<kof123>
ebil is fine :D > the reason why one letter permutes with another is to be sought in the hieroglyphical equivalents and has nothing to do with the primal nature of sounds
<kof123>
(for that case, in fact)
<kof123>
things get lost just as much by seeing distinctions that are not there :D
<geist>
yah wikipedia says that most of the romance languages started to make more of a distinction between b and v later
<kof123>
well meant tongue on cheek, just ...depends on who you ask :D
<kof123>
*in
* kof123
kills in, puts back on, that was a legit bad correction
<zid>
japanese doesn't have it, only the cool kids can even hear it
<kof123>
really :D *in cheek *depends on a good example of overcorrection lol
<kof123>
because there is a kappa character :D
<kof123>
i will have to pitch parasite kappa to square
gog has quit [Ping timeout: 260 seconds]
navi has quit [Quit: WeeChat 4.0.4]
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
goliath has quit [Quit: SIGSEGV]
kof123 has quit [Ping timeout: 252 seconds]
zxrom_ has quit [Remote host closed the connection]
zxrom_ has joined #osdev
snappy has joined #osdev
kof123 has joined #osdev
gbowne1 has quit [Quit: Leaving]
heat has quit [Remote host closed the connection]
heat has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
meisaka has quit [Ping timeout: 245 seconds]
meisaka has joined #osdev
elastic_dog has quit [Ping timeout: 260 seconds]
cow321 has quit [Ping timeout: 256 seconds]
cow321 has joined #osdev
<epony>
your language matrix broke, looks bad
<epony>
seek your human controller
Arthuria has joined #osdev
elastic_dog has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
Arthuria has joined #osdev
cow321 has quit [Remote host closed the connection]
cow321 has joined #osdev
Arthuria has quit [Ping timeout: 260 seconds]
Arthuria has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
Arthuria has quit [Remote host closed the connection]
<zid>
not right this second, should eat some vegetables?
<zid>
oh I have a bit of rain, checking the window
<zid>
unless it's loud enough to hear indoors I tend not to notice
<GeDaMo>
It's loud here, the noise made me not want to get out of bed :P
<zid>
I'm always in bed
navi has joined #osdev
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 276 seconds]
navi has quit [Ping timeout: 260 seconds]
navi has joined #osdev
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 260 seconds]
<gog>
we had wind and snow yesterday
<gog>
i went out in it to get groceries
<gog>
it was unpleasant and i wore the wrong shoes
<zid>
that's not snow it's ash
<zid>
gog: 6 inch stripper heels are never wrong
<gog>
they are when there's ice :|
<zid>
stripper better
<gog>
and they're 4 inch
<zid>
I've seen people do backflips in heels, you can handle ice
<snappy>
I want to experiment with the Xinu OS. There's many flavours of Xinu but I'm using the one from github at https://github.com/xinu-os/xinu. I think I'm having issues getting started because of the compiler toolchian. I'm compiling on an x86-64 ubuntu 22.04 setup - and I'm using the gcc provided by the system. I think what's happening is it is building an x86-64 variant of the OS and failing (as this
<bslsk05>
github.com: VM work by heatd · Pull Request #88 · heatd/Onyx · GitHub
<heat>
do you like this gog
<heat>
it's very optimal
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 276 seconds]
<heat>
it could still be optimal-er though, if i had a percpu allocator
<gog>
noice
<gog>
i just added an error message that says "whoa, there, pardner!"
<heat>
noice
<gog>
idk if i'll be approved
<heat>
you are approved and valid
<heat>
don't let anyone tell you otherwise
<gog>
i'm trying to see how closely my boss looks at certain parts of the PR because there's an easter egg i want to sneak into the website
<heat>
aka FORCE PUSH
<gog>
no we get notifs for all pushes in slack
<gog>
even if they're forced
<FireFly>
add a konami code easter egg
* FireFly
nods
<heat>
disable notifs, FORCE PUSH, enable notifs
<gog>
i have to sneak it into another PR
<heat>
get fired
<gog>
i can't disable notifs either i don't have permission i already looked
<Ermine>
pcpu != percpu?
<FireFly>
heh
<heat>
Ermine, pcpu is percpu yeah
<heat>
it's very optimal cuz that is all percpu data on its own cache line, stats are easily incremented with "preempt_disable(); pcpu[get_cpu_nr()]->stat++; preempt_enable();" and could be further optimal'd by having a percpu allocator
<heat>
in that case i could just add_per_cpu() which works amazingly in x86 as its a single instruction
<heat>
while the above will compile to something like "incq %gs:preempt_counter; mov %gs:cpu_nr, %rax; incq pcpu(%rax); decq %gs:preempt_counter;"
<Ermine>
noice
<heat>
in any case, no atomics, no cache line contention, which is great
<Ermine>
optimal indeed
<heat>
it'll only slightly suck when reading the counter, but that's not something that needs to be fast
Nixkernal has quit [Ping timeout: 260 seconds]
Nixkernal has joined #osdev
epony has joined #osdev
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 245 seconds]
[itchyjunk] has joined #osdev
Turn_Left has quit [Remote host closed the connection]
[_] has quit [Ping timeout: 268 seconds]
Terlisimo has quit [Quit: Connection reset by beer]
Turn_Left has joined #osdev
Terlisimo has joined #osdev
Turn_Left has quit [Ping timeout: 256 seconds]
Turn_Left has joined #osdev
Turn_Left has quit [Remote host closed the connection]
Turn_Left has joined #osdev
goliath has quit [Quit: SIGSEGV]
<heat>
my inodes sometimes don't get synced and i don't know why :/
<vdamewood>
broken code?
<heat>
my code? buggy? never
* vdamewood
puts a praying mantis in heat's code.
<heat>
ha, found the bug
<heat>
i was never clearing the dirty flag off of my block bufs, so the filesystem metadata code was losing writes
<mjg>
are you a zfs developer? :O
<heat>
no im smarter than that
<mjg>
when you write a file on the filesystem, what's the sizer
<heat>
0
<heat>
schordinger's inode
<mjg>
should be 1
<heat>
schrodinger
<Ermine>
schrödinger
<mjg>
schrodinger cat are normie jokes at this point
<Ermine>
osdev normies do unix-like osen
<Ermine>
mjg: aren't you happy about OPTIMALITY?
<heat>
mjg is never happy, optimality is not reachable
<mjg>
sure it is
<heat>
we will never be optimal :(
<vdamewood>
I wonder how much of the 4.4BSDLite2 codebase could be updated to a modern OS and how much would need to be completely replaced.
<mjg>
removed code is optimized code
<mjg>
vdamewood: you do realize 4.4bsd is a joke os
<heat>
vdamewood, most of it is totally fine
<vdamewood>
mjg: Not according to this text book I have.
<mjg>
lmao what is it
<heat>
the big issue would be to 1) port it to a modern arch 2) make sure it compiles without K&R C skrewing you
<vdamewood>
The Design and Implementation of the 4.4BSD Operating System
<heat>
but 4.4 was totes advanced
<mjg>
vdamewood: right
<vdamewood>
heat: That's one of the 'updates'.
<mjg>
it's a lol book
<heat>
it's plausible that most modern linux software just runs
<mjg>
equivalent of 'solaris internals'
<gog>
that's one of those books the professor of the class wrote so he can justify both the software existing and sell his book
<vdamewood>
mjg: Which part is the funniest?
<Ermine>
Isn't it available for x86?
<mjg>
vdamewood: vnodes
<mjg>
the vfs stuff
cow321 has quit [Remote host closed the connection]
<vdamewood>
Ermine: Not exactly. 4.4BSD was cross platform, but a separate project, called 386BSD ported it to x86.
<vdamewood>
Actually, 386BSD was originally based on the Net/2 release, I think.
<gog>
callme when somebody releases 420.69BSD
cow321 has joined #osdev
* vdamewood
installs FishBSD on gog.
<heat>
4.4BSD is totally fine, mjg is just a professional hater
<heat>
it's optimized for the VAX
<vdamewood>
heat: I figured. But it's fun to play with the haters.
<mjg>
TYPE STABLE
* vdamewood
types stable
<mjg>
why don't you comment on the name cache in that sucke head
<mjg>
heat
[_] has joined #osdev
<mjg>
most notably v_id
<mjg>
or whatever the name was
<heat>
bud, it's pessimal
<heat>
i know
<heat>
but it's also
<heat>
very advanced
<heat>
we mustn't forget these are 40 year old systems
<gog>
me too
<gog>
well, in a few years
<mjg>
it's not advanced
<vdamewood>
I'm so glad I'm not 40 yet.
* vdamewood
hides from 2024.
<heat>
UNIX pre-VAX was much more of a play thing than post-VAX
<heat>
like 4.3-4.4BSD probably does most basic UNIX tasks you'd ask from linux
<heat>
it's not OPTIMAL but it was designed for the VAX in the 80s
<vdamewood>
I figured 4.2 would do everything, too.
<heat>
i have a similar book to that on the svr4, it was a notable system
<heat>
a few parts aged poorly, because that thing was never really designed to run on MP systems
<heat>
but it had all the proper interfaces, and the system was properly portable
[itchyjunk] has quit [Ping timeout: 260 seconds]
<heat>
but STREAMS sucks though lmao
<vdamewood>
Oh, I have The Design and Implemtation of the FreeBSD Operating System, Second Edition, too.
<mjg>
it's a shite book
<mjg>
for real
<vdamewood>
Specifically to get the up-to-date stuff like SMP.
<heat>
yah i don't like that one
<heat>
i found it to be very surface-level
<heat>
and they have a nice wank in the middle of the book about zfs
<mjg>
the book is woefully outdated even for the year it came out in
<mjg>
for example it talks some bullshit about a statically sized vnode table
<mjg>
of "other unix vendors"
<heat>
lol
<heat>
the v7 UNIX vendors!
<vdamewood>
Are you talking about the FreeBSD 2Ed book?
<vdamewood>
or is STREAMS a book I don't know about?
<heat>
freebsd book yeah
<heat>
STREAMS is STREAMS
<heat>
the greatest bad idea ever
<mjg>
if i was to write a custom kernel i would only do it to implement DOORS
<mjg>
MOTHERFUCKER
<heat>
DOORS ON FREEBSD PATCH
cow321 has quit [Remote host closed the connection]
* vdamewood
hugs his dinosaur book.
gog has quit [Quit: Konversation terminated!]
<vdamewood>
I think those three are the only OS-design books I have.
<heat>
i find the best OS books are the ones written by not-the-authors
<mjg>
bro
<mjg>
no
<mjg>
it's all SUCKKK
<heat>
solaris internals, 4.4bsd, freebsd sound very... self-fellatioey
<mjg>
i don't know of any *really* good os book
<mjg>
if there was one it would be shitting on unix
<heat>
are you dave cutler
<heat>
WAIT, ARE YOU THE OPENVMS GUY
<mjg>
dude davec said they took best ideas from unix to openvms
<mjg>
which is liek lol
<heat>
did they take any?
<mjg>
i don't know, sounds suspicious
<Ermine>
STREAMS STREAMS STREAMS STREAMS
<Ermine>
- i took best ideas from unix
<Ermine>
- but there's nothing from unix in your os!
<Ermine>
- i know
<mjg>
pipes are ok
<mjg>
does openvms do pipe
<mjg>
s
<Ermine>
who doesn't
<mjg>
does fuchsia do pipes?
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
i think so
xenos1984 has joined #osdev
gog has joined #osdev
xenos1984 has quit [Ping timeout: 276 seconds]
xenos1984 has joined #osdev
masoudd__ has joined #osdev
justache is now known as justResolute
justResolute is now known as justIrresolute
masoudd_ has quit [Ping timeout: 245 seconds]
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 240 seconds]
xenos1984 has quit [Ping timeout: 260 seconds]
zxrom_ is now known as zxrom
xenos1984 has joined #osdev
gog has quit [Ping timeout: 264 seconds]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 268 seconds]
MrBonkers has quit [Remote host closed the connection]
gog has joined #osdev
<kof123>
re: taking the best ideas of unix sounds a bit like....anything unix can do, vms can do, i.e. it is a superset.....what i mean is, it sounds like something someone would say to say "vms can do everything unix can, and more"
MrBonkers has joined #osdev
<Ellenor>
When you are within UNIX, its power seems inescapable.
gildasio has quit [Remote host closed the connection]
<Ellenor>
I use an old copy of weechat
gildasio has joined #osdev
<sham1>
Why not use a newer weechat
<heat>
how many UAF exploits are you vulnerable to rn
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 268 seconds]
[_] has joined #osdev
cow321 has joined #osdev
[itchyjunk] has quit [Ping timeout: 260 seconds]
dude12312414 has joined #osdev
cow321 has quit [Remote host closed the connection]
cow321 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
alexander has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
vdamewood has quit [Ping timeout: 245 seconds]
<geist>
yah strikethrough worked here
alexander has joined #osdev
Piraty has quit [Quit: -]
<geist>
i think cutler saying they took the best ideas from unix to openvms and then not really having taken any ideas is more of a subtle dig at unix
Piraty has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<gog>
i take all my ideas from linux
<zid>
I take all my ideas from the ideas on the lKML, then implement them before linux
<zid>
then patent troll linux
<gog>
the only idea i ever took from the lkml was using solaris and kissing girls
<kof123>
i favour cray (paraphrase) you could do anything you wanted [in the 50s/60s] because noone knew what an operating system was
<FireFly>
gog: seems to be working out well :o
<kof123>
my vms guess was because someones were discussing in another channel...and vmsman was saying you could do records stuff for files, or unix-style...and unixman was saying nobody needs that
<kof123>
and/or that the "unix-style" took off elsewhere
cow321 has quit [Remote host closed the connection]
PublicWiFi has quit [Read error: Connection reset by peer]
cow321 has joined #osdev
PublicWiFi has joined #osdev
zid has quit [Read error: Connection reset by peer]
zid has joined #osdev
<geist>
record stuff is definitely a think vms is big on
<geist>
i never completely figured out where the metadata about records go. is it part of the file? or when you open the file do you specify the record layout? (probably the latter)
<geist>
but as a result the OS can do record level locking for you, and i think somewhat importantly between nodes in a cluster
<geist>
shared file locks basically
<geist>
i've dug into the structure of a handful of system files (sus$user.dat, etc) and they always seem to be records of a fixed size
masoudd_ 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!]
masoudd__ has quit [Ping timeout: 260 seconds]
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 256 seconds]
<heat>
I'M BACK
<moon-child>
hi back I'm upcat
<heat>
what's upcat
<moon-child>
:3
<heat>
testicle chin?
<heat>
ok so i have a question
<heat>
when re-ordering and merging block IO requests is there generally any expectation of order?
<heat>
i would assume not, because, erm, it's all async and the device may be multiqueue
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 245 seconds]
<Ermine>
what can possibly expect any order?
<heat>
i don't know
<kof123>
well, for ancient things you presumably want to order to reduce seeking but .... i'm sure most are not concerned :D
<heat>
i think shit like flushing caches or other special commands may want special treatment anyway
<heat>
because, you know, multiqueue
<heat>
but, again, i'm not sure
<heat>
kof123, what i really want to do is request plugging, where you plug, submit commands and then unplug, and requests "within" the plug get merged and re-ordered together
<heat>
because that's going to make a big difference in performance
<kof123>
yes i'm not qualified and everything you say matches what i suspect :D
<heat>
for SSD hardware, at least. i'm not too worried about mechanical performance yet
<heat>
the really big difference maker is going to be the number of requests
gbowne1 has joined #osdev
<heat>
as long as i don't piss away like 10000 1024-sized requests it should handle it pretty well
<kof123>
yeah, i assumed you could merge stuff like that
<kof123>
or the "hardware" will
<heat>
yeah i don't think the hardware does it
<heat>
or at least it doesn't do it efficiently enough
<zid>
The mechanical performance of my SSD is poor
<zid>
it can barely support any amount of weight
<heat>
have you tried sitting on it?
<zid>
how do you think I know
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 245 seconds]
masoudd_ has quit [Ping timeout: 256 seconds]
zetef has joined #osdev
zid` has joined #osdev
zid has quit [Read error: Connection reset by peer]