<graphitemaster>
All that security work we do is really for nothing isn't it. Never underestimate wage disparity and $50 a month.
<Mutabah>
That's definitely something special
<sonny>
graphitemaster I'm dumb, what is this?
<moon-child>
wow
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
<kazinsal>
I want to get one sent to a PO box under a fake name and then disassemble it
<kazinsal>
play a game of "bitcoin or KGB"
<graphitemaster>
Likely botnet
<graphitemaster>
When you think about it, this is a pretty clever way to do a botnet - rather than hacking computers, just give people RPis and a couple dollars a month to host them on their network - probably cheaper if you factor in how much you value your time.
<Griwes>
por que no los dos (tres?)
<graphitemaster>
And since the middle class is basically a dying concept in most countries, if the offer is the price of the internet a month - well you'd probably get a ton of people to do it.
<sonny>
won't the target countries have to be pretty specific?
<sonny>
that's pretty evil though
<Mutabah>
Seems kinda expensive for a single botnet node...
k8yun has quit [Quit: Leaving]
<Mutabah>
I'm guessing it's an attempt at corporate infiltration.
<kazinsal>
fifty bucks per mark per month is nothing to a state-level or state-affiliated actor
<sonny>
O.o
<kazinsal>
send out a hundred of them and maybe get lucky and end up in some really shittily-maintained industrial network
<kazinsal>
fiddle with some dot1q packets and whoops you're on another VLAN messing around with SCADA traffic
<sonny>
heh I don't think you need a bot for bad industrial networks ... just a van and a laptop xD
<CompanionCube>
if it would be any crypto, wouldn't it be monero?
<kazinsal>
probably. I don't know much about the modern crypto sphere apart from "yep, still all scams all the way down"
<kazinsal>
all I know about monero is that it's the one that everyone doing illegal shit moved to because it does tornado stuff as part of the transaction process
<CompanionCube>
i also picked it because btc/eth can't be mined on CPUs efficiently.
troseman has quit [Ping timeout: 240 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
bradd has quit [Remote host closed the connection]
zid has quit [Ping timeout: 268 seconds]
<remexre>
semi-OT question: does anyone know of a diagram of all the architecturally-visible state of an amd64 CPU to a user-mode Linux CPU
<remexre>
er, to a user-mode Linux process*
zid has joined #osdev
<remexre>
off the top of my head, {scalar,vector,segment} registers, rip, physical memory state, cpuid, paging, segments; am I overlooking anything? (and would prefer a diagram to making one, if anyone knows of one)
zid has quit [Read error: Connection reset by peer]
<remexre>
er, gdt entries, not segments; and forgot rflags
zid has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
Mikaku has joined #osdev
<moon-child>
performance counters
<moon-child>
time (rdtsc)
<moon-child>
mask registers (avx512)
bradd has joined #osdev
<zid>
Things moon-child is jealous of not having on his bbc micro
<moon-child>
zid is flexing his fancy new cpu
<zid>
I don't even have avx2 :p
mahmutov has joined #osdev
<zid>
eats my fpu perf in benchmarks, but I don't think much actual software bothers with it
<moon-child>
wait really?
<moon-child>
I thought all remotely recent cpus had avx2
<zid>
>remotely recent
<zid>
agreed, mine is not
<moon-child>
my craptop from 6 years ago has it (though it's pretty slow)
<zid>
That's how I could afford it in the first place ;)
<zid>
12 thread 5GHz xeons are just old hat to intel, they're busy focusing on 128 thread 2GHz webserver cpus
<kazinsal>
in my experience avx2 is great in long sustained avx2-specific workloads when you have a sufficient power and thermal budget
<moon-child>
xeons have a fuckload of cache, right?
<zid>
my quad had 10, the hex has 12
<kazinsal>
interleaving avx and non-avx code on most processors just absolutely sucks
<zid>
512 has that even worse
<geist>
i think at that gen, this particular xeon zid has is basically a rebadged core i9, etc
<zid>
running an avx512 instruction takes like 20000 cycles for the first one, and the rest are free
<kazinsal>
clock speed drops a couple hundred megahertz, TDP shoots up, spinup is slow
<geist>
basically the hexacore super enthusiast stuff that they would also sell as xeons (or vice versa depending on your point of view)
<zid>
Yea this is basically a 3930k
<zid>
previous was a 3820
<moon-child>
kazinsal: in apl land, there is no non-avx code
<zid>
3960X maybe I forget
<geist>
and yeah AVX just appeared on sandy bridge, still had some serious performance problems when switching to/from it
<zid>
3960X got reused for threadripper
<kazinsal>
yeah I think the xeon-w series is basically top-end i7/i9 chips that they turned ECC on for
<moon-child>
(actually it's kinda annoying, there's no avx version of popcnt or tzcnt/lzcnt, so you have to fake it)
<zid>
so now there's an intel 3960x and amd 3960x :p
<zid>
3960x has 15MB of cache but is otherwise identical by the looks of it
<zid>
3930k is identical
<kazinsal>
not surprising. means you can turn a xeon-whatever with a meg of defective cache into a 3930x just by laser fusing off that meg
<zid>
yea a 3820 is just the a 1620 xeon with the fuses blown
<zid>
Which is presumably why the 1620 gets stuck at 43 multi
<geist>
yah i thik the big thing at the time was the die didn't have a GPU on board, right?
<geist>
hence why they could stick a 6 core in there
<zid>
some do some don't, this gen
<zid>
seems kinda random tbh
<zid>
the quad doesn't have graphics, nor does the hex
<geist>
yah i think it was mostly bsaed on what die it was based on. was it truly a downscaled xeon or an upscaled consumer thing
<zid>
and intel sometimes sell the same cpu with and without graphics, k and kf or whatever
<geist>
with the assumption that enthusiast consumer stuff was usually more of a xeon than anything else
<geist>
i dont think they started the kf stuff until way later, like the 8000 series
<geist>
but yeah they do that know
<geist>
i just wish they'd stop wasting die on their dumb GPU. at least AMD has the courtesy to do that
<zid>
It'd be interesting to be a fly on the wall at intel and see "we have 10% defects in this batch and the gpus don't work, let's spin up a SKU of non gpu chips" etc
<zid>
I imagine they're *more* similar internally than people expect, and there's a line somewhere that has never been sold with a gpu but still has it on the die
<geist>
only real upside to the gpu on board the intel things is you can build a server without buying a cheapo vid card
<zid>
they're super duper handy for that yea
<zid>
If you'd normally have to put a gt-210 in the machine
<geist>
well at the time anandtech and whatnot could tell you precisely what's up. i just forget all of those series, and kinda lost track of intel stuff after a while
<geist>
as in they'd figure out precisely what die things were based on, which is quite interesting when you look at the whole family that they're selling at any given point
<geist>
i kick myself for not getting another one but at some point at a computer surplus store in seattle they were selling like $10 PCI-e x1 vid cards. i picked one up and use it now
<geist>
but they're worth their weight in gold as far as i'm concerned, since you can stuff it anywhere
<zid>
even 210/710s are hard to get now because of the crypto/fab-capacity nonsense
<geist>
use it in my amd server since i ran out of slots and had a 10gbe x4 card i needed to plug into the x16 slot
<zid>
people are waiting for the 3080s and buying a 710 or whatever
<zid>
The server board gen that goes with this cpu just has a 2MB matrox video card on the mobo or whatever it is
<geist>
probably an ASPEED
<geist>
they make this little all in one server chip with vid and an extra eth/serial,etc to build your management stuff on it
<zid>
ASPEED AST2400 BMC
<zid>
yea superio + vga thing
<geist>
yah i've seen those all over the place. they seem to be pretty much the only company that makes exactly that thing
<geist>
even this ARM workstation/server board has one
<zid>
for the kvm
<kazinsal>
hmm. due to the nightmare that is supply chains, there is effectively no upgrade path for me that doesn't involve a new motherboard and CPU and RAM. boo
<kazinsal>
best thing I can shove in my board up from this 8700K is a 9900K and that'd cost about as much as a 12700K, so... not worth
<zid>
I have one remaining upgrade, 32GB of 933MHz ECC unreg, stolen from a mac pro 2013
<bslsk05>
www.ebay.co.uk: Original Apple 32GB 4 x 8GB 2Rx8 PC3-14900E DDR3 1866MHz DIMM MAC PRO 2013 | eBay
sonny has quit [Quit: Client closed]
<zid>
so if anyone has more money than sense, or a broken mac pro 2013, lmk :P
<kazinsal>
I had more money than sense, but then I bought a vax :P
<zid>
you might think "why from a mac pro" but people sell it as a replacement part for £60, but if you look for unreg ecc it's £130 instead
catern has quit [Ping timeout: 240 seconds]
<kazinsal>
jesus. a used 9900KS would cost more than a new whole new system (minus GPU of course)
kori has joined #osdev
<zid>
I helped friendo shop for a new PC the other day, a 12600k machine slaps together pretty cheaply
<zid>
and absolutely murders, intel's first good gen in a long time
bradd has quit [Ping timeout: 240 seconds]
bradd has joined #osdev
zid has quit [Ping timeout: 240 seconds]
elastic_dog has quit [Ping timeout: 245 seconds]
the_lanetly_052 has joined #osdev
elastic_dog has joined #osdev
zid has joined #osdev
<zid>
Just shat a baby, windows bluescreened and then none of my drives showed up in bios. full cold boot brought them back.
<moon-child>
shitting babies doesn't seem particularly good for your health
<zid>
best guess: When I was doing crashy online overclocking earlier I broke some code in memory, resulting in a fucked up ahci command being issued, which killed the controller
<zid>
that murdered windows, and the fact I warm rebooted meant all the drives were still missing
<kazinsal>
possibly also wonky firmware
<zid>
(I was messing with voltages and multipliers while the machine was running a live windows install.. I am smart)
<kazinsal>
modern firmware is responsible for so much that I-- oh
<kazinsal>
yeah, you diddly-done broke a thing
<zid>
but that was hours ago so I figured no harm done, only prime95 had crashed :p
<moon-child>
the real question is
<moon-child>
why were you running windows in the first place?
<zid>
either that or it crashes again and I need to bump voltages
<zid>
because who needs an overclocked cpu on linux
<zid>
checkmate.
<kazinsal>
if I have a desktop, I want to run a desktop operating system on it
<j`ey>
not this again lol
<zid>
I *need* 800fps not 760fps, it's 100% vital.
<moon-child>
j`ey: sorry, it was my fault
<moon-child>
zid: imagine only getting 800fps. What a noob
<zid>
My heart is still very angry at me, I need a lie down
nyah has joined #osdev
pretty_dumm_guy has joined #osdev
hyenasky has joined #osdev
<hyenasky>
how come page swapping is so uncommon in osdev projects
<hyenasky>
other vmm cool stuff like demand paging and COW are only a little more frequent
<klange>
Couple of reasons come to mind. Many hobby OSes barely even manage a disk driver. System memory has increased significantly, to the point where it's hardly even necesasry to swap to disk on modern 'real' OSes.
<hyenasky>
its so cool though
<hyenasky>
do you know of any public osdev projects that have a swap impl
<kazinsal>
sortix might? honestly not sure. most of us target machines with more memory than we realistically plan on using
<kazinsal>
if you consider something like redox to be an "osdev project" I bet it does
<hyenasky>
i looked at sortix and it didnt seem to
<hyenasky>
i also looked at essence and serenity and a few others
<hyenasky>
might have missed it though since i was perusing
<kazinsal>
personally I consider out-of-memory to be a condition that shouldn't happen
<hyenasky>
redox's memory manager seems super simple unless im missing something
<kazinsal>
but that's because I also pre-allocate everything I *need*
Payam has joined #osdev
<kazinsal>
and before you ask no I do not have a public repo currently
<kazinsal>
I plan on open sourcing my project after it's "usable"
<Mutabah>
hyenasky: Just looking for something with a non-trivial VMM? Or what?
<hyenasky>
yeah basically
<hyenasky>
i was working on my own and my first instinct is to steal good ideas from everyone else who did it but was surprised to not be able to find anyone else who did it
<Mutabah>
I've not tried (or I'd link to my implementation), but I feel that it would add a LOT of complexity to the implementation
<klange>
Not doing it _is_ a good idea to steal.
<Mutabah>
(you now need pinning for kernel pages for the paging code, and a very reliable disk driver)
<kazinsal>
swap is kind of a mistake
<kazinsal>
in my experience swap enables userspace programmers to be lazy and that's about it
<hyenasky>
klange: im targeting 4MB ram it aint optional if i want a window system and stuff
<hyenasky>
im the limnstation guy if you remember me
<kazinsal>
I play League of Legends and there are a number of third-party programs that do various things to "assist" you in the sense that they look up optimal builds for you based on what you pick and what the enemy player in your lane picks, and pretty much all of them leak memory like a sieve
<kazinsal>
there have been cases where my machine OOMs because one of those programs has leaked 60 gigs of swap in the background
* klange
targets live CDs with the expectation of not having any writable media
<kazinsal>
the kernel does its best to stop the machine from dying but it becomes clear that the swap is exhausted
<kazinsal>
admittedly it becomes clear to *me* because I'm a tech user but your average user would not be able to diagnose the symptoms of memory and swap exhaustion
<kazinsal>
so don't do swap
* klange
did do a mediocre CoW implementation on x86-64
<kazinsal>
it makes shit difficult to troubleshoot
<hyenasky>
well like i mentioned im targeting 4MB RAM so i kinda got to
<kazinsal>
and makes your userspace programmers complacent
<hyenasky>
nobody's meant to actually use this tbh its just supposed to be fun
<kazinsal>
the Windows team got a working graphical userspace with cooperative multitasking working in 256K in 1985
<j`ey>
did it have swap?
<kazinsal>
it did not
<hyenasky>
windows in 1985 was extremely primitive & written mostly in asm
<klange>
Windows also historically used what I call a "pen-based" windowing system for so long it became a meme.
<kazinsal>
I'm not sure if Windows/386 had swap but I would bet that it did not
<hyenasky>
i think windows 3.1 did have swap
<hyenasky>
win95 100% did obviously
<kazinsal>
I don't have a copy laying around nor quite the intent to set up a VM for Windows 2.x running on 386
<kazinsal>
with four megs of memory you can run NT 3.1 I think
<hyenasky>
i actually tried and NT 3.1 locked up on boot with 4MB from probably extreme thrashing
<hyenasky>
lowest it would go was like 6MB
<hyenasky>
with the memory pressure meter all the way at the top
<kazinsal>
ah, boo hiss, minimum requirements for 3.1 are twelve megs
<kazinsal>
that being said I highly recommend reading some anecdotes and books from NT development
<hyenasky>
i actually bought like 2 books about it lol
<klange>
4 wanted 16 and under 42 you'd be constantly swapping
<klange>
under 24*
<kazinsal>
it's very interesting, shows off how much of the design is inspired by VMS
<hyenasky>
"what makes it page" and "windows nt file system internals"
<hyenasky>
i also got "vms 4.4 internals and data structures"
<hyenasky>
i have been scouring them for like 4 months lol
<kazinsal>
for modern stuff the latest edition/volume of Windows Internals is really good
* klange
has reminded themselves of the Emacs joke: "eight megabytes and constantly swapping"
<kazinsal>
there's 200 pages on NTFS and the VFS subsystem
<hyenasky>
yea my kernel is heavily NT inspired
<hyenasky>
i read showstopper in november 2020 and got obsessed
<hyenasky>
very cool kernel design
<hyenasky>
NT has, i mean
<klange>
I want to make some quip about how the inspirations for my kernel design were largely in the form of things I've avoided.
<hyenasky>
wdym
<kazinsal>
my kernel design was inspired by J.P. Wiser and Alfred Lamb
<klange>
My design philosophy in ToaruOS has been "simplicity and readability, even if at the expensive of functionality and correctness".
<hyenasky>
most of the NT's kernel code, data, and heap are swappable and even the thread kernel stacks can be swapped out
<hyenasky>
yeah i actually looked a lot at toaruos when i was trying to get my first bad unix clone going
<hyenasky>
it was pretty understandable
<hyenasky>
toaruOS, xv6, and another one i forget were the biggest helps for me to understand stuff like scheduling and general OS data structures
<hyenasky>
i ended up deciding unix is boring though lol
<klange>
When I set out, I wanted to "learn by doing"; ToaruOS is Unixy because I wanted to learn more about Unix and Unix-like systems.
<klange>
This eventually grew to "when someone asks a question about how this thing works, I want something I can point to that does it like the 'Big Leagues', but which is readable enough to be a viable explanation on its own".
<hyenasky>
my personal aim is to have the fattest vmm in the osdev scene lol
<kazinsal>
/* You are not expected to understand this. */
<klange>
Also a lot of spite. Spite for academic OS teaching. Spite for books that spent far too much time talking about concepts like paging to disk ;). Spite for how little functionality was in uni project OSes.
<hyenasky>
to be fair you have to dig pretty deep to find substantial information about how paging to disk actually works
<hyenasky>
the descriptions in the popular textbooks are extremely superficial even if they consume like 20 pages
<klange>
(Okay my real beef with OS theory books is how much time gets spent talking about scheduling algorithms in a way that stopped being relevant before Unix existed)
<hyenasky>
you basically HAVE to study existing implementations
<hyenasky>
yeah i noticed that too lol
<hyenasky>
things like demand paging, COW, and shared memory for files i think are still important even if swapping isnt as much
<hyenasky>
and also anonymous shared memory obv
<klange>
I swear I'll get around to proper memory-mapped files soon...
<hyenasky>
i beat u to the punch on that one lol
archenoth has joined #osdev
<klange>
I've been distracted.
<klange>
I don't have concrete plans, just a constant ADHD-induced 'do whatever is interesting in the moment'.
<klange>
It's a miracle of pharmaceutical science I've managed to actually complete the x86-64 and aarch64 ports.
<hyenasky>
i follow a todo list
<klange>
I have one. Or several, really, I do try to write TODO lists for individual projects.
<klange>
But it's psychologically difficult for me to just pick a thing on the list and do it.
<hyenasky>
for like 6 months i was working randomly also but i sketched out a rough roadmap and i fill in details as i approach those bits and i just work on it in order
<hyenasky>
my productivity went up a huge amount
<hyenasky>
i wrote like 30000ish lines since october
Oshawott has quit [Ping timeout: 272 seconds]
<hyenasky>
20000 in the 9 months before that
<hyenasky>
so i now have a giant overengineered kernel for a 32-bit nosmp platform
<bslsk05>
limnarch/mintia - Windows NT-inspired OS for a custom computer architecture (1 forks/31 stargazers/MIT)
<kazinsal>
I've been distracted as well
<kazinsal>
I want to get somewhere with my project because I know I have the capability to do so but there's so many things "blocking" me
<kazinsal>
advancing my career has been important but also I'm running up against issues with testing in virtualization and finding sufficiently "realistic" physical platforms is becoming difficult
<klange>
My main problem recently has been that I've hit a few walls with issues and then by the time I was able to figure them out, the 'burst' of focus was gone.
<hyenasky>
i was working like 8 hours a day for 6 months since i wasnt doing anything after i graduated HS in june but i just started my first semester of college
<hyenasky>
so i have to control myself or ill fail all my classes lol
<hyenasky>
working [on my project]*
<kazinsal>
heh. ironically if I could go back in time to high school one of the things I'd do would be to actually go to class
<klange>
I went to all of my high school classes...
<kazinsal>
but if I could go back in time a decade and change that'd probably be like, priority three or four on the list
<klange>
Uni was a different story...
<hyenasky>
ive been skipping college classes a lot less than hs ones
<kazinsal>
uni was kind of fun for me because once in a while I used to go to other universities and sit in on random lectures
<klange>
I regret... maybe not going to my statistics class? Also I was physically in my compilers classes, but I sure as shit wasn't mentally there.
<kazinsal>
I'd decide, fuck it, and go to SFU to sit in on a psych class or something
<kazinsal>
because no one cared about attendance or whatever then
<kazinsal>
I imagine those days are long gone
<klange>
Vikram fricken' Adve couldn't teach me how to write a compiler successfully. It took some guy's ebook and six months of antidepressants to finally manage one.
<moon-child>
who's vikram adve?
<hyenasky>
i did the worst one ever in like 2 hours and then spent the next 3 years grappling with the consequences of that decision
<klange>
moon-child: LLVM
<kazinsal>
yeah, most of my profs/instructors were pretty useless at actually embedding stuff into my brain
<moon-child>
chris lattner?
<moon-child>
huh apparently he was also one of the authors
<klange>
"isn't that Chris Lattner?" you ask - Chris was his student
<kazinsal>
I still work for an evolution of the company that hired me out of uni
<moon-child>
OH
<kazinsal>
I swear I learned more in the first six months there than I did in an entire undergrad at BCIT
<j`ey>
kazinsal: same, but not even an evolution
<kazinsal>
one of the then-managers who interviewed me back then is now a VP and is about to be my boss once again
<kazinsal>
I'll never forget that interview. it was somewhat technical, with the usual theory questions, then he asked "why do we need spanning tree algorithms"
elastic_dog has quit [Ping timeout: 240 seconds]
<kazinsal>
so I did the whole spiel about why we need spanning tree algorithms
<kazinsal>
and he said "okay, that's perfect, but why do we *need* spanning tree"
<kazinsal>
and all I could think of was "because someone might plug something in thinking they're helping?"
<kazinsal>
and he replied "yes, because users are stupid"
<j`ey>
lol
<kazinsal>
on a slightly more topic-relevant note, probably the main reason I actually secured that job is because of osdev. not because the company is an OS company, but because having the kind of attitude and passion required to teach yourself OS concepts and practice is the kind of give-a-shit attitude that a lot of places look at and go "they'll go far"
<hyenasky>
thats my hope for how my project will help me lol
<hyenasky>
or thats how i justify spending time on it to myself
<kazinsal>
among other things I am currently regarded as the low-level wizard, because of my experience in osdev and my understanding of weird crap in the intel manuals
<hyenasky>
so its good to hear that it actually helped someone else lol
<kazinsal>
having been known for telling Cisco TAC "no, you're wrong, and here's why" on a few points of machine check architecture
<kazinsal>
and predictively diagnosing hardware failures
elastic_dog has joined #osdev
dormito has quit [Quit: WeeChat 3.3]
<kazinsal>
if I have one piece of advice for using your osdev hobby as a selling point career wise it's to not make it your identity of sorts. talk about it confidently as a passion that shows your resilience in the face of bizarre and esoteric technical problems. relate it to the job if possible but it shouldn't be portrayed as the sole thing you care about
<kazinsal>
unless you manage to find the magic osdev factory where you can use it as your solid indisputable "in", then it's a side selling point
<kazinsal>
use it as a mark of character more than anything else
<mjg>
i don't think there is anything magic here, it's not hard to find an OS-dev job if you really want one, but majority of it is device drivers
<hyenasky>
osdev would be my ideal job since it unfortunately is actually the only thing i care about
<hyenasky>
rn at least
<mjg>
what exactly do you care about
<kazinsal>
find a technology that interests you
<klange>
It's all very divorced from what happens in a hobby OS project, and that device driver stuff requires a solid background in the relevant hardware.
<mjg>
hw interaction, higherl level concepts or what
<mjg>
klange: no. you do need some experience writing drivers of course, but that's enough to land a job
<kazinsal>
for me it was networking. there's layers there that start at "physical encoding of bits on the wire" and go all the way up to "ultra high speed filtering and routing algorithms"
<geist>
wow i step awy for a bit and this is a great conversation
<hyenasky>
mjg: hard to say its kind of all very cool
<mjg>
well that will pass :-P
<hyenasky>
whys that
<geist>
also what kazinsal has been saying for the last bit is 100%
<mjg>
i think the only problem re jobs is pay
<hyenasky>
hello geist i talked to you extremely briefly in osdev discord like 4 months ago or something
<mjg>
i find os-related development to be laughably underpaid
hyenasky has quit [Quit: Client closed]
<geist>
oh hi! yeah on the osdev discord which i left shortly afterwards
hyenasky has joined #osdev
<geist>
also to repeat:
<kazinsal>
admittedly I feel I had a bit of "genetic help", heh. my father was a telephone/service provider guy. he spent 33 years working for The Phone Company, and did everything from residential analogue phone line installs to 10Gbps fibre installs. my grandfather spent some 40 years also working for The Phone Company, doing everything from terminating lines in the late 40s to management in the early digital CPE era of the late 80s
<geist>
oh hi! yeah on the osdev discord which i left shortly afterwards
<hyenasky>
sorry my internet did something weird
<kazinsal>
so naturally I became a "phone guy".
<kazinsal>
though I absolutely hate unified communications and only work on it out of necessity. I'm professionally more comfortable in the datacenter/enterprise routing and switching space
<kazinsal>
so I guess that's another piece of advice: become somewhat spread out in fields adjacent to the one you're interested in, and you can become someone that people look at and go "hey, they probably know the answer"
<kazinsal>
and you'll be someone that the bosses look at and hear good things about and you'll make your way upwards.
<mjg>
i would argue go to a big shop where you can position yourself over time to mostly do what you want
<j`ey>
mjg: thats what i did kinda
<hyenasky>
im only 19 so i can probably focus on what i want to rn and take my time branching out
<mjg>
well, climbing the career ladder is not necessarily related to being any good
<kazinsal>
I started on the helpdesk, moved up to small projects delivery, then moved back to what I like to call "sysadmin support" as a subject matter expert and now I do datacenter builds for NGOs and the like
<hyenasky>
while i go through school at least
<geist>
mjg: yeah tell me about it
<kazinsal>
now I'm finishing up my last few weeks of "sysadmin support" subject matter expert stuff because the VP of delivery wants me on the projects team full time again
<mjg>
geist: you are really asking me to rant here
<mjg>
;)
<geist>
haha no. i'm more being deprecating actually, probably a misread
<kazinsal>
after having rebuilt and transitioned the whole datacenter for a medical institute in east africa
<geist>
as in why do they think i am worth anything at all
<mjg>
geist: i know the idiom of "tell me about"
* klange
might want to step away from this conversation at this stage
<mjg>
geist: which means you are well aware
<geist>
heh
<kazinsal>
geist: haha yeah, I wake up some mornings and ask myself the same thing
<mjg>
geist: it's just that i have an incredibly nasty case to rant about
<hyenasky>
geist what is your take on fancy vmms
<geist>
eventually all serious systems need fancy vmms
<kazinsal>
if you asked me to rate my own work I'd probably fire myself.
<mjg>
tell your bos
<mjg>
s
<geist>
it takes years to crawl through it and you never end, but VMMs are one of the hardest parts of modern os design
GeDaMo has joined #osdev
<kazinsal>
lol, man, my supervisory state is bizaaaaaaaaare
<geist>
kazinsal: well, it's perf time at work right now, where you're asked to do precisely that.every 6 months
<geist>
it's grueling
<kazinsal>
I don't even know who my boss *is* really
<kazinsal>
technically my "team lead" is a guy who's been here for less time than I have
<kazinsal>
my supervisor has been here for less time than my team lead
<mjg>
lol at self eval, even more gaming
<kazinsal>
and my *manager* has been here for a year or two longer than me
<geist>
mjg: yeah and that's the worst part. some people thrive on it and play the system
<kazinsal>
but the director/VP who wants me directly under him has been here for like 20 years
<geist>
and some of us find it incredibly painful
<mjg>
geist: well you asked for it
<klange>
In my experience, my OS-dev history only acted against me in trying to get an OS-dev-related job.
<geist>
so it advntages folks that play the game
<mjg>
geist: there is this f-ing guy who got promoted from junior to principal over few years by gaming the system hard
<kazinsal>
the perf crunch at the big G is one of the reasons I never got into that particular branch of the tech world
<mjg>
geist: it was disgusting to watch
<geist>
mjg: yeah
<GeDaMo>
klange: were they afraid you might have opinions of your own? :P
<hyenasky>
klange: i fear that also
<kazinsal>
I don't want to crank out some killer app that'll be discarded in six months when I get side-promoted elsewhere.
<kazinsal>
right now I'm dealing with wrapping up a diagnostics/management playbook for this bizarre azure kubernetes service thing we sold on a whim and I frankly hate it
<kazinsal>
this isn't my field. this isn't *anyone's* field in my department.
<kazinsal>
and in a year it's not going to be relevant to our business
<geist>
i think my problem is i have one skill that i'm very good at but i fairly quickly work myself into obsolescence
<geist>
by training up and helping others to superscede me
<geist>
and then what. you're obsolete
<kazinsal>
I got spammed by a recruiter from meta a while ago looking for some kind of network systems engineer. it took several tries to explain to them that I'm not that kind of "engineer".
<geist>
i know my weaknesses and refuse to Peter Principle myself into a bad plae
<j`ey>
isnt the easier answer to say you dont want to work at meta? :P
<kazinsal>
they were looking for some kind of 15+ years experience architect in the SaaS field and I'm just a network toucher
<kazinsal>
as I said to them, if you want me to unbox and stage several racks' worth of Cisco equipment and UCS chassis and blades, I'll do that for you
<kazinsal>
that's what I know how to do, and that's what I like doing
<klange>
I've dumped this rant before. Working on a hobby OS will mean you're always several steps behind the cutting edge that anyone hiring actually cares about. What you may see as accomplishments will only be seen as shortcomings when compared to real industry work.
<geist>
as i think this whole pandemic has taught me (and probaby others). it's just a job. it always was
<kazinsal>
I don't give a sweet god damn about docker or kubernetes or whatever the fancy new hotness is
<kazinsal>
I like making things between layers 0 and 4 work. that's it.
<j`ey>
surely industry doesnt expect you to match industry standard by yourself
<bslsk05>
www.ribbonfarm.com: The Gervais Principle, Or The Office According to “The Office”
<kazinsal>
you give me some extremely malfunctioning ESXi host and I will debug the nine hells out of it
<geist>
mjg: oooh looks good, probably even more depressing
<kazinsal>
you give me some SaaS/IaaS cloud thing and I'm going to ask you why you called me
<kazinsal>
on one hand it sucks that the field I'm in is shrinking
<geist>
klange: i dunno, i really disagree with a fair amount of what you're syaing there
<hyenasky>
can i link a 1982 paper about virtual memory management in VMS that i think is cool
<hyenasky>
dunno if i have to ask im not used to irc etiquette
<kazinsal>
on the other I guess in the future it means I'll be one of those greybeards who can handle it while everyone else is writing dodgy nodejs on kuberdockertes
<geist>
hyenasky: sure. you even are in the presence of a few VAX enthusiasts
<hyenasky>
if you ignore the VAX-specific parts this still describes a very solid virtual memory system
<hyenasky>
like that would be workable even today
<kazinsal>
the VAX memory management high level is something I wrote a bit about on another forum
<hyenasky>
(plus its almost exactly how NT works to this day)
<kazinsal>
I still don't really know what I want to do when my vax arrives
<geist>
pet it. love it
<kazinsal>
I'm sure there'll be a VMS install
<geist>
put it on the table
<geist>
look at it
<kazinsal>
but I think I'll probably end up writing some code for it
<geist>
look away, shyly
<hyenasky>
dont disgrace it with contemporary unix
<geist>
look back, see if it's looking at you
<kazinsal>
I don't know if I'll port my project to it but it could be fun to write something neat for it
<geist>
blush
<hyenasky>
ive looked at the unix vmms from the time they are butt ugly compared to VMS
<hyenasky>
and VAX's whole point was virtual memory
<kazinsal>
"oh, microvax-kun... your core memory, it's so exposed~"
<geist>
*fairly* modern MMU too considering
<hyenasky>
yeah except 512 byte pages is fun
<geist>
a little funny looking by x86/arm/etc page table standards, but still a page table nonetheless
<geist>
and yeah 512 byte pages
<hyenasky>
they thought they needed 512 byte pages to have a unified page and disk block cache
<kazinsal>
my other, much more analog hackery plan is to figure out what's wrong with the effects loop of my amplifier
<kazinsal>
I thiiiink it's a dying preamp tube
<geist>
i had a plan to finally sit down and fix my amp too, but now it works fine. so shrug
<hyenasky>
the secret is to not have a disk block cache at all and to just move the cache layer on top of the drivers as a page cache
<geist>
probalby was the wiring at the old house
<kazinsal>
I get really bad microphonic feedback at high gain on my Mark V, but only if there's anything in the effects loop
<geist>
hyenasky: yep. that's basically what all modern designs do nowadays
<hyenasky>
as opposed to traditional block caches which are layered underneath the drivers and are called by them
<hyenasky>
yeah thats how im doing it in my kernel
<kazinsal>
and if you're not running a mark V with the gain cranked, why did you even buy a mark V
<kazinsal>
;)
<geist>
fun thing you can do: modern gcc still cbuilds for vax so you can totally port your kernel to it
<kazinsal>
oh no
<mjg>
to be fair, you don't need *modern* gcc
<geist>
nah but depends on what modern language featues you're using
<kazinsal>
I've been thinking about possibly abandoning the 32-bit side of the Araxes kernel once I write an x86-64 core
<geist>
ie, if you want c++17 on a vax or something
<mjg>
albeit i don't know what's oldest usable compiler (usable == not sacrificing useful stuff)
gog` has joined #osdev
<mjg>
well if you c++17 you get what you asked for
<geist>
one of the harder problems ive seen is a) not IEEE standard float and b) not a lot of atomics by modern standards
<kazinsal>
my osdev plans are basically: new x86-64 core -> performance testing -> basic layer 3/4 firewall code -> NAT/PAT -> open source
<geist>
kazinsal: you gotta fit VAX into that
<kazinsal>
I don't want to "release" half a system
<kazinsal>
geist: haha, yeah, I should get the TCP/IP stack working on VAX
<kazinsal>
send a few people SSH proxy access to it
<kazinsal>
"go break my router-on-a-stick! by the way, it runs on a microvax and is a 10BASE-AUI machine"
<geist>
yeah i've been thinking of doing the same with the LK network stack which has a long way to go
xenos1984 has quit [Read error: Connection reset by peer]
<geist>
but build a proper router out of it
<geist>
was thinking of starting with ipv6 first, because NAT is much simpler there
<kazinsal>
yeah, my routing/forwarding stack is slow but production ready. it's the actual host stuff that doesn't work right
<klange>
geist: i'm just ceaselessly devastated by my own failures
<kazinsal>
on physical hardware you can blast all sorts of data through it. it's when you're asking it do do things like sockets that it doesn't handle it well
<kazinsal>
or at all
<kazinsal>
and I don't have sufficiently efficient drivers to handle virtualization well.
<klange>
but whatever, my non-osdev-related job is paying me just fine, life goes on
<geist>
yah i'd like to actually try to write a proper NAT system just to see what it actually does
<geist>
klange: to a certain extent that's kinda better to behonest. one way to ruin your osdev hobby is to get paid to do it professionally
<kazinsal>
klange: same. I would like to have funding or whatever to just work on Araxes full time for a year but I guess my job is okay
<geist>
it'd be nice, but i dunno, turning your fun thing into a job means you gotta go find another fun thing to do
<kazinsal>
selling network equipment running my OS would be cool but man that's just a whole new level of job
<GeDaMo>
People would expect support then :P
<mjg>
ye, don't go there
<mjg>
:)
<kazinsal>
and houses here are a million and a half and I don't think even in the modern chip shortage era would I be able to make that work
<geist>
vancouver is hella expensive
<mjg>
one good thing about software jobs is that they often can be fully remote
<geist>
especially now when everyone is recalibrating that
<mjg>
so you can live in a nice area without astronomical pricing
<hyenasky>
geist you werent here when i asked if anyone knows of any hobby os projects with a fat vmm
<geist>
well depend son wha tyou mean by fat vmm
<klange>
geist: that's why I went the other way with my career in the first place, and now even if I wanted to I can't make the jump because I've diverged too far
<geist>
swap is not as loved nowadays as it was in the 80s
<hyenasky>
well i more meant like a one person project as opposed to haiku which is kind of a big guy
<kazinsal>
geist: yeah. I live about an hour from downtown vancouver and my rent is $1575/month for a 580 sqft 1br/1ba second apartment.
<geist>
since the general notion nowadays is you should have enough ram to hold the working set and if you swap you've failed
<hyenasky>
well i looked at haiku and i didnt think it had swapping but i might have missed it
<klange>
which is the other thing, you get far enough long, like a decade into a career, and you become unhirable in other fields
<geist>
memory is much cheaper now than it was in the 80s
<kazinsal>
my dad's house about two miles north of me jumped from $1.0m to $1.3m in the last assessment report...
<geist>
hyenasky: you listed 4 things but seem to be fixated on the least intersted of the 4
<geist>
the other 3 are much more interesting and important, IMO
<hyenasky>
im fixated on it cuz its relevant to my use case
<kazinsal>
yeah imo memory mapped files are the most interesting
<geist>
swap is, well a thing that you could use if you need it. honestly memory compression is a bigger deal nowadays
<geist>
and becoming a larger and larger deal over time
<klange>
no one wants to bring in someone with a decade of experience on their resume for a more junior role, so if your 'expertise' isn't laser-focused on what they're looking for at that point, tough shit
<kazinsal>
efficient caching and prefetch of lower I/O into memory and predictions is REALLY cool
<geist>
but swapping was a much larger thing in the 70s and 80s wher eyou migth really seriously overcommit the system and actually rely on processes getting swapped out and brought back
<kazinsal>
s/lower/slower/
<geist>
and it didn't matter as much if your shell took 5 seconds to respond, etc
<mjg>
klange: you can transition in big corp
<hyenasky>
it was pretty responsive in systems like VMS
<geist>
sure
<hyenasky>
process-local page replacement good
<kazinsal>
yeah in the 70s you were mostly batch submitting intensive jobs
<kazinsal>
the shell was for less intensive but interactive stuff
<geist>
but like i said, swapping is sort of the least intersting. the other 3 things are however basically mandatory for modern designs
<hyenasky>
i think that from a technical perspective its the most interesting especially if youre swapping to a file
<kazinsal>
complete aside: I've got youtube blasting be 80s rock mixes and man Steve Lukather is a great guitarist
<geist>
okay
<hyenasky>
if you can do that then it shows a well layered design
<hyenasky>
unix couldnt even swap to a file til mach iirc
<geist>
but you can see why it's not the first thing folks go for
<kazinsal>
swapping to a file is just a layer of slowness
<kazinsal>
in modern systems you see advancements on that
<geist>
and like i said modern designs in the last 10 years or so have invested a lot more in memory to memory compression
<klange>
mjg: even within a big corp that has the breadth of industries covered, you're not going to make a jump between vastly unrelated domains as an engineer
<geist>
sort of as an intermediate, since cpu speed is much faster than io and probably far less power
<hyenasky>
if the file is contiguous on the disk and your design allows cheaply batching page writes then its only marginally slower than swapping to a partition
<hyenasky>
thats why windows can do it so well
<kazinsal>
even on quasi-modern systems where you have old design but with modern implementation in mind like current era BSDs you see swap space as a separate partition, because at least then you have a specific "address space" on a disk to back swap with
<kazinsal>
and modern Windows systems will pre-allocate large areas of disk to back the "swap file"
<kazinsal>
it makes the filesystem layer much more responsive and simple when trying to resolve swap space to disk space
<geist>
we'll probably eventually get into swap in zircon, but for the moment its not so imprtant
<hyenasky>
i think its not a difference of complexity so much as like just layering it neater
<geist>
compression is probably next
<kazinsal>
if you have 40 gigs of swap on a modern windows system, chances are your swap is either at worst going to be a couple discontiguous sets of disk space
<kazinsal>
and at best the filesystem is going to try to reorganize things around so you get a big slap o' swap
<kazinsal>
s/slap/slab
<hyenasky>
like if you have a page cache design like i mentioned earlier then its as simple as calling the fs driver directly to do I/O since it has no (or few) dependencies on memory management anymore
<geist>
yah i looked into how linux handles swap files (not swap partitions) and it seems the VM basically locks the ifle in place (must be fully allocated) and gets a list of the physical block offsets and directly ios to the disk
<geist>
makes sense, and also thus why relatively unfragmented swap files are pretty efficient
<kazinsal>
yeah, if you can permanently mark the swap space in the cache manager as a contiguous set of immutable sectors you can bypass a whole bunch of the VFS layers
<geist>
i suspect NT does something similar with some hooks into NTFS to grow/shrink the page file over time
<hyenasky>
it can just call the truncation dispatch routines directly
<geist>
kidna an intersting side effect of the VM bypassing the swap file on linux: if you read from the swap file while its in use you may or may not see the actual contents
<klange>
Anyway, I've made a continuous series of career mistakes over time, and working on an OS of my own instead of hacking on Linux is definitely one of them. Now it's getting late and I have an early meeting tomorrow, so good night.
<mjg>
klange: vastly unrelated, no
<geist>
since the file cache will read in its own set of cached data it thinks is in the file
<hyenasky>
the only complication in NT is that fs drivers use the page cache to cache on-disk structures, so the MPW (page swap thread) has to pass a special flag saying "hey this is a page I/O operation" and that causes the page cache to behave a little differently when it allocates a page for filestream data
<hyenasky>
i.e. it will dip into the "must succeed" pool of pages
<kazinsal>
yeah I don't have the cache/swap stuff for windows handy but a brief high level of it is that it'll mark it as immutable in the filesystem so whatever in the cache manager is always considered authoritative
<kazinsal>
if the cache manager says the swap file starts at sector 420691337 and is 80085 sectors long for the first extent then that's the word of god
xenos1984 has joined #osdev
<hyenasky>
the cache manager is entirely uninvolved in swapping
<hyenasky>
in NT
<hyenasky>
its bypassed 100%
<hyenasky>
doesnt even get a polite notification
<hyenasky>
so if you want to read pagefile contents you have to use direct/uncached/unbuffered IO
<kazinsal>
the VFS keeps track of sector extents for efficiency
<kazinsal>
the NT cache manager does a fair bit
g1n is now known as Guest127
<geist>
as a side note, just to be totally clear re: irc rules here on this channel, if you did happen to read some confidental source or whatnot (not saying you have, just putting it out there). dont talk about it
<kazinsal>
oh yes that's a good thing to bring up
<geist>
some of us work at competitors and whatnot and dont want to get pulled into lawsuits and whatnot
<hyenasky>
i got most of this from the books "what makes it page" and "windows nt file system internals"
<kazinsal>
a lot of us here are under a dozen different NDAs.
<hyenasky>
the rest from random blogs and shit
<geist>
yah totally. just making sure is all
<geist>
doubleplus so since this channel is publically logged
<kazinsal>
the seventh edition of Windows Internals is very good
<kazinsal>
you get a *lot* of information about the low levels of NT 10.x
g1n has joined #osdev
<kazinsal>
and it's all kosher
dormito has joined #osdev
<geist>
yah i even have the infamous NT file system gyuide book
<geist>
i'm sure it's way out of date now, but it's appartnlyt the only book ever written on the topic
<g1n>
hello
<kazinsal>
whereas if someone happened to leak some internal microsoft code not for a popular early 2000s version of Windows only would we not talk about it here we would not acknowledge its existence
<geist>
what kazinsal said
bauen1 has quit [Ping timeout: 240 seconds]
<hyenasky>
yeah with the help of the windows internals book i basically reimplemented the nt scheduler and some other bits lol
<kazinsal>
none of us want the potential implications of intersecting our fields with knowledge gained from such a hypothetical situation.
<hyenasky>
except the smp parts since my target platform is invariably single core
<kazinsal>
I'll talk your ear off about classic Cisco IOS kernel scheduling but that's because I own a limited run Cisco Press book about it from 1999
<kazinsal>
not because I've seen anything of any sort in the code realm
<hyenasky>
most of my vmm design is actually more from VMS related sources than NT though
<hyenasky>
like the paper i linked is basically how mine works
<hyenasky>
with some simplifications because im not 50 people with 4 years to tinker
<kazinsal>
(full disclosure: I am genuinely unaware if there are any leaks of that sort, in the honest to yahweh sense, not in the do not talk about this hypothetical thing that may or may not exist ha ha ha sense, for cisco IOS internals)
<sortie>
kazinsal, hyenasky, geist: Yeah Sortix doesn't have swap. Generally because it doesn't need so much memory and I got plenty. Also because it's a whole bunch of work to implement, still need a better shared memory mmap and such. And finally, it just sucks when things swap.
<kazinsal>
(I just happen to have a really weird low print volume book about 80s/90s cisco routers)
<hyenasky>
process local page replacement is godly
<GeDaMo>
g1n: apparently I sent you a memo, was it something good? :P
<kazinsal>
sortie: yeah, for a similar reason I haven't looked at swap at all. even with only a four gig address space that's an enormous amount of buffer and if you're buffering that much packet data you're doing something very wrong
<hyenasky>
like try to write an intentionally badly behaved program that swaps as hard as it can on a system with process-local page replacement
<hyenasky>
observe as everything else keeps running like nothings happening
<g1n>
GeDaMo: oh, checking....
<sortie>
Can I hire you to fix Linux? lol
<GeDaMo>
I just got a notification saying you read it
<g1n>
GeDaMo: yes, lol
<kazinsal>
I'm going to need a LOT more money to fix linux
<sortie>
Linux is swapping so awfully that I turned it off and now the OOM killer isn't killing things when it OOMs but instead trashes so much IO trying to not OOM that the system livelocks
<g1n>
GeDaMo: it was about page frame alloc
<hyenasky>
linux's swap algo is literally broken
<hyenasky>
im convinced
<GeDaMo>
Ah, OK, I have no memory of it :P
<hyenasky>
unix vmms were always super anemic for no particular reason
<sortie>
Seriously all it takes is just for me to open a bunch of Firefox tabs in Youtube and lo and behold it's random whether Firefox gets OOM'd or the system becomes unusable
<sortie>
Linux 2022 everybody
<kazinsal>
sortie: I unfortunately blame the proliferation of electron apps
<sortie>
It also happens when I open Youtube tabs in Firefox
<geist>
yah in contrast something like OSX *thrives* deep in swap
<kazinsal>
I know a lot of people go GRRRRR ELECTRON without understanding it
<geist>
they tuned everythig about their VMM to aggressively utilize swap and compression
<hyenasky>
mach and NT both have overpowered vmms
<kazinsal>
but I've seen multiple applications in my usual world that leaks several dozen gigs of swap because they're fucking up basic memory management
<sortie>
The nice thing about osdev is that it takes serious concentrated effort to actively fuck up as much as Linux
<sortie>
=> If you just do something reasonable, it can easily be much better
<kazinsal>
I don't know how you can leak 40 gigs while pulling a few megs of data for an evening's worth of League of Legends matchups but y'know
<sortie>
(in those few aspects)
* geist
goes to slee
<geist>
meant to sleep an hour and a half ago
<geist>
eep
<sortie>
geistctl --suspend
<kazinsal>
haha, same
<sortie>
service kazinsal stop
<kazinsal>
I think I have a meeting at 9am...
Burgundy has joined #osdev
<kazinsal>
because east coasters don't understand what sleep is
<mjg>
9 am? you are already 3 hours late
<mjg>
it's noon man
<sortie>
9 am? That is still going to exist at this rate?
<hyenasky>
honestly im wondering if i already hit my goal of having the funnest vmm in the hobby osdev scene just by badly reimplementing VMS's
<hyenasky>
since i havent seen another one with more features
<kazinsal>
mjg: the other side said "are you available for an 11am meeting" without telling me what time zone they were in and suddenly I got a meeting invite for 8am
<kazinsal>
so I managed to push it back to 9am...
<mjg>
:)
<mjg>
i got an invite once for a meeting on 5/6
<mjg>
have fun guessing which one is the month
<kazinsal>
oof
<sortie>
“I am available for an 8 am email”
<kazinsal>
thankfully I veeeeery rarely have meetings with people outside of canada
<sortie>
Always book meetings for the fifth Friday in February
<kazinsal>
sortie: thank you for reminding me to fix the date on my watch
<mjg>
funny thing about meetings is i don't attend them anymore
<sortie>
kazinsal, I should book a meeting with you muhahaha
<mjg>
you should try it
<mjg>
i stopped about 6 years ago, 2 jobs ago
<kazinsal>
sortie: shit, please do, I need a reason to sit in a webex meeting slightly hungover and bill hours to nobody
<mjg>
kazinsal: you can fix typos in the wiki
<mjg>
or "refactor" an article
gog` is now known as gog
<kazinsal>
I have a friggin meeting with Cisco tomorrow to figure out some dumb DTMF issue
<kazinsal>
guhhhhh
<mjg>
meh @ cisco. i was dealing with them once, they sent me a kernel module which did not work. should you boot the kernel with debug enabled it would immeidately tell you why
<mjg>
i mean they asked for help figuring it out (red hat)
<kazinsal>
their datacenter engineering team is kind of hit or miss
<kazinsal>
I've had to break out the intel manuals on them a couple times
<hyenasky>
page swapping isnt that hard you guys it only takes like 6 months to get it to work half decently if you planned on doing it from the very beginning
<hyenasky>
dunno why yall didnt just do that smh
<hyenasky>
i feel like a lot of osdev projects have a thing they focus on
<hyenasky>
like something like SkiftOS being GUI-oriented
<kazinsal>
yeah the SerenityOS guy I've had some rants about
<gog>
i don't
<mjg>
there is an osdev article about types of peopole doing osdev
<kazinsal>
the idea of an osdev project that's simultaneously a "90s revival" of unix and explicitly hostile to non-developers is extremely wrong in my mind.
<bslsk05>
wiki.osdev.org: Category:Developer Archetype - OSDev Wiki
<kazinsal>
sure, 90s unix fucking *sucked* to anyone who wasn't already a kernel hacker, I say, not having been a hacker in the 90s
<kazinsal>
but like
<kazinsal>
you don't need to replicate that in 2022.
<gog>
i'm lady Dunning-Kruter
<gog>
Kruger
<kazinsal>
lady dunning-kruger, queen of high-speed wheelchair dog-walking
<hyenasky>
lol i got bullied out of their discord server for mentioning the concept of zeroing pages in the idle thread instead of at allocation time
<hyenasky>
they said they dont like suggestions and if i wanted it to do that then i should code it myself
<kazinsal>
gog: how you doing by the way?
<gog>
kazinsal: lol yeah. i've had to extend my rest period. complication happened.
<kazinsal>
aww :(
<gog>
nothing serious but i gotta continue to take it easy
<hyenasky>
(btw, turns out zeroing pages in the idle thread used to be a good plan but is actually somewhat detrimental on modern systems because of cache locality and such)
<kazinsal>
yeah from all I've heard definitely just relax and don't work too hard
<gog>
never do :p
<kazinsal>
:D
<gog>
actually that's not true i work very hard
dormito10 has joined #osdev
<gog>
i think 10 days was my limit of being able to entertain myself with random things
<gog>
also geist said something the other day wrt my page tracking mechanism that i should probably look into but i just can't even look at it rn lol
dormito has quit [Ping timeout: 240 seconds]
<gog>
i spent a solid 3-4 days rewriting the damn thing and now finding it has some pretty glaring deficiencies that aren't necessarily hard to fix, but it's gonna require some rethinking
<hyenasky>
page tracking?
<gog>
hyenasky: like linux's struct page basically
<hyenasky>
ah yeah
<hyenasky>
are you interested in my take on it
<gog>
so like the array is in a demand-allocated vm space and it can waste some several megabytes on page tables if you probe the whole array
<gog>
sure go off
<hyenasky>
i do something similar but its not demand allocated i just dont allocate pages for the gaps that dont have usable memory
<hyenasky>
page frames to hold struct pages i mean
<hyenasky>
and i never have to probe the whole thing
<hyenasky>
i cant demand allocate it since my page frame allocator depends on it being there lol
<hyenasky>
since i use a free list of them
<gog>
i don't either yeah, i was just using a zero page in place of any region that doesn't have physical memory. i need to short-circuit that and write a fault handler specifically for it
<kazinsal>
god weird al's r kelly parody is still so good
<gog>
and that means keeping the page tables somewhere nearby for it
<kazinsal>
man's a goddamn wizard
<gog>
but i have an early allocation mechanism that slots into the PFA
<hyenasky>
whats stopping you from just assuming all the usable memory will eventually be used and allocating it statically
<hyenasky>
i do it at bootloader time
<gog>
i was doing that but the code was really ugly
<hyenasky>
the bootloader's responsible for setting up parts of kernel space cuz otherwise id have to have a redundant primitive allocator in the kernel or smth
<hyenasky>
you flat out shouldnt need struct pages for stuff like mmio and etc
<gog>
yeah it doesn't make any for those
<gog>
when memory setup happens it snags a couple pages from the early allocator to start setting up the page tables and backing store for the array and then almost immediately starts using the page stack
<gog>
i can probably just preallocate a few pages for that at boot-time
<gog>
it's clean and elegant imnsho but that's also what makes it deficient lol
<hyenasky>
whys it deficient
<gog>
the zero page and proliferating page tables problem
<gog>
it needs its own fault handler
<gog>
and maybe a copy of the physical memory map
<hyenasky>
well yea again my take is just that i statically allocate and map ranges of pages for the array
<gog>
right
<hyenasky>
and at that stage the page allocator just finds a chunk of usable memory in the memory descriptor list and carves it off the end
<gog>
yes that's exactly what i do except page-by-page
<hyenasky>
thats how the bootloader allocator works but, later, when i initialize the kernel memory manager properly, i iterate the memory descriptor list and i link the pages from all the usable chunks into a free list
<hyenasky>
then i do some initialization that relies on the bootloader structures not being pooped on and then i do it again but i link the reclaimable regions in that time
<hyenasky>
anyway yea thats like my whole pmm initialization business
<hyenasky>
i think it is simple and doesnt require demand paging pages that u need to demand page things
<gog>
i like to think of it as akin to my real life strategy of only doing things as-needed :D
<hyenasky>
if youre gonna have a struct page type thing then a linear virtual array of them is a good strategy though
<hyenasky>
not sure but i think linux does funkier things
<hyenasky>
but all windows for instance does is that
<gog>
hot take but windows is good actually
<kazinsal>
truth
<gog>
under the surface
<hyenasky>
that is the world's coldest take when youre talking to me tbh
<gog>
lol
<hyenasky>
been a severe NT fanboy for like a year now
<kazinsal>
once upon a time microsoft's marketing blitz was "a billion other windows users are available if you have an issue" and that still rings true in my experience from a user perspective
<gog>
i think ultimately the sort of kernel architecture i'm aiming for
<kazinsal>
occasionally I have some weird windows software issue and someone else has experienced it and knows the solution
<gog>
is akin to NT
<kazinsal>
linux lives on my virtualization infrastructure as a VM that I just SSH into
<kazinsal>
because there is never a real reason that I need linux desktop apps
<kazinsal>
and in an oh-shit situation in which I would, X forwarding sorts that out
<hyenasky>
disliking the windows kernel is the #1 sign of not knowing anything about the windows kernel
<gog>
i mean i use linux as a daily driver but mainly because windows is too much for this thing
<kazinsal>
unfortunately I can't convince my employer to buy me a 12700K or the like
<kazinsal>
they already bought me an 11xxx laptop I haven't even turned on
<gog>
i need a job with a boss that can be bullied into buying me a gaming laptop for work like my wife
<kazinsal>
my 6700 desktop at the office that I haven't physically sat in front of for a year and a half does everything I need for work
<hyenasky>
(cont)
<hyenasky>
unless its the IO system then youre permitted
<kazinsal>
I don't even know where it is, physically
<gog>
you don't like the HAL?
<kazinsal>
I know it's in the "new" office but I don't know *where*
<j`ey>
kazinsal: I had the same thing, I had to open an IT ticket to find my machine :D
<kazinsal>
I just punch in the asset tag number every morning and DNS figures it out
<hyenasky>
well the IO system and the HAL are kinda different
<gog>
ah ok
<hyenasky>
i think the IO system is overcomplicated (even for NT)
<kazinsal>
but like, we moved offices six or seven months ago and I don't know where in our new temporary office my machine is
<kazinsal>
it could be in a damn datacenter for all I care
<kazinsal>
our final new office will be "ready" in may and at that point I might start going back in one or two days a week
<kazinsal>
but until then there's no point
<hyenasky>
the HAL also is a product of when NT was supposed to run on like 12 slightly different and incompatible motherboards for each RISC processor under the sun
<hyenasky>
and isnt super relevant on modern PCs
<hyenasky>
the last time they had 2 different HALs for the PC platform was like 2009 or something
<hyenasky>
ACPI and non-ACPI or something like that
<gog>
yeah
<mjg>
kazinsal: i miss having that
<mjg>
kazinsal: [a machine of my own i can offload compilation to]
<hyenasky>
my dad's been working from home for 2 years now and theyve been constantly telling them they'll go back eventually
<hyenasky>
but the company just sold the building that their offices used to be in so he's pretty sure that's a lie
<kazinsal>
it's nice to have some sort of separation between my work machine/network and my personal machine/network
<kazinsal>
I do home PC -> virtual machine -> VPN to office -> RDP to work machine
<mjg>
oh?
<mjg>
you got windows on the other end?
<j`ey>
work gave me a laptop, so I use that to ssh in, rather than my own machine
<kazinsal>
yeah
hyenasky has quit [Quit: Client closed]
<kazinsal>
in theory I guess I could use linux but sometimes I need to work some bizarre unified communications stuff
<gog>
still investigating daily driving haiku lol
<kazinsal>
at some point I might try a day of work via VMS
<gog>
lol nice
<kazinsal>
I can probably pad out a day of nothing but SSH
<kazinsal>
just connect to customers or whatever VPNed through VMS
<kazinsal>
assuming I can find an SSLVPN client for it
<kazinsal>
(unlikely :()
<gog>
:(
<mjg>
maybe you can proxy through linux
<mjg>
at some point i would telnet out of a 4.3bsd vm and ssh from that
<kazinsal>
"world's most complex AnyConnect setup"
<mjg>
out of the vm to the host
bauen1 has joined #osdev
<GeDaMo>
Does Linux still support DECnet?
<kazinsal>
I don't think so
<kazinsal>
decnet's pretty deeply into the archaically obsolete category
<kazinsal>
even the vax I ordered at least has 10Mbit ethernet
gxt has quit [Remote host closed the connection]
vdamewood has quit [Read error: Connection reset by peer]
gxt has joined #osdev
vdamewood has joined #osdev
dennis95 has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
Payam has joined #osdev
elastic_dog has quit [Ping timeout: 240 seconds]
elastic_dog has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
bauen1 has joined #osdev
pounce has quit [Ping timeout: 256 seconds]
gildasio has joined #osdev
dormito has joined #osdev
dormito10 has quit [Ping timeout: 272 seconds]
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
<relipse>
is this for people developing non-linux operating systems?
<relipse>
or is everyone using linux here?
<gog>
yes to the former
<gog>
not necessarily to the latter
<g1n>
relipse: we develop OSes from scratch :)
<gog>
there are a few people here with self-hosting OS's but i myself develop on linux with qemu
<gog>
and i wouldn't say what i have is much of an OS
<relipse>
so like people have their own binary formats?
<gog>
i use ELF
<g1n>
relipse: i would also use ELF
<relipse>
which does what?
<g1n>
ELF is bin format that is used on linux
<mrvn>
ELF makes developing simpler and does everything one needs.
<gog>
it's used on a lot of operating systems
<relipse>
but not on Windows?
<gog>
no
<gog>
windows uses PE
<relipse>
can you have both?
<mrvn>
PE is also needed for booting directly from UEFI
<g1n>
relipse: yes, you can
<gog>
yeah you can support both in one os
<relipse>
what about macos binaries?
<mrvn>
The linux kernel even is both at the same time.
<gog>
macos uses mach-o
<relipse>
so can you support all 3 on one os?
<relipse>
that would be fun to compile an os
<g1n>
relipse: if you want
<relipse>
so why doesn't anyone do that
<relipse>
why do you have to have wine to run PEs?
<g1n>
cuz windows has some other things that are propriatary i think
<j`ey>
because its the syscalls etc that arent supported
<mrvn>
because the binary format isn't the ABI or OS.
<relipse>
what is ABI?
<relipse>
and OS?
<j`ey>
OS is operating system?
<relipse>
i think he means open source
<j`ey>
nope
<mrvn>
relipse: application binary interface. The interface the binary uses.
<j`ey>
how the binary interacts with the OS is different, which is why you cant just add PE support to linux and have it work
<mrvn>
relipse: ELF and PE just tell how to load the binary into memory. Not what the binary does.
<relipse>
i see
<gog>
yeah, wine translates the win32 API to equivalent *nix APIs
<relipse>
is wine legal? or is it breaking copyright?
<relipse>
nice, i suppose GUI support is slim righ tnow
<gog>
yeah it'd have to implement cocoa or whatever they use now
<gog>
s/or/and/
<gog>
or was cocoa os8/9?
<gog>
i can't remember
<gog>
carbon
mahmutov has quit [Ping timeout: 256 seconds]
<gog>
watchin an adrians digital basement video and he called "q-emu" "q-e-m-u"
<gog>
blocked and unsubscribed
<gog>
XD
Oli has joined #osdev
Oli has quit [Client Quit]
[itchyjunk] has joined #osdev
X-Scale` has joined #osdev
srjek has joined #osdev
mahmutov has joined #osdev
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
bauen1 has quit [Ping timeout: 260 seconds]
bauen1 has joined #osdev
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 260 seconds]
bauen1 has quit [Ping timeout: 268 seconds]
ElectronApps has quit [Remote host closed the connection]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
<Bitweasil>
That's one of those words I never really think about how to pronounce it, I always type it.
<mrvn>
qu-emu I would say
<Bitweasil>
Kyoo-emyoo, something like that, yeah.
<Bitweasil>
For decades, I somehow had random Ls in nacelle in my internal representation of it. Nalacle or something borderline unpronounceable, but I knew what it was.
gildasio has quit [Ping timeout: 240 seconds]
bauen1 has joined #osdev
bauen1_ has joined #osdev
freakazoid343 has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
bauen1_ is now known as bauen1
gildasio has joined #osdev
pretty_dumm_guy has quit [Ping timeout: 256 seconds]
dennis95 has quit [Quit: Leaving]
pretty_dumm_guy has joined #osdev
terminalpusher has joined #osdev
marshmallow has quit [Quit: ZNC 1.9.x-git-170-9be0cae1 - https://znc.in]
FatalNIX has joined #osdev
the_lanetly_052_ has quit [Ping timeout: 272 seconds]
the_lanetly_052_ has joined #osdev
sonny has joined #osdev
zid has quit [Ping timeout: 272 seconds]
<geist>
yah i've heard a few folks say q-e-m-u
<geist>
would rather hear that than 'key-mu'
<vdamewood>
Kyuu-Myuu
<GeDaMo>
Cue-em-you rhymes! :P
<eryjus>
shit. once again I am doing it wrong.
<Bitweasil>
I actually think I'd likely go with q-e-m-u in person, if I didn't think about it too hard.
<Bitweasil>
That's most likely to actually communicate the thing clearly.
<Bitweasil>
Quebec Echo Mike Uniform! <-- Can we all agree that's as wrong as possible?
<gog>
affrimative
<geist>
yah q-e-m-u if someone isn't aware of whatit's short for
<geist>
there was another guy on youtube that wsa fixing PDP-11 computers and went out of his way to say 'D-E-C' when saying DEC
<geist>
his rationale was that not everyone knows what 'deck' means
<Bitweasil>
Reasonable enough.
sonny has quit [Ping timeout: 256 seconds]
<Bitweasil>
I've heard some interesting butcherings of things.
mahmutov has quit [Ping timeout: 268 seconds]
<mrvn>
Bitweasil: Quechomiform?
<Bitweasil>
Some set of training videos had someone consistently pronouncing the Meterpreter the "Meter Preter"
<Bitweasil>
Who?
<geist>
there was some other thing like this i think i learned the other day that i've been butchering all this time, but i forget what it was
<Bitweasil>
er, short Es.
<Bitweasil>
A coworker years back was baffled by a Dell tech support person asking questions about the "Ladies" under the desk behind the computer.
<Bitweasil>
"Ladies! L E Ds!"
<Bitweasil>
There are a lot of words I read and write, but never speak.
<geist>
yah those are the ones i discover years later i always mispronounced
<Bitweasil>
Having been remote for a few years, I don't speak much technical stuff anymore.
<geist>
have retreated to a series of grunts and pointing
<geist>
and typing
<gog>
yes
<gog>
abolish verbal language
zid has joined #osdev
<geist>
and on that bombshell, zid has arrived
mahmutov has joined #osdev
<gog>
lol
<zid>
I totally didn't try prime95 on 1.2V
<zid>
and you can't prove otherwise
<mrvn>
this deduction in c++23 seems like fun.
sonny has joined #osdev
<mrvn>
auto fib = [] (this auto self, int n) { if (n < 2) retrun n; return self(n-1) + self(n-2); } to give a classic example.
Payam has quit [Ping timeout: 256 seconds]
k8yun has joined #osdev
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
sonny has quit [Ping timeout: 256 seconds]
sonny has joined #osdev
terminalpusher has quit [Remote host closed the connection]
scoobydoob has joined #osdev
scoobydoo has quit [Ping timeout: 256 seconds]
scoobydoob is now known as scoobydoo
freakazoid343 has quit [Read error: Connection reset by peer]
sonny has quit [Ping timeout: 256 seconds]
vdamewood has quit [Read error: Connection reset by peer]
<bslsk05>
vvaltchev/tilck - A Tiny Linux-Compatible Kernel (42 forks/1013 stargazers/BSD-2-Clause)
<sonny>
(the image url is super long)
<mrvn>
github needs a tinyurl service
<geist>
That seems like a cute project on the surface
<geist>
Hvaen’t looked at the code, but i like the premise
<mrvn>
now what I really would like to see would be some profiling one vs. the other.
srjek has quit [Ping timeout: 240 seconds]
mahmutov has quit [Ping timeout: 240 seconds]
<geist>
I guess, they pretty explicitly make it a non goal of trying to recreate Linux or do a better job
<geist>
It being slower/etc wouldn’t really prove much
<mrvn>
it not being significant slower in parts would show much
<zid>
I like the idea of just trying to as rapidly as possible get linux software running, even if it's slow and janky
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
<FatalNIX>
zid: make install clean
<zid>
padun
sonny has quit [Quit: Client closed]
sonny has joined #osdev
sonny has quit [Quit: Client closed]
nur has quit [Ping timeout: 256 seconds]
sonny has joined #osdev
sonny has quit [Quit: Client closed]
sonny has joined #osdev
wolfshappen_ has joined #osdev
wolfshappen has quit [Ping timeout: 272 seconds]
dormito has quit [Quit: WeeChat 3.3]
GeDaMo has quit [Remote host closed the connection]
srjek has joined #osdev
sonny has quit [Quit: Client closed]
FatalNIX has quit [Quit: Lost terminal]
dormito has joined #osdev
biblio has joined #osdev
biblio_ has joined #osdev
biblio has quit [Ping timeout: 250 seconds]
biblio_ has quit [Quit: Leaving]
Burgundy has quit [Ping timeout: 260 seconds]
EtherNet_ has joined #osdev
EtherNet_ is now known as EtherNet
EtherNet has quit [Client Quit]
EtherNet has joined #osdev
AmyMalik is now known as Ellenor
sonny has joined #osdev
<sonny>
what's the big deal with fuschia kernel rights?
<sonny>
fuchsia*
<Mutabah>
In what way?
<sonny>
is it that it does not require a name to give access?
<sonny>
I'm trying to figure out what capabilities are in operating systems
<Mutabah>
Oh. Don't know.
<klange>
File descriptors on steroids.
<Mutabah>
^
<sonny>
klange yeah, but FDs have owner information
<klange>
You ask me, the "big deal" with Fuchsia is that it's an actual new operating system by one of the giants, as opposed to yet another convoluted Linux distro.
<sonny>
right now that's what I think the distinction is
<sonny>
now I'm not asking in the large
<sonny>
just about "kernel rights" in fuchsia
<Mutabah>
FDs are scoped to the process that created them
<Mutabah>
capabilities are global (but unguessable), so you can pass them between processes
<raggi>
When fuchsia talks about capabilities it doesn't mean anything specific, it's an abstract concept that might be one of many concrete things, mostly zircon handles
<Mutabah>
(without involving the kernel)
<Mutabah>
Well, afaik that's how fuchia/zircon do it
<sonny>
ok, well thanks for explaining
<Mutabah>
(You can also implement capabilities just by passing fds/handles around through the kernel)
<raggi>
Zircon handles are identifiers to kernel owned/mediated objects
<Mutabah>
Important bit: having a handle gives you abilities
<klange>
"capabilities" really are just "file descriptors, but with a better understanding that they're not just for "files""
<raggi>
Handles are unique to a process
<Mutabah>
Huh.
<Mutabah>
I thought part of the idea was to pass them around transparently
<sonny>
can they be shared in zircon?
<raggi>
I am not sure what "transparent" means here
<klange>
Sharing file descriptors/handles is sort of the key concept. It's not just "what can I open()?" it's "what was given to me to grant me permissions?"
<sonny>
I see
<sonny>
this term is pretty vague then
<raggi>
Zircon handles can not be shared, but for some object types you can make additional handles that refer to the same object
<sonny>
like files?
<sonny>
(first object I thought of)
[_] has joined #osdev
* sortie
makes, uh, graphical user interface improvements
<raggi>
There is not a file object type in zircon
<sonny>
oh
<sonny>
so, uh what happens for files?
[itchyjunk] has quit [Ping timeout: 240 seconds]
<klange>
sortie: all graphical user interface improvements must be accompanied with visual documentation for validation by the committee on approval of graphical user interface improvements
<raggi>
Filesystems are presented as a protocol over other zircon object types, the current typical one being over a channel
<klange>
sortie: please submit in triplicate
<sonny>
(I hate when there is a lock on a file for one app)
<sortie>
klange, I'm afraid screenshots won't do since I'm implementing window resizing and dragging by title bar
<sonny>
raggi wow, that's genius
<sortie>
Still not sold on this whole mouse business but seems to have stuck around somewhat and can do some cool things
<klange>
sortie: a series of 30 or 60 screenshots per wall clock second assembled in a single digital file for real-time reconstruction and presentation is also acceptable