<zid>
cs being 0x800 shouldn't matter, I never use cs until I reload it
<zid>
to the gdt I stole via copypaste
bauen1 has joined #osdev
<heat>
i would load 0 into all segment registers to eliminate all sorts of segment-related confusion
osmten has joined #osdev
<zid>
was getting crazy issues earlier like the garbage code that sometimes runs because eip was being naughty (still don't know why that was happening) overwriting 0x8000 between AP bringups etc
<zid>
so.. mov es, ax
<heat>
(including cs)
<zid>
writing to cs is what jmp 8: does
<zid>
how do I write to it otherwise
<heat>
well im saying you should longjmp before the lgdt
<heat>
for no particular reason other than to get rid of segmentation awfulness
<bslsk05>
rafb.ath.cx: Pasted code - No description
<zid>
works fine unless I remove 8022
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<zid>
oh I pasted it bad cus reloadcs
<zid>
8007: ea 0c 80 00 00 ljmp $0x0,$0x800c
<heat>
oh wait im stupid, the lgdt works
<zid>
yea it's in the qemu logs
<zid>
as 8022
m5_ has quit [Read error: Connection reset by peer]
<heat>
ok so the ljmp is fucking up? or is it anything after it?
<zid>
who knows
<zid>
I get 0x6 spam if I put the jmp . in the pmode:
<zid>
so it's already gone to the moon
<heat>
you need to toggle bit 0 in cr0
<zid>
oh
<zid>
that would
<zid>
help
<zid>
yea now it works
<zid>
EIP=00008033
<zid>
8033: eb fc jmp 8031 <pmode>
<zid>
ty Mutabah for 'cs is set you idiot', then heat for reminding me I never actually got far enough to think about the code properly csu I was TOO DISTRACTED BY FUCKY TOOLS
<zid>
now I just need to remember how to turn on EFER LM and crap, can steal that from long.asm in boros though :P
<Mutabah>
:D
<heat>
all of this early code is so fucky, good luck
<Mutabah>
Yeah, x86 AP setup is jank
<nikolar>
if only someone documented step by step what you need to do
<nikolar>
so you don't need to care that it's jank :)
<heat>
what you need to do depends on what you're doing
<heat>
or how you're doing it
<nikolar>
what you're doing: onlining the cpus
<zid>
I mean, the docs weren't terrible in the end
<heat>
i need to grab the load bias in case it exists, the thread stack (in two halves!) both inline in the middle of the stub, switch segments, switch to protected mode, jump to a proper physical address in my kernel (this Just Works because my kernel is always loaded under 4G even with KASLR), fetch one of the 2 page tables in the process (to bootstrap myself, can't really grab the proper one), enable paging (with LA57 if needed), enable long mode, switch
<heat>
GDT AGAIN, jump to a 64-bit code segment, then switch GDTs AGAIN!!, jump to higher half, load paging structures AGAIN, load an idt, switch stacks, handle GS_BASE, more early ass init
monkeyPlus has quit [Remote host closed the connection]
<heat>
and then the rest is completely kernel specific in C while stepping on eggshells
<heat>
like half-initialized structures per-cpu data and all that lovely stuff
terrorjack has joined #osdev
<zid>
I might jmp to real kernel code
<zid>
so that I can use C to do asm("mov rsp, $0")
<zid>
cus I don't fancy navigating externs from asm :P
nur has joined #osdev
eluks has quit [Remote host closed the connection]
eluks has joined #osdev
m5_ has joined #osdev
osmten has quit [Ping timeout: 240 seconds]
m5_ has quit [Ping timeout: 244 seconds]
bauen1 has quit [Ping timeout: 252 seconds]
osmten has joined #osdev
heat-onyx has joined #osdev
<heat-onyx>
test onyx operating system!!
<zid>
no
<heat-onyx>
:(
<zid>
you do it, it has an encrypted keyboard for me
<heat-onyx>
i've been tracking down weird problems with irssi (that were bottoming out in glib)
<heat-onyx>
finally seems to be fixed
<heat-onyx>
some openssl configuration issues + a tcp stack bug
<heat-onyx>
+ terrible error reporting
heat-onyx has quit [Quit: leaving]
<geist>
oh yay
<geist>
grats heat
<heat>
yeah that's what i get when i rebuild random packages, poorly
<heat>
also found a fun issue: int3 was generating a SIGSEGV. turns out i didn't have the proper flag/CPL thing set in the IDT for int3
<heat>
i also tried to use the DEBUGCTL msr, seems like it's not implemented in VMs though (or at least PEBKAC)
heat has quit [Ping timeout: 248 seconds]
kata has joined #osdev
bauen1 has joined #osdev
Arthuria has quit [Remote host closed the connection]
<gorgonical>
Something very cyberpunk about it to me
<nikolar>
it's both cyberpunk and high fantasy if you ask me
<gorgonical>
Still holding on to Shilling Monero
<nikolar>
kek
LainExperiments has quit [Ping timeout: 240 seconds]
LainExperiments6 has joined #osdev
edr has joined #osdev
dinkelhacker_ has quit [Quit: Client closed]
user71 has joined #osdev
<heat>
haha rest assured the fuchsia hn article is now a shitshow
<nortti>
what this time?
<gorgonical>
even this morning there was bickering about whether fuchsia was secretly meant to replace linux and/or android
<heat>
yep pretty much
<gorgonical>
with both sides claiming to be from inside google and to know the real truth
<heat>
i didn't see anyone claiming to be "inside google" and saying it is false
<gorgonical>
I at least saw someone saying they "knew several people from google" who said the goal was replacement
<heat>
i see people with anon nicks saying they were googlers and it is true, and people with non-anon nicks not saying shit because that's obviously legally problematic
<gorgonical>
And at least one person who said they worked on it
<gorgonical>
yes you are right as the text says it
<heat>
and honestly fuchsia intending to replace linux and/or android was pretty clear from the start
<heat>
it comes largely from the anti-GPL crowd
<nikolar>
i am pretty sure they were quite open about it in the begging
vdamewood has joined #osdev
<heat>
i dont think they were ever open, at least i dont remember it
<heat>
it was always a mysterious "ooooh no one knows what this generalist new operating system that's completely the opposite of linux kernel-wise will ever be"
<heat>
the good news is that GPL STRONK and will always be stronk
<gorgonical>
the way to avoid co-opting from big companies is to never write any useful software
dinkelhacker_ has joined #osdev
dinkelhacker_ has quit [Client Quit]
<nikolar>
GPL GPL GPL
LainExperiments6 has quit [Quit: Client closed]
Left_Turn has joined #osdev
<the_oz>
google insider whistleblowers are not talking about their R&D arm
<the_oz>
>we use too much C++, "It was made to replace!" like Golang! >we use too much C++ and golang
<the_oz>
I mean...
<the_oz>
firstly it even would be a technical feat in the first place
LainExperiments has joined #osdev
<nikolar>
zid: guess what
<heat>
seems like he's not guessing
<heat>
anyway GPL GPL GPL GPL
<nikolar>
GPL GPL GPL GPL
LainExperiments has quit [Ping timeout: 240 seconds]
goliath has quit [Quit: SIGSEGV]
<kof673>
well, GPL assumes there are laws/courts/etc. to each their own :D
<kof673>
i am not against it, just don't think those things exist
<kof673>
i'm not against santa claus either, this is a horrible misunderstanding
<heat>
you don't think laws and courts exist?
<the_oz>
one must LARP in order to partake of fruits therefrom!
<heat>
quick someone make an scp about courts and laws
<the_oz>
it's already a conspiracy, first about postmaster sailing vessels birthing from native waters to the current form free man on the land with babblespeak confusion commie fucked up-ness (on purpose)
<Ermine>
strangely enough, this SCP is not about Ohio
<Ermine>
> commies
<the_oz>
Montana doesn't exist
LainExperiments has joined #osdev
<the_oz>
Yes it's a genesis from German international commies to twist language itself
<kof673>
not at this time, no. AT LAW. This phrase is used to point out that a thing is to be done according to the course of the common law; it is distinguished from a proceeding in equity.
<nikolar>
soo
<nikolar>
back on topic
<nikolar>
KERNAL
the_oz has quit [Read error: Connection reset by peer]
<heat>
KERNIE THE KERNAL
the_oz_ has joined #osdev
<Ermine>
right
<Ermine>
NTOSKRNL.EXE
<nikolar>
no heat, KERNEL SANDERS
<Ermine>
KERMITE THE KERNAL
<Ermine>
KERMIT*
<nikolar>
KERMITE is better
<kof673>
dividing things into pro/anti is only sensical if there are only 2 choices, which is not the case: public domain, bsd, gpl-style, non-commercial only, commercial only, etc.
<kof673>
non-commercial stuff is fine with me
<kof673>
something gpl-like non-commercial i would like
<kof673>
and as i've said before, gpl allows an "individual" to be a group, this i would not favor
LainExperiments has quit [Quit: Client closed]
<kof673>
with those 2 things fixed, i would be "pro"
<fedaykin>
RUST
<nikolar>
no rust
<nikolar>
only KERNAL
<kof673>
same thing, what are the hw requirements to bootstrap rust? i am not against, just too rich for my blood :D
<heat>
RUST KERNAL
<fedaykin>
RUST
<fedaykin>
+)
<nikolar>
no rust
<nikolar>
ONLY KERNAL
<fedaykin>
fight fight fight (c) MAGA =)
<fedaykin>
ORANGE MAGA +)
<kof673>
basically, give me a non-corporate gpl, and individuals can trade or whatever :D
<nikolar>
that's not KERNAL
<kof673>
*actual individuals, not groups
goliath has joined #osdev
LainExperiments has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
bauen1 has joined #osdev
xenos1984 has joined #osdev
bauen1 has quit [Ping timeout: 268 seconds]
bauen1 has joined #osdev
demindiro has joined #osdev
<demindiro>
A change in setup code makes the core interpreter loop way faster even though it should have no effect
<demindiro>
God I hate branch alignment
<nikolar>
it shouldn't matter?
<nikolar>
what cpu do you have
<demindiro>
5800X
<demindiro>
I'm pretty sure it has to be branch alignment
<demindiro>
I've seen and heard about such weirdness before
<heat>
it should definitely matter
<demindiro>
Actually, my setup code comes after the interpreter core loop in the same section
<demindiro>
So I don't think it has anything to do with alignment either
<demindiro>
It could maybe be because of an extra GC collection, but I don't think a single collection should save a whopping 50ms
<demindiro>
GC is called 597 times in the old version, 473 times in the new version
<demindiro>
So definitely GC, but I fail to understand the difference
<demindiro>
Any objects from the setup code should be gone after the first collection
<zid>
branch alignment super matters
<zid>
also tag collisions and shit can super matter
<zid>
nikolar: guess what -> You finally invaded albania?
<nikolar>
> A side effect of having no speculative execution is invulnerability against Meltdown and Spectre.
<nikolar>
Kek let's switch to atoma
<nikolar>
*atoms
<heat>
all i know is that we're all running slightly newer pentium 6's since
<puck>
<heat> puck, bslsk is no longer with us <- o7
<zid>
netburst was P6-adjacement but I'm not sure they bothered to give netburst its own little P code?
<zid>
P6..8?
<zid>
thanks intel
<nikolar>
I think they stopped with p codes thereabouts
<nortti>
wasn't netburst quite different from p6
<nortti>
like, trace cache and such
<zid>
yea but it has all the same errata in the manuals
<nikolar>
nortti: p codes don't mean anything
<zid>
Like, intel manuals are "If you're on P6, do this instead"
<nortti>
heh
<zid>
which includes p4, not excludes it
<nikolar>
The only thing it means is different number is a different CPU (probably)
<zid>
Xeon gets its own blocks too
<zid>
But it means the *original* xeon
<zid>
before they made it a sky name
<zid>
sku
<nortti>
"Superpipelining, which increased from Pentium's 5-stage pipeline to 14 of the Pentium Pro and early model of the Pentium III (Coppermine), and eventually morphed into less than 10-stage pipeline of the Pentium M for embedded and mobile market due to energy inefficiency and higher voltage issues that encountered in the predecessor, and then again lengthening the 10- to 12-stage pipeline back to the Core 2
<nortti>
due to facing difficulty increasing clock speed while improving fabrication process can somehow negate some negative impact of higher power consumption on the deeper pipeline design."
<heat>
yeah i'm still running a pentium 6 and a 1970's operating system with various 70's and 80's physical terminals being emulated
<heat>
my chipset? PC-AT
<nikolar>
Indeed
<zid>
INTEL ATM N270
<nikolar>
You just have a shitload of extended memory
<zid>
That's a name I haven't heard in a while
<nikolar>
Kek
<zid>
Main difference between now and the 70s is honestly just pci-e
<zid>
and ddr1
<zid>
"bus that doesn't suck" took surprisingly a long time?
<nortti>
looks like my eeepc's running a pentium m (i.e. the continuation of the p6 line) derived celeron
<zid>
pci sucked so graphics cards made their own, different bus, agp, whcih also sucked <3
<nikolar>
More like Intel made it
<nikolar>
And tried using it
<nikolar>
Only to fail at gpu
<kof673>
$ cat /proc/cpuinfo [...] model name: Pentium III (Coppermine) [...]
<zid>
agp was significantly better than pci
<zid>
for gpu
<zid>
pci *sucked*
bslsk05 has joined #osdev
<nikolar>
But Intel was significantly bad at gpu
<nikolar>
So they didn't get a chance to use it themselves kek
<zid>
fair
<nikolar>
I should check what cpu was in that shitbook later
<zid>
you should put secret OS on a usb and boot it
<nortti>
kof673: what system is that?
<kof673>
an old dell desktop
<nikolar>
I will!
<nikolar>
It's already on a USB
<zid>
might wanna add a memset to mem_phys_alloc though
<zid>
:D
<nikolar>
Kek we didn't?
<zid>
no it's a todo
<nikolar>
I forgor to bug you
<kof673>
mjg was going to have me test some code once, but vanished :D
<zid>
I was waiting until we added the stdlib.c
<kof673>
i have since acquired 5 or so "thin clients" but they are p4 i think
<nikolar>
We have memset though
<zid>
yup
<zid>
I added it when I added stdlib.c
<zid>
cus I knew todo was waiting for it
<nikolar>
Kek
<nikolar>
Guess we should properly carve out the lowmem from our allocator too
<zid>
BANNED_REGIONS[]
<nikolar>
Ye
<kof673>
i thought that would be fun for akin to avoiding "bad areas" ^^^
<kof673>
i assume linux still supports that...
<kof673>
as in bad ram...........just avoid the known bad spots lol
bauen1 has quit [Ping timeout: 244 seconds]
bauen1 has joined #osdev
* geist
yawns
<geist>
so sleepy
<zid>
The gas canisters are working, 3 minutes until we raid the property
surabax has joined #osdev
hwpplayer1 has quit [Remote host closed the connection]
<the_oz_>
geist was replaced by an exact replica
<nikolar>
zid: how has the raid gone
<zid>
We couldn't find anything worth taking, just half a ton of PDPs
<zid>
presumably, with it being windows, that means if it wants to it can't
m5_ has joined #osdev
<geist>
heat: it has the ability to ctrl-z and put something in the background, etc
<geist>
so i guess so, needs sigstop for that right?
<heat>
yes
<geist>
you just need a shell withthat capability (tcsh vs csh or sh, for example)
<heat>
it turns out unix traditionally handles signals much differently from linux
<geist>
when you're using a single terminal over a serial port, ctrl-z and job control becomes far more useful and mandatory basically
<geist>
especialyl when it takes some amount of time to start an editor or man something
gmodena has joined #osdev
<nikolar>
heat:
<nikolar>
#defineSIGSTOP17/* sendable stop signal not from tty */
<nikolar>
#defineSIGTSTP18/* stop signal from tty */
<heat>
wrt stopping, basically there's this issig or issignal(nowadays, on the BSDs) and it not only handles "do we have a signal pending" but also dequeues and handles stopping and continuing
<nikolar>
zid: oh duh youright
<nikolar>
*you're right
<heat>
which i do find really bizarre
<nikolar>
heat: how does Linux do it differently
<heat>
but i guess it's UNIX HERITAGE
<heat>
linux just checks if a signal is pending and if so aborts the sleep and fully unwinds the stack
<heat>
which leads to other problems when doing syscall restarting
<zid>
nikolar: What's a good res that fits in 16MB/3
<nikolar>
Erm good question
<zid>
That's how much vram bochs vbe has
<heat>
720p
<zid>
and I want triple buffering
<heat>
720p is around 4M a framebuffer
<zid>
hmm yea 1280x720x32bpp is 3686400
<nikolar>
Yeah 720p
<zid>
so I guess secret OS is 720p?
<nikolar>
Kek
<nikolar>
I guess
<nikolar>
Perfect for the shittop though
<nikolar>
*shitbook
<zid>
shitbook doesn't have bochs vbe
<zid>
it has INTEL GMA
trillion_exabyte has quit [Ping timeout: 272 seconds]
<zid>
but designing around 720p means we won't have to change anything once we add a DRIVER though
<nikolar>
Recently
<nikolar>
*Exactly
<zid>
Officially
trillion_exabyte has joined #osdev
<heat>
you know, one day i'll go on who wants to be a millionaire, and they'll ask me arcane UNIX implementation questions, and i'll win
<zid>
You'll have to go on mastermind
<zid>
and tell them your specialize subject is "unix, but pls don't be too obscure"
<nikolar>
Yes because that's the kind of questions they ask
<the_oz_>
you'll misspell KERNAL and get penalized :(
xenos1984 has quit [Ping timeout: 248 seconds]
<nikolar>
Kek
<zid>
cus they'll ask you things like "For what feature did Bill Hinkies add demand paging for in 1972?"
<heat>
it's the only way signal implementation details will ever be useful
<zid>
rather than actual questions about code
<nikolar>
heat hey those details will be useful for implementing signals too
<zid>
heat can buy us all a copy with his SUSE money
<heat>
no hablo ingles perdon
LainExperiments has joined #osdev
<zid>
helo I am brasil gib moni pls
<zid>
or i report u
<zid>
heat bot
<zid>
report 4 bott
LainExperiments has quit [Quit: Client closed]
m5_ has joined #osdev
netbsduser has quit [Ping timeout: 260 seconds]
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
getz has quit [Ping timeout: 252 seconds]
getz- has joined #osdev
Maja_ has joined #osdev
Maja has quit [Ping timeout: 248 seconds]
_koolazer has quit [*.net *.split]
baraq has quit [*.net *.split]
ursa-major has quit [*.net *.split]
lh has quit [*.net *.split]
nur has quit [*.net *.split]
sskras has quit [*.net *.split]
SophiaNya has quit [*.net *.split]
ptrc has quit [*.net *.split]
zenomat has quit [*.net *.split]
urandom__ has quit [*.net *.split]
f_ has quit [*.net *.split]
vismie has quit [*.net *.split]
andreas303 has quit [*.net *.split]
beto has quit [*.net *.split]
DoubleJ has quit [*.net *.split]
shan has quit [*.net *.split]
Xyon has quit [*.net *.split]
FireFly has quit [*.net *.split]
kline has quit [*.net *.split]
Griwes has quit [*.net *.split]
jimbzy has quit [*.net *.split]
baraq has joined #osdev
ursa-major has joined #osdev
lh has joined #osdev
nur has joined #osdev
sskras has joined #osdev
ptrc has joined #osdev
SophiaNya has joined #osdev
zenomat has joined #osdev
vismie has joined #osdev
f_ has joined #osdev
_koolazer has joined #osdev
beto has joined #osdev
andreas303 has joined #osdev
DoubleJ has joined #osdev
shan has joined #osdev
Xyon has joined #osdev
FireFly has joined #osdev
kline has joined #osdev
Griwes has joined #osdev
baraq has quit [Max SendQ exceeded]
lh has quit [Max SendQ exceeded]
ursa-major has quit [Max SendQ exceeded]
getz- is now known as getz
lh has joined #osdev
Etabeta1 has joined #osdev
baraq has joined #osdev
ursa-major has joined #osdev
urandom_ has joined #osdev
LainExperiments has joined #osdev
craigo has joined #osdev
LainExperiments has quit [Ping timeout: 240 seconds]
sauce has quit [Ping timeout: 252 seconds]
demindiro has quit [Quit: Client closed]
LainExperiments has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
LainExperiments has quit [Quit: Client closed]
<kof673>
found a new target :D > Note that the size of integral variables is different with c4x-gcc than with gcc for UNIX targets. Usually, the size of a char is 8 bits, short int 16 bits, int 16 or 32 (more often 32), long int 32 bits. The smallest amount of memory the C3x/C4x can handle is 32 bits, therefore all of the above types are 32 bits in size. This is the same as with the TI tools.
<ring0_starr>
presumably the predecessor to SHARC?
<ring0_starr>
those are nifty cpus, i like them
<kof673>
it is not that strange, just mainly, there is a simulator :D
<ring0_starr>
super low interrupt latency, dedicated i/o core, configurations where multiple cores run in lockstep
<kof673>
and even if it lacks stdin/stdout (no libc that i see) ....i'm sure you can patch a memory hole or some such like bochs lol
<ring0_starr>
all kinds of interesting configurations
<ring0_starr>
and then a lot of boring ones too
<ring0_starr>
you ever write anything for tandem NonStop?
<kof673>
i'm that that old j/k heard of it only...
<ring0_starr>
mips based, multi-proc running in lockstep kinda thing going on
<ring0_starr>
iirc the NYSE were running those for a long time
<ring0_starr>
the whole high assurance computing market seems to have shifted to ibm mainframes
<kof673>
there are other ti dsps i believe are 16-bit (as smallest addressable unit at least)...just a q what has gcc/binutils support and a simulator in particular .......i assume ti sdks even if "free" are probably not on their website anymore, need to signup, etc.
<kof673>
and that might be a big "if"
<ring0_starr>
from what i've read, it's really difficult to port stuff because it does wacky platform-specific things at the language level
<kof673>
tandem?
<ring0_starr>
dont know exactly what it was all about though
<ring0_starr>
us
<ring0_starr>
yeah*
m5_ has quit [Read error: Connection reset by peer]
<ring0_starr>
16 bit dsps have to be really old, 32 bit dsps were around since late 80s at least
<kof673>
realistically, the q is how much ram does the simulator give you...
<ring0_starr>
writing software for an obscure platform feels blah when you only have a simulator
user71 has quit [Quit: Leaving]
<ring0_starr>
it's just adding extra rules or changing definitions on top of what you usually do
<ring0_starr>
it only feels rewarding when you have the big hunk of metal next to you
<kof673>
dsps i think it is all asm for real work...c is not good in the first place...except as a "wrapper" around asm routines maybe
<ring0_starr>
TI put a lot of effort into their C toolchain for their most recent DSPs. i was watching a presentation on it not too long ago
<ring0_starr>
although im gonna be honest i tend to agree with you
<ring0_starr>
i just don't see the point of C on dsps
<kof673>
i am just a lowly hobbyist, my understanding is they are for crunching data, not "general-purpose programs", audio, video, ......crypto maybe....
heat_ has quit [Read error: Connection reset by peer]
heat has joined #osdev
LainExperiments has joined #osdev
m5_ has joined #osdev
Lucretia has quit [Read error: Connection reset by peer]
Left_Turn has quit [Read error: Connection reset by peer]