<kof123>
"what was the name of the thing that opens if you hit win-break" "the my computer properties thing" ... system properties?
<kof123>
it was in control panel, system properties is my final answer
Burgundy has quit [Ping timeout: 268 seconds]
Burgundy has joined #osdev
corank has quit [Remote host closed the connection]
corank has joined #osdev
mahk has quit [Ping timeout: 256 seconds]
jimbzy has joined #osdev
bauen1 has joined #osdev
kaitsh has joined #osdev
mahk has joined #osdev
<slidercrank>
kof123, currently (Win 11) it's Settings and the active screen is "About" with Device and Windows specifications
frkazoid333 has quit [Ping timeout: 240 seconds]
nyah has joined #osdev
dayimproper has joined #osdev
dude12312414 has joined #osdev
dayimproper has quit [Ping timeout: 240 seconds]
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
nur has joined #osdev
Brain___ has quit [Read error: Connection reset by peer]
bauen1 has joined #osdev
nyah has quit [Ping timeout: 264 seconds]
mahk has quit [Ping timeout: 265 seconds]
nyah has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
bauen1 has quit [Ping timeout: 246 seconds]
frkazoid333 has joined #osdev
bauen1 has joined #osdev
goliath has quit [Quit: SIGSEGV]
<mrvn>
I find it interesting that samba / windows active directory logins have 2 security levels: totaly unsecure that is case insensitive and MD4 hash without salt.
Left_Turn has joined #osdev
slidercrank has quit [Ping timeout: 246 seconds]
dza has quit [Quit: Ping timeout (120 seconds)]
dza has joined #osdev
innegatives has joined #osdev
<geist>
that was the old mechanism, that's been long replaced, i think
<geist>
SMB1 era auth
<mjg>
lmao
<mjg>
sounds like the quality of windows i'm famiiar with (9x era)
<gog>
meow
<mrvn>
"Anything that starts with "we" is just a suggestion. Like the constitution: *We* the people ..."
<mrvn>
geist: I only find those 2 in the specs.
<mrvn>
geist: there is a mention of MD5 but that only seems to be used in the challenge protocol alongside the MD4 hash of the password.
<geist>
this is why since like windows vista or before SMB1 was deprecated and probably later removed
<geist>
used to be for a while an option you had to explicitly enable for win9x, etc compat
<nortti>
I think it got removed finally during the windows 10 lifespan
<mrvn>
geist: SMB1 is the case insensitive one, right? Because MD4 hash still works today. Just not with current openssl: disabled for being so insecure.
<geist>
dunno any more than i think the current gen stuff is secure enough
<heat>
zircon's vm can't expand vm regions from the front can it?
<geist>
Correct
<heat>
kk thanks
<heat>
this seems like a garbage problem...
<geist>
There's a bit of discussion about grow down mappings
<heat>
i don't think there's a data structure that can effectively do this
<geist>
Mostly because linux already has it and starnix may need it
<heat>
i don't know if you read the discussion yesterday, but I'm starting to think that anon memory should use another data structure
<heat>
maybe even the page tables directly...
<geist>
Nod
<heat>
radix trees will suck, binary trees will suck on this problem
<heat>
probably O(n)
<geist>
Would love to talk more today but have to catch a plane in a few hours
<heat>
and I think UVM also separates the two anyway? using a generic vm_object like mach or zircon may be a bad solution in the end
<geist>
Last minute packing at hotel right now
<heat>
gotcha
<gog>
where you goin geist
<heat>
today in "Bad UNIX APIs": prctl is variadic in the libc, but expects unsigned longs
<geist>
Home
<gog>
oh
<geist>
Been in LA the last few days
<gog>
neat
<heat>
heat
<geist>
Actually cool and overcast mostly
<heat>
the weather is so so fucked around here. it's warm-ish but there's a daily 20-30 minute period where it rains and there are thunders and shit
<gog>
it's v windy and we have banded squalls
<gog>
i just got back from an appointment for the kid and as soon as i stepped off the bus it started hailing
<geist>
Yah drove down last week from Seattle. About 20 hrs
<mrvn>
heat: what has that got to do with anon? shared mapping and anon should be the same. You have a virtual address range and an array of pages backing it.
<heat>
climate change is cray cray
<geist>
Maybe... 2k km?
<geist>
In a manual Mini with broken air conditioning. Fun!
<heat>
mrvn, backed mappings do not need to expand a vm object from the front. if you do indeed merge two backed mappings, the vm object is the same, they just point at different ranges of it
<mrvn>
The pages need to be in the page tables. If you have persistant page tables then why store the pages anywhere else. That then just leaves you with storing the virtual address ranges in e.g. a tree.
<geist>
I had the idea of just applying a page level swizzle for a grow down mapping
<geist>
Ie offset 0 is 0
<geist>
Offset - 4k is 4k etc
<mrvn>
heat: I can mmap a file at offset 16k and then map thew first 16k of the file before that extending the shared mapping at the front.
<geist>
The math is trivial
<heat>
I had the idea of doing negative offsets but this ends up sucking
<geist>
Can still only extend at one end but usually the downward growth is because it's a stack
<heat>
at least with a radix tree it does. you expand to the highest depth immediately
<geist>
And known up front
<mrvn>
heat: I think what geist ment is that the negative is implicit in the GROWS_DOWN flag.
<geist>
Yah
<heat>
oh yeah sure
<heat>
i want to solve this problem for all anon memory, because UNIX and stuff
<gog>
solve this problem for anon
<heat>
I don't know if in your vm your vmos can be merged like this
<mrvn>
But how is that relevant? You have a virtual address and a physical page it maps to. That you have to model. Growing up or down, shared or annon. How does that change anything?
<heat>
help 4chan
<geist>
Okay now I really gotta go
<heat>
bye have a nice flight
<heat>
mrvn, dude so the problem is that if you model an anon region as pointing to a single vm object (very very very very common), it sucks to expand from the front (or grow down)
<mrvn>
heat: same with a shared region
<heat>
i.e if you expand 4KB (one page) in the front, you would need to move every entry in the radix tree by 1, or go through every node in the rb tree and change its offset manually, etc
<heat>
I have no idea what you mean with shared region honestly
<mrvn>
heat: or copy the array of pages to an array one index larger
<mrvn>
heat: one backed by a file
<heat>
you cannot expand a vm object for a file like this.
<heat>
i.e [0x2000, 0x3000] has a mapping at file off 0. you mmap the same file at [0x1000, 0x2000]. you do not expand the vm object
<mrvn>
heat: I can't? In both cases you call mmap() with a fixed address
<heat>
second case: [0x2000, 0x3000] has a mapping at file off 0x1000. you mmap the same file at [0x1000, 0x2000]. you do not expand the vm object, the only mergeable mapping is of offset 0x0, and that one is trivially mergeable
<heat>
by just having a vm region that maps 0 until 0x2000
<mrvn>
heat: If you have 2 mappings with virtual addresses that touch and they are to the same file and the offsets also are contiguos then you can merge them. With anon mapping it's just "easier" to merge since the requirement that the backing file is contiguous goes away.
<heat>
please explain how you're merging an anon region from the front. I'm using a radix tree to keep track of pages.
<mrvn>
(just with shared the fd and offset become important)#
<mrvn>
ups, sorry, mmap(0x1000000, 0x1000, RW, ANON, fd, 0); for the second call of course.
<mrvn>
can't map a size 0.
<mrvn>
heat: Is that how you would extend the anon mapping to the front?
<mrvn>
The first mapping gives you a radix tree with {0x1001000-0x1001FFF -> page1}, the second adds a leaf with {0x1000000-0x1000FFFF -> page 2}. They end up in a node 0x100xxxxx and you see they are contiguous so you merge them into a leaf {0x1000000-0x1001FFF -> page1, page2}
<heat>
my problem was related to an actual VM subsystem and how this could be handled, but no, figuring out the mmap calls was the hard part!
<heat>
i'm talking about vm objects dude...
<mrvn>
saying "vm object" doesn't make me magically know how your data structure looks like.
<heat>
ok so don't talk like my problem is a totally ez trivial solved problem
<mrvn>
I didn't say it's trivial. it's complex and expensive. I'm just saying that merging a mapping A and B is the same no matter which one comes first.
tanto has quit [Quit: Adios]
pie_ has quit []
vancz has quit []
tanto has joined #osdev
vancz has joined #osdev
pie_ has joined #osdev
<innegatives>
does DOS in its normal operation ever HLT then break out of the HLT by jumping to somewhere else through an interrupt?
<mrvn>
and just as complex and expensive for ANON and file backed mappings. Like when code starts to mprotect() pages so you constantly have to split and merge VM regions
<mrvn>
innegatives: only since DOS 6 or so when they got multitasking
<heat>
mrvn, it's not the same. as I said, usually (zircon VM, mach VM, BSD VM) you have anon regions pointing to a single, new vm object, which holds the pages. expanding a vm object from the back is just incrementing the ->size. expanding it from the front is O(n) with most, if not all, data structures
<heat>
my problem is not that I don't understand how to do it (I do), it's that the whole operation is not well suited for this model. hence imagining a split between anon and file backed regions
<mrvn>
heat: if your data structure is an array of pages then expanding is O(n) both ways. If it's a tree then you can set a base offset and use negative offsets to expand down.
<heat>
this is not a problem if anon regions do not end up vm objects. you end up never expanding those from the front, ez
<mrvn>
How does your vm object look like?
<heat>
it's a radix tree. expand this from the tail is ez, O(1). I don't eagerly allocate pages even
<mrvn>
and what is the key? the virtual address of the page? An offset to the start of the region?
<heat>
expanding a vm object from the tail is just adjusting its size. if I need to expand a 1TB vm object from the head however... good luck have fun
<heat>
it's always the offset, hence the issue
<mrvn>
heat: then you can set a base address and use the ofset to base instead of offset to the start. Then it's adjustable in both directions.
<mrvn>
without that you are right, you're screwed.
xenos1984 has quit [Ping timeout: 240 seconds]
<heat>
that does not fit with the model, and incurs in horrible penalties too
xenos1984 has joined #osdev
<heat>
merely using page tables would be an idea... as linux already does
<mrvn>
With page tables you are using the virtual address of the page as key instead of an offset. Do that in your radix tree and it's expandable in both directions too
<heat>
the key point being that if I do that, I might as well not use a vm object at all
<heat>
it will just be a crap page table
<mrvn>
yeah, I raised that point yesterday too
<mrvn>
Why build a radix tree if you already have a 512-way radix tree in the page table doing exactly that addr->page mapping already. :)
<mrvn>
Some arch might not have enough AVL bits in the page table for your needs. then you need your own radix tree alongside the page tables.
<mrvn>
When you run into a problem like this, expanding a vm object down, often the right answer is: change your data structure
<innegatives>
Docs say only REP can be applied to MOVSB, but 0xF2A4 is disassembled as "repne movsb" by NASM. Does REP vs REPNE make any difference for MOVSB operation?
bauen1 has quit [Ping timeout: 256 seconds]
zxrom has left #osdev [Leaving]
<gog>
you can't repne movs
<gog>
that's an illegal instruction
<gog>
rep(condition) is only for cmps and scas
<innegatives>
But why would NASM disassemble it as such though?
<gog>
because NASM is only looking at the opcodes
gabi-250 has quit [Remote host closed the connection]
<gog>
it's not analyzing whether the bytecode is legal
<innegatives>
ok thanks
<zid>
It could do, but it *can't* do that in all cases
gabi-250 has joined #osdev
<zid>
Like, you'd think "wtf why is it doing that? Making up instructions feels wrong"
<zid>
but it can't actually universally catch illegal instructions
<zid>
because you'd need to tell it which cpu mode you're in, as which ones are illegal changes
<gog>
so anyhow if something assembled f2a4
<gog>
it was illegal to emit that
<mrvn>
innegatives: disassemblers don't validate what they disassemble
<mrvn>
innegatives: garbage in -> garbage out
<gog>
GIGO!
* gog
does the gigo dance
<zid>
gog in, gog out?
<gog>
yes
<gog>
but i'm all out
<innegatives>
for a lot of the garbage in it just outs DBs
<innegatives>
sorry for stupid questions, but does "byte comparison" in intel sdm for CMPS mean you subtract destination operand from source operand or the other way around?
<nortti>
it's the same as cmp, isn't it?
<innegatives>
not sure how source/destination maps to that
<heat>
cmp also has a destination and source
<innegatives>
manual says "first source operand" and "second source operand" for cmp
<austincheney>
Is this channel focused upon OS kernels or is OS UI also on topic?
<heat>
usually kernels but UI is also very much on topic
<heat>
you may find it harder to get a good answer though :)
<heat>
>Don't ask to ask---just ask!
<austincheney>
awesome. I am writing a Node.js based OS where the UI is in the browser. It has most aspects of an OS, but no Kernel. Its just an application that rides on Linux, Windows, and OSX
bauen1 has joined #osdev
goliath has quit [Quit: SIGSEGV]
* danlarkin
blinks
dayimproper has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 264 seconds]
gog has joined #osdev
<Bitweasil>
I honestly thought we were focused on petting certain members.
<Bitweasil>
So...
<Bitweasil>
Does this run in Electron on top of Linux or something? "No kernel" doesn't really provide the services needed to run a modern browser.
<heat>
yes, obviously
<heat>
1) pet gog 2) talk kernal 3) flame certain operating systems developed by Sun and then Oracle 4) other stuff
innegatives has quit [Read error: Connection reset by peer]
<GeDaMo>
Bitweasil: apparently node.js
<gog>
hi i'm gog
<gog>
also that's not "no kernel"
<gog>
that's basically chrome os
<gog>
which is just linux when you look inside
* heat
gog pet
innegatives has joined #osdev
* gog
prr
<heat>
to prr or not to prr
<Bitweasil>
I find myself writing an AArch64 VMSA page allocator. :)
<heat>
what's VMSA again?
<heat>
it rings a bell
<heat>
oh, it's just what they call their MMU?
<gog>
virtual memory something another
<heat>
mother
<heat>
why is the weather so fucked
<gog>
i'm not ur mother
<heat>
is this exxon mobil's fault
innegatives has quit [Read error: Connection reset by peer]
<gog>
but yes
<heat>
do u have proof ur not
<gog>
i uh
<gog>
've never been anywhere near portugal
<heat>
...
<heat>
that's almost convincing mom
<heat>
btw send me money i need money
innegatives has joined #osdev
innegatives has quit [Read error: Connection reset by peer]
<zid>
I'd 100% call that application development
<zid>
it's no different from writing the UI to counterstrike or something
<zid>
fullscreen some random engine with a drawing api
innegatives has joined #osdev
<heat>
the gang uses scaleform
<zid>
Yea I was thinking exactly of scaleform
<Bitweasil>
Virtual Memory System Architecture, vs the Protected Memory System Architecture the R-series chips use, and the "What MMU?" thing most of the M-series has going.
<Bitweasil>
"Page tables for ARM."
<Bitweasil>
vs the other ways it can do things.
dude12312414 has joined #osdev
dude12312414 has quit [Client Quit]
staceee has quit [Write error: Connection reset by peer]
yyp has quit [Remote host closed the connection]
alecjonathon has quit [Remote host closed the connection]
tom5760 has quit [Remote host closed the connection]
sm2n has quit [Remote host closed the connection]
noeontheend has quit [Remote host closed the connection]
whereiseveryone has quit [Remote host closed the connection]
pitust has quit [Read error: Connection reset by peer]
exec64 has quit [Write error: Connection reset by peer]
jleightcap has quit [Remote host closed the connection]
yuiyukihira has quit [Write error: Connection reset by peer]
milesrout_ has quit [Remote host closed the connection]
utzig has quit [Remote host closed the connection]
vismie has quit [Remote host closed the connection]
tommybomb has quit [Write error: Connection reset by peer]
patwid has quit [Remote host closed the connection]
gjn has quit [Remote host closed the connection]
alethkit has quit [Remote host closed the connection]
ddevault has quit [Remote host closed the connection]
utzig has joined #osdev
whereiseveryone has joined #osdev
innegatives has quit [Read error: Connection reset by peer]
patwid has joined #osdev
tom5760 has joined #osdev
pitust has joined #osdev
exec64 has joined #osdev
tommybomb has joined #osdev
jleightcap has joined #osdev
alecjonathon has joined #osdev
noeontheend has joined #osdev
ddevault has joined #osdev
yyp has joined #osdev
vismie has joined #osdev
staceee has joined #osdev
alethkit has joined #osdev
sm2n has joined #osdev
milesrout has joined #osdev
gjn has joined #osdev
yuiyukihira has joined #osdev
innegatives has joined #osdev
dayimproper has quit [Ping timeout: 246 seconds]
<Clockface>
is intel serious about x86S?
<heat>
i guess
<Clockface>
how would virtual machines work
<heat>
normally, but without all the old bits the CPU no longer has silicon for
innegatives has quit [Read error: Connection reset by peer]
<Clockface>
thats the thing, wouldnt it break hardware virtualization of stull like windows XP?
<heat>
yes
<Clockface>
then thats retarded
<Clockface>
it would make people ,ad
<Clockface>
*mad
<clever>
just emulate a modern os :P
<clever>
or use a cpu that isnt x86S
<clever>
or software emulate
innegatives has joined #osdev
<heat>
no one cares about hardware virtualization of windows XP
<heat>
or rather, if you do, please don't
<zid>
that's like saying "why would anybody buy an ARM, you can't run DOS on it"
<zid>
you bought the wrong thing then tried to do something stupid with it, of course it doesn't make sense
<Clockface>
its amazing and dissapointing the things people will try to run
<Clockface>
they make 90's style motherboards specifically for a few companies with strange DOS programs they cant replace
<zid>
x86s will be for nucs running chromeos and servers doing computer, when it's finally a thing, in 2040
<zid>
okay why do you think x86s will ban those being made?
<Clockface>
it wont?
<Clockface>
it would just suck
<zid>
then nothing you've said connects at all
<heat>
strange DOS programs already do not run on modern x86 platforms
<Bitweasil>
I don't see it as replacing x86 entirely, just a "modern use" version that doesn't have a lot of the cruft.
<Bitweasil>
If you need to virtualize XP, buy a "real x86" chip.
<Bitweasil>
But for *most* modern uses, it'd be perfectly fine.
<zid>
It won't be mainstream until 2050, calling it now.
<heat>
i'll say 2035
<Bitweasil>
If it's better on power than a full x86 chip, it'll take over in consumer and business laptops quickly.
<zid>
It'll *exist* in 2035
<Clockface>
yeah, it would be fine, but hardware virtualization should be kept around
<zid>
but desktops won't be using it
<zid>
for +15
<heat>
then you did jack shit
<gog>
yeahhh windows xp is a 20 year-old OS now
<zid>
it already has hardware virtualization, for x86s hardware
<heat>
what do you think hardware virtualization uses?
<zid>
because it's *virtualizing its own hardware*
<gog>
i think we can safely abandon caring about whether it runs on modern cpu
<zid>
not someone else's hardware
<zid>
intel announces a new architecture, "But how will I run XP?", you are responded to with "How will it stop you?" and you say "It won't"
<zid>
so I genuinely don't see the problem
<Bitweasil>
Yeah, I run mostly 64-bit VMs, so it'd be fine for my use cases.
<zid>
gog: modern being, now + 30 years, even
<Bitweasil>
Or qemu-system-arm
<Clockface>
the thing im not clear on is if it would break real and protected mode for VM's
<Clockface>
or if it would be fine
<Clockface>
if its fine then yay
<heat>
it will
<Clockface>
oh
<gog>
that's what dosbox is for
<heat>
but honestly, I'm failing to see the point of x86S
<heat>
it's a hackier version of x86
<Bitweasil>
As I read it, it will not support 32-bit VMs.
<zid>
They didn't go too far enough
<Bitweasil>
It will not support 32-bit Ring 0, in any form.
<gog>
good
<Bitweasil>
But has a User32 mode for 32-bit Ring 3 compatibility.
<zid>
There's possibly some weird silicon issue they're trying to resolve
<Bitweasil>
And I'm with heat. It doesn't seem to solve any real problems.
<Clockface>
it cant solve REAL problems
<zid>
like, they want to x for some custoemr, but they can't x while 32e dpl=0 exists
<heat>
to support booting slightly older shit they suggest emulation, which should work
<Clockface>
it doesnt have support for it
<zid>
and this was the least effort solution
<Clockface>
heheh
<zid>
rather than them saying "We should resign this to not suck"
<Clockface>
software emulation sucks balls
<heat>
it should work for booting into long mode
<Bitweasil>
I mean, that's literally what you used to have to do for VMX.
<zid>
xp64 is the vastly superior experience anyway
<Bitweasil>
Emulate real mode and such up to protected mode.
<heat>
it will work (unfastly) for windows xp
innegatives has quit [Quit: WeeChat 3.8]
<Bitweasil>
Because early VMX didn't have unrestricted guest.
<zid>
(not that xp64 would boot on the WRONG ARCHITECTURE, aka x86s)
<heat>
in 2035 i will run 30-year old windows xp on x86s
<heat>
10fps pinball
<Clockface>
i wouldnt mind if they removed real mode because an 8086 is basically trivial to emulate with software nowadays
<Clockface>
but protected mode should stay
<zid>
Like, we 100% would not be having this conversation if the announcement was "Intel announces i427 server architecture"
<Clockface>
and removing real mode while keeping protected mode sounds horrible
<Clockface>
so just keep both
<zid>
and the pdf said exactly what it said now
<heat>
Clockface, horrible take
<zid>
good news, protected mode *is staying*
<zid>
*in an architecture you will not be using or caring about*
<zid>
heat: Who comes to market first, FRED or x86s?
<heat>
some new bullshit feature that does the exact same of an AMD feature, but completely incompatible because screw you
<zid>
Why are you not complaining that xp doesn't run on xeon phi
<zid>
at least that product actually exists
<Clockface>
i know it would probably be used on chromebook type stuff at first
<Clockface>
but would it have a point there?
<zid>
intel will sell x86 pentiums until 2060
<zid>
You have my word.
<Bitweasil>
Yeah. That's the primary reason to stay with x86 these days.
<Clockface>
all it would do is make stuff slightly more incompatible
<zid>
(Note: This is after western capitalism falls and we're embroiled into the resource wars)
<Bitweasil>
Heh.
<Bitweasil>
Man, that future's coming on fast.
<zid>
global average temperatures are up by 3C, massive crop failures due to weather and locusts
<zid>
mass starvation is hitting europe and india
<zid>
intel still making pentiums
<Bitweasil>
I mean, in the words of Weird Al, "It's All About the Pentiums!"
<Bitweasil>
But it's fine, our phone's ChatGPT tells us not to worry, things are under control.
<zid>
In the words of morpheus, "It was us that scorched the sky"
<Bitweasil>
"Would you like to order a cooling vest, Amazon Primeity Mega Delivery?"
<zid>
lot of jobs when the sky's on fire.
<heat>
no one caresssss let me run windows 15 and use google chrome and visit instagram and tiktok
<heat>
if this shit still works, x86S is fine, let it be
<Clockface>
dont break my vm's!
<zid>
now intel are breaking into your house and smashing your computers?
<zid>
how'd you get this from "intel announces new server architecture whitepaper"
<Clockface>
no but im going to have to get a new computer someday
<zid>
so buy an x86 one
<Clockface>
i would like to put my stuff on it
<heat>
what precious legacy VMs do you have
<heat>
and what do you need to stop them being legacy
<zid>
There will be *no other options* until 2035, and *you will be able to buy x86 in 2060*
<Bitweasil>
Clockface, seriously. Intel has *never implied* they're going to stop selling x86 chips. Just that this may be anothero ption.
<heat>
x86_128 for sure
<zid>
intel announced xeon phi too
<zid>
why are you not raging about xeon phi
<Bitweasil>
They shipped, like, 2 of them, right?
<heat>
real mode -> protected mode -> long mode -> long long mode
<zid>
You must rage about xeon phi and x86s equally
<Clockface>
because it doesnt exist anymore
dude12312414 has joined #osdev
<zid>
x86s doesn't even exist at all!
<zid>
fuck
<heat>
i also rage about x86s, but because it sucks, not because I won't be able to run hardware accelerated windows 95
<zid>
(on it, not that you won't be able to run w95)
<zid>
I'll build you a nice w95 machine to run heat dw
<heat>
the EULA in the new intel cpus will legally allow intel to cut off your hands if you try to run ANYTHING legacy
<zid>
Bitweasil: I have a friend with a xeon phi, I should ask for ssh access
<Clockface>
i never said literally 1984, i just said it was retarded
<zid>
as soon as I ssh in though, the EULA says I have to remove every w95 installer from the internet :(
<zid>
and we told you you're fucking wrong
<zid>
20-30 times, in various diffferent ways
<zid>
if you're still arguing at this point, you're doing it just to troll
<heat>
when's long long mode coming
<zid>
heat: when I go to ddr5
<heat>
or does intel not enjoy C99
<zid>
Intel's going to time it with me upgrading
<Clockface>
how am i wrong?
<zid>
100% troll
<zid>
Fixed.
<Clockface>
what the hell?
<heat>
personally I think linux should've kept the STREAMS subsystem, how else am I going to run my drivers?
<zid>
like, solaris streams?
<heat>
SVR4 streams
<heat>
solaris streams are cringe streams, SVR4 streams are badass streams
<zid>
oh, and that's also what solaris ended up with? I've only seen it in the context of slowlaris
<heat>
yes
<zid>
I don't really know much at all about legacy unix
<zid>
shame I can't virtualize it to play with it, given how intel phi was released
<CompanionCube>
there is actually an AT&T SVR4 UNIX for x86, i think
<heat>
there is, SVR4 supported x86
saper has quit [Remote host closed the connection]
<heat>
it has a boatload of microsoft xenix code
<Clockface>
you should be able to be sort of confident that you could run the same software on a chromebook as you can on a high end desktop
<Clockface>
even if the chromebook is slow as hell
<Clockface>
thats why PC good
<heat>
the same software will run
<zid>
CompanionCube: yea but intel comes and breaks your knees if you virtualize things from >=5 years ago now that they have announced x86s, we just covered this, were you not listening?
<heat>
user programs will keep 32-bit compat mode
<heat>
*sadly*
<CompanionCube>
zid: ah okay
<zid>
they announced phi well after 5 years beyond svr4
<zid>
so you can't even use x86 anymore
<CompanionCube>
phi is a random choice for this joke
<zid>
larrabe then?
kaitsh has quit [Quit: WeeChat 3.7.1]
<Clockface>
phi was for servers
<Clockface>
mom wont get you a phi
<Clockface>
and then you randomly find out you cant run something 8 years later when you figure out how to use VM's
<CompanionCube>
hm, would be best with something just past the >5yr knees
<zid>
I can never rember the name of that other one
<zid>
i3274 or whatever it was
<zid>
the very-not-usual thing
<heat>
the object oriented CPU?
<zid>
yea
<GeDaMo>
i860?
<heat>
iAPX 432 ?
<zid>
that's it, iapx 432
<GeDaMo>
Ah, that's it
<zid>
also itanium
<zid>
itanium says we're not allowed to run x86
<zid>
x86s = itanium 3
<heat>
itanium!
<zid>
"What if we sold HP itaniums, but just rebadged some i7s?"
<zid>
--intel 2023, announcing "x86s"
<heat>
the i in intel means itanium
<zid>
That's honestly my best guess for why x86s is being whitepapered
<zid>
They want something to replace itanium
<zid>
They will lock some random vendors into x86s instead of x86, then sell them expensive platinum cpus they can't get away from
<zid>
It may even be literally the opposite plan to what that guy earlier was worried about, it might be so they can shift *all* xeons to x86s, so that people stop buying the m to use in desktops
<zid>
(like I did)
<zid>
aka "We want nobody in the consumer space to have even heard of x86s, that would ruin is finanically"
<zid>
us*
<Clockface>
x86s would suck at lock-in though
<Clockface>
everything runs in long mode anyways
<Bitweasil>
... dude. Give up.
<Bitweasil>
(1) There's no guarantee it will happen, and (2) If it does, and you don't want it, buy something legacy x86.
<Bitweasil>
Which will still continue to exist.
<zid>
Bitweasil: I advise you not feed the trolls
<Bitweasil>
Because if Intel breaks backwards compatibility hard, there's no reason to buy Intel anymore, and they know it.
<Bitweasil>
Yup.
<Clockface>
who would x86S be for then?
<Clockface>
i can either buy x86 or slightly worse x86 that wont work for some niche circumstances
<Clockface>
why have 2?
<clever>
Clockface: fewer wasted transistors on features 99% of users wont need, possibly lower power usage, smaller die, or higher clocks
<Clockface>
those are some damn good reasons
<Clockface>
but x86 has a bunch of other crap no one uses too
<Clockface>
why legacy mode in particular
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<Bitweasil>
Literally the only reason 99% of systems use real mode and such is to get to 64-bit protected mode.
<zid>
w11 doesn't even have a 32bit kernel
<zid>
first windows release to do that afaik
<zid>
it can only do the same things x86s does
<zid>
kernel long, user long, user protected
<Clockface>
BUT I CANT RUN MY VIRTUAL MACHINE
<Clockface>
AT 100% PERFORMANCE
<gog>
hi
<zid>
isgog()
<gog>
true
<gog>
i think we shouldn't have any more new architectures. we've reached the peak of cpu design and performance with ryzen
<zid>
amd64 the one true architecture
<zid>
am4 best microarch possible
<zid>
it's all downhill from here
<gog>
we can only manage our decline
<gog>
but never rise above this moment
<zid>
we're a couple of months away from 20 years of amd64 btw
<heat>
zid, not quite user protected even. 32-bit compat is not really the same as protected mode
<zid>
you knew precisely what I meant, and I don't think there's a trivial way to distinguish
<heat>
mainly segments all (-gs, -fs) being useless
<zid>
"default 32bit register size" is a bit of a mouthful
<heat>
they call it IA-32e compatibility mode right?
<zid>
ye compatibility mode, not very descriptive though
<mrvn>
Is there a difference between user protected and 32-bit compat other than kernel mode being 64bit?
<mrvn>
(ignoring the bits in CR0 and the like)
<heat>
compatibility mode with protect-SEIZED BY INTEL CORPORATION
<heat>
LITERALLY 1984
<zid>
Do you need tips for hiding from the itanium police
<mrvn>
long live IA64
<Clockface>
what was x32?
<mrvn>
Clockface: long mode with 32bit longs and 32bit zero extended pointers.
<Clockface>
that works?
<mrvn>
ILP32 in long mode
<Clockface>
like, i could do mov ebx, [eax] in long mode?
<mrvn>
Clockface: sure. you just have to remember to zero extend all pointers you load from memory
<Clockface>
neato
<mrvn>
Clockface: no, [rax] but the top 32bit will be 0
<mrvn>
it's realy just read and write of pointers only use the lower 32bit.
<mrvn>
It's a big speedup on x86, because long mode has so much more registers, without the memory overhead of having to store 64bit pointers.
<mrvn>
And the compiler can optimize stuff to use 64bit registers for example when you use "long long" instead having to emulate that with 2 32bit registers.
<heat>
it's a bad idea that died as quickly as it came up, with dubious gains vs x86_64
<heat>
i'm not sure if glibc supports it still
elastic_dog has quit [Killed (calcium.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
<mrvn>
heat: what's dubious about it? It's a big memory saver for anything but databases and web browsers.
<mrvn>
The later need more than 4GB ram so can't use x32.
<zid>
talking about x32? I tried to install that not long ago but couldn't figure it out
<bslsk05>
lkml.org: LKML: Andy Lutomirski: Can we drop upstream Linux x32 support?
<CompanionCube>
there was even a fix for it in 2.33, apparently
<zid>
was having issues with needing to have the tools in 64 and x32 both, and changing between kernels and the chroots and stuff made it a mess of paths and stuff
<mrvn>
it's not listed in "setarch --list" but there is "setarch --32bit"
<zid>
to get it installed
innegatives has joined #osdev
<innegatives>
How do multi-floppy DOS distributions work? Can you just insert the first diskette and expect the OS to boot? Does it like pause in execution when you are doing something and then asks you to insert the second diskette?
<Bitweasil>
Pretty much.
<innegatives>
So, second floppy is for only some of the applications, right?
<Bitweasil>
All your boot stuff is on one floppy, and you have extended stuff on the second disk.
<nortti>
I think multi-floppy distributions are for installing
<nortti>
or that
<Bitweasil>
If you can't fit your kernel, command.com, etc, on one disk, you're going to have a problem.
<Bitweasil>
But, yeah, you either go to B: for some of your stuff, or swap the disks.
<Bitweasil>
Been long enough I don't recall many details beyond that, though.
<heat>
unixware was also multi-floppy
<heat>
painful to install
<Bitweasil>
I mean, so was DOOM, but we worked it out. :D
<innegatives>
How did DOOM floopy work? Did it require MS/DOS, or was it an OS of its own?
<Bitweasil>
You installed it to the hard drive, it was your standard multi-part installer.
<Bitweasil>
And then used the DOS... 4G/W extender, or something like that, to run in protected mode.
<innegatives>
Bitweasil: then it didnt work pre-386?
<mrvn>
I doubt it works without FPU at all
<mrvn>
Did DOOM have a pentium as minimum required?
<Bitweasil>
I know it ran fine on a 486/66.
<Bitweasil>
It struggled on a slower 486, and I think you had to shrink the viewport pretty hard on a 386, but it would run.
<Bitweasil>
Pretty sure it wouldn't run on a 286.
<mrvn>
software floats would be significantly slower
<Bitweasil>
I don't think it used the FPU.
<mrvn>
hmm, maybe I'm thinking quake
<Bitweasil>
Probably.
<heat>
gmail handles large email selections REALLY poorly
<Bitweasil>
I think Doom hacked around the FPU with some funky constants. :)
<zid>
os floppy and 'applications' floppy fairly standard
<Bitweasil>
Got "close enough" for game work without invoking the FPU.
<zid>
it's just the slightly newer version of eeproms
<zid>
about the same capacity too :p
<mrvn>
Bitweasil: nah, that's the famous Fast inverse square root used in quake
<Bitweasil>
Oh, that sounds right.
<Bitweasil>
Same game studio, at least. :)
<mrvn>
Fast inverse square root, sometimes referred to as Fast InvSqrt() or by the hexadecimal constant 0x5F3759DF, is an algorithm that estimates 1 x {\textstyle {\frac {1}{\sqrt {x}}}}, the reciprocal (or multiplicative inverse) of the square root of a 32-bit floating-point number x x in IEEE 754 floating-point format.
slidercrank has quit [Ping timeout: 240 seconds]
<heat>
im trying to delete 20k emails, this sucks
<zid>
in gmail that's impossible
<zid>
good luck
<mrvn>
heat: did you forget to read mails for a week?
<heat>
yeah it's a multistage effort
<heat>
already deleted maybe 12k or so
<zid>
if you submit a request for more than a few thousand it times out
<zid>
and deletes 0 of them
<heat>
not in this case
<heat>
it delete N of them, and then silently times out I assume
<mrvn>
zid: That's what you egt when a transaction based DB times out. :)
<zid>
oh that's good
<Bitweasil>
"Delete emails" Did you mean "Buy more Google Storage at discount rates?"
<zid>
yea make delete hard -> buy more STORAGE
<Bitweasil>
Gotta afford the stock buybacks *somehow.*
<sortie>
I for one welcome shareholder value
<heat>
i would delete them even if I was not tight on space
<heat>
i have so much mailing list clutter...
<zid>
I have to delete my lkml every year or so
<zid>
until google adds storage at a faster rate than lkml uses
<zid>
which will be soon, or we may be past it
<innegatives>
When MS/DOS boots, what does set the stack pointer? BIOS? And where?
<Bitweasil>
... huh?
<zid>
why on earth would we know that
<zid>
and you are aware that msdos.. exists? right
<zid>
You can just look
<Bitweasil>
What do you mean? Command.com is going to have an internal stack pointer, and the loader for [whatever you're loading] is going to set it for the application being loaded.
<heat>
my linux-mm had like 11K for maybe half a year of sub
<Clockface>
the stack works when my bootsector first runs, but i set it later
<Clockface>
i think the BIOS sets it to something but you should probably find a good place to put it and not trust BIOS for anything more than register saving
<Clockface>
idk what DOS does
<zid>
linux shminkus, I'm on the haiku beos os/2 warp 3.11 for workgroups ml
<Bitweasil>
The BIOS is just a region of x86 code that executes.
<Bitweasil>
I'm... either not understanding the discussion here, or you're a bit unclear on a lot of details as to how stuff actually works.
<zid>
Bitweasil: This is your introduction to innegatives, you're doing fine
<Clockface>
its who sets up the stack to be usable, bios or dos
<bslsk05>
'Sesame Street: Counting Bats with the Count - Four' by Sesame Street (00:01:27)
<Clockface>
i dont actually know so i set it up on my own to be safe
<heat>
1 x86 instruction, 2 x86 instruction, 3 x86 instruction. ha. ha. ha.
<innegatives>
I'm just wondering where I should set it before boot in my emulator, cuz there's INT there and my SP is 0, INT tries to push words which decrements SP which underflows and tries to access RAM over 1M
<Clockface>
allocate a bit of memory and put it as your stack segment?
<Clockface>
if your in DOS i think it has a malloc type thing
<innegatives>
I was wondering about canonical place
<Clockface>
if i remember right
innegatives has quit [Read error: Connection reset by peer]
<Clockface>
i dont know then
<zid>
Bitweasil: so yea, he shows up every day or so to ask a complete nonsense question
<zid>
like what value does the ibm pc store at address 554
<Clockface>
its because he actually programs
<zid>
He's writing an 8086 emulator but has absolutely no idea what he's doing
<heat>
i think he's trying to run MSDOS without a BIOS
<zid>
looks like he just hit the part where he's about to actually try run some real code on it
<heat>
zid do you like binary literals
<zid>
and is about to find out that emulators are hard, and debugging them requires a lot of talent
<Bitweasil>
Heh.
<Clockface>
what is your project actually?
<zid>
but he has none, so we're about to get a lot of very stupid questions
<Bitweasil>
Yeah, that's literally my dayjob, emulators and such.
<zid>
heat: They don't exist.
<zid>
I <3 writing emulators.
<zid>
My gameboy emulator is one of the most accurate
<zid>
it beats bgb in several tests
innegatives has joined #osdev
innegatives has quit [Read error: Connection reset by peer]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<heat>
now that x86S is ending the world you might as well write an emulator
<Clockface>
the nice thing about DOS and UEFI is that they can both run off a fat32 partition
<zid>
I actually did intend to write an 8086 emulator
<zid>
for x86s
<zid>
I think I mentioned it here a couple of times
<zid>
I wanna run my vga bios from long mode
<Clockface>
so i was thinking UEFI could find its BOOTX64.EFI that then switches the CPU into real mode and emulates legacy BIOS
<Clockface>
i never started on that though
<heat>
that has been figured out
<heat>
it's called CSM and its a travesty
<zid>
If I write it, it will be extra tragic
<Clockface>
CSM is provided by manufacturer though
<Clockface>
sometimes they choose not to now
<heat>
yes, so its Vendor Quality Ensured
<heat>
good
<heat>
windows 7 does not run on systems without CSM btw
<zid>
heat: wanna help?
<heat>
zid, help do what?
<zid>
fuck man
<heat>
run your vga bios?
<zid>
[21:53] <zid> for x86s
<zid>
[21:53] <zid> I wanna run my vga bios from long mode
<zid>
[21:53] <zid> I actually did intend to write an 8086 emulator
<zid>
[21:53] <zid> I think I mentioned it here a couple of times
<heat>
i can help you run your EFI video rom from long mode though, thats doable and fun
<zid>
I don't know where to get one of those
<heat>
your current GPU?
<zid>
yes
<zid>
I don't know where to get one of those
<zid>
bios rom is easy you just check the IVT for 0x10
<heat>
probably a PCIe slot in your mobo
<zid>
and there it is
<heat>
oh yeah sure
<heat>
you read it from PCI
<zid>
it's one the bars or something?
<zid>
or caps
<heat>
it's a separate register, but yeah works like a BAR pretty much
<zid>
okay but how do you find it?
<heat>
it has a standard layout that has like a struct pci_oprom_header {u32 type; u32 size;}, which you parse
<zid>
why would I wanna run the option rom
<heat>
one of the types will be for an EFI oprom
<zid>
I knew those existed
<heat>
your vga bios is the oprom
<zid>
yes but I don't want to just jmp 0 the oprom, that would print GTX NVIDIA 1050 Ti to the screen and shit
<clever>
zid: i think a NIC could also include a uefi bytecode binary, to add drivers into uefi netboot
<zid>
and instlal the IVT handler etc
<zid>
I want to modeset
<heat>
clever, bytecode binary haha
<zid>
and the way you modeset is "set ah to the right thing and jump to [0x10]"
<heat>
zid, yeah and you can do that. you run the entry point, give it your fake EFI, it installs the GOP, done
<zid>
so you emulate doing that
<zid>
'installs the GOP'
<heat>
then you modeset fucking ez
<zid>
okay it's installed, how do I run it?
<zid>
what mappings does it need?
<heat>
the same way you run a function pointer
<heat>
identity map everything
<zid>
what do you mean "everything"
<zid>
I didn't write it, I don't know what it did
<heat>
all memory in EFI is identity mapped
<zid>
It just now.. exists in memory somewhere
<zid>
run it and catch its page fualts?
<zid>
how do I know the entry point for the modeset?
<heat>
map 1:1 [0, max_page]
<zid>
what is max_page?
<zid>
I didn't copy it there
<heat>
you have the memory map
<zid>
what memory map?
<heat>
the one your bootloader gave you
<zid>
the e820?
<heat>
yep
<zid>
I could map all of the reserved stuff sure
<zid>
what's my entry point?
<zid>
what's the abi?
<heat>
as long as memory is all mapped 1:1, it's a PE image, MS ABI
<zid>
so I have to write a PE parser and check for a certain ordinal? certain symbol name?
<heat>
entry point takes the standard EFI entry point things. EFI_STATUS EfiMain(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
<clever>
uefi doesnt really use symbols and linking
<heat>
no need to check for that, it's just the entry point in the header
<zid>
okay, how do I find EfiMain?
<clever>
it just jumps to the entry-point, and passes you a table of function pointers
<zid>
for the vga, specifically, also
<zid>
given I only have an e820 so far
<zid>
which is unlabelled
<heat>
there's no "for the vga"
<zid>
ah so it integrates as a module?
<heat>
yes
<zid>
what entry in the EFI SYSTEM TABLe do I want?
<heat>
so if you fake enough EFI, you can do it easily. it will install the GOP protocol (glorified function pointer table). you call the magic functions (list modes, modeset, etc) and it does things
<heat>
wdym what entry?
<zid>
You said to call efimain
<zid>
in reponse to me asking how I find out what to run
<zid>
(You know all these answers and you know what the goal is and how you'd do it, you're just being awkward for fun btw)
<heat>
EfiMain would be the entry point in the PE header
<heat>
may not even be called EfiMain for all I know
<zid>
fine fine
<zid>
I even started looking at docs, do I want BootServices pointer, and look for.. efi_driver something?
<heat>
1) get the EFI driver from the OProm 2) load it in memory and relocate it 3) figure out how much of EFI boot services you need to emulate
<zid>
guessing is more fun than you telling me
<zid>
why would I do all that
<heat>
video modez
<zid>
when I can just.. not do any of that
<zid>
and have it still work
<heat>
and its fun too
<zid>
I mean maybe
<zid>
but it's a lot of research, to try write an uefi impl.
<heat>
its suitably hackable into something workable without much effort, probably
<zid>
especially because I can't really debug it if I try it
<heat>
sure you can
<zid>
sure I cannot
<heat>
its as debugable as int 10h, probably even more
<zid>
int 10h is trivially debuggable
<zid>
I can just open it in a hex editor on my desktop
<heat>
you can disassemble an EFI image trivially
<zid>
debugging why the *PE* rom does the wrong thing under *my* implementation of uefi is very very hard
<zid>
because a) that's just harder and b) I'd have no way to actually run a debugger
<heat>
gosh i wanna do this now, just to prove its doable
<zid>
it's obviously doable
<heat>
but no one's ever done it, i think
<zid>
I bet someone has
<zid>
it's probably not even hard, if you know about uefi stuff, which you already do
<zid>
so they just slap it together in a couple of hours to get done whatever it is they wanted to do
<heat>
im... not sure, i kind of doubt it
<heat>
the BSDs, Linux, macOS, windows all have proper drivers
<zid>
right but there's loooads of skunkworks nonsense in the world
<zid>
"I wanna make my apple watch play la cucaracha when it boots"
<zid>
-> The firmware is all done via EFI calls -> I'll just RE the EFI modules -> I'll make a test harness so I can run it in qemu real quick -> oh it's write to 0x343230asd
<zid>
or whatever, obviously made the fuck up
<zid>
I bet literally units of people have done that
Burgundy has quit [Ping timeout: 256 seconds]
<heat>
thanks for the bad idea zid, now im going to do it
<zid>
yw
<heat>
fwiw its probably easier than writing an 8086 EMU
elastic_dog has quit [Read error: Connection reset by peer]
<heat>
at least for me
<zid>
oh yea sure
<zid>
not for me though
<zid>
I am good at emulators, know nothng about efi
elastic_dog has joined #osdev
<bnchs>
what do you think is easy?
<bnchs>
learning about EFI or emulators?
<heat>
taking a nap
<bnchs>
true
<bnchs>
most easiest is nap
<heat>
gog, efi or nap?
<gog>
efi
<gog>
efi efi efiefi
<heat>
booooooooooooooooo
* moon-child
pets efi
<heat>
boooooo gog
<bnchs>
boooo gog
<gog>
why are you booing me, i'm right
<bnchs>
no
<gog>
hannibal.jpg
<bnchs>
naps are better than efi
<gog>
you just gotta learn the efi, you just learn it. shit's right
<heat>
and NO YOU CANNOT SLEEP IN EFI CHECKMATE COMMUNISTS
<zid>
are you done yet heat
<heat>
yes
<heat>
no
<jimbzy>
I can no longer sit back and allow Communist infiltration, Communist indoctrination, Communist subversion and the international Communist conspiracy to sap and impurify all of our precious bodily fluids.
<zid>
Is that what the communists are up to these days?
<zid>
Sapping fluids :o
<zid>
jimbzy: I was gunna go back and get all the achievements in ff8, but the final secret achivement is just.. kill 100k enemies, what the fucking shit
<jimbzy>
Haha
<jimbzy>
Grind Mode 50000.
<zid>
laziest most phoned in bullshit ever, so yea, done with ff8 remaster
<zid>
FINAL FANTASY X Completion
<zid>
Obtain all available FINAL FANTASY X achievements
<zid>
Unlocked 27 Jun, 2016 @ 3:10am
<zid>
been a while since I played FFX, could do that
<jimbzy>
I don't think I've played that one. I wish Sony would add FF Tactics.
Left_Turn has joined #osdev
<zid>
FFX is my favourite
xenos1984 has quit [Read error: Connection reset by peer]
<zid>
good game, and the endgame content is top tier
<zid>
every character has two sidequests for their ultimate weapon, has a whole stat improvement system about defeating gimmick bosses, and using their unlocks to beat other bosses, etc
<zid>
a bunch of hidden GF quests
<zid>
etc
<zid>
and rikku is hot
Turn_Left has quit [Ping timeout: 246 seconds]
<jimbzy>
How is the battle system?
<FireFly>
mmm FF Tactics
<FireFly>
(also Tactics Advance, which is the isekai of FFT)
<zid>
battle system is sick as fuck imo, it ties into the stat raising system in a super fluid way too
<zid>
there are no useless/dead stats, the fighting is fun and optionally very tactical
<jimbzy>
Turn-based?
<zid>
yea
<zid>
no ATB even
<jimbzy>
Ah, yeah I might have to check that out.
<zid>
it has a turn order you can scroll through, and it updates in realtime for the attack you have selected, pushing your next turn back farther for how much delay that attack has
<zid>
(or forward, if you get the high level skill quick attack)
<gog>
yesss ffx
<zid>
You can beat the game with no levels, no summons, no equipment etc by very very good tactical play
<zid>
or have fun just playing casually
<FireFly>
I haven't really played any main-series FF game, I should someday
<jimbzy>
I might have to check that out.
<FireFly>
the final fantasy I've played is like.. tactics advance, TA 2, ffxiv :p
<jimbzy>
Damn it. I didn't want to copy that text :(