<geist>
wxwisiasdf: what precisely sort of hardware are you running on in this case?
mahmutov has quit [Ping timeout: 256 seconds]
<wxwisiasdf>
geist: well i have to use an emulator to run a mainframe as i am not absurdly rich
<wxwisiasdf>
but someone went out of their way to run it inside z/vm as a vm
knusbaum- has joined #osdev
knusbaum has quit [Ping timeout: 276 seconds]
<wxwisiasdf>
but in this case the ""hardware"" is an emulated z13 machine with 1 dasd disk, 1 3270 terminal and 1 punch card reader
<zid>
What's the date of production on that gear?
<geist>
neat. is the emulator open source/free? I'd be kinda curious to be honest
<geist>
i know qemu has some s390 emulation, but i think it's not so much intended to run a full s390 system, but as a KVM VMM i think
<wxwisiasdf>
zid: 2018 or something i think
<wxwisiasdf>
geist: yes, there is 1 main emulator: hercules, hyperion is more modern and implements more stuff
<zid>
punch card reader, in 2018?
<wxwisiasdf>
but the hyperion version is ""complicated"" to say, because some patents and things
<zid>
I was expecting you to say 1968
<wxwisiasdf>
zid: z/arch takes backwards compatibility to another level
<geist>
yah that's what i was expecting. i get the impression that there aren't a lot of emulators/info/etc available for the 'raw' hardware
<geist>
but lots of emulators that emulate what z/OS would present to you
<geist>
er z/VM i guess
<geist>
or whatnot. i dunno precisely
<wxwisiasdf>
z/OS, z/OS, both can run on hercules
<geist>
i assume the VM that you're given as a guest to z/VM is not like the real hardware, but some paravirualized environment
<wxwisiasdf>
the raw hardware is microcode hell basically, so most OSes just mimmick z/OS
<wxwisiasdf>
yeah it's virtualized with assistance of the processor
<geist>
yah, i get the impression that no one is ever intended to run on raw hardware except IBM code. and i guess that hypervisor at that level is z/VM? or z/OS?
<wxwisiasdf>
no the hypervisor can be ran by an OS normally
<geist>
i got the impression that the hardware always boots a type 1 hypervisor first, always. and even the 'root' z/OS is a guest, right?
<wxwisiasdf>
the microcode is just there to aid in OS functions
<geist>
ah
<wxwisiasdf>
geist: yeah kind of like that
<geist>
and the hypervisor that boots first is simply 'the firmware' or does it have a distinct name?
<wxwisiasdf>
i just call it the firmware idk it's normal name
<geist>
yah that's what I was assuming was 'z/VM' but that may be something else
<wxwisiasdf>
yeah, albeit surprisingly i know bare to nothing when it comes to the distrobution of worload beyond z/vm
<wxwisiasdf>
geist: also the thing is mostly supposed to be like, idk, companies wanting very custom stuff
<geist>
yah i'm always interested in details like how does the raw hypervisor time slice in this case. is it always hard partitioned, or can you overcommit? does it swap guests, etc?
<wxwisiasdf>
just that there is a lot of builtin stuff to help the os in whatever it needs
<geist>
but probably yes and yes and yes
<wxwisiasdf>
geist: to be honest, i dont have any idea, i just know the thing gets nested-levels of messy
<geist>
also i wonder how well nested virtualization works on this hardware
<geist>
yeah. dunno if it's assumed you'll run say a linux system that then uses KVM to further subdivide.
<wxwisiasdf>
considering you only have to execute 1 single instruction to start a vm
<wxwisiasdf>
`sie (ptr to sie structure)`, boom, vm there
<geist>
yah, but there's probably a bunch of software behind that instruction if it traps
<wxwisiasdf>
yep - but as said it's mostly offset to the microcode
<geist>
but yeah. makes sense if VMs can start other VMs it's probably nested or atleast some sort of hypercall to create peers
<geist>
kinda mkaes sense in a sense to not nest, but have all of the guests talk to the same hypervisor but then use some sort of containerization to restrict permissions based on who begat who
<wxwisiasdf>
ah yes permissions
<geist>
kida like 'VM as a process' in the way processes work in a posix environment
<wxwisiasdf>
z/arch is kinda on that `permissions` deal
<wxwisiasdf>
has like 3 different paging schemes for doing stuff and then real(physical) storage(memory) protection mechanisms
<geist>
i have always been kinda interested in this whole architecture, but have no access to it so it's been sort of an interestig academic topic if nothing else
<geist>
yeah was also wondering what the guest paging structure looks like
<wxwisiasdf>
i can't figure out paging for this thing yet
<wxwisiasdf>
i operate on all-real address space so yeah, real mode with 64-bits lets goo
<geist>
hah yeah i love it when other architectures name no-mmu as 'real mode'. POWER/PPC does that too. take an exception! mmu is off. you're in real mode!
<wxwisiasdf>
yes but it sucks
<wxwisiasdf>
no paging === not a real os
<geist>
there there
<geist>
i gotta admit i'm interested in fiddling with this, but my current osdev rabbit hole is to finally implement a real actually decent FAT driver
<geist>
been putting it off for too long, but it's actually useful
<wxwisiasdf>
well my os is public domain
<wxwisiasdf>
just grab the code and fiddle with it i guess
<geist>
alas, public domain is poison, at least in some contextx
<wxwisiasdf>
._.
<geist>
i've been lectured by lawyers that public domain is about as far away from usable as you can get, because it has no legal definition in some cases, etc.
<wxwisiasdf>
ah no
<wxwisiasdf>
public domain - license: unlicense
<geist>
tell a lawyer that
<wxwisiasdf>
:/
<geist>
i only say this bedcause my OS has used some public domain stuff, but had to move it into the 'third_party/external' directory, because it can't be part of the core system if want to use it in product
<geist>
because though public domain sounds nice, lawyers say it's worse than a bad license
<geist>
i mean i dont have to care, but i do like it when folks use it
<wxwisiasdf>
ok but it's fine if it's the `unlicense` license right
<wxwisiasdf>
or would cc0/bsd0 fit more?
<geist>
dunno!
<geist>
from quick glance looks likce it's been legally vetted at least somewhere
<geist>
the main problem with true public domain being that it has hazy legal definition in lots of countries/juridictions
<bslsk05>
SuperLeaf1995/uDOS - An operating system for ESA 390 and z/Arch. (2 forks/13 stargazers/Unlicense)
<geist>
ah superleaf. haven't seen you in a while
<geist>
you changed your name
<wxwisiasdf>
yep
<wxwisiasdf>
i should change my github name too
<geist>
anyway neat! i should give it a look
<geist>
i always love alternative architectures, so this is right up my alley
<wxwisiasdf>
it's in japanesse by the way
<wxwisiasdf>
because why not
<geist>
even ARM is becoming passé now
<wxwisiasdf>
i also ported stivale2 to zarch
heat has quit [Remote host closed the connection]
<wxwisiasdf>
so people can compile the stivale2-barebones kernel on z/arch, albeit nobody has done that, unfortunely :p
<wxwisiasdf>
also how is arm becoming passe???
<Mutabah>
It's mainstream now
<Mutabah>
Not hipster enough
nyah has quit [Ping timeout: 256 seconds]
<wxwisiasdf>
really
<wxwisiasdf>
do you know what would be extremely hipster? full OpenRISC 1000-OS
<wxwisiasdf>
no glitches, any%
<zid>
glitchless any% is such a droll category
<zid>
go for 100% ACE
<wxwisiasdf>
"prints hello world", yes definitely, this is ready to be sold as the new windows killer
<wxwisiasdf>
^100% with glitches
<wxwisiasdf>
making an os without features... just bugs and glitches- oh wait a second
smeso has quit [Quit: smeso]
smeso has joined #osdev
rustyy has quit [Ping timeout: 246 seconds]
rustyy has joined #osdev
roan has quit [Quit: Lost terminal]
dude12312414 has joined #osdev
rustyy has quit [Ping timeout: 240 seconds]
rustyy has joined #osdev
<kazinsal>
digging through the SysV ABI x86-64 docs to try to figure something out and it occurs to me that I can just punch some code into godbolt and check to see what it does
gog has quit [Ping timeout: 276 seconds]
<kazinsal>
okay, returning a two-qword struct does work the way I expected. neat.
<moon-child>
only works when it's two words iirc
<moon-child>
anything bigger and you write to memory passed by the caller
<moon-child>
(which is not that bad, though iirc on arm you get 8 full registers for returns)
<kazinsal>
it does, but that's enough for a basic { status, data } return tuple type
<wxwisiasdf>
woah, uint128_t
<zid>
we use 512_t these days
<moon-child>
I still don't have an avx512 cpu
<moon-child>
;-;
<zid>
I don't even want one
<moon-child>
wanna give it to me then
<zid>
I don't have one
<kazinsal>
avx512 fascinates me intel seems to have given up on it
<zid>
(want one, not want mine)
<kazinsal>
alder lake implements it on the P-cores but not the E-cores and by default disables it on the P-cores
<kazinsal>
and I think later revs just fuse it off on the P-cores
<moon-child>
iirc ucode updates prevent you from turning it back on on the p-cores
<moon-child>
yeah
<moon-child>
but apparently it is coming to xeons
<moon-child>
the new ones, I mean
<moon-child>
so not going away entirely
<kazinsal>
wouldn't surprise me if it becomes a Xeon only instruction set extension
<moon-child>
well, I also heard amd is adding them
<kazinsal>
pretty standard for Intel to go "no, fuck you, pay us more for this"
<moon-child>
lol yep
<zid>
to be fair, you don't really need it outside of a xeon
<kazinsal>
the new Xeons are going to have BF16 and INT8 matrix units too
<zid>
regular chips have avx which is 'good enough', avx512 has all sorts of weird issues where you need to be doing a specific load, but if you are it's great
<moon-child>
eh
FragmentedCurve has joined #osdev
<moon-child>
even outside the huge vectors, avx512 mask regs are nice
<moon-child>
and you can use them with smaller vectors
<zid>
can you use them without losing 20k cycles first
<zid>
and all your other tasks losing 2GHz
<moon-child>
yeah
<zid>
I know they got it a lot better, but I don't know how far they got at making it better
<moon-child>
clock slowdown is only for the huge vector units afaik
<moon-child>
I will say I find the bf16 stuff kinda dumb. But I get what they're going for--they wanna kill gpus
<moon-child>
which is a noble goal
<zid>
what's bf16? 16bit floats for doing Nns?
<moon-child>
yeah
<kazinsal>
yep, 8 bit exponent/7 bit fraction
<moon-child>
wouldn't it be 8/8
<zid>
bantissa float 16
<moon-child>
because of the implicit bit
<kazinsal>
yeah
<Griwes>
bf16 is binary32 with 16 bits of precision chopped off
<Griwes>
you typically don't mention the implicit bit when spelling out an fp format
<kazinsal>
indeed
<wxwisiasdf>
this amd v. intel war is making amazing content for us customers
<kazinsal>
yeah I'm hoping the Ryzen 6xxx series has the 3D cache from the 5800X3D
<kazinsal>
if it does I'm buying one for sure
<kazinsal>
maybe two
<Griwes>
anyways they won't kill gpus with bf16 support, we've been shipping that for a while lol
<moon-child>
idea behind avx512/xeonphi generally was to replace gpus. Didn't quite pan out. Turns out, they couldn't quite match the raw parallel compute and memory bandwidth
<Griwes>
what's silly is that we're also shipping fp8 with Hopper
<moon-child>
why's that silly?
<Griwes>
Yeah turns out that scaling an arch with an extremely strong memory model up to verymanycores is not a thing that can easily succeed
<moon-child>
that is a good point
<Griwes>
Well, I know that at least some people in scientific computing are saying at fp8 is too tiny to contain any sort of useful results
<moon-child>
I thought it is used for some ml. Obviously not all--for some applications 32-bit floats aren't enough
<Griwes>
Like, the reason bfloat16 exists is that with binary16 you don't have a range suitable for a lot of tasks
<Griwes>
Yeah, it's going to be used by some ml, but that alone usually has me wrinkling my nose
<moon-child>
well, same with 16, no? :P
<moon-child>
i don't know of any practical use outside of ml for such small floats
<Griwes>
ML people don't want any goodies that advance the programming model, they just want raw compute
<Griwes>
Which means that Jensen wants raw compute
<Griwes>
Which means that cool features take a backseat
<Griwes>
That's as much as I'll comment on this :P
<moon-child>
:/
<moon-child>
Griwes: pls gib cool features
<moon-child>
つ ◕_◕ ༽つ
<Griwes>
Some of us are trying :p
<Griwes>
(also don't get me wrong, raw compute is powerful too - just not as interesting)
<kazinsal>
at least you can finally walk into a store and buy a graphics card on a whim again in canada
<kazinsal>
prices are still all wonky but
<moon-child>
I've been meaning to try to make a j->gpu compiler. Probably gl compute, as I have amd card, and it seems glsl can do fine-grained atomics now?
<moon-child>
(imageAtomic*)
<Griwes>
Come to the green side, we have <atomic> :p
<moon-child>
actually I do kinda want an nv card to play with nv_path_trace (or whatever it was called)
<moon-child>
nv_path_rendering
<moon-child>
the curve thing
ZipCPU has quit [Remote host closed the connection]
ZipCPU has joined #osdev
<Clockface>
do any of the 16 bit x86 C compilers spit out position indipendent binaries?
<Clockface>
i know .COM's are sort of like that, but im trying to avoid segmentation for this since that would impede porting to protected mode
srjek has quit [Ping timeout: 250 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<Clockface>
i see gcc has stuff for ia-16, thats good
<zid>
I don't know enough about the 70s to answer
pretty_dumm_guy has joined #osdev
<kazinsal>
I haven't really bothered to look too deep into the mad mad world of C for 8086 machines
<zid>
I didn't think gcc supported it at all
<Clockface>
if im going to make a real mode version, im going to go deep with it
<Clockface>
it seems pretty unnoficcial, one of those things 2 people work on
<kazinsal>
imo if you're going to write something osdev-y for real mode, you might as well go the full nine yards and make it run on an XT
<Clockface>
exactly
<Clockface>
if im going to be stuck with 640k of ram, im going to make sure my computer doesnt have a single extra byte
<zid>
Do it for a machine with 64k of ram then not have to worry about segmentation easy
<Clockface>
doing kernel modules that call eachother based on memory adresses but in segmented memory is going to force me to do something horrible
<Clockface>
i can feel it
<Clockface>
especially since i initially layed this out assuming nice continuous memory in the superior cpu modes
<kazinsal>
the really wacky thing you might end up having to do is defragmenting memory on the fly
<zid>
my consternation with people bothering with real mode is that none of the things I care about in higher modes are relevent to it
<kazinsal>
so, uh, godspeed
<CompanionCube>
iirc position-independence is...expensive on 32-bit or lower
<zid>
sure you could write the code for real mode, but.. it's not like the machine running in real mode has pci
<zid>
or anything else that makes the machine useful
<kazinsal>
oh yeah, real mode stuff is just for vintage PC hackin
<zid>
It's basically an entirely sep. project
<kazinsal>
and for getting booted from MBR disks I guess
<zid>
isa and 8086 and low memory and appletalk or whatever the hell
<Clockface>
i have acess to 3 CPU modes
<zid>
I wouldn't aim like.. below a pentium pro if you want to see the same codebase
* kazinsal
writes down "look into how UEFI bootloaders work" on his long-term todo list
<zid>
see? use
<Clockface>
im going to use all 3 CPU modes god damnit!
<zid>
to be fair, it would be sort of funny to see you try write a 10gigE e1000e driver in real mode
<kazinsal>
I genuinely considered that as an april fools joke this year
<kazinsal>
a virtual switch in a boot sector
<zid>
I bet you could get a couple of megabit out of it
<CompanionCube>
isn't this just pxe
* kazinsal
also writes down "look into how PXE works"
<CompanionCube>
inb4 16-bit 3d acceleration instead
<kazinsal>
I've been using grub-pxe for my test environment but at some point I would like to have an independent boot chain
<Clockface>
cant unreal mode use a lot of the long mode features?
<CompanionCube>
no
<Clockface>
only protected?
<zid>
what long mode features would it be able to use?
<Clockface>
i meant the extra registers and memory, the instructions?
<Clockface>
the ones added since then
<zid>
it isn't in that cpu mode, so none of the irq/task/instruction encoding etc applies
<zid>
you need to be in long mode to use the long mode encodings, they're not backwards compatible
<Clockface>
damn
<Clockface>
that would have been funny
<Clockface>
64 bit real mode
<CompanionCube>
Clockface: did you know 'paged real mode' technically exists
<zid>
how's that work, enable paging in cr0, then drop out of pmode ?
<Clockface>
i thought the half defintion of real mode was the lack of paging
<Clockface>
wtf
<zid>
real mode is real mode
<CompanionCube>
zid: AMD's SVM lets you do it in virtual machines. It also saye that the hypervisor not doing paging there is UB.
<Clockface>
wait, isnt there that "compatibility override byte" for real mode that enables the CPU to use encodings for one of the other modes?
<Clockface>
*instruction encodings
<zid>
it isn't a compat override, it's a size prefix
<Clockface>
oh
<Clockface>
its just for registers?
<Clockface>
well not registers
<zid>
operand size
<Clockface>
but allows you to do 32/64 bit ops
<zid>
it doesn't allow you to do 64bit ops
<Clockface>
whats with the extra later of insulation between long mode and the 32/16 bit rifraff
<zid>
long mode is sorta like.. what real mode is to protected mode but backwards, it's weird
<zid>
it mainly defaults to 32bit
<zid>
and you override it into 64
<zid>
and you just can't encode various 16 and 8 bit verions at all half the time
<bslsk05>
en.wikipedia.org: Virtual 8086 mode - Wikipedia
<zid>
there's no really any 'insulation', it's just 32bit and 64bit pointer accesses make *0* sense
<zid>
so the default size for pointers is 64, but the default size for half the math ops is 32.. because that's more realistic
<zid>
nobody's adding 4839 quadrillion to rax, they're adding a few million
<zid>
err 32bit and 16bit*
<zid>
you override into doing 64bit math, rather than override down to 16
<Clockface>
probably saves a bit of memory that way
<Clockface>
smaller integers
<Clockface>
small benifit though
<zid>
so if you disassemble some pmode code as long mode code half the time it just turns all the eaxs into raxs etc but encodes the same way
<wxwisiasdf>
ah
<wxwisiasdf>
finally, my spooler works :)
<Clockface>
now thay BIOS is fading, do you think they will try to get rid of real mode?
<zid>
now burn it, printers are evil
<wxwisiasdf>
kernel now be like "yo gib me some dma", then the spooler be like "sure lemme queue it rq lul"
<zid>
give it 50 more years
<wxwisiasdf>
printers are beautiful
<Clockface>
i remember my dad yelling and then throwing his HP printer on the concrete outside
<kazinsal>
there have been cases where Intel has produced specific processor models for embedded use that don't have real mode
Ram-Z has quit [Ping timeout: 260 seconds]
<Clockface>
what do they keep real mode around for in PC's
<Clockface>
especially now that they are trying to phase out BIOS
<kazinsal>
no real reason to take it out yet
<wxwisiasdf>
ah yes
<zid>
the real mode sillyconcarne is pretty much trivial
<wxwisiasdf>
real mode avx512 vector optimized
<zid>
think how many 8086s you could fit into the transistor count of an epyc :P
<kazinsal>
quite a few
<wxwisiasdf>
i bet, 4096 bit cpus are going to still have real mode
<kazinsal>
iirc the 8086 was somewhere around 30k transistors
<zid>
rough math... 1/250000
<zid>
0.0004% of the die
<kazinsal>
large bit width systems are pretty much the realm of specific accelerator cards
<wxwisiasdf>
yeah of course
<wxwisiasdf>
gpus go crazy with 3485758bit whatever-thingy
<kazinsal>
64 bits of address space is in fact enough for anybody
<wxwisiasdf>
well uhm
<zid>
I want 128bit pointers so I can do crypto with it
<wxwisiasdf>
some enterprises are reaching limits on their supercomputers :)
<Clockface>
if you improve computers, people will find a way to increase system requirments
<wxwisiasdf>
what if moore's law stops?
<kazinsal>
we'll probably see PML6 a few years from now
<Clockface>
software scales with the computer its written for i think
<zid>
16EB is plenty of ram don't worry
<dh`>
moore's law stopped a while ago
<kazinsal>
but PML5 is already an enormous increase
<zid>
but we're only on a few TB atm, address space != physical wires
<wxwisiasdf>
dh: lol
<zid>
moore's law did infact, die a decade ago
<zid>
we're on the diminishing returns part of that curve atm
<wxwisiasdf>
we still have faster cpus through
<zid>
logistics curve not exponential
<zid>
not really
<Clockface>
i heard someone suggest making the chips thicker
<zid>
we have *more* cpus
<zid>
2011 has 5GHz chips
<Clockface>
just to jam more transistors into the same area
<zid>
on modern architecture
<kazinsal>
standard IA-32e paging is 256 TB of vaddr. PML5 is 128 PB of vaddr.
* CompanionCube
points at the virtual isa with 128-bit pointers in the 80s/90s :p
<wxwisiasdf>
itanium
<kazinsal>
128 PB is an *enormous* space
<zid>
2022 has.. 5GHz cpus, on the same architecture, but with 20 cores as standard instead of 4
<CompanionCube>
itanium was this millenium, no?
<wxwisiasdf>
kazinsal: imagine the person from 2055 saying "lol, just 1 exabyte?"
<zid>
RAM actually doubles really slowly
<wxwisiasdf>
2505 then
<kazinsal>
yeah we're definitely slowing down on scale increases
<wxwisiasdf>
oh no
<kazinsal>
it's entirely possible we won't see PML6 until 2030
<zid>
People still buy/sell 16GB desktops
<zid>
like they did in 2005
<zid>
32GB is becoming more standard
<Clockface>
i think in 2505 they will probably be exploiting some quirks of physics we dont even know about yet to watch videos and play games
<zid>
but you could get that in 2005 too
<wxwisiasdf>
zid: i have this 12gb system
<wxwisiasdf>
how in the world is 32gb standard
<wxwisiasdf>
most i've seen is 16gb
<zid>
go check walmart or something
Likorn has joined #osdev
<CompanionCube>
they said *more* standard
<zid>
the normal PC will be 16, the gaming pc will be 32
<zid>
it's honestly hard to find ddr4 smaller than 32gb
<kazinsal>
I have 32 gigs and I feel like it's no longer enough
<CompanionCube>
imo the point is better done with the existence of systems with 1T RAM :p
<zid>
1T being what, 40 bits?
<zid>
got another 24 doublings to go :p
<Clockface>
whats all that RAM going to?
<wxwisiasdf>
z/arch supports 7tb
<wxwisiasdf>
physical i think
<Clockface>
system requirments go up but i dont know what they are using that memory for
<zid>
bigger textures
<kazinsal>
javascript
<wxwisiasdf>
processing wikipedia
<kazinsal>
also a lot of caching.
<wxwisiasdf>
oh yeah
<zid>
32GB is nice just for the disk cache
<wxwisiasdf>
1 GB cache, when
<kazinsal>
it's worth using a bunch of memory as disk cache
<zid>
amd is selling cpus with 768MB of L3, so we're close
<kazinsal>
Windows will opportunistically cache shit
<Clockface>
whats the minimum amount of ram current versions of windows will do fine on?
<wxwisiasdf>
is the complexity of software justifable?
<kazinsal>
I have effectively zero bytes "free" but 13.4 GB of "available" that's just using it as disk cache
<CompanionCube>
merger of ram and disk when?
<zid>
fine or fine
<Clockface>
since caching isnt a complete necessity
<wxwisiasdf>
for example, microkernels, are they justified on high-requirement systems?
<kazinsal>
I've run Windows Server 2019 fairly comfortably on half a gig but it wasn't doing a whole lot
<zid>
I am using.. 6GB of ram ish
<kazinsal>
it was just a DHCP server
<zid>
problem with 'fine' is that beyond opening calc you're going to be in a world of pain
<zid>
any software you run will expect to be able to load all of QT, or V8 or something stupid
<zid>
and do 20GB overcommit allocations so it can read the files it wants to process, etc
<kazinsal>
yeah I wouldn't want to actually use a desktop Windows system with less than four gigs, but that's not Windows' fault
<kazinsal>
that's the userspace world being terribly wasteful
<zid>
some of it is waste, but honestly not a lot
<zid>
I was *dying* for programs to use ram for a long time
<Clockface>
i dont even like javascript, why did they let it escape the browser
<zid>
people would write horribly slow algs that used no ram because ram was tight
<zid>
then ram exploded in size and programs were still using 10MB of ram while processing enourmous files, on spinning rust
<wxwisiasdf>
ah yes spinning rust
<wxwisiasdf>
im still rocking an hdd
<zid>
"bitch just cache the entire thing, PLEASE, I have 4GB of ram"
<zid>
I have two, but I don't run code off them
<kazinsal>
just kinda eyeballing it it looks like on my Windows 10 desktop all the core components of the OS are using maybe around 300 megs of RAM
<zid>
now turn all the shitty services you don't use off
<kazinsal>
the kernel itself is using ten megs
<zid>
and kill explorer
<Clockface>
funny story: i had an HDD that was running slow, then it made a horrible grinding noise and i thought i lost it, then it stopped and ran faster than it was before
<kazinsal>
yeah, you can easily tell what services are third party
<zid>
no more spooler, network discovery service, etc
<kazinsal>
by the fact they're using 50x as much RAM
<kazinsal>
corsair: why is your fucking mouse driver using 400 megs
<kazinsal>
get your shit together.
<zid>
I refuse to touch peripherial manufacturers' software
<zid>
It's *all* dogshit
<kazinsal>
(actually that might also be the driver for my cooler as well.)
<Clockface>
huh, i wonder if you could write something so electron could do drivers
<zid>
logitech's desktop one isn't horrendous, their gaming one is dumb, and logitech is the best of the lot still
<wxwisiasdf>
Clockface: js2c
<zid>
razer synapse was practically malware
<kazinsal>
I need someone to make a mouse that has an 8-way microswitch on the thumb
<Clockface>
do people use it for that?
<wxwisiasdf>
no
<Clockface>
thank god
<wxwisiasdf>
but they make oses with javascript
<zid>
kazinsal: I need someone to make a mouse with debouncing
<wxwisiasdf>
so i guess it can count
<zid>
they run the switches at 3.3V so they don't need an extra conversion to the gpio pin on the little arm they use
<zid>
and the switches aren't rated below 5V, and that's their absolute minimum anyway
<zid>
and then don't even debounce the switch, which immediately begins to bounce after a week
<kazinsal>
corsair has a single usermode driver service for pretty much all their peripherals
<kazinsal>
it's annoying.
<CompanionCube>
oh, i was expecting ui webshit
<Clockface>
oh, that makes more sense
<CompanionCube>
this is much worse
<kazinsal>
that's the hilarious part
<kazinsal>
the UI?
<kazinsal>
less than 50 megs
<CompanionCube>
lmao
<CompanionCube>
wtf kind of usermode driver needs 400m for an audio device tho
<kingoffrance>
that would make sense for sound fonts or whatever modern stuff might do
<kazinsal>
I don't know what the CorsairGamingAudio.Service is but clearly it's not actually being used -- that 448K is the actual in-memory usage
<kazinsal>
and that's pretty much the "yeah we're completely paged out and this is just what keeps track of all that"
<kazinsal>
there are two Corsair "peripherals" on my system. one is a liquid cooler. the other is a mouse.
<kazinsal>
the way I see it this means that the whole package is basically 250 megs per peripheral.
<Clockface>
why do you need to keep your mouse cool?
vimal has joined #osdev
<Clockface>
they might have jammed every peripheral they make into one package?
<kazinsal>
if I was some kind of leet corsair sponsored streamer and had ten corsair products in/on my system then I could maybe rationalize fifty megs of driver and monitoring and all that per peripheral
<kazinsal>
but at that point I would also be telling corsair to send me another 32 gigs of RAM because their driver sucks
* CompanionCube
had a random corsair headset before, no custom driver just hid + alsa's usb_audio lll
<kazinsal>
Clockface: that's exactly it; there's one big usermode driver that handles everything and one service for storing sensor data
<Clockface>
maybe its more convinient for people
<CompanionCube>
and yet most of it is still paged in
<Clockface>
so they dont have to install more drivers if they buy more from the same company
<kazinsal>
yeah that's what gets me, why is there so much code paged in
<CompanionCube>
could also be data :p
<zid>
The cool splash image when it starts up is important to keep in memory forever
<Clockface>
hearing about the windows world is like hearing about a circus fire
<zid>
windows will page it out.. eventually anyway!
<Clockface>
i like windows, but i dont use it anymore and some peoples stories about it make me laugh
<Clockface>
my favorite is my freind finding the process "dinosecuritylogape.exe", i like the funny name
* CompanionCube
has had a long-standing higher opinion of the nt kernel than most of the rest of windoes
<Clockface>
nt is cool, learning about it is what got me into osdev
<kazinsal>
generally I quite like windows
<Clockface>
i like microsofts stuff, i miss it
<Clockface>
whenever i switch back to windows it does something and makes me mad though
<zid>
windows has honestly done like, really well
<zid>
for being the major platform and having a billion people pull them in a billion directions
<zid>
and being a very long corporate project
<Clockface>
in some ways its nicer to program for than *nix stuff for
pretty_d1 has joined #osdev
pretty_d1 has quit [Client Quit]
pretty_dumm_guy has quit [Ping timeout: 256 seconds]
Likorn has quit [Quit: WeeChat 3.4.1]
pretty_dumm_guy has joined #osdev
Ram-Z has joined #osdev
wxwisiasdf has quit [Quit: Lost terminal]
gildasio has quit [Ping timeout: 240 seconds]
gildasio has joined #osdev
Burgundy has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
GeDaMo has joined #osdev
emanuele6 has left #osdev [WeeChat 3.5]
<kazinsal>
alright, initial x86-64 test code working. I finally got around to writing something! :toot:
<zid>
disgusting behavior, do nothing like the rest of us
<zid>
this channel should be limited to "If I could be bothered, I would <x>"
<kazinsal>
I've spent the past couple months doing nothing
<kazinsal>
last commit was November 18
<kazinsal>
so more than a couple
gxt has quit [Ping timeout: 240 seconds]
gxt has joined #osdev
pretty_dumm_guy has joined #osdev
vin has quit [Remote host closed the connection]
gog has joined #osdev
dennis95 has joined #osdev
vimal has quit [Quit: Leaving]
vdamewood has joined #osdev
vdamewood has quit [Ping timeout: 250 seconds]
vdamewood has joined #osdev
bxh7 has joined #osdev
nyah has joined #osdev
Ali_A has joined #osdev
freakazoid343 has quit [Ping timeout: 260 seconds]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
j0hn has joined #osdev
j0hn has quit [Quit: WeeChat 3.3]
gxt has quit [*.net *.split]
gildasio has quit [*.net *.split]
Vercas has quit [*.net *.split]
Ali_A has quit [Quit: Connection closed]
gxt has joined #osdev
Vercas has joined #osdev
srjek has joined #osdev
srjek has quit [Client Quit]
srjek has joined #osdev
pie_ has quit [Quit: pie_]
vancz has quit [Quit: vancz]
vancz has joined #osdev
pie_ has joined #osdev
pie_ has quit [Client Quit]
vancz has quit [Client Quit]
vancz has joined #osdev
pie_ has joined #osdev
<mrvn>
NT was a microkernel with a 3.5MB core at times when you had full linux OSes on a single floppy disk.
<mrvn>
We had NT at universirty on 16MB machines and the login screen was swapping.
pretty_dumm_guy has quit [Ping timeout: 240 seconds]
<mjg>
zid: lol
<mjg>
anyhow i watched the star trek episode mentioned yesterday
<mjg>
it was ok, but the story does not add up
<zid>
what are we lolling at?
<mjg>
11:05 < zid> this channel should be limited to "If I could be bothered, I would <x>"
<zid>
You should be scorning kaz not lolling, it's deeply sad he's stolen a march on us
pretty_dumm_guy has joined #osdev
* mjg
scorns kaz
<mjg>
there
Likorn has joined #osdev
gildasio has joined #osdev
mahmutov has joined #osdev
Likorn has quit [Quit: WeeChat 3.4.1]
Ali_A has joined #osdev
heat has joined #osdev
zaquest has quit [Remote host closed the connection]
<heat>
kazinsal, congrats!
zhiayang has quit [Quit: oof.]
zaquest has joined #osdev
zhiayang has joined #osdev
zhiayang has quit [Quit: oof.]
zhiayang has joined #osdev
wxwisiasdf has joined #osdev
<wxwisiasdf>
hello
<GeDaMo>
Hi wxwisiasdf :)
<wxwisiasdf>
i've been trying to make the timer work but it just seems to hang upon call to the external interrupt handler, probably some wait state is turned on that i don't know of >.<
<GeDaMo>
Which architecture? Which timer?
dennis95 has quit [Quit: Leaving]
<wxwisiasdf>
GeDaMo: z/arch :)
<GeDaMo>
I don't know anything about that :|
<wxwisiasdf>
:/
<GeDaMo>
Have you tried looking at the Linux source? I'm pretty sure it runs on z
<wxwisiasdf>
of course
<heat>
you've picked like the most niche arch out there lol
<mjg>
hold my beer
<wxwisiasdf>
heat: z/Arch + japanesse + exokernel
<wxwisiasdf>
how more niche
<heat>
mjg, which beer?
knusbaum has joined #osdev
knusbaum- has quit [Ping timeout: 276 seconds]
<kingoffrance>
there's always room for story of mel
<wxwisiasdf>
may i ask, what are your oses? :p
<wxwisiasdf>
everyone seems to be makin' cool stuff
pretty_dumm_guy has quit [Ping timeout: 260 seconds]
<gorgonical>
My dislike for arduino grows. RSA code breaks depending on where I put it in the code, random hangups that seem sometimes attributable to the watchdog, sometimes not. It's... not fun
<wxwisiasdf>
ah finally i figured out
<wxwisiasdf>
the timer now works and it's running at the extraordinary speed of 1 second per context switch
wootehfoot has joined #osdev
dude12312414 has joined #osdev
ns12 has quit [Quit: bye]
ns12 has joined #osdev
freakazoid12345 has joined #osdev
Likorn has joined #osdev
Ali_A has quit [Quit: Connection closed]
gorgonical_ has joined #osdev
w41 has joined #osdev
<jimbzy>
Sup?
jhagborg has joined #osdev
gorgonical_ has quit [Read error: Connection reset by peer]
<geist>
howdy
<geist>
just doing the bi-annually 'downoad all the ubuntu releases' download
<geist>
22.04 stuff is up for download
<geist>
will fiddle with in some VMs later
<gorgonical>
I recently upgraded to slackware 15.0
<gorgonical>
Nice and smooth
<geist>
noice
<mjg>
slackware?
<gorgonical>
yes
<mjg>
#butwhy
<gorgonical>
I don't like upgrades
<mjg>
running slackware in production definitely sounds like a twlight zone episode
<gorgonical>
It suits me. I understand most of the system and when things break I can fix them myself. When I started linux I distrohopped a bunch before settling on gentoo for a while. I become disillusioned with emerge, switche to slackware, and I'm happy for years now
<geist>
sure. i get it. i dont find slackware meets that niche, but i get why folks woul like it
<geist>
i mostly use mint linux for desktops and ubuntu for servers, but then i'm not running production anything
<gorgonical>
That's interesting geist. What about slackware you think misses that niche? To me it's like... the most BSD-like of the Linuxes and that makes it very understandable for me. Init is still rc scripts, which I know is horrifying to many
<geist>
sure.
<geist>
nothing in particular, and i haven't fiddled with modern slackware in years so i cant say
<geist>
more that i'm satisfied with other options
<geist>
i have ancient slackware on some ancient machines, because it's more appropriate though
<gorgonical>
Yep. I realized a while ago that's a big part of it: which distro sort of "fits" with you at the right time to latch on
<geist>
yup
<gorgonical>
It supported xfce right out of the box, too, which I like
<gorgonical>
Never got on with kde/gnome honestly
<geist>
and how much time/energy/interest in fiddling with it too
<geist>
so folks find the distro that has the right level of knobs to frob
<geist>
yah the xfce based mints i've used on some lower end machines to good effect
<geist>
XFCE has that CDE like aesthetic that i find pleasing for no particular reason at all
<geist>
that sort of late 90s era sharpness of ui widgets and whatnot. i dunno, i find that nice
<geist>
not nice enough to change everything, but still, nice
<gorgonical>
exactly. I mourned extensively when windows stopped supporting the "classic" theme. I grew up using that and I think it's burned into my head
<gorgonical>
Smooth, fancy widgets are just not it for me
<geist>
yah, they dont irk me intensely, but i just dont enjoy them as much. for cinnamon or mate on mint linux i usually use a clearlooks theme that's fairly 'retro' at this point
<geist>
but i'm on my mac right now, etc and it's not really completely irking me
<gorgonical>
oh you just reminded me about mate. I used mate for a long time because it kept the old gtk look
<geist>
yah same. i had put off cinnamon for a while but eventually switched to it since the start menu does basically what i want
<geist>
hit start key, start typing what i want, hit enter is basically all i need out of a app selector
<gorgonical>
yep
<geist>
mate, alas, is still retro enough that if yo uwanted to use you have to actually drill through menus
<gorgonical>
I think another large part of it is that I've accumulated a lot of expertise in making xfce do what I want. I've written plugins, scripts, etc. So the idea of constantly upgrading is quite unappealing
<geist>
windows and mac both have basically that model too, so all in all i switch between win 10, mac, and cinnamon based systems 10 times a day and its no real cognitive load
<geist>
only real fundamental difference is ctrl vs command on mac, but surprisingly that doesn't really cause any trouble
<gorgonical>
I feel like a lobotomite when I use my partner's macbook. MUscle memory really gets me
<gorgonical>
Is it control or command???
<geist>
and i find it actually a little nicer to be honest: you can copy/paste in a terminal on mac without needing complicated chording to avoid ctrl-c
<geist>
ctrl stuff goes to the terminal, command stuff operates on the terminal app. makes sense to me
GeDaMo has quit [Remote host closed the connection]
<geist>
otoh when i'm on linux i have button 3 pasting, so it also has some advantages. windows has no such thing, so it's a lesser terminal experience
<gorgonical>
I never knew. She's borderline computer illiterate so she us almost entirely a GUI/mouse person. E.g. I recently taught her that you can focus the address bar in chrome with the keyboard
<gorgonical>
I extensively use the highlight to clipboard function of X and so when I'm on her mac I'm surprised when paste doesn't do anything
<geist>
yah
<wxwisiasdf>
i am more pro-gui
<wxwisiasdf>
while the terminal is good i think having an easy solution is always nice
<wxwisiasdf>
ease of use :p
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
jhagborg has quit [Ping timeout: 256 seconds]
dennis95 has joined #osdev
<Clockface>
when i found out about windows forms i thought it was the coolest thing ever
jhagborg has joined #osdev
<sbalmos>
with as much as I use my local desktop remotely, I have never been able to break free of Windows totally because RDP is just /so damn good/. NX still pales in comparison, has a horrible Android/Chromebook client, and trying to have the local console GUI session picked up remotely, come back to it locally, etc is apparently a totally foreign concept
sonny has joined #osdev
<heat>
i use arch btw
<heat>
AMA
<sonny>
how long has it been since arch changed kconfig?
<wxwisiasdf>
how many desktops had to suffer
<clever>
geist: but putty on windows will copy on selection, and paste on right? click, so you can kinda get the same thing there
<sbalmos>
<Mon Mothma> "Many penguins died to bring us this information..."
<geist>
yah but probably only within putty i guess
<wxwisiasdf>
Clockface: windows forms best
<clever>
mostly
<clever>
but i believe it is using the windows clipboard
<clever>
so you can select in putty then ctrl+v elsewhere, or ctrl+c and right click
<heat>
sonny, idk and only gentoo users need to worry about that
<wxwisiasdf>
also whats up with project udi
<heat>
wxwisiasdf, many
<sbalmos>
honestly personally haven't touched Putty in a few years now, since the OpenSSH client is built into Win10+
<wxwisiasdf>
heat: oh no
<heat>
fuck them desktops
<clever>
sbalmos: oh, i never noticed that
<heat>
this is linux
<sbalmos>
clever: oh ya, been there for a while
<clever>
my desktop dual-boots between win7 and linux
<heat>
yup you can ssh directly from cmd or powershell
<clever>
and my win10 vm is only for testing work stuff, so i dont use it much
<clever>
there is little point in running ssh in windows in virtualbox on linux, lol
<clever>
so i never had the need to try
<heat>
wxwisiasdf, project UDI is dead
<heat>
dead on arrival probably
<wxwisiasdf>
heat: why what happened
<heat>
stupid bad and smelly
<wxwisiasdf>
how - what?
<heat>
it's also objectively worse than not having it there
<heat>
and many people didn't want it to happen
<wxwisiasdf>
oh that's a shame
<heat>
if you want ez to use drivers that are kinda bad, use UEFI ones and wrap the protocols
<wxwisiasdf>
i mean the whole UDI idea was pretty good because not everyone can do igpu drivers
<heat>
it'll be horrible because the rest of your system can't look into the hardware (and UEFI lacks interrupts so you need to do something about that) but it'll be great besides that!
<wxwisiasdf>
aha...
<heat>
wxwisiasdf, the status quo is "port linux drivers"
<sonny>
clever how did you get win7? lol
<heat>
particularly because the whole of drm/ and mesa is MIT or MIT-like licensed
<wxwisiasdf>
okei
<heat>
fuchsia wrote their own and it works (though reduced support for hardware)
<heat>
their own for intel GPUs, that is
<wxwisiasdf>
yeah guessed so
<clever>
sonny: i bought it before win10 came out :P
<heat>
the problem isn't really the kernel modules but the userspace stuff on most hw
<sonny>
clever heh nice
<wxwisiasdf>
yeah makes sense
<wxwisiasdf>
especially with mesa
<wxwisiasdf>
or those ioctl-y programmes
<heat>
the graphics stack is huge and includes compilers, debugging tools, etc
<wxwisiasdf>
of course lol
<heat>
then you write your first driver, driver X, things work fine, a bit rough but they work
<sonny>
why is Linux graphics only X?
<heat>
then you write your second driver, driver Y, and you realise you need to take parts of X and put them in a common lib
<heat>
then when adding driver Z you realise you made too many assumptions in the common layer and now you need to refactor things
<heat>
sonny, 'tis not
<sonny>
oh thought you were talking about Xorg
<heat>
no
<heat>
that's also an issue tho :P
mahmutov has quit [Ping timeout: 240 seconds]
<heat>
you need to implement a totally separate spec for opengl (egl, and for oldies, glx) and vulkan (vulkan window system integration)
<wxwisiasdf>
of course
<heat>
if you want to add your own windowing system, you need to, guess what
<wxwisiasdf>
of course of course, mesa already does all of that
<heat>
add an *extension*
<wxwisiasdf>
igpu -> mesa -> opengl/vk
<heat>
then all the libs (libSDL, gtk, qt) need to start understanding your extensions
<clever>
my rough understanding of the drm/mesa subsystem in linux, is that drm's display end just deals with configuring the resolution, allocating 2d buffers, and displaying them with pageflipping
<heat>
and they're also not official because extensions have a regulatory body
<clever>
the 3d side deals with allocating buffers, and issueing commands to the gpu
<clever>
but all of the inteligence (shader compiling, command list generation) comes from mesa in userland
<clever>
so the kernel is only dealing with allocating contiguious buffers, irqs, mmio, and gpu memory allocations
<heat>
drm does modesetting, allocation, power management, command issuing
<clever>
yep, that sums it all up
<heat>
mesa does shader stuff, implements gl/vulkan, issues the actual commands
<clever>
"command issueing" also involves injecting the phys addr of a buffer into commands, so userland cant abuse physical addressing
<heat>
also, great fun thing: since linux's kernel ABI is stable, you can never remove ioctls until it's proven that no-one is using it
<heat>
if you fuck up your drm driver's ioctl, add a new one, obviously!
<clever>
other then command queueing stuff, most of drm has a standard api for every driver to implement
jhagborg has quit [Ping timeout: 240 seconds]
wootehfoot has quit [Quit: Leaving]
<heat>
most of the big drivers' API are non-standard lol
<heat>
very few ioctls are shared between them
<heat>
mostly that drm modesetting stuff you mentioned
<sonny>
driver design / IO system is the new frontier?
pretty_dumm_guy has joined #osdev
<heat>
ok i must admit i was wrong
<mjg>
so new ubuntu is out and i'm afraid to upgrade
<mjg>
:S
<heat>
there are a bit more drm ioctls than i915 ioctls
<heat>
surprising
<heat>
mjg: upgrade to
<heat>
a r c h
<mjg>
)
<mjg>
the issue is my laptop's display got hit and does not work anymore
<mjg>
i have to use external monitors
<mjg>
and i can't go to the bios to fiddle with any settings as it only uses the primary screen
<mjg>
should the upgrade process only use that guy i'll be fucked
<heat>
ssh or rdp into it when installing
<mjg>
[and ye i'm planning to buy a new laptop in few months :>]
<mjg>
ssh from what bro
<heat>
anything
<mjg>
got nothin
<heat>
even an android phone works
<mjg>
apart from my phone, but i'm not going to use that for that case
<mjg>
basic security
<heat>
ssh'ing from your phone works fineeeeeeeeeeeeeee
<bslsk05>
seri.tools: Rust9x: Compile Rust code for Windows 95, NT and above
<kazinsal>
this is... a thing.
<geist>
well *technically* windows 10 is NT
<geist>
but i guess they mean things that were called NT
<kazinsal>
yeah, looks like it's tested on 3.51 and up
<geist>
i guess they really mean 32bit windows starting with 95 and NT 3.51
<kazinsal>
3.x doesn't have the network part of the standard library and everything before XP doesn't have TLS because the rust TLS library needs RtlGenRandom
<geist>
since it says its tested up through vista
<geist>
does win 10 even come in 32bit, or was that when they finally dropped it?
<kazinsal>
it does, but I've never seen anyone use it (intentionally)
<geist>
oh hmm, i bet 11 doesn't. maybe that was the official reason they flipped to a new number?
<kazinsal>
ah, Windows 10.1909 is the last one with 32-bit support
<kazinsal>
10.2004 and later are 64-bit only
<geist>
hmm, seems to be true. win11 has no actual 32bit version
<geist>
that ended with a whimper, i can remember no mention of it anywhere
<geist>
for fairly obvious reasons
<wxwisiasdf>
windows 10 is the last windows
<wxwisiasdf>
they said.
<kazinsal>
I should probably upgrade to 11
<geist>
yah i have been looking for a reason they *needed* to flip to 11
<kazinsal>
also should probably upgrade my m1 machine to 12.whatever, think I'm still on 11.something
<geist>
the few machines i've personally upgraded to 11 run fine. no real issues and its not really any slower or anything
<geist>
interesting though i did take a thinkpad laptop with 10 on it, turn off secure boot (had to disable bitlocker because of that) and then upgraded to 11
<geist>
so the requirements for secure boot seem to be not as strong. bitlocker however requires it
<geist>
i was however pleasantly surprised the little underpowered, fanless lab computer i have when i upgraded to 11 runs just fine. i was worried the memory requirements would increase and it'd start swapping more or whatnot but as far as i can tell it's just the same thing
<geist>
i hate the start menu in the middle, but that's a setting you can tweak and then it's basically more or less the same experience as 10 for all practical purposes
<kazinsal>
hmm, I should check if my motherboard has fTPM support. think you still need that to install 11
<geist>
yah all my ryzen boxes do
<heat>
i really like windows 11
<heat>
especially the new look
<geist>
that being said my main gaming machine i dunno. thats where i actually care if performance is difference, so i'm holding out, especially after the initial ryzen issues, though i'm sure those are fixed now
<mjg>
what do you have windows for?
<mjg>
gaming?
<heat>
yes
<geist>
basically yes
<kazinsal>
mmhmm
<kazinsal>
also I just like it more as a desktop operating system than I do linux
<heat>
gaming on linux is still bad
Burgundy has quit [Ping timeout: 250 seconds]
<heat>
yeah it's gotten a lot better
<mjg>
i know people who do linux-only work and use windows as a workstation [not gaming]
<heat>
even as a dev environment
<mjg>
kind of weird if you ask me
<heat>
yeah that's sus
<kazinsal>
I like macOS quite a bit but Windows continues to just work nicely for me
<geist>
but outside of gaming i'm either gaming (in windows) or programming (in linux) but everything else is basically using the browser or the few apps that run on both linux and windows (spotify, etc) in which case it's the same experience both
<geist>
so i dual boot and then just leave it in whatever it was booted last until a forcing function causes me to reboot
<kazinsal>
I do my programming stuff on a Linux box but it's a VM on a headless server under my desk and I just have ssh and sshfs set up for it
<heat>
real gamers game when not gaming 😎
<geist>
but really it's app availablilyy and the availability of a good posix environment. windows is getting closer, but not quite there yet
<geist>
so i flip between based on needs
<heat>
wsl2 is pretty good
<mjg>
if something goes haywire on linux i have some idea how to debug it. if shit hits the fan on linux and there is no googlable answer i would have to reinstall
<heat>
has some overhead but pretty good nonetheless
<geist>
yah alas i can't use it at the ame time as vmware and whatnot, which i also have installed on windows
manawyrm has quit [Quit: Read error: 2.99792458 x 10^8 meters/second (Excessive speed of light)]
<kazinsal>
ah hrm, gotta do a bios update for win11 support on my motherboard. looks like I'm still running the same firmware package that it shipped with in 2017, yikes
<heat>
(overhead being memory, of course)
<heat>
huh
<mjg>
geist: i hear with wsl2 or however it is called you can literally boot linux alongside windows
<heat>
probably TPM
manawyrm has joined #osdev
<kazinsal>
yep, fTPM support was added at some point
<heat>
mjg, yes, that's what it does
<geist>
mjg: it does and thats why it has issues. it runs the hyper-v hypervisor, etc
<geist>
and that (last i tried) had some serious conflicts with vmware and virtualbox. even though i think theyre *supposed* to work together
<kazinsal>
and yeah I don't have WSL2 installed because it requires hyper-v and the interaction between hyper-v and other hypervisors is... questionable
<mjg>
hrm
<geist>
exactly. so it's really i dont want hyper-v running, and thus i can't do WSL2
<kazinsal>
there's an API called Windows Hypervisor Platform
<kazinsal>
but it's got some issues
<geist>
also having hyperv going causes some things to not work, like Ryzen Master
<geist>
which i dont care about that much except if i'm fiddling around with overclocking or whatnot
<geist>
needs unfettered access to hardware
<kazinsal>
yeah hyper-v is unfortunately not that great for client machines
<heat>
oh overclocking inside windows
<geist>
that would be something to doube check: does windows 11 require it
<heat>
nice
<kazinsal>
it's alright on servers because if you're buying a windows server datacenter license you're almost assuredly running a bunch of windows server machines
<kazinsal>
so you might as well take advantage of hyper-v's windows-focused paravirtualization
<heat>
why would an overclocking utility need a hypervisor
<heat>
mom help im scared
<geist>
yah to be fair hyper-v is probably fine, i just dont necessarily want it there if i'm not directy using it
<geist>
heat: no the opposite. the hypervisor gets in the way
<geist>
ie, i have to turn it *off* or the ryzen master stuff doesn't work
<heat>
how though?
<geist>
*shrugs*
<heat>
windows doesn't run under hyper-v itself does it?
<kazinsal>
hyper-v basically does a xen and your "host OS" is actually a dom0
<heat>
ohhhhh
<geist>
heat: yes, when you enable it
<geist>
it's one of those check boxes you had to check when installing WSL2
<heat>
i see
<heat>
isn't overclocking just MSR accesses? or am I severely mistaken?
<geist>
also similarily i'm sure if you go into your bios and disable VMX or SVM windows will complain if you try to start WSL2
<geist>
heat: beats me what ryzen master is doing
<heat>
maybe chipset stuff *shrug*
<geist>
almost certainly, or talking to the little ARM secure processor
<geist>
why the hypervisor can't pass that through i dunno. or maybe it's because ryzen master detects the hypervisor and says 'nope i aint gonna work with this'
<bslsk05>
docs.microsoft.com: Windows Hypervisor Platform API Definitions | Microsoft Docs
<kazinsal>
this is how you run vmware/virtualbox/qemu/what have you on a machine with hyper-v enabled
<geist>
side note i've never tried but i assume that WSL2 on a windows machine running in a guest wont work unless nested virt is enabled
<geist>
haven't tried
<heat>
actually, hmm
<geist>
i have a win 10 guest running in qemu all the time, i should try
<heat>
how do anti cheats not complain about hyperv?
<kazinsal>
I think a few do
<clever>
heat: ive heard of anti-cheat banning you for having a big-little cpu
<clever>
because the cpuid randomly changes mid gaming session
<kazinsal>
Escape from Tarkov will disconnect you a few seconds into a match if you have virtual box open
<heat>
VAC, faceit don't
<heat>
i would've been banned long ago
<kazinsal>
wonder if ESEA does
<heat>
and they definitely complain about hypervisors
<geist>
side note, i was looking in the cpuid command line utility and it has knowledge of apparently some new cpuid leaves (0x19 i think) that describe big.little on a tiger lake
<geist>
i should dig up some docs on that
<kazinsal>
ESEA's anticheat used to be really good but also incredibly paranoid
<heat>
kazinsal, is that still a thing lol
<kazinsal>
dunno, I haven't played CS in years
<geist>
yah i'm actually a bit scared to check to see what rootkits games have installed in my machine are
<geist>
hopefully no CAPCOM.SYS
<clever>
ive also seen the other side of anti-cheat a bit, i was hanging out in a diablo3 cheating chatroom for a bit
<heat>
VAC doesn't install kernel drivers
<clever>
basically, the cheat monitored the version of the anti-cheat software
<geist>
yah i honestly have no idea why cheating in a PvP game is actually any fun?
<clever>
and if anti-cheat gets ANY updates, the cheats auto-disable
<geist>
if you're making money on it i guess, but otherwise, that's the point?
<clever>
geist: my goal was not to cheat, but to get a dps meter
<geist>
sure but i mean why do folks generically want to cheat at PVP?
<clever>
so i could measure my own performance and tell if i'm doing better or worse, with hard numbers
<kazinsal>
some people are just really upset that they're not as good as their favourite streamer or whatnot so they cheat to pretend they are
<geist>
i guess its the same reason people cheat anywhere, but it'snot even that fun because it's all anonymous
<heat>
where else would you cheat?
<kazinsal>
getting good takes practice
<geist>
i can undetstand cheating for profit or something, or to get ahead in some material way (pass college, etc)
<kazinsal>
the illusion of being good takes the cost of a new account
<clever>
but, every time the safety turns the cheats off to protect the cheater, they flock to the chat room and complain that it should be turned back on asap, lol
<geist>
well whatever it is it really ruins it for every0noe else
<clever>
not understanding why it turned itself off
<heat>
the stupidest cheating there is IMO is racing games
<heat>
congrats, you got a 10 second lap time
<heat>
you win
<geist>
haha
<geist>
you drove over the finish line backwards! congrats!
<clever>
ive seen one about a guy cheating at guitar hero, he was basically speeding up playback footage, and then miming playing on camera
<geist>
that i guess kinda makes sense, because he was recording it and thus trying to score social points
<clever>
he actually made some decent money
<clever>
because people had bounties up on beating a tme
<geist>
see. not that i think it's not stupid, but ugh. anyway
<geist>
(which i'm sure is actually terrible, but it looks neat)
<heat>
you know they love their design when all words are lowercase
<kazinsal>
I think in my next PC build I'm going to finally retire my ancient gargantuan cooler master case
<kazinsal>
only one of the front panel USB ports works, and it's starting to fall apart
<sonny>
what an interesting company name
<heat>
skip the case so you can look at your MSI GAMER GAMING DRAGON GAMER FOCUSED PCIE READY FOR ULTRA FAST PROFESSIONAL GAMER GAMING motherboard
<kazinsal>
I wish Lian Li still made really understated looking cases
<kazinsal>
but it's all glass and RGB now
<geist>
kazinsal: yeah every time i build a new big gaming rig i always think i'll just reuse the old case but something like USB3 or whatnot will push me to get a new one
<heat>
sonny, seriously though .engineering? why?
<geist>
agreed i end up using a bland ass cooler master
<sonny>
heat that just registered in my mind
<sonny>
wonder how they got that done
<heat>
it must be a TLD
<sonny>
yeah but how?
<heat>
ietf go brr?
<sonny>
lmao
<geist>
good question: who maintains it. or can you get it through any of the usual brokers
<geist>
mostly nowadyas i like a lot of places to put lots of fans. my current desktop rig as MUCHO VENTALIDOR
<heat>
oh riight google also has .doogle
<heat>
.google
<heat>
doogle unfortunately doesn't exist
<mjg>
geist: there are people who turn pc modding into a sport
<mjg>
or however this is called
<geist>
and honestly also cases are so much simpler to pack now because you usually dont shove them full of cdrom, floppies, and hard drives
<geist>
SSDs go on the board or behind the MOBO
<mjg>
their boxes weigh a fuckin ton, probably the only reason they don't fly away with all that cooling
<geist>
all the space is just fans
<kazinsal>
yeah
<geist>
mjg: yah mine is just fans everywhere, but they're pretty low rpm so it's actually really quiet
<mjg>
then you are doing fans wrong
<kazinsal>
I'll likely end up decommissioning my old 2x1TB RAID 0 when I move to a new case
<geist>
omg i'm getting called out by the fan police!
<mjg>
grab some from old sun servers
<mjg>
fuckers sounded like a jet taking off
<kazinsal>
mmm. 40mm fans
<geist>
DIOS MIO!
<kazinsal>
I have an old nortel GbE switch in my closet and with all the fans in it's painfully loud
<mjg>
well REAL FANS make noise, it's that simple
<geist>
yah my unifi switch randomly decides to spin its fan from 10% to 100%
<geist>
dunno precisely why, it's annoying
<mjg>
bitcoin miner?
<kazinsal>
oh we had a 1U server that had some faulty fan sensors in it in the office once
<geist>
it's like it wants some attention
<kazinsal>
randomly it'd kick up to 24k RPM
<mjg>
for real though, does it correlate with increase cpu usage?
<geist>
that arm server/workstation box i have at home you should hear it when it's booting
<kazinsal>
everyone would immediately turn their heads towards the lab as soon as it happened too
<mjg>
chances are excellent you got a cron job or something which eats crap
<geist>
it has a 3 minute boot sequence where the fans are full tilt. like literally a decent vacuum cleaner sound
<geist>
mjg: it's a switch.
<geist>
and yes it has linux on it, but... we.l you know i really should check that it isn't running a cron job
<mjg>
running linux?
<geist>
if someone wants to bitcoin on it though... that's some pretty hard scrabble
<mjg>
right, i guarantee it has tons of crap
<geist>
eh, the unifi ones tend to have basically one process that just acts like a switch
<kazinsal>
dear switch asic manufacturers: please open source your drivers. please.
<heat>
why would a switch run linux?
<heat>
aren't they super simple?
<mjg>
linux of things
<kazinsal>
so one of my favourite modern networking misfeatures is containers on everything
<clever>
kazinsal: i bought a banana pi r1 a while back, it has a managed capable switch ic, but the "brains" of the switch is an allwinner soc
<geist>
well, a simple switch yes. but this particular one is a decent proper layer 2 switch. layer 3 switches probably need a real cpu to look at things
<kazinsal>
current gen cisco switches let you run docker on them
<clever>
so the idea, is that you configure the switch ic over i2c i think it was, and then it will have N different vlans, and a trunk port back to the soc
<geist>
but it's clear most of it is offloaded to an asic, but you then need some derpy arm cpu running linux for management purposes
<clever>
and boom, router!
<clever>
but, the eeprom with the power-on default config is missing, so it defaults to bridging every single port, boom, no firewall!
<clever>
and the docs are entirely absent
<mjg>
geist: for all i know your switch is checking for "firmware" updates
<clever>
you have zero protection from the internet, until the allwinner has booted linux enough to re-configure things
<geist>
it is. it's all managed via the unifi stuff
<geist>
pretty neat prosumer level bits
<mjg>
well it may seem all nice from end user pov
<kazinsal>
yeah modern prosumer grade switch boards are neat
<mjg>
but i'm willing to bet 1 kidney internals are terrible
<kazinsal>
the internals of everything are terrible
<mjg>
most notably when it comes to cpu waste
<geist>
right so this unifi switch has like a .... single cpu 800mhz ARMv7 on it
<geist>
some broadcomm asic
<geist>
it's running some busybox thing and dropbear (if you enable ssh)
<kazinsal>
makes sense
<kazinsal>
just enough for basic management etc
<heat>
you should get a switch that boots lk
<geist>
seems to be using about 10% cpu in a process called 'swithdrvr'
<geist>
and basically 8 other processes that are mostly just the usual suspects after init
<kazinsal>
I would love to one day support switches but unfortunately all the ASIC drivers are closed source and behind a bajillion NDAs
<clever>
the banana pi i got, does the bulk of the switching in a dumb asic
<clever>
and the only config it has, is to create vlans and trunking ports
<clever>
so the only thing the soc needs to do, is NAT and the config ui
<geist>
yah it's pretty clear this does the same thing. since each port is individually configurable, etc the switchdrvr needs to be able to talk to the asic(s) to tell it how to set things up
<geist>
but clearly it's not involved with actual moving packets around
<heat>
what's stopping you from doing a simple L2 switch with a bunch of interfaces and a routing table?
<geist>
the cpu would be far too slow for that
<geist>
heat: oh on some board witha lot of ethernet? nothing at all
<geist>
would be kinda fun
<kazinsal>
yeah
<geist>
could even do a L3 switch, which i think is when things get interesting
<kazinsal>
basic L2 switching isn't difficult, just CPU-expensive
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
<heat>
how do L3 switches work?
<geist>
if i ever update this unifi switch the new pro versions are all L3
<kazinsal>
heat: routing in hardware
<geist>
so i think the gist of it, for example, is if you're routing between multiple subnets you can skip going all the way back to the main router to forward a packet
<geist>
and any intermediate L3 switch can act like a cross-subnet router
<kazinsal>
yep
<clever>
what about when you get a mac spoofing storm, and the routing tables overflow?
<geist>
so two computers can be on say different vlans on two ports next to each other, but each of the L3 switches knows the routing setup of your organization
<kazinsal>
usually there's mitigations for that
<geist>
so it can directly route without leaving the switch
<kazinsal>
things like mac limits on ports that can be configured
<geist>
that's my 5 minute understanding of it
<kazinsal>
that's basically it yeah
<geist>
AFAICT there'd e zero use of L3 switches if everything is a single subnet
<heat>
here's a random question: can you respond to ARP/NDP requests for other hosts
<kazinsal>
an L3 switch has virtual L3 interfaces for each VLAN that it's configured to route for
<heat>
or is that never allowed in any rfc ever
<kazinsal>
proxy arp exists
<heat>
not proxy arp
<geist>
yah... was gonna mentoin that. i dont know precisely what it is, but i've heard of proxy arp
<clever>
i thought proxy arp was more about a cheaper way to do bridging
<heat>
proxy arp is "hey i'm totally host Y" and then when you get the packets you route them to Y
<clever>
lie about which mac an ip is on, so you can act as the gateway
<clever>
exactly
<kazinsal>
oh, you mean like, intentionally arp spoofing
<kazinsal>
for legit purposes?
<clever>
and a proper gateway, is just doing the arp against the wrong ip (a gateway) and sending the packets there
<heat>
i guess you can't answer other ARPs for other hosts because then you never know they're down and you get ARP response storms
<heat>
kazinsal, yeah kinda like an optimisation
<clever>
kazinsal: yeah, proxy arp is often used in wifi/ethernet bridging, so you can bridge without turning on full snoop
<geist>
and i guess it would/wouldn't apply to the ipv6 equivalent of it
<geist>
uh, i forget off the top of my head what it's called
<heat>
NDP
<kazinsal>
yeah
<clever>
neighbor detection protocol?
<heat>
yes
<heat>
*neighbour btw
<geist>
is that the multicast thing wher eyou ask?
<heat>
everyone in networking is bri'ish
<heat>
geist, yes
gog has quit [Ping timeout: 246 seconds]
<mjg>
big endian, british spelling
<mjg>
networking is truly alien
<heat>
cuz there's no broadcast in ipv6
<geist>
question there is can you send that to a greater than local multicast address? or is that mandated to be blocked by routing
<geist>
yah and it's nicely scoped, so you could hypothetically send a NDP to organization wide, etc, but probably specced as being only valid for subnet local multicast
<heat>
all the multicast nodes are link local i think
<geist>
i thought there was scoping for larger than local
<bslsk05>
www.iana.org: IPv6 Multicast Address Space Registry
<geist>
ff05:: would be site local
<geist>
anyway, my guess is the NDP stuff is specced as being link local
<heat>
solicited note address (for NDP) is always link local
<geist>
the more i grok ipv6 the more i really like it. i'm sure there are huge warts that i just haven't found yet, but it seems pretty logically designed
<heat>
FF02:0:0:0:0:1:FF00::/104 is the prefix you use, then you append the lower 24 bits of the address
<geist>
since my ISP supports it and i have it setup here, i'm pleased to see that at least 50% of my network traffic through my router is ipv6
<heat>
my ipv6 address configuration doesn't work on my real network and I don't know why
<heat>
never get any router advertisements
sonny has quit [Ping timeout: 252 seconds]
<heat>
maybe i'm missing something
<geist>
what i guess i do have a problem with is since i am specifically not using DHCPv6 i can't easily set up any router holes or whatnot, because all the ip addresses are effectively ephemeral on the client side
<geist>
which is honestly fine, but it does mean that i cant route, say, port 22 easily to a host unless that host has a permanent address
<heat>
icmpv6 has a bunch of ICMP codes that are explicitly must-ignore if you don't set a flag
<heat>
(actually not a flag but an ipv6 option)
<geist>
which it probably *does* because it'll pick at least one permanent local address and it wont change on me
<heat>
you can set up a static address
<heat>
slaac doesn't mean ephemeral
<heat>
(you can also probably use the old(er) method of generating the slaac ipv6 based on MAC addresses)
<geist>
and yeah the main local address is usually 'fixed'
<geist>
right
<heat>
i can't remember if they require you to use the same suffix but I would guess not
<heat>
brb need to capture some addrcfg packets
heat has quit [Remote host closed the connection]
heat has joined #osdev
sonny has joined #osdev
Gooberpatrol66 has joined #osdev
<wxwisiasdf>
wow
<Clockface>
is there any benifit to making a tiny and bad little procedural language instead of using C
<sonny>
consistent assembly output
<sonny>
would you have to make a linker too? idk
<heat>
Clockface, fun
<moon-child>
^
<geist>
fun
<heat>
also learning
<moon-child>
I made a c compiler. It generates horrendously bad code cuz I had no register allocator. 500ish byte stack frames for 10 line functions. But register allocation is annoying
<sonny>
I'd probably end up modifing the syntax, but I'm not that aquainted with amd64 yet so I haven't really given much though to it
<sonny>
does sound fun though
<moon-child>
I did an assembler too
<moon-child>
0/10 do not recommend
<sonny>
oh no? someone told me that was easier
<geist>
i wrote one years ago in python for my cpu design and i found it kinda fun, but i could also design the asm syntax to be easily parsable
<sonny>
amd64 must be an encoding nightmare
<sonny>
risc designs ftw
<moon-child>
risc gambit failed
<geist>
more or less. though.... lots of risc designs (risc-v in particular) leans heavily on assembler pseudo instructions and linker relaxations
<moon-child>
but x86 is just unclean
<geist>
so. it's not entirely true
<heat>
risc designs have really weird instructions and lots of pseudo instructions and lots of relocations
<heat>
and yes, relaxations too
<geist>
so it's a bit of a tradeoff
<sonny>
geist yeah, that's true
<sonny>
I can't unsee risc
<moon-child>
and yeah, afaik when you load an immediate into a register in arm/riscv, you have to check if the immediate is actually encodable, and if not turn it into a memory load
<sonny>
that's how I would make a computer
<heat>
define risc
<geist>
stuff like that. riscv is a bit more explicit about 'these instructions are pseudo, nd they're allowed to modify the 't' registers'
<geist>
hence why you have to know not to store stuff in t0 or whatnot across certain sequences of code
<moon-child>
oh wow
<geist>
mips and microblaze i know of have similar things
<moon-child>
didn't know that
<moon-child>
mips also has delay slot
<heat>
geist, fortunately i managed to avoid writing any real riscv assembly
<geist>
yah *and* the assembler is allowed to rearrange instructions to deal with that
<heat>
C/C++ ftw
<geist>
forgot about that particular fun thing i found one day when fiddling with mips
<geist>
like if it sees a branch with a delay slot, based on some simple register dependency analysis i think it can move the previous instruction into the delay slot
<geist>
i was surprised to discover this
<sonny>
nice that's like a compiler
<heat>
i've got like 500 lines of RISCV asm, most of it trap handling and context switching
<heat>
and this is in around 3200
<geist>
yah riscv at least didn't make the delay slot mistake
<heat>
actually 3400, i can't count
<geist>
that's one of their 'modern cpus can deal with this just fine please dont force the programmer to deal with it' things they learned from history
<moon-child>
well, they did some things ok, but still consistently mediocre from what I can tell
<moon-child>
I don't at all buy the fuse-everything argument
<geist>
yep. as is by design
<moon-child>
:D
<geist>
oh the fuse everything is pretty strong now that's just a standard technique for modern superscalar designs