<geist>
goddamn swapgs. if AMD just designed it as `setgs #0` `setgs #1` (if they wanted to continue that route) it would be perfect
<geist>
it's the modality of it that sucks
<geist>
or just having which one is active directly tied to the ring, which iirc that's what FRED does now?
<geist>
but i can see why they did swapgs. i think that's basically the simplest possible microcode you can come up with
<geist>
since it simply swaps two regsters, doesnt have to keep any sort of scoreboard which one is active and doesn't involve banking things due to ring, which iirc there isn't anything else in x86 that does that
Ikkepop has joined #osdev
isaacwoods has quit [Quit: WeeChat 3.3]
FreeFull has quit []
gog has quit [Quit: byee]
adachristine has joined #osdev
adachristine is now known as gog
CryptoDavid has quit [Quit: Connection closed for inactivity]
<heat>
just found out there are opengl man pages
<heat>
mind = blown
<zid>
yea the khronos (kronos?) docs are nice
<gog>
q'plah!
<zid>
stop trying to summon things
<klange>
It's spelled Qapla'
<gog>
ok nerd
gdown has quit [Remote host closed the connection]
<geist>
basically a quick benchmark using TSS task switching vs software switching
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<geist>
on an original 386 and a few more modern pieces of hardware
<gog>
pretty funny how bad the hardware task switching was even in the time it was meant to be used lol
<heat>
geist, broken link?
<gog>
worked for me
<heat>
i'm getting a not found
<heat>
(firefox)
<gog>
worked for me on ff
<gog>
:thinking:
<heat>
ah it doesn't play nice with the %20
<gog>
ah ok
<zid>
fewer pushes, smh
<heat>
for some reason, since when I copy the URL and paste it I get the %20 anyway
nyah has quit [Ping timeout: 240 seconds]
<heat>
what if skylake uses really cheap emulation?
<zid>
now divide through the clockrate
[itchyjunk] has quit [Ping timeout: 245 seconds]
<zid>
(to make the result even worse)
<moon-child>
anyone happen to know how fast sqrt is on gpu, vs mul? Or have links to cycle timings etc? Cuz I think I can do this algorithm as either 3 muls + 1 sqrt, or 5 muls
<moon-child>
on cpu obviously go for the mul. But I feel like on gpu they put a lot of effort into making sqrt fast?
<zid>
I'd imagine the 5 muls is faster
<heat>
try it
<zid>
gpus use lots of little cores, I don't think they have the die area to make a stupidly fast sqrt with lots of luts etc
<zid>
You'll just have to get an 8k monitor and benchmark it :P
<moon-child>
oh wait no I can do it in 4 muls
<moon-child>
i think
<heat>
yeah 4 muls is faster for sure
[itchyjunk] has joined #osdev
<geist>
gog: yah it being slow even on 386 was surprising to me
<geist>
i think if you do the math it's like 300 something cycles, which is basically what the manual said
<geist>
to be fair i think the main reason it was unilaterally slow is the TSS switch always reloads all of the segment registers, even if you dont need to
<geist>
so ring0 -> ring0 transitions via it is more work than you need to
<geist>
the big advantage of it is you can do a one stop ring3 -> ring3, and in that case it may be strictly speaking faster than r3 -> r0 -> sw csw -> r0 -> r3
<geist>
the bulldozer was interesting though, since it ran 40x slower than equivalent sw csw
gog has quit []
gog has joined #osdev
gdown has joined #osdev
gdown has quit [Remote host closed the connection]
AndroUser2 has joined #osdev
wleslie has joined #osdev
lg has quit [Ping timeout: 246 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.3]
freakazoid12345 has joined #osdev
<geist>
man, trying to have nice conversations on the osdev discord, but there's this one guy that keeps trying to argue with me about everything
<geist>
sigh. there's always that one
<geist>
he was also the one that immediately crapped all over zircon and microkernels, so started off on shaky ground in my book
<geist>
like, having opinions is fine, but it's not conducive to having good relationships when the first thing out of your mouth when you meet someone is how much you hate what they do and what they work on and you hope it fails
<heat>
is it linus?
<heat>
:v
<geist>
heh funny. linus gave some tech talk at work a few years ago and of course someone immediately asked him about fuchsia
<geist>
he gave a fairly standard noncommittal answer of course. he's learned to be a diplomat over the years
<wleslie>
I'm a bit impressed. of course if work /is/ google, diplomacy to your host is not /so/ surprising
<geist>
heh yeah
lg has joined #osdev
<heat>
I just wanted to play csgo in linux but now I'm debugging csgo
<heat>
woohoo
<heat>
linux gaming is so easy
<wleslie>
I know that feeling, like going to play a source-engine game and instead having to dig through ldd to find out which included libraries to delete
<heat>
i'm running into a glx issue with nvidia and PRIME offloading
<wleslie>
ach, that one
<heat>
apitrace isn't helping so I'm trying out nsight
<wleslie>
offtopic opinions are even more offensive when they are compounded by the attitude "I see you're building something there, have you considered justifying your design decisions to me instead?"
<wleslie>
I must admit I've probably had that attitude at some point
<geist>
wleslie: oh yeah totally
<geist>
not you having the opinions, but the offensive part
<zid>
*spies on geist*
<zid>
I have to wait 600 seconds before I can troll zircon too? :(
<geist>
haha
<geist>
i mean you gotta at least try to get to first base before you start trolling
<zid>
I should really clean my drop into usermode code up
<heat>
where's the trolling?
<zid>
It's.. still hardcoded into main in inline assembly
<heat>
i'm intrigued
ElectronApps has joined #osdev
srjek has quit [Ping timeout: 264 seconds]
<geist>
oh no nothing
<geist>
was a while back
<geist>
days ago
<geist>
zid: interestingly, actually dropping to user space is one of those few things you can fairly legitimately do in inline asm. normally you should never branch/iret/etc inside an inline asm block
<geist>
but.... if you never return, then it really doesn't matter if you completely trash the current stack
<bslsk05>
github.com: boros/main.c at master · zid/boros · GitHub
<wleslie>
Muuuuuum the other gamers are trolling userspace from inline assembly again
<heat>
i drop user threads directly into user space, no trampoline outside of the standard pops
<zid>
if you're *really* lucky I will match some #defines between the code that builds the GDT and this code
<heat>
i do have one for execve returns though
<zid>
so that I can do USER_CS instead of 0x23
<heat>
the d in osdev stands for BORING
<geist>
omg zid is participating on discord
<geist>
what is this world coming to
<zid>
I am on lots of discords
<zid>
just we never bothered to mention it here before now really
<geist>
oh no am i participating in the demise of the thing i hold dear?
<zid>
so for all I knew it had 4 people in it all posting onlyfans links to each other on a loop
<geist>
unrelated: i recently bought a bunch of Zigbee multicolored lightbulbs for my computer area
<geist>
and it's neat as hell
<zid>
for your onlyfans shoots?
<geist>
welllll
<geist>
no, but mostly for late night hackery. Indigo color is good for hacking
<zid>
I had a red light bulb in my room once
<zid>
red is really good, it isn't bright but you can still see shit
<geist>
yah i have a few red flashlights. great for walking around at night and not ruining your night vision
<geist>
but enough to keep from stepping in a hole
<brynet>
there's a discord?
<zid>
What's the nested flag
<zid>
I just checked my flags
<zid>
well, it works, but I have no idea how to find it in the manual without ctrl-f'ing for nested 8000 times
<zid>
The other bits are iopl, but I don't remember which way up it is :D Leaving notes for yourself is overrated
<geist>
yeah i always forget how the nested flag works
<geist>
it's something to do with TSS, but i think it's so atrophied you just set it (or clear it) and then forget it
<zid>
If the NT flag (EFLAGS register) is cleared, the IRET instruction performs a far return from the interrupt procedure, without a task switch. The code segment being returned to must be equally or less privileged than the interrupt handler routine (as indicated by the RPL field of the code segment selector popped from the stack).
<zid>
If the NT flag is set, the IRET instruction performs a task switch (return) from a nested task (a task called with a CALL instruction, an interrupt, or an exception) back to the calling or interrupted task. The updated state of the task executing the IRET instruction is saved in its TSS. If the task is re-entered later, the code that follows the IRET instruction is executed.
<zid>
Looks like it's whether it does a tss writeback or not, vaguely?
<zid>
so technically I don't think I want it set
<heat>
i dont even have that one in my defines
<zid>
remind me when I move this code to a real file to unset nested and the iopl bits I guess
<heat>
okayyy so I have two identical traces but one crashes and the other one doesnt
<zid>
sounds like your trace is lacking something
<heat>
i'm lacking alcohol
* kingoffrance
missed the meta "the x86 kabbalah"
<kingoffrance>
you know that implies theres a damned version underground ?
<kingoffrance>
if you didnt like x86 before, its gets better
<heat>
it's highly likely there's an internal intel doc like that
<heat>
with hidden instructions!
<zid>
It's in the materials section under 'industrial solvent'
<kingoffrance>
well, it'll help us summon doug16k someday
<geist>
hrm, damn you qemu. was wiring up pcie for qemu-virt arm. turns out it always puts the ECAM > 4GB
<geist>
that's fine, except on arm32. forces you to use LPAE (which i have no intention of doing)
<heat>
welp I give up
<zid>
good idea
<heat>
shit game anyway
<heat>
i only have *checks notes* 2232 hours in this crappy game
[itchyjunk] has quit [Read error: Connection reset by peer]
gdown has quit [Ping timeout: 268 seconds]
mahmutov has joined #osdev
<zid>
lel booted from that osdev discord
<zid>
I found the small child who runs it
enyc has joined #osdev
<zid>
geist: lmk what they say about me that's the best bit usually
elastic_dog has quit [Ping timeout: 245 seconds]
elastic_dog has joined #osdev
sdfgsdfg has joined #osdev
ElectronApps has quit [Remote host closed the connection]
ThinkT510 has quit [Quit: WeeChat 3.3]
ThinkT510 has joined #osdev
rorx has joined #osdev
<geist>
zid: oh? how so?
<geist>
zid: oh yeah i read it now. that's the guy that i was butting heads with already
<geist>
i give some advice and now he pulls rank, makes some long post about a thing i recommended and the pins it
<geist>
so... ugh.
<geist>
and rips on people from the 90s and klange right there
<geist>
like dude man, learn how to disagree. i think we were butting in on his turf
immibis has quit [Ping timeout: 256 seconds]
<zid>
He's just some little kid despot, you see it all the time
<zid>
it's "his" discord
<zid>
Rather than a community discord that he manages
<zid>
There's a big difference in mindset there
<geist>
yah arging with him now and he's just trying to shoot down everything i say
<geist>
i'm just wrong wrong wrong
<geist>
and if i say something he's like PROVE IT
<geist>
cripes. so annoying
<zid>
copy paste pls :D
<geist>
just blocked him. much nicer
<zid>
So did I, then the server disappeared from the list as if magically in response
<geist>
i'll just sneak off after a bit. it's not worth my time giving him the satisfaction of even seeing me leave
<geist>
like i like to help people but i really have no interest in pissing matches with other people
<geist>
and then him pulling rank on me is really a dick move
<zid>
He did it to a total of two people, with his total of two interactions, in the space of an hour
<geist>
yeah and that exact guy was the one that within 30 seconds of seeing me went on some rant about how mcirokernels are lame and he hopes i fail, etc
<zid>
I'd be surprised if that place isn't pretty polarized between people hanging off his dick and people avoiding him
<geist>
yeah
<geist>
anyway, didn't take too long to figure out how that particular society works, just a couple days and it's pretty clear
<zid>
You're slow, took me 15 minutes
<geist>
heh i have a lot more patience
<geist>
and he may have just been an asshole, but him pulling rank on me seals it
<zid>
I'd rather have the inevitable confrontation up front
<zid>
then I'm not invested
<geist>
sure, half the regulars may be admins but you do *not* use it for petty shit
<geist>
but anyway i'll mute it for now and slip out in a few days so he doesn't get the satisfaction
<zid>
I mute every server immediately
<zid>
then mute all the channels except the ones that look good, then 'hide muted channels'
<zid>
idk how else you can possibly use discord
<geist>
oh yeah, never noticed the 'hide muted channel' thing
<geist>
i always thought it just took it out of the notification queue
<zid>
each server is more like an entire irc network, that's set to ping you if anybody speaks on any channel
<geist>
yah i usually mute the server immediately, but didn't notice you can straight hide muted channels, vs them just appearing grey
<geist>
and no tick box, etc
<clever>
the thing that anoys me the most, is that the default notification mode, is set by the server
<clever>
and it defaults to notifying you for every single msg
<clever>
so for any server that hasnt changed it, you have to turn it off the instant you join
<clever>
also, there is zero way to find out what made it ding!
<zid>
oh yea
<zid>
ctrl-i
<geist>
the other power tip i learned long after using discord is you can collapse all of the groups and then only channels that are unmuted and have something show up
<clever>
zid: that only works if you are directly pinged
<zid>
yea that's why you turn on hide muted channels, so that works
<geist>
one of the servers i hang out on for RL friends has a #zen-garden channel at the top that explicitly has no posts
<zid>
yea I have a couple discords that are just a couple of friend groups
<zid>
I even leave one unmuted :o
<geist>
yep. the ones that are topic like... yeah dunno
<geist>
though clever and i hung out on the raspberry pi unofficial one for a bit and it was pretty nice
<geist>
some f the RPI folks where there and answered questions nicely. it was a pleasant set of chaps
<zid>
I liked the Hunter class discord for world of warcraft classic :P
<geist>
aww wow. i pine for that some days but really jsut dont have the energy/time to dedicate to it
<geist>
but i really enjoyed it for about 10 years
jafarlihi has joined #osdev
<zid>
I loved classic it was a blast, I played the first 6 months, up to BWL clear
<zid>
Had never played a dps class before either, I played vanilla/tbc/wotlk/etc as a prot warrior every time
<zid>
dense how? you don't understand certain concepts so you're totally lost, or what?
<zid>
Bear in mind you don't need to *read* the intel manual beyond the 'b means bit, B means byte, 0x means hex' in the intro, and then the instruction set reference
givemeyourpies has joined #osdev
<zid>
Like, if any info from the manual isn't in some other reference, that reference is just missing information
<jafarlihi>
I just want the easy experience of a book with handholding, I can't even explain what throws me off with the manual.
<zid>
What's your experience level? it sounds like a holistic problem
<jafarlihi>
I can't write binary search with asm from exercism
<jafarlihi>
I think I have significant backend experience
<zid>
Can you write a C program? Can you debug one?
<kazinsal>
I'm not sure if there even *is* a solid "how to assembly" book that's got any sort of modern-ish relevence...
<jafarlihi>
Yes and yes, but quality is questionable
<geist>
also sadly it tends to get tied up a lot in the architecture. a lot of times folks say 'learning assembly' and it's really 'learning x86' or 'learning ARM'
<zid>
according to the results.
<zid>
You should honestly be fine with the reference manual then tbh, Compares the first source operand with the second source operand and sets the status flags in the EFLAGS register
<geist>
assembly itself is not a particular language per se, but a class of languages that are more similiar than dissimilar
<zid>
Isn't exactly a hugely difficult thing to parse, and if you don't know what operands are or eflags are etc that seems lookupabble
<jafarlihi>
Can you suggest architecture I can start with, that I can make OS for and has easier learning curve?
<zid>
geist: I'd agree but I'd also disagree that it's an issue
<geist>
zid: LOL! :)
<zid>
Think of it like, "Learning a romance language, as a japanese speaker"
<zid>
You're going to be 90% of the way there to speaking french, romanian, spanish, etc after you do it
<geist>
but yeah. if you want to generally learn assembly i'd definitely recommend starting with something like risc-v
<zid>
but it will be awkward as hell at first
<zid>
I recommend anything you can stand
<zid>
getting disheartened is the major stumbling block
<geist>
but i guess the question is what is the goal? do you want to learn assembly generically, or are you specifically trying to write some asm because you have to because yiou want to do osdev on a particular piece of hardware?
<zid>
so for a lot of people, the thrill of writing programs they can actually run on their desktop is a very good motivator so I tend to recommend x86
<geist>
right
<jafarlihi>
Thanks, I will look into other archs for now
<geist>
exactly, hence the 'what are you looking to do this for' question
<zid>
My favourite is the gameboy's cpu
<sham1>
Ah yes, the not-quite-Z80
<zid>
Writing a gameboy emulator has masses of documentation and really teaches you how a cpu works
<zid>
and it's modern enough to be translatable to any other isa
<zid>
either backwards to 6502 etc, or forwards to x86
<sham1>
There's also always 6502 yeah
<zid>
The problem I have with the 6502 is that it's very arcane
<jafarlihi>
geist: I'm just trying to become as good of a programmer I can be, doing web stuff is boring as well
<geist>
yah it's hard to recommend how to learn asm since i did it the old way: a 6502 book when i was a kid and an apple ][ mini-assembler
<zid>
I learned x86 real mode
<zid>
geist is an old man
* geist
warily watches the front lawn
<zid>
We're just waiting for him to finish turning to dust so we can have his stuff
<sham1>
I learnt just x86 protected mode, real mode came later
<zid>
pmode held no interest for me because I didn't feel like I could "do" anything
<zid>
I relied heavily on the bios routines
<geist>
same. honestly though i had a PC through most of my teenager and college years, x86 was always so icky i wans't that interested in it until college
<zid>
It's taken until tbh fairly recently until I was ready to do osdev without bios routines
<geist>
and then i went straight to protected mode
<zid>
long enough that I skipped pmode and did straight long mode
<geist>
only really via having to do bootloaders and whatnot did i backfill knowledge about real mode and wehatnot
<sham1>
Well I also learnt assembly due to osdev like a couple of years ago, so I didn't feel like I needed real mode until I needed it
<geist>
and even then i've only written hundreds of lines of real mode
<zid>
On the plus side though, when I did come back, I had absolutely 0 issues with C or assembly or binutils etc
<zid>
so I could just write whatever I wanted and all I had to deal with was the system stuff
<zid>
osdev is hard because most of the time you're dealing with language + isa + tools + osdev
<sham1>
Oh yeah, long mode 64-bit submode as well
<geist>
i do think i wonder if i had had access to a 68k in high school if i would have gone more into things earlier
<geist>
now that i've gone back and learned 68k its soooo much nicer
<sham1>
The 68k is so good
<zid>
I was absolutely avid about getting hold of a PC as a kid, not sure why
<geist>
at the time now i understand why 68k folks were so snobby to PC people
<zid>
jafarlihi: I recommend asking a specific question at some point, btw, it should be easy enough for us to answer, and we'll get a sense of where you're at and what you're struggling with
<sham1>
I learnt to do 68k for megadrive stuff and hot damn is it a good ISA
<zid>
yea SMD is a nice platform
<zid>
It's that nice sweet spot before you get into the horrific messes that are psx/n64, but later than grotty 6502
<geist>
recently rekindled my interest when qemu 6 (or was it 5) added a 'virt' machine for 68k
<geist>
and via.. -kernel... you can get your 68k kernel running in like 0 lines of asm
<geist>
well 1
<zid>
snes but with a nicer cpu basically
<zid>
geist: nah you have to write a bootloader first, we covered this, smh
<sham1>
I've wanted an Amiga for some time now so I could just play around with a 68K
<geist>
heh well i was looking into what it'd take to bootload off a floppy disk on a mac classic
<geist>
and the answer is... it's complicated
<zid>
Only reason I know anything about or care in the least for amiga is because I had a friend who was part of the amiga demo scene
<geist>
talk about bios, that is a whole nother level of need to udnerstand the rom
<geist>
sicne the lines between bios and kernel and OS on a mac classic are blurred
<zid>
dude was less old than I am now, and wrote way better shit than I could still, rip
<geist>
i keep an eye out for one, but amigas are so expensive now
<geist>
but i did recently get a hold of a mac plus and it's a lovely machine
<zid>
Disregard toys, write emulators
<kazinsal>
kinda thinking about trying to get netbsd/mac68k booting on my classic II
<geist>
oooh i guess it's an 030?
<zid>
One day I will write an emulator that does codegen.. I just need to finish all this important procrastinating first
<geist>
but i actually have 2 or 3 030s in that form factor and a pile of sockets, so i'm thinking of starting a board that just wires up the data bus but runs all of the control signals out to pins
<geist>
so i can prototype the control logic on rev 1 on a breadboard, but not have to worry about the bazillion data bus lines
<geist>
and address bus
<geist>
thats 4 512KBx8 bit sram chips, so have to also wire up a set of roms. darn 32a/32d bus
jafarlihi has quit [Ping timeout: 268 seconds]
<zid>
I'd like a gigantic bin of assorted crap to do something like ben eater
<zid>
buying it all fresh would cost a fortune, you really need a stockpile of "random crap I've got after 20 years of playing"
<geist>
yep. that's kinda my missino thus far. collect random crap for 20 years
<geist>
i'm hitting that point where i spend more time buying and collectingb things to sort and store the random crap than the crap itself
<geist>
it becomes it's own self perpetuating thing
<klange>
hi what
<geist>
heya klange
<zid>
we found your secret boyfriend
<kazinsal>
yeah I'm now at the point where if I just keep collecing crap I'm going to have yet another move one of those days where I just don't unpack everything until the next move
<kazinsal>
so naturally my next focus is guitar pedals.
<geist>
haha, i got my ts808 and then declared it done
<geist>
actually reminds me, i hooked up my old peavy amp from high school that i hadn't used in like 10 years and omg all the pots are so noisy it's unusable
<geist>
thats my projec tfor tomorrow: take it apart and clean it up
<klange>
i just got a guitar recently
<kazinsal>
I picked up an ehx od glove the other day and it's a great marshall plexi style overdrive. works fantastic into the "fat" clean voicing of my mark v
<geist>
yay
<kazinsal>
klange: one of us! one of us!
<geist>
been thinkign of picking up a big muff for a while
<klange>
luckily most of what i know from strumming an uke for the last fifteen years has actually translated
<geist>
though honestly i really should sit down and invest in modelled software amps. seems to be The Thing now
<zid>
I got an 80s casio recently, I really should put more than 10 minutes of practice into it
<geist>
oh reminds me of a local guy in SF back when i lived there: casiotone for the painfully alone
<klange>
essentially all amps are modelled amps now, tubes just ain't easy to find and cheap DSPs are plentiful
<geist>
saw him a bunch
<kazinsal>
yeah, I know a lot of people who just plug right into a USB-C interface and run various amp sims and effects and IRs through a DAW
<zid>
..It's a casiotone
<geist>
zid: of course!
<zid>
It's so 80s it's advertizing the fact it uses PCM as groundbreaking
<geist>
klange: yah tell me about it. i have a big complicated tube amp and... needs some fixup on the tubes i think
<geist>
kazinsal: yah and my amp has a crapton of tubes
<zid>
I'm trying to read the text on the books but I am failing hard
<kazinsal>
geist: same. I think the V:35 is 6 preamp tubes and 4 power tubes. all that for 35 watts, but even at that it's waaaaay too loud with a cab for my apartment so I'm running it DI into an interface instead so I can use my headphones
<kazinsal>
ended up getting one a couple months ago. kind of a holy grail amp for me
<geist>
niice! I always kinda wanted one of those. j petrucci plays on those
<geist>
and i have one of his JP ernie ball guitars
<kazinsal>
nice. I've got one of the sterling sub-brand lower cost JP signatures
<geist>
my big tube amp is a hughes and kettner triamp
sdfgsdfg has quit [Quit: ZzzZ]
<klange>
zid: the only books in that photo are titled in english; the things on the lower shelf are oversized bluray boxes for Kemono Friends
<geist>
sice it has 3 full channels its just a crap ton of preamp tubes
<geist>
though it shares the same 4 power tubes i think
<kazinsal>
one day I probably want to get a full music man though, probably a silhouette. throw in the JP dimarzio bridge pickup and it'd be perfect for me
<zid>
kemono friends has vtubers now I think?
<kazinsal>
that being said I'd also love to actually *do* something with all this gear before I consider dropping three grand and change on a guitar
<zid>
yea, two penguins, matsuri did a collab with one of them recently and I saw a clip. That show is amazingly popular
<geist>
yah i gotta say the JP signature i got in 2006 or so and it's the last guitar i ever bought
<klange>
I kinda stopped paying attention after season 1 of the anime and how the producers did the studio dirty
<geist>
it's such a fine instrument
nohit has quit [Ping timeout: 264 seconds]
Benjojo has quit [Ping timeout: 256 seconds]
nohit has joined #osdev
<kazinsal>
they really do play like a dream
<geist>
kazinsal: agreed. i play fairly constantly but for no particular reason
Benjojo has joined #osdev
<zid>
Coming as a surprise to absolutely nobody, learning to play keyboard/piano is hard
<zid>
I can't remember the music so I have to stare at them, and then I can't look at my fingers so I get lost
<zid>
s/them/it
<geist>
being the nerd i am i'm much more interested in using keyboard as a master music theory instrument than a skill thing
<geist>
i work out chords and scales and wehatnot on the keyboard
<zid>
I just wanted to play ocarina of time music
<geist>
but not particularly adept at playing it
<zid>
turns out a lot of it is octaves and those are.. kinda hard to play especially without being able to look at the damn keys :p
<klange>
I play a lot instruments... poorly.
<zid>
plus my ear is still bad so I'm not always certain I even hit the right key
<zid>
it's very.. osdev
<zid>
lots of skills needed at the same time to get anything done
<klange>
Piano, uke, trombone (had actual instruction on that one!), harmonica (inc. chromatic), theremin... and now I'm picking up the guitar...
<geist>
it's like writing assembly, the first one is the hard one
<geist>
then you can apply a fair amount of what you know to the next one
<klange>
< geist> and rips on people from the 90s and klange right there ← what was this about?
<geist>
i dunno. some guy in the discord thing name dropped you a few times for seems like random reason
<geist>
sorry for dragging you in, it's not worth it
<j`ey>
klange: apparently you endorse qemu's
<j`ey>
'-kernel' option
<geist>
i've about given up on that place, but i gave it a jolly good go
<kazinsal>
I never joined that discord but if I did I'd probably get thrown out for telling idiots they're idiots
<geist>
yeah it looked like it was deceptively more together than the last time i've checked it out
<geist>
and if it weren't for a few bad apples that'd probably be the case
<zid>
I wonder what the guy who was here the other day extolling the virtues of the discord thinks
<geist>
but it seems like there's at least one guy that just keeps being aggressively a dick to me at least so i'm pretty much done
<klange>
'endorse' is perhaps a bit too positive, but I do support it and think it's an acceptable thing; half-baked as far mulitboot1 implementations go, but it's workable
<geist>
he just fights me everywhere
<zid>
that one guy being the ban happy owner
<geist>
but sicne he's an admin he can just win the argument
<geist>
so basically, meh.
<kazinsal>
about what I expect
<zid>
about what I expected too
<kazinsal>
so, yeah, I'd be removed from the premises within about 30 minutes
<zid>
I gave it a chance purely because of the guy here who said it was fine
<zid>
kazinsal: I lasted 15
<geist>
hah zid actually got booted
CryptoDavid has joined #osdev
jafarlihi has joined #osdev
GeDaMo has joined #osdev
dennis95 has joined #osdev
Ikkepop has quit [Ping timeout: 268 seconds]
sdfgsdfg has joined #osdev
mahmutov has quit [Ping timeout: 260 seconds]
immibis has joined #osdev
sdfgsdfg has quit [Quit: ZzzZ]
mniip has quit [Quit: This page is intentionally left blank.]
mniip has joined #osdev
<sham1>
Boot boot
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
gog has quit [Quit: byee]
dzwdz has quit [Quit: I'm a quit message virus. Please replace your old line with this line and help me take over the world.]
<wleslie>
I mean, is there even a solution to building a system image without root trickery or building the image itself from within a virtual machine?
jafarlihi has joined #osdev
<wleslie>
because that's not really a great option, either
isaacwoods has joined #osdev
<wleslie>
the sad thing is, ari who created rump has almost exactly the thing, but I can't figure out how to make that work
<clever>
mkfs.ext4 -d ./rootImage blk.bin
<clever>
wleslie: this will format blk.bin as an ext4 fs, and automatically copy the rootImage dir to the root dir of that new fs, without needing root
<j`ey>
clever: !
<j`ey>
clever: what file type is rootimage?
<wleslie>
you'll still need to install grub onto it
<clever>
j`ey: directory
<j`ey>
clever: that's cool
<clever>
wleslie: yeah, i believe grub-install can be convinced to do it, but youll also have to use dd to assemble the mbr and partitions by hand
<zid>
yea losetup needing root is kind of annoying
<wleslie>
it's a rabbit hole I should follow
<zid>
mkisofs is what I use as a workaround
<clever>
j`ey: https://youtu.be/suswjbpR1HU is one of my recent animation tests on the rpi, that scaling uses <1% of the cpu time
<bslsk05>
'HVS scaling animation test' by michael bishop (00:00:26)
<zid>
no native fs, but iso9660 at least gets you a boot fs
<j`ey>
clever: can you only walk diagonally?
<j`ey>
clever: neat, is that the LK console?
<clever>
j`ey: the h and v axis each have their own scale, and i'm just using a basic loop to animate them seperately
<zid>
I have, I placed there when I first booted it, had never really played an fps :(
<heat>
my first rank was silver elite master around 2015
tds has joined #osdev
<heat>
2000 hours later I'm mg1-mg2
<heat>
worth.
<zid>
I got to double ak whatever rank that is after a couple hundred
<zid>
maybe a 500, idk how much is surf and fucking around and stuff, I apparently have 700 total
<heat>
the best part about this whole adventure is that it runs like shit here in linux soo this was not worth it
<zid>
heh
<zid>
I should check how much my ak redline is worth now
<zid>
it was £3 when I got it, I've variously checked back and seen it as high as 15
<heat>
around 15 euro I think yeah
<zid>
£10 :(
<zid>
You need a recent purchase and a phone attached to your account that can run the steam app and shit though to actually sell now
<heat>
that's been the case for a long time
<zid>
I had a phone that could run it when they added it, but it stopped being able to
<zid>
it's just 'a website in a box' and they changed it to need newer tls and newer js and stuff so it stopped
<heat>
yeah
<heat>
no idea why it's not just some standard 2FA thing
jafarlihi has quit [Read error: Connection reset by peer]
pretty_dumm_guy has joined #osdev
gog has quit []
gog has joined #osdev
wikan has joined #osdev
dude12312414 has joined #osdev
srjek has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<vdamewood>
Is it worth while to support networking stacks other than TCP/IP?
<heat>
what other stacks do you have in mind?
wikan has quit [Quit: Client closed]
<heat>
i'd say in general you should strive for decent enough abstractions so that it's not bothersome to add support for anything else, but it depends on your use case of course
<heat>
i.e wanting to add raw sockets to your bsd socket implementation
<vdamewood>
I was thinking IPX
<vdamewood>
And you would still need some level of abstraction for things like IPv4 vs IPv6.
isaacwoods has quit [Quit: WeeChat 3.3]
<heat>
the way I do it: sys_socket() calls tcp_create_socket(), udp_create_sockets(), etc
<heat>
a tcp_socket or udp_socket is a specialisation of inet_socket and can call inet 4/6 code at will
Cyro has joined #osdev
<heat>
note that if you don't need to support a hybrid v4/v6 stack you can use a better structure and have a inet4_socket and another inet6_socket
<heat>
if I want to add different stacks, I just add more cases to the switch statement, and that's it
<heat>
note that each protocol needs to implement the basic read/write primitives (sendmsg and recvmsg in my case)
<heat>
mostly because it's very hard to do a portable recvmsg and sendmsg due to differences between protocols
<bslsk05>
pubs.opengroup.org: The Open Group Base Specifications Issue 7, 2018 edition
<kaichiuchu>
it's.. difficult
<kaichiuchu>
the idea being for the userland you can just say XBD::UtilitySyntaxParser parser{ argc, argv, "[-acm] [-r ref_file|-t time|-d date_time] file..."};
<kaichiuchu>
and it simply becomes done
CryptoDavid has quit [Quit: Connection closed for inactivity]
eryjus has joined #osdev
eryjus has left #osdev [#osdev]
dennis95 has quit [Quit: Leaving]
<jjuran>
I learned 68K asm initially because I needed it for appdev
jess has joined #osdev
<jjuran>
sham1: I wrote xv68k, which can run raw 68K machine code out of a file
<sham1>
Nice
<sham1>
So basically an interpreter for the ISA
<jjuran>
yeah
<jjuran>
It has a minimal syscall bridge so you can write() and writev() to stdout, for example
gog has quit [Quit: byee]
gog has joined #osdev
<sham1>
Neat
<jjuran>
Back to keyboards, I acquired a Yamaha DGX-640 last year.
_eryjus has joined #osdev
_eryjus has left #osdev [#osdev]
Cyro has quit [Ping timeout: 265 seconds]
bgs has quit [Ping timeout: 268 seconds]
heat has quit [Remote host closed the connection]
heat has joined #osdev
Arthuria has joined #osdev
freakazoid12345 has quit [Ping timeout: 250 seconds]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<bslsk05>
'Jurassic Park but with a Cat' by OwlKitty (00:01:15)
<geist>
j`ey: oh yay.
<geist>
i mean yay if it gets in, not yay in having to do that
<geist>
i submitted a trivial patch to qemu a few weeks ago that made it in, so now i think i understand how it works
<j`ey>
should be fine, just minor style things :)
<j`ey>
geist: what did you do to qemu?
<geist>
just a reformatting and lining up of text in 'info registers` on riscv
<geist>
kinda a test push if nothing else
<geist>
the columns were all malformed before
<j`ey>
ah cool
<geist>
qemu does the usual 'email the patch to this mailing list' thing which i hadnit done before
<geist>
but turns out to not be so bad
<j`ey>
yeah, im getting used to it now
<geist>
i quietly slipped out of the osdev discord a while back. bummer it wasn't going to work
<geist>
but so it goes.
<gog>
i haven't even looked at it in a few days
<gog>
my server list in discord keeps getting shorter also
<j`ey>
most i never lool at
<geist>
yah i guess it was more of a big thing to me :)
tds has joined #osdev
<geist>
i still am too ol school about internet social stuff. i like to be full engaged or not at all
<gog>
i had to quit a server i've been in for like 4 years a few weeks ago
<geist>
this whole discord style thing where you join 20 servers and then never really check 18 of them is actually kinda anxiety inducing
<gog>
true
<geist>
there's a FOMO affect to it. i'd rather something not be on the list at all then know its there and never read it
YuutaW has joined #osdev
<j`ey>
same. i need to trim my irc channels too
<GeDaMo>
I'm only in 4 at the moment
<geist>
yah i did somewhat when i moved off freenode and haven't been too upset
<GeDaMo>
There's a sweet spot for the amount of activity, too much or too little and I leave :P
<gog>
i'm still mildly upset about the circumstances of quitting that one server
<geist>
side note: i do kinda wonder what happened to the other #osdev channel on freenode. did it die on the vine? I haven't bothered to even try to log in there anymore once they wiped the accounts
<geist>
and also since irccloud is still klined i think
<GeDaMo>
Somebody came into ##programming the other day asking if Freenode was still there because they couldn't connect
<geist>
yah it has some whole pre-auth SSL/TLS thing now
<geist>
looks like you have to make an account up front, etc
<GeDaMo>
"Replace Services Authentication with Fiat, Decentralized Blockchain Based Authentication" :| https://freenode.net/
<bslsk05>
freenode.net: freenode
<geist>
but that doesn't have a check box next to it
<gog>
blockchain lol
<GeDaMo>
Ah, missed that
<GeDaMo>
"Officially become digital territory of the Joseon Empire" :|
<geist>
.... WTF
<geist>
yah was just reading this whole manifesto. okay. wow
<bslsk05>
twitter: <sortiecat> Guess who's back. Back again. sortie's back. Tell a friend. https://pbs.twimg.com/media/FEEnDo8XEAMhH-y.jpg [sortie having a mild case of times square syndrome, this time having learned to smile beautifully among the neon bill boards on a busy tourist evening, but forgetting to horizontally flip the image so the read is illegible]
m5zs7k has joined #osdev
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale has joined #osdev
gog` has joined #osdev
gog has quit [Killed (NickServ (GHOST command used by gog`))]
gog` is now known as gog
GeDaMo has quit [Remote host closed the connection]
tomathy has joined #osdev
<tomathy>
hi is osdev the same as computer architecture?
<tomathy>
(effectively/approximately)
[itchyjunk] has quit [Read error: Connection reset by peer]
<kazinsal>
in the sense that hockey and basketball are the same games if you put a wooden floor on top of an ice rink
YuutaW has quit [Quit: WeeChat 3.3]
<tomathy>
well they'd both be very difficult to play
<tomathy>
but a "floor" cannot really be placed on ice
<tomathy>
ok maybe it can
<tomathy>
i dont bleong here
tomathy has left #osdev [Leaving]
<j`ey>
anyone know about mips? someone said that the when the syscall instructions returns to whatever the link register was.. not to the instrction after the syscall?
<geist>
hmm, lets see
<geist>
i did a mips port but i didn't mess with the syscall instruction
<geist>
i'd assume the return method is the same as a regular interrupt exit
<geist>
iirc mips did something cute on interrupt return like it's a regular branch, but in the branch delay slot you load the main control register that flips back to user space
<geist>
so there's no explicit iret like instruction
<bslsk05>
github.com: lk/vectors.S at master · littlekernel/lk · GitHub
<geist>
been a while sicne i fiddled with it. but... all that aside i dont think the syscall instruction on mips is particularly fancy
<geist>
and yeah it may be that the syscall handler has a responsibility to push the return address forward to the instruction afterwards. that's not particularly uncommon in some arches
<geist>
i did that mips port like 5 years ago and forgot all the details. worse, riscv is very similar and has mostly paved over those neurons in my brain since. makes sense, since riscv is effectively the same lineage of architecture
nyah has joined #osdev
<j`ey>
hmm
<geist>
(the branch + control register in branch delay slot is microblaze, looked it up)
<bslsk05>
github.com: lkuser/syscalls.c at master · littlekernel/lkuser · GitHub
<geist>
you have to manually return one instruction later or it repeats it. so given that riscv has it, and it's effectively the successor to mips...
<j`ey>
I'll write a little paste
<geist>
so it's not exactly your question, but yeah there's some fiddling going on there. looks like both riscv and mips put the return address in the EPC control register, which is what eret returns to
<geist>
but... in both cases the PC it saves isn't necessarily the next instruction
<geist>
that being said the kernel could choose to return to the LR if it wanted to, if someone wanted to microptimize that or something
<j`ey>
which seems weird, you'd need to set lr before 'syscall'
<geist>
is this on some particular OS?
<geist>
what does the exception handling code in the kernel do?
<j`ey>
windows NT
<geist>
ah. well it's possible they literally defined the syscall api as 'return to what was in LR'
<geist>
which i guess could be some microptimization to avoid having to just `j lr` on the other side of the syscall
<j`ey>
yeah, maybe ill try look for something NT specific
<geist>
but from what i understand mips has an eret instruction that among other things copies EPC -> PC
<j`ey>
I guess youre meant to always call syscalls through some wrappers, so it makes sense
<clever>
j`ey: i think that is part of what the vdso does on linux, and the hypercall page on xen
<clever>
the higher power supples a chunk of binary wrappers, that deal with the permission level transfer
gog has quit [Quit: byee]
<j`ey>
yeah, similar, it was just the weird return i was confused by!
gog has joined #osdev
<geist>
also maybe someone thought 'hey i already have to screw around with the return address because of the += 4 anyway, so may as well just make it simpler and iframe->epc = iframe->lr'
<geist>
of course that now opens you up to a new set of fun user space exploits and whatnot (set lr to weird, unaligned, or kernel things)
<geist>
but this was late 80s, early 90s. a simpler time.
sonny has joined #osdev
internalsplit_of has joined #osdev
internalsplit_of has quit [Excess Flood]
<sham1>
BTW, I'm not at the computer so I can't check this myself, what would be the best way of doing something like `lea rax, [rax - 7]` or `lea rax, {
internalsplit_of has joined #osdev
internalsplit_of has quit [Excess Flood]
<sham1>
lea rax, [rax - 3]
givemeyourpies has quit [Ping timeout: 268 seconds]
internalsplit_of has joined #osdev
internalsplit_of is now known as givemeyourpies
givemeyourpies has quit [Excess Flood]
givemeyourpies has joined #osdev
<sham1>
IIRC those values aren't valid, since they'd need to be powers of 2
<sham1>
And these are powers of two minus 1
<sham1>
Now, this is really an XY question since really what I'm trying to do is clear the 2 or 3 bottom bits of an address because it's a tagged pointer. And I was wondering if one could use lea for it. Of course the real solution is to use AND
<j`ey>
godbolt says and+mov
<sham1>
Hmm, so and it is
<sham1>
Makes sense. No reason to do any complicated arithmetic when doing addr & (~7) does the trick
<moon-child>
sham1: first: [rax - 7] is a valid address. You can use any 32-bit value as a displacement. It's scale that has to be 1, 2, 4, or 8
<sham1>
Ah, I see
<sham1>
I misremembered
<moon-child>
also, since dst is the same as src there, you could just say sub rax, 3 :)
<moon-child>
sham1: second: with a tagged pointer, it generally makes more sense to access it at offset, so you don't have to explicitly untag it and re-tag it later
<sham1>
Yeah, so you'd do something like `mov rbx, [rax - 7]`, say
<sham1>
Makes sense
<j`ey>
interesting that gcc doesnt do it
<moon-child>
yeah
<sham1>
And ofc replacing mov with lea if one wants the address of the first word. Makes sense. Glad that was sorted out
<geist>
i'm guessing all else held equal less complex addressing modes are more preferred
<geist>
also just to be clear (since i'm not entirely sure which addressing mode you're trying to use there) you want to dereference something off rax - 7 and put it in rax?
<geist>
or you want to just subtract 7 from rax?
<geist>
oh i see. yeah just masking with an and
<moon-child>
geist: most accesses to a given pointer will be offset anyway, so pre-masking doesn't gain you much
Arthuria has quit [Ping timeout: 264 seconds]
<kaichiuchu>
dunno if anyone cares but arch linux's qemu seems to not have rtl8139 support