<doug16k>
most of the logic is powered by current mirrors, so if you increase the voltage, you directly scale up the power
<doug16k>
if operating outside intended voltage
<clever>
and that explains why higher voltages help with overclocking
<zid>
higher voltages help with everything
<clever>
more current, to get it above the threshold voltage, before the next clock period
<doug16k>
it drives the gate charge up faster
<zid>
removing rust, adding rust, you name it
<clever>
yeah
<heat>
luv rust
heat has quit [Remote host closed the connection]
<clever>
lol
<zid>
heat spelled javascript wrong then quit
<mrvn>
mosfets have horrible failure states
<clever>
mrvn: oh, and how does SCR latchup come into play?
<mrvn>
no idea what that has to do with failure states
<clever>
its a failure mode ive heard, where the current-mirror for driving it low, and driving it high, both activate at once, usually by having too much voltage applied to a pin
<doug16k>
cmos chips have clamping diodes on I/O so they can't exceed vdd or go below ground
<clever>
and then the pin drivers are basically shorting the rails out
<clever>
and it burns itself out
<zid>
clever: That's what kills graphics cards most often
<doug16k>
if you exceed the capability of the protection diodes, it can "latch up" the chip
<mrvn>
mosfets can turn all on or all off and drain their inputs with low resistance in various combinations.
<zid>
they use pairs of super high power mosfets
<zid>
and one will go slightly out of spec, then burn out from shorting
<doug16k>
mosfets have an unavoidable diode making it a short for the other polarity
<doug16k>
sometimes people draw in the "body diode" in the schematic as a reminder
<mrvn>
worst is when they short their inputs and burn out the port on your AVR or RPi.
<mrvn>
and they are vulnerable to spikes so they do burn out easily.
<clever>
mrvn: the avr datasheets clearly specify how much current the clamping diodes can handle, and one of the avr appnotes even says how to calculate a current limiting resistor, so you can shove bloody 120vac into a GPIO safely
<clever>
while the rpi docs arent as clear, and people often blow pins with only 5v
<zid>
120VAC? Where would I get power so weak!?
<mrvn>
clever: they can only source 20mA per port and 40mA total (or similar depending on model)
<mrvn>
a blown mosfet and drain 1A
X-Scale` has joined #osdev
<doug16k>
zid, we have the queen on our money and it's 120VAC
X-Scale has quit [Ping timeout: 240 seconds]
<doug16k>
so 120 can't be that bad
X-Scale` is now known as X-Scale
<zid>
Until you want to use a motor or heater
<clever>
some of the high performance computers LTT recently talked about, needed 240
<clever>
just because of how many watts the crazy thing needed
<doug16k>
we get 2 phases of 3 phase , 240 if using both hots. 120 with hot and neutral
<clever>
thats usually 208 i think
<doug16k>
but the exact numbers are screwy a bit because they aren't 180 degrees out of phase, so you see other numbers sometimes
<clever>
exactly
frkzoid has quit [Ping timeout: 244 seconds]
freakazoid333 has joined #osdev
<mrvn>
You can double that for EU. That's why our electric kettles work twice as fast too.
<clever>
mrvn: ive heard of crazy people wiring an EU socket onto 2 NA phases, so they can use an EU kettle
<curi0>
So I successfully managed to read all the PCI device/bridge resources (BAR and bridge windows). But there's one thing left which is the root bus resource range which looks like I have to write an ACPI parser to read. Are there any other ways to get the root bus resource ranges or is ACPI the only way ?
terrorjack has joined #osdev
<curi0>
afaik ACPI is the only way for this because linux fails to find root bus resources and doesnt see the free space in them when i boot with "pci=nocrs"
toluene has quit [Read error: Connection reset by peer]
toluene has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
SpikeHeron has quit [Quit: WeeChat 3.5]
<doug16k>
curi0, you mean pcie base specification section 6.10?
SpikeHeron has joined #osdev
<doug16k>
"Root Complex Topology Discovery"
<geist>
sounds complicated
<doug16k>
every machine I think I care about is the simple kind where the legacy enumeration finds everything I care about
frkzoid has joined #osdev
<doug16k>
I'll be surprised when it doesn't find a device
<geist>
keeps you BUSy
<curi0>
doug16k, no i need to find the root bus resource ranges. linux prints them saying "root bus resource" and explicitly says it gets them from ACPI
<curi0>
i'd post a line of that from dmesg but i'm not on linux rn
vai has joined #osdev
<vai>
I almost burnt in a fire accident on friday :) lol
<vai>
neighbours flat on third floor got on fire, I was on fourth...
<vai>
e.g. toilet full of smoke
<vai>
so I have been rehabbing coding for a while
<vai>
took me a couple days to fix this computer after it got hacked
<vai>
@mothersplace
matt__ has joined #osdev
matt__ is now known as freakazoid333
frkzoid has quit [Ping timeout: 244 seconds]
toluene has quit [Quit: Ping timeout (120 seconds)]
toluene has joined #osdev
opal has quit [Remote host closed the connection]
opal has joined #osdev
<geist>
!!
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
arch_angel has joined #osdev
curi0 has quit [Quit: Leaving]
Ameisen has quit [*.net *.split]
PapaFrog has quit [*.net *.split]
nanovad has quit [*.net *.split]
arminweigl has quit [*.net *.split]
ckie has quit [*.net *.split]
amine has quit [*.net *.split]
PapaFrog has joined #osdev
arminweigl has joined #osdev
ckie has joined #osdev
Ameisen has joined #osdev
nanovad has joined #osdev
nohit has quit [*.net *.split]
afarrag has quit [*.net *.split]
PotatoGim has quit [*.net *.split]
teroshan has quit [*.net *.split]
cln has quit [*.net *.split]
bgs has quit [*.net *.split]
XgF has quit [*.net *.split]
demindir1 has quit [*.net *.split]
dragestil has quit [*.net *.split]
XgF has joined #osdev
teroshan has joined #osdev
bgs has joined #osdev
afarrag has joined #osdev
PotatoGim has joined #osdev
cln has joined #osdev
dragestil has joined #osdev
mzxtuelkl has joined #osdev
vai has quit [Remote host closed the connection]
the_lanetly_052 has joined #osdev
freakazoid333 has quit [Read error: Connection reset by peer]
pretty_dumm_guy has joined #osdev
kkd has joined #osdev
the_lanetly_052 has quit [Remote host closed the connection]
the_lanetly_052 has joined #osdev
bauen1 has quit [Ping timeout: 272 seconds]
GeDaMo has joined #osdev
heat has joined #osdev
bauen1 has joined #osdev
pretty_dumm_guy has quit [Ping timeout: 272 seconds]
pretty_dumm_guy has joined #osdev
arch_angel has quit [Ping timeout: 240 seconds]
<heat>
can you have a pcie layout that's not discoverable through legacy pci methods?
<heat>
where you go from the host bridge to each individual pci bridge, discover on those, etc
gog has joined #osdev
FatAlbert has joined #osdev
<FatAlbert>
Hey Hey Hey
<FatAlbert>
FatAlbert is here to stay
kkd has quit [Quit: Connection closed for inactivity]
gildasio has joined #osdev
the_lanetly_052_ has joined #osdev
arch_angel has joined #osdev
the_lanetly_052 has quit [Ping timeout: 240 seconds]
vai has joined #osdev
<vai>
hi #osdev
[itchyjunk] has joined #osdev
<gog>
hi
<friedy>
hi
<heat>
salutations
<gog>
mew
nohit has joined #osdev
bauen1 has quit [Ping timeout: 260 seconds]
<FatAlbert>
there she is
<FatAlbert>
heat: are youo lycander ?
<psykose>
thiccalbert
<heat>
erm
<heat>
i guess
<FatAlbert>
can you hear me ?
<heat>
psychose
<FatAlbert>
yes or no
<heat>
yes and no
<FatAlbert>
high tech is primitive ..
<psykose>
yes and maybe no
<FatAlbert>
radical religion is the future
<FatAlbert>
christianity is dying
<psykose>
wish it finally did
<FatAlbert>
allah akhbar
<FatAlbert>
psykose: salam alikum
<heat>
what the fuck is going on here
<ptrc>
FatAlbert: that's just a variant of christianity
<ptrc>
heat: i would like to know too
<gog>
how about that os development
<FatAlbert>
what's going on ? the same thing that's going on in europe for the past decades
<FatAlbert>
you are getting muslim and muslim everyday and do nothing about it
<FatAlbert>
inshallah
<j`ey>
FatAlbert: please stop
<FatAlbert>
ok
<FatAlbert>
at least here there is a fight
<heat>
....
<ptrc>
what
<heat>
do we have any OPs online?
<FatAlbert>
why ?
<FatAlbert>
do you need OP for ?
<j`ey>
FatAlbert: to ban you
<j`ey>
obviously lol
<psykose>
obviously lol
<ptrc>
obviously lol
<FatAlbert>
obviously lol
<FatAlbert>
a man who can't speak seek to ban a man who can
<FatAlbert>
heat: pathetic ..
<FatAlbert>
that said ...
<FatAlbert>
im a jewish
<FatAlbert>
RofL
<heat>
you're not a man, you're a little boy who's spewing racist shit on IRC
<ptrc>
we just don't want your edgy xenophobic bullshit here
<Mutabah>
... Ok, what's going on here now
<FatAlbert>
?
<Mutabah>
*reads* Ah
FatAlbert was banned on #osdev by Mutabah [FatAlbert!*@*]
<heat>
thank you Mutabah
<Mutabah>
Been quite a while since I had to do that
<heat>
i think most of them got stuck in freenode lol
<heat>
so, how about that os development
<Mutabah>
Well, I've been doing EHCI and then on to XHCI :D
<gog>
i'm still playing with UEFI
<Mutabah>
Got EHCI working pretty well (on qemu at least)
<j`ey>
all compilers with diff compilation speed : speed of compiled code tradeoffs
vinleod is now known as vdamewood
bauen1 has joined #osdev
<heat>
and they all have great, very descriptive names
gildasio has quit [Quit: WeeChat 3.5]
noeontheend has joined #osdev
gildasio has joined #osdev
SpikeHeron has quit [Quit: WeeChat 3.5]
SpikeHeron has joined #osdev
<heat>
i want node but node's build system looks insaaaaaaaaaaane
<heat>
a configure script
<heat>
in
<heat>
python
islamic_fatality has joined #osdev
<zid>
webdevs just add complexity until it works
<zid>
you should know this
<islamic_fatality>
should he ?
<islamic_fatality>
this is osdev
<islamic_fatality>
heat: hi im here
<heat>
Mutabah, ban evasion
<friedy>
Ban this clown.
<Mutabah>
Oh, hey, so it seems
<islamic_fatality>
what ban evasion ?
islamic_fatality was banned on #osdev by Mutabah [*!*@user/tessio]
<Mutabah>
You
terminalpusher has joined #osdev
terminalpusher has quit [Remote host closed the connection]
terminalpusher has joined #osdev
<Ermine>
Should I stop procrastinating and something interesting happens!
<psykose>
you can use +b $a:tessio as well afaik
<Ermine>
Written yet another AI if you consider if's amount
<zid>
I had him pre-ignored so I didn't see any of it
<Mutabah>
psykose: The usermask works well enough
<zid>
so as far as I can tell, everybody was asking to ban heat
<j`ey>
zid: yes thats what we wante
<j`ey>
d
<zid>
same
<Ermine>
zid: you even didn't recieve messages from him?
<zid>
no I had the same ignore mask as that ban :p
<zid>
*!*@user/tessio (pcntdikshy) - Libera.Chat
<Ermine>
btw you leaked his next username?
<zid>
You need to be registered to join this chan
<zid>
so ignoring people is ezpz
nilum has joined #osdev
JTL has joined #osdev
<heat>
ban cold, not me
terminalpusher has quit [Remote host closed the connection]
<Ermine>
heat: cold is a lack of heat
<zid>
I vote we ban temperatures over 26C
<zid>
Just in general
<bauen1>
if cold is defined as a lack of heat, and heat as a lack of cold, who was there first ?
<bauen1>
zid: I doubt I'm qualified to speak on that matter, but I suspect that that might cause some minor issues with the earths ecosystem
<zid>
bauen1: And my oven
<bauen1>
zid: I don't think you'll have worry too much about your oven when the average temperature on earth suddenly drops below 0°C
<zid>
I didn't say we couldn't compensate
<zid>
and that doesn't seem like it'd be true anyway tbh
<bauen1>
zid: true, not entirely sure about that ; but maybe we should also lower the boiling temperature of water to around 26°C, otherwise essentially most of the earths climate would collapse within a few days at most
<bauen1>
i really want a computer fast enough to simulate earth or the solar system with atom accuracy, so I can actually test these things :(
<mjg_>
would that be enough tho
<zid>
I'm not *entirely* convinced that one's possible
<zid>
given the computer has to be ON the earth
<mjg_>
why. you could use it remotely.
<zid>
maybe if you turned 50% of the planet into computer, then simulated it without the computer present at its now 50% scale :P
<mjg_>
repurpose alpha centauri
<mjg_>
done
<mjg_>
hold my beer
<Ermine>
you need that computers from Hitchhiker's Guide to the Galaxy
noeontheend has quit [Ping timeout: 260 seconds]
nilum has quit [Remote host closed the connection]
s1gyn has joined #osdev
<GeDaMo>
Deep Thought
<sbalmos>
Made by IBM
<zid>
nah probably means the infinite perspective chamber thing
<GeDaMo>
Total Perspective Vortex
SGautam has joined #osdev
<gog>
Ermine: did they dm you too?
<zid>
dm? gog is a tweeter!
<gog>
am not
<gorgonical>
you can't prove otherwise though
<zid>
If it quacks like a twee
<zid>
and it tweets like a dog
<zid>
it must be a tweeter
<gog>
:|
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
heat has quit [Ping timeout: 272 seconds]
vai has quit [Remote host closed the connection]
noeontheend has joined #osdev
heat has joined #osdev
<heat>
shit yall got DMs?
<psykose>
only dms i get seem to be from fatalbert that i am now targetted :(
<heat>
do you want me to slide onto your DMs too?
gog has quit [Ping timeout: 276 seconds]
<psykose>
:o
<zid>
heat's already in mine, I can't get him to leave
<zid>
he's got a cardboard box and one of those water bottles for hamsters set up
<psykose>
cute heat..
<psykose>
must gentle pet..
islamic_fatality has left #osdev [#osdev]
nilum has joined #osdev
<heat>
kinda cringe ngl
noeontheend has quit [Ping timeout: 272 seconds]
lkurusa has joined #osdev
<gorgonical>
just discovered an interesting issue with this head.S code
<gorgonical>
seems like ifetch is fetching too many instructions after the write to the page table code and relocating the global pointer doesn't actually do the right thing
<gorgonical>
it does a pc-relative load address which is supposed to load gp with the virtual pc-relative address, but because of ifetch doesn't actually do the right thing
<j`ey>
sounds like you need a barrier?
<gorgonical>
Yeah this head.S is borrowed from linux though. Possibly the barrier ended up not being needed because of alignment, but I think so
<zid>
Or you're barking up totally the wrong tree
<gorgonical>
4 nops after the pgtbl load fixes it, but that's not very "correct"
<gorgonical>
very possible
<gorgonical>
it does seem like a fence.i after the csrw does also work. Which it should, naturally
<heat>
what's ifetch?
<gorgonical>
instruction fetch. My hypothesis was that the insns were already in the queue
<gorgonical>
And for whatever reason weren't being invalidated when page tables switched
<gorgonical>
Which seems to be supported by fence.i resolving this
<nilum>
is this ARM? or x86? It’s been awhile sense I looked, but I remember ARM having some weird semantics where things like that are “expected behavior.”
<gorgonical>
this is risc-v
<j`ey>
riscv I think
<zid>
why are you switching what's in the queue so close to the pgtable swap?
<heat>
i've never heard of all these issues on riscv
<gorgonical>
zid: what do you mean? This is the jump from physical to virtual
<zid>
I'd have thought you needed to keep it identity mapped in the new virtual
<zid>
then remove it later on
<gorgonical>
Oh
<gorgonical>
Yeah this code does something a little interesting, at least I've never seen it before
<heat>
show
<heat>
uz
<heat>
cod
<zid>
so you got hoist by your own petard? :p
<heat>
plz
<heat>
it's from linux I think
<heat>
gorgonical has been doing some weird linux frankenstein
<zid>
"I did a weird thing and got weird consequences, damn you reality!"
<gorgonical>
zid: indeed lol
<gorgonical>
heat: the frankenstein part is just "adapting" working bootcode. The rest of the kernel is our work
<heat>
ok, what's the problem here?
<mrvn>
gorgonical: does riscv do instruction pre fetching while the MMU is off?
<gorgonical>
mrvn: A very good question
<heat>
oh wait waht the fuck
<zid>
full fence here because setup_vm() just wrote these PTEs and we need
<zid>
* to ensure the new translations are in use.
<zid>
they literally have a full fence on 104
<gorgonical>
That's the translations themselves. I was seeing the pc in the qemu was still a physical addr after the write to csrw
<mrvn>
gorgonical: on ARM you enable the MMU and i/d-caches all at ones so you don't run into this problem.
<zid>
nochain or not?
<zid>
I don't trust qemu anymore
<zid>
I have emotional damage
<gorgonical>
Is nochain some qemu option I should know about
<zid>
yea it stops it linking the jit blocks and removing jumps/calls/rets
<mrvn>
And didn't we conclude that the riscv code will fault into higher half mode on systems setup to run higher half?
<gorgonical>
Oh, that's very possible. I wasn't able to get gdb to break on this gp relocation
<gorgonical>
mrvn: Yes basically
<zid>
I spent 2 days trying to find a mystery crash inside an imul because qemu was lying and I was crashing inside of a ret (to 0)
<gorgonical>
It relies on this to potentially fault forward into virtual addresses. That's the beginning of this routine, computing the virtual address
<bslsk05>
github.com: [arch][arm64] replace the trampoline translation table with a trampol… by pcc · Pull Request #327 · littlekernel/lk · GitHub
<gorgonical>
I wondered wtf this was about and asked palmer about it and he said its because the mmu state is unknown at this point. could be off, could be VA=PA, could be not
<gorgonical>
zid: Could qemu be responsible for me not being able to gdb break on the gp reloc? I was doing b *0xfff... and it just wouldn't catch
gog has joined #osdev
<gorgonical>
Even though, in theory, it was happening
<zid>
just try -d nochain
<zid>
or whatever it is
<heat>
give up and write something for x86 or whatever idk
<gorgonical>
heat: I don't think they'll keep paying me if I do that
<bslsk05>
github.com: Onyx/image.S at master · heatd/Onyx · GitHub
<heat>
and is much simpler than whatever crazy shit linux is doing
<gorgonical>
heat: thank you. I'll strongly consider this. I've been advised to change as little as possible because one of our aims is linux compatibility, but early boot code doesn't matter
noeontheend has joined #osdev
<gorgonical>
So if this wacky shit is still plaguing me I'm just gonna trash it
<heat>
np gorg
<gorgonical>
I basically did a backflip when I got printks working last week. Small victories
<heat>
is your stuff gplv2?
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
<gorgonical>
yes
<heat>
link?
<gorgonical>
I can push to the public github real quick
<gorgonical>
just a sec
<heat>
don't chinese android vendor me
<gorgonical>
wot
<heat>
chinese android vendors tell you to go to china to get a CD with the source code
<bauen1>
gorgonical: what exactly are you working on ?
<gorgonical>
bauen1: porting kitten, a lwk, to riscv
<bslsk05>
github.com: GitHub - HobbesOSR/kitten at riscv
<gorgonical>
bauen1: basically the reason we want to do this is because extending/modifying linux for experimental hardware can be very messy and kitten is simpler and easier to modify
lkurusa has joined #osdev
nilum has quit [Remote host closed the connection]
Raito_Bezarius has quit [Ping timeout: 240 seconds]
remexre has quit [Ping timeout: 255 seconds]
nilum has joined #osdev
noeontheend has quit [Ping timeout: 260 seconds]
<gorgonical>
better solution to gp problem: move the fucking reloc until after we do a return, at which point we are *guaranteed* to be in virtual addresses
noeontheend has joined #osdev
remexre has joined #osdev
Raito_Bezarius has joined #osdev
foudfou has quit [Remote host closed the connection]
foudfou has joined #osdev
the_lanetly_052_ has quit [Ping timeout: 260 seconds]
Vercas has quit [Remote host closed the connection]
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
<immibis>
anyone tried making a filesystem without filenames?
dude12312414 has joined #osdev
<immibis>
just out of curiosity, nothing else
<sbalmos>
from the human/UI perspective, how would one uniquely identify a given file then?
Andrew is now known as HaxCPU
<zid>
As soon as you want to refer to it uniquely, it has a name, the end
<sbalmos>
indirect way of making my point - a name is always involved at some point
<GeDaMo>
Some Forth systems used block numbers, no names or files really :P
<moon-child>
zid: imagine the degenerate case of a 'filesystem' which is just a transparent persistence system for a language's object graph
<zid>
the number is just an address, and an address is a name
<moon-child>
then a 'file' (object) clearly does not have a name; only an identity
<moon-child>
and if an application would like to allow the user to identify the object, it can do so however it pleases
<zid>
moon-child: and if I restart the program?
<zid>
but that sounds like you're just talking about "databases"
<zid>
which are files
* moon-child
sighs
<moon-child>
nevermind
<zid>
Either you're not talking about files, or the files have names
heat has quit [Remote host closed the connection]
heat has joined #osdev
<gog>
what's in a name
<gog>
a rose by any other name smells just as sweet
<GeDaMo>
A file by any other name will smell as sweet :P
<GeDaMo>
:P
<zid>
roses don't actually smell sweet
<zid>
They smell musky and weird
<gog>
but seriously what is a "name", like addressing files by unique strings representing the virtual path
lkurusa has joined #osdev
heat has quit [Ping timeout: 272 seconds]
<sbalmos>
path-less fs's, tag or attribute-based. but unless the UI is displaying the file contents, the user is still going to give it some type of identifying string for their own sake
* geist
yawns
<geist>
good morning
<sbalmos>
isn't it almost noon?
<dh`>
your point?
<sbalmos>
must've been one of those weekends :)
lkurusa has quit [Ping timeout: 276 seconds]
<gorgonical>
geist could be in alaska, who can say
<geist>
well it was technically morning at the time!
<gorgonical>
by the way for those who care: the fence.i did not work. I had to stick the nops back in
<gorgonical>
So who knows what the deal is
<\Test_User>
it's always morning, and it's always noon
<gorgonical>
We should abolish timezones
<\Test_User>
agreed
<\Test_User>
but that does nothing for sunrise/mid-day
arebilnii has joined #osdev
<arebilnii>
What tools you guys use for linking and assembling the initial booting stuff that's written in assembly?
NeoCron has joined #osdev
<gorgonical>
gcc in general
<geist>
yep. gcc
<arebilnii>
AT&T syntax? Because I like AT&T syntax, getting it to play nicely with windows is a bit of a hassle right now.
<geist>
give it an .S file and it does the right thing
<gorgonical>
I don't typically write x86 asm
<geist>
on x86? yes. but it can handle intex syntax if you tell it to
<geist>
on non x86 it's irrelevant since there's no concepto f at&T syntax
<geist>
(except maybe 68k)
<gorgonical>
take the riscv pill and buy a $200 devterm you won't use
<gorgonical>
my excuse is that i'm 1500 miles away from it
<arebilnii>
This is a super basic hello world with the boot sector in intel syntax. I'm attempting to rewrite this in AT&T syntax as a challenge. https://dpaste.org/3Agp5/raw My bigger issue is the proper way to turn the .s file to a .bin using GNU binutils.
<bslsk05>
dpaste.org: Just a moment...
<zid>
section .text; bits 16 it, then assemble it to a 32bit ELF
<zid>
then objcopy -j.text it for your flat binary
<arebilnii>
Why specifically cross compile to an ELF format?
<zid>
or whatever section name you want I guess, given how the elf is an intermediate
<zid>
because --oformat=binary is for lamers and means you can't do any linking
<zid>
It tends to be vaguely helpful to be able to use more than one file in a project
<zid>
especially if you ever progress past a single sector
<zid>
the ELF will also load natively into debuggers and give you access to symbol names in them
<arebilnii>
What exactly would 'times 510 - ($-$$) db 0' and 'dw 0xaa55' translate to AT&T format as? It's the last two lines in the paste.
<moon-child>
hmmm maybe align 510
<moon-child>
and the dw is .short
<zid>
those are assembler directives
<zid>
so they're not part of any flavor syntax
<geist>
can do an .org 510 and .word 0xaa55
<zid>
they're direct commands to the *assembler* you're using
<bslsk05>
github.com: 3x86/bootblock.S at master · travisg/3x86 · GitHub
<geist>
there is an implicit .org 0 at the start of the file, so the 510 works in this case. also it'll generate an error if it can't push forward the current address to 510 so it's fairly foolproof
kaitsh has joined #osdev
frkzoid has joined #osdev
noeontheend has quit [Ping timeout: 244 seconds]
arebilnii has quit [Quit: Client closed]
kaitsh has quit [Ping timeout: 260 seconds]
frkzoid has quit [Ping timeout: 244 seconds]
GeDaMo has quit [Quit: There is as yet insufficient data for a meaningful answer.]
<geist>
you're welcome.
gildasio has quit [Ping timeout: 268 seconds]
gildasio has joined #osdev
heat has joined #osdev
<heat>
salutations comrades
<heat>
how are the operating systems developing
<zid>
Comrade heat, progress has been hampered by the russian machine we are using to produce the electricity
<mats1>
reported
<zid>
it was designed to produce 400V at 60Hz using 4 litres of petrol an hour, but it's using 8 litres of petrol to produce 6 volts at 10Hz
<gog>
my production bureau was all sent to gulag
<mats1>
no son of russia would accuse innovations of the fatherland
<geist>
oh that remidns me, i still need to do an oil change on my house generator
<mats1>
this is operator error
<immibis>
sbalmos: you click on it
<zid>
I think the west has sabotauged it
<mats1>
better
<zid>
And also m y capacity to spell
<immibis>
if you made two identical looking files that's your own fault. Maybe you can identify them by their position on the desktop.
<immibis>
of course they also have editable labels
<sbalmos>
o_O
<sbalmos>
a label... is a filename...
<gog>
nah this is different, is label
<zid>
Is it sticky
<heat>
sticky bit
<heat>
wordzzzz
<sbalmos>
all files are sticky. that's why the russian machine is running so slow. it's gummed up.
<zid>
only some of my files are sticky
<zid>
mainly the ones about goats
<gog>
my EFI headers work
<geist>
well they could have different inodes
<heat>
gog, nice
<geist>
it's only a convention that you cannot have two files with the same name in the same directory
<sbalmos>
geist: true, that was implied
<heat>
we should all refer to files as a (dev, inode) pair
<gog>
we shouldn't refer to files
<sbalmos>
blobs
<geist>
right, obviously the api depends on name uniqueness if all you use is the name to identify something
<heat>
blobby boi
<zid>
iso9660 already supports that kinda
<gog>
we should refer to byte offsets in memeory or ok disk but never specify
<zid>
;1 ;2 etc
<geist>
but if you had an indoe based api (like many oses had/have) then the name isn't that relevant
<sbalmos>
And we need transparent versioning like VMS.
<klys>
lord of the files
<geist>
macos classic i think operated mostly on references to files via effectively an inode number, which is why it would just magically find the right app based on systemwide associations with things, etc
<geist>
also i remember BeOS had a parallel file api using a ref_node iirc
<dh`>
we don't have an inode-based API (ignoring some hacks for nfs) because having directory permissions protect the contents is useful
<geist>
which was basically an inode based file opening thing, because of some macos heritage that went into eOS
<sbalmos>
klys: it's not a trash can, it's a bugzapper. When you delete files, you get a satisfying zap sound and flash of light
<geist>
beos
<klys>
:)
<geist>
also iirc earlier macosx (i dont know if it's still in there) had an inofs iirc that mapped inode numbers into the posix namespace, via something like /ino/<N>
<sbalmos>
dh`: ACLs and rights inheritence is out-of-band to the file/inode itself though
<geist>
presumably for carbon based macos api compatibility and whatnot
<dh`>
it is
<dh`>
but nonetheless the effect is useful in practice
<sbalmos>
geist: interesting
<sbalmos>
geist: gotta love weird projected VFSs like that
<geist>
yah
<dh`>
(and if you changed it there's all kinds of stuff you'd have to audit if you wanted to run off-the-shelf software)
<sbalmos>
geist: kinda like how I once envisioned having a tag/attribute-based FS. The VFS "directories", if you had them, were more like persistent search parameters
<geist>
yah beos in particular basically had no real file permissions because of that. a) you could open a file by inode, which was nice for UI references to things that Just Worked no matter where the file was
<geist>
and b) the whole btree indexed BFS thing where you could do glboal searches of files based on a bunch of attributes would basically bypass directory based security because it would return a reference to the file
<dh`>
my understanding of the way files in macos classic worked is that applications basically just didn't see filenames, you opened the system file-selection dialog and that gave you back an open file handle
<geist>
yah and there were things like 'associate this kinda file with <references to app>' so it didn't matter where the app was, etc
<geist>
kinda nice to fiddle with it. the directory structure of your hard drive was pretty much whatever you wanted to do with it, since paths didn't really matter
<dh`>
that wasn't as sophisticated as "associate", that worked by having an entry in the file metadata that named the creator app
<dh`>
and the app ID was something you got from Apple developer services
<dh`>
it got more sophisticated in OS X
<klys>
app dev svc
<heat>
> an inofs iirc that mapped inode numbers into the posix namespace
<heat>
how did that work for listing files?
<heat>
seems slow
<geist>
yep. but the effect is nice. you can just move things around on a mac classic and mostly doesn't brek
<dh`>
yup
<geist>
heat: i dont think you do. probably doesn't support readdir()
<geist>
it was for 'i have an inode of something based on <some mechanism> and i want to open it'
<dh`>
also the folders stuff wasn't actually hierarchical, that was a UI-level illusion
<dh`>
that's why the later mac file system was called HFS
<dh`>
because it actually was hierarchical
<heat>
this was pre-macOS UNIX right?
<geist>
what beos let you do was a project active queries against a heirarchial file system. you opened a query with a SQLish looking search string, and it returned you an open handle
<dh`>
anyway in MacOS Classic all those IDs were 32-bit codes chosen so as to be 4-byte printable strings
<geist>
then you could listen on the handle and it'd give you live updates
<dh`>
heat: which?
<geist>
search 'filesize > X && filesize < Y && mime-type=text' etc
<heat>
dh`, the non-hierarchical shenanigans
<dh`>
which is why old macos file types like PICT all have 4-letter names
<dh`>
heat: no, I was talking about macos classic circa 1987
<heat>
yeah
<heat>
UFS was always hierarchical right?
<dh`>
yes
<dh`>
unix was always hierarchical
<dh`>
that was one of the innovations compared to say tops20
<geist>
so you can see that they had to map the classic semantics against the heirarchial stuff that macosx brought along
<geist>
but they over the years moved people to a more posix strategy of this stuff
<geist>
when i worked there in 2005 it was still a thing, though i think by then it was only really exposed to things that ran against the carbon api
<geist>
dh`: was playing around with a OS that ran on Sigma-9 computers and it was a similar to TOPS20 notion of a workspace
noeontheend has joined #osdev
<geist>
you logged in, got a workspace, could make files, etc temporarily, but when yuo logged out it was all cleaned up unless you went through some sort of mechanism to cause things to persist
<dh`>
my knowledge of this stuff is limited, I was in high school in 1987 :-)
<dh`>
and I never actually programmed on macos classic, I've just heard a fair amount about it
<geist>
CP-V
<dh`>
my only exposure to TOPS-20 was simtel
<geist>
yah i recently got a Mac SE locally off craigslist and played with it a bunch. it's actually a fairly nice system considering
<geist>
but realistsically it only runs up through mac classic 6.x. 7.x jumped forward in complexity and starts to feel really slow on a 8mhz 68k
<dh`>
macos classic does have all kinds of horrible internal design problems, but it has a lot of nice properties that we still don't manage to get from unix today
<geist>
also fascinating considering the early macs were totally unaccellerated. fairly simple architectures
<sbalmos>
geist: That BFS persistent-query stuff was fun
<dh`>
one of the projects I don't have time for is to set up OS/161-sized rebuilds of significant historical OSes
<dh`>
macos classic definitely being one of them
<dh`>
it is weird but many people would benefit from an understanding of its internals
<sbalmos>
I thought someone got System 6 running on QEMU at one point?
<geist>
yah agreed. at least early versions of it seem to be simpe enough to describe and i think useful as a learning experience for OS stuff
<dh`>
as I recall the main problem that led to Copland being a shitshow was that they never figured out how to allocate memory one process at a time
<geist>
ie, what can you do with a single address space, cooperative tasking, etc
<dh`>
amigaos too, but that has many more fans at this point
<geist>
yah the SE i have is just at the edge of being able to run MultiFinder which was optional
<dh`>
my recollection is that for System 7 you really wanted at least an SE/30
<geist>
otherwise it's single tasking, which of course makes the memory management fairly simple. somewhat DOS like in the sense that there's a large block of ram that's probably fairly free for The App to allocate from
<geist>
yah if nothing else because it's a lot more code. i booted system 7 on my SE but it was clearly much slower so i put system 6 back on it
<dh`>
you also AFAICR don't get much from System 7 if you don't have at least a 68020
<geist>
also i guess SE/30 gives you a MMU and i think 7 or 8 r whatnot starts to take advantage of it
<geist>
may still be a SASos, but probably at least lets it arrange large contiguous allocations
<geist>
otherwise i think the pre-mmu macs had serious memory fragmentation issues that cant always be solved with handles to things
<dh`>
I cannot remember even what I used to know about the details, just that it was an unfixable compat mess by 1995
<geist>
yah ther was also the 24 -> 32 bit stuff too
<geist>
i think system 7 was 32bit clean, or at least that was the jump they had to get through
<dh`>
something like all applications get the entire memory space by default and everything relies on applications releasing memory they aren't going to use, but with additional ramifications of some kind
ZipCPU has quit [Remote host closed the connection]
<dh`>
also at some point they made the mistake of running the whole thing in protected mode instead of user mode
<geist>
yah if all the apps are relocatable you could eaily just let multiple apps allocate/free blocks, but quickly you get internally fragment
<geist>
and since 68k is a flat memory and has no segmentation or whatnot you can't move things around
wootehfoot has joined #osdev
<dh`>
with the result that you would need to virtualize things, and that was still a very big deal in 1995
<geist>
yah
<klys>
geist, mac os system 7 on the mac se?
<dh`>
amigaos suffered from memory fragmentation and there were tools for defragging memory
<geist>
anyway i fiddled with trying to get qemu to emulate a system 6 machine a while back, according to directions on hackaday or whatnot, but it was difficult
<geist>
i ended up switching to a more special cased mac emulator, forget the name, but it works nicely
<sbalmos>
:/
<geist>
klys: system 7 on the SE, yes
<dh`>
but it didn't have these structural issues, instead it had a fatal dependence on being single-address-space without protection
<zid>
windows 9x is the best operating system so all this is academic
<geist>
klys: if you upgrade the memory to 4MB (easy to do now, $20) it'll technically run it, but it's pretty pudgy
<sbalmos>
geist: oh heck now I'm going to try and remember that emulator. I think I know which one you're talking about. Another long-dormant neuron
<geist>
so i switched back to system 6
<gog>
sheep shaver?
<sbalmos>
zid: Server 2003
<geist>
basilisk?
<sbalmos>
geist: that's it!
<dh`>
zid, you misspelled DesqView :-)
<geist>
the hard part of course is digging up the roms. since there are roms for a bazillion macs and requires a bit of fiddling to find the right one
<sbalmos>
geist: thanks, you've just ruined the rest of the night for me, going to go down that rathole
<zid>
sbalmos: I ran server 2003 for a loong time, as long as xp64 counts as it
<sbalmos>
geist: :D
<sbalmos>
zid: Oh I loved running Server 2003 as my desktop in college
<geist>
needless to say a modern machine can emulate a classic mac like a bazillion times faster than the original
<geist>
heh yeah in college there was this whole nerd thing where all the leet haxxors ran NT 4 server as their desktop
<geist>
me included. look like leet i am?
<gog>
did you see the action retro where he used sheep shaver on a 2001 Thinkpad and virtual PC on a PowerBook G3 to emulate windows 2000
<geist>
yah that action retro guy keep sfinding more and more esoteric things to do with old mac hardware
ZipCPU has joined #osdev
<sbalmos>
geist: my nerd thing was I didn't need a dedicated TV. I put one of those Happague (sp?) TV tuner cards in my minitower, and had TV running semi-transparently on screen in a window
<geist>
oh nice
<clever>
my Happague card is pci, not pcie, so i need a fairly old computer to make it work
<geist>
i had a scsi cd burner which was also drool. and since i was running NT i could actually burn stuff and use the computer at the same time
<geist>
which was also one of those look at me things
<sbalmos>
hah! yeah
<clever>
it has hardware mpeg2 encoding, which also adds latency
<clever>
the older framegrabber card has no hw encoding, which gives you lower latency if you just want live display
<sbalmos>
the infamous "burning a CD? don't breathe on your CPU lest you make the buffer drop"
<clever>
sbalmos: lol :D
<geist>
yah it was a real thing. folks used to put stickers on their computer when burning stuff on win85
<geist>
95
<geist>
like dont touch
<geist>
also was the era when blank cdroms were like $1 a piece
<zid>
BUFFER UNDERRUN
<klys>
EL TORITO
<geist>
and sinc eyou probably burned at 1x it'd actually take like an hour
<sbalmos>
gaaah
<zid>
I made a bunch of coasters even with the PC sat idle :(
<sbalmos>
geist: the real cheap ones you could hold up and see through the burnable ink layer
<geist>
actually kinda the same problem when ripping cds for mp3s
<geist>
as a side note i've tried reading some of the cds i burned back in 96 or so and predictably they're not all great
<zid>
cd-roms have very varying quality
<geist>
though the Kodak ones are pretty good. they were gold cdrs and were the expensive ones
<sbalmos>
geist: you still have a CD/DVD/BR drive?
<zid>
a lot have died because of cheap glues etc
<geist>
vs the dark blue ones which were cheap
<zid>
or UV sensitive inks
<geist>
sbalmos: of course
* sbalmos
slinks away
<geist>
though i dont put it on my main workstation since i have a radiator there
<clever>
there was a specific batch of mini-cd's i had, that developed visible spots after a few years
<clever>
every disk in that batch has gone unreadable
<zid>
I've not had an optical drive in forever, I sorta need one for burning playstation isos
<sbalmos>
geist: ooo, did you have one of thoes Kodak burners that you flip the CD over and it would burn the label image?
<zid>
but the free ones in scrap piles tend to be IDE which is unusable to me
<zid>
lightscribe?
<sbalmos>
yeah
<geist>
but i have one on my server machine and sometimes use it to burn discs when fiddling with old machines. for example i used that very same scsi cdrom drive from the late 90s (plextor!) to boot the VAX VMS 7.3 disc i burned on the vax
<geist>
since it talks to the scsi drive just fine
<zid>
plextor were decent
<geist>
a bit later on the plextors were well known to be able to switch from mode 1 to mode 2 and whatnot
<geist>
essentially if you were, say, copying particular game discs for particular consoles
<geist>
somewhere along the way i got a BD-R disc and i think i've burned a grand total of like one bluray disc before losing the novelty
<geist>
but it's a good drive nonetheless. that's the one i keep in the server. can read and write everything basically
<bslsk05>
www.ebay.com: 1x USB 2.0 A Male Right Angle To USB B Male Right Angle 90°Printer Scanner Cable | eBay
<dh`>
I have a PATA dvd-rw that I think I used like once before it became impossible to connect it up
frkazoid333 has joined #osdev
wootehfoot has quit [Ping timeout: 240 seconds]
<gog>
dvd-ram was a based format, kind of a shame that it was too late to be terribly useful for most people
<zid>
yea dvd-ram was infact, cool
noeontheend has quit [Ping timeout: 244 seconds]
<gog>
oh dang introduced in 1996
<gog>
why did i never hear of it though
<sbalmos>
gog: we were all too busy with our Iomega Zip Drives
<gog>
i never had zip drive :(
<sbalmos>
ooo, the Jaz drive! That's the one I couldn't remember. The little 1 gig hard drive platters in a plastic case "disk"
<mrvn>
sbalmos: click click click click
<zid>
yea I missed zip
* sbalmos
twitches
<sbalmos>
mrvn: More than once, unfortunately
<zid>
I went from floppies to cd-roms to dvds to 'the internet'
<mrvn>
mine never did
<gog>
i saw one on Adrian's digital basement, the cybex or smth? basically the same concept as a jaz
<sbalmos>
we had internal Zip drives in each PC of our CompSci classroom in high school. We'd have a zip disk for each semester, and turned in our homework/projects on them.
<gog>
we did have zip drives in all our computers at school, but i was poor and by the time I saved enough to get a decent computer it was cheaper to get a 128mb flash drive
<heat>
loved the osdev get together in #musl folks
<heat>
the best osdev is done in other channels
NeoCron has quit [Remote host closed the connection]
noeontheend has joined #osdev
<gog>
the best osdev is the osdev you don't bother doing
<heat>
agreed
<heat>
haven't done much osdev besides porting the devil's runtime
<zid>
osdev is about figuring out how not to bother writing code
<zid>
by skillful use of "That isn't a feature of this OS"
<zid>
files? no no, we have STREAMS. They're like files but way more limited.
<heat>
streams is the itanium of unix
<klange>
> osdev is about figuring out how not to bother writing code
<klange>
oops
<heat>
yeah we're... kinda way down the road for that
<klange>
please send help my python knockoff has reached 22k lines
<heat>
congrats
<heat>
lets reach 30k
<heat>
i want kuroko to feature creep so much it reaches cpython size
<klange>
I think CPython is on the order of 350k.
<klange>
So we've got a ways to go.
<klange>
And that's just the `.c` bits.
<klange>
There's half a million lines of meta Python, and a whole 180k of code lines from header files.
psykose has quit [Remote host closed the connection]
psykose has joined #osdev
nilum has quit [Remote host closed the connection]
<gog>
stop writing code the world has enough code
noeontheend has quit [Ping timeout: 244 seconds]
<klange>
Speaking of Kuroko, I am looking for feedback / bug reports / strongly-desired-missing-features for 1.3.0, if anyone has some time and wants to throw some code at it. https://kuroko-lang.github.io/
<bslsk05>
kuroko-lang.github.io: Kuroko
<klange>
I should probably be poking heavy Python uses, but the sort of things I am looking for beyond obvious bugs are:
<klange>
- Syntax that doesn't work the same as Python, with seemingly no reason. Some things have to be different because of the declaration system, but if you have a snippet you find doesn't work let me know.
<klange>
- Missing methods on existing stdlib types that you consider crucial, particularly if they're not terribly involved to implement.