<zid>
distributing them across multiple cpus isn't *exactly* the same thing as 'pairing the msi to the cpu with the task that will consume the packet' though
<zid>
that requires some extra coordination on top
<sonny>
I can't shake the feeling that the Windows implementation seems like overkill ... unix is a corporate OS but the architecture doesn't come across the same way
<geist>
also in numa situations (or at least multisocket) you probably want the IRQ to fire on at least the cpu node that the PCI bus exists on
sonny has quit [Ping timeout: 256 seconds]
vdamewood has joined #osdev
Jari-- has joined #osdev
<Jari-->
Good morning from Finland, EU.
<vdamewood>
Hyvää huomenta.
<Jari-->
vdamewood been long here?
sonny has joined #osdev
vinleod has joined #osdev
vdamewood has quit [Ping timeout: 240 seconds]
vinleod is now known as vdamewood
Burgundy has left #osdev [#osdev]
sdfgsdfg has joined #osdev
dude12312414 has joined #osdev
Oli has joined #osdev
dude12312414 has quit [Remote host closed the connection]
Retr0id has joined #osdev
gog has quit [Ping timeout: 268 seconds]
fwg has quit [Quit: .oO( zzZzZzz ...]
sonny has quit [Quit: Going offline, see ya! (www.adiirc.com)]
fwg has joined #osdev
biblio has quit [Quit: Leaving]
fwg has quit [Quit: .oO( zzZzZzz ...]
Matt|home has quit [Ping timeout: 256 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.4]
fwg has joined #osdev
Oli has quit [Ping timeout: 240 seconds]
Oli has joined #osdev
sdfgsdfg has quit [Quit: ZzzZ]
sdfgsdfg has joined #osdev
elderK has quit [Quit: Connection closed for inactivity]
Oli has quit [Quit: leaving]
heat has joined #osdev
<heat>
i a m h e r e
<klange>
But are you really? Is anyone really here?
<heat>
hey vsauce, klange here
<zid>
but what IS here?
Oli has joined #osdev
<graphitemaster>
And more importantly, what IS there?
<Oli>
What is where? I have just reconnected to IRC!
<Mutabah>
The channel is getting deeeep
<Oli>
I am feeling curious about what you are referencing to!
<Affliction>
That's the question...
<Oli>
Is there any context about that I may be shared of?
<klange>
Don't worry about it.
<klange>
Also there's a log.
<Oli>
Thank you for mentioning about, klange! I forgot that this channel is logged!
<heat>
hey google, who is vsauce michael
<graphitemaster>
what is a v sauce anyways
<graphitemaster>
is it five sauces
<heat>
sauce in v shape
<graphitemaster>
does sauce have shape
<Oli>
VIP sauce Michael
<kingoffrance>
when will there be here? closely. skip this part
<graphitemaster>
how far apart is there and here
<Oli>
Is here where magnets energy comes from?
<kingoffrance>
graphitemaster, a ludicrous amount
<kingoffrance>
that's obvious
<Oli>
If both there and here are in my heart, I am a superset of both?
nyah has quit [Ping timeout: 256 seconds]
fwg has quit [Quit: .oO( zzZzZzz ...]
Jari-- has quit [Remote host closed the connection]
<kingoffrance>
i think the trick is to be transparent so that userland Olis dont have to know or care where they are?
heat has quit [Remote host closed the connection]
hbag has joined #osdev
sonny has joined #osdev
Jari-- has joined #osdev
fwg has joined #osdev
<Oli>
Yes! Thats Olis kernel business!
heat has joined #osdev
<Jari-->
Lots of kernel developers available for an OSDEV project? Know a website where to here them? Interested.
<heat>
PSA: not a good idea to reset PS2 devices
<heat>
Jari--, careers.google.com
<Oli>
Single kernel developers near your city
<Jari-->
Hire someone who knows C from your local university?
<Jari-->
Educate them your kernel/OS.
<klange>
google only wants Linux kernel devs in my experience...
<heat>
klange, i've seen plenty of fuchsia roles
<heat>
maybe they're not for the kernel? i dunno
<heat>
maybe it's because they have way less of it
heat has quit [Remote host closed the connection]
<klange>
(i may be particularly salty)
heat has joined #osdev
<sonny>
Jari-- what are you working on?
<Jari-->
sonny basically DOS or CP/M like operating system, with multitasking and a simple clear GUI (high performance)
<Jari-->
meant to run games e.g.
sdfgsdfg has quit [Quit: ZzzZ]
<sonny>
ok, that's interesting
<sonny>
what are you doing a gui for if it's for games?
<Jari-->
sonny I mean complete user interface
<Jari-->
basically its just windowed terminals at the moment
<Jari-->
start menu, etc.
<sonny>
oh, that's a big project
mahmutov has joined #osdev
<sonny>
I've been thinking that there could be a much better OS interface than this windowed thing :P
<heat>
trianglix time
sdfgsdfg has joined #osdev
[itchyjunk] has quit [Ping timeout: 240 seconds]
<sonny>
manipulating text is really common, but defining a good interface for this seems really difficult
<heat>
most of your computer activity simply isn't text
<heat>
and where it's text you've got an editor
mahmutov has quit [Ping timeout: 256 seconds]
<sonny>
ok, well we can say strings instead of text
<kazinsal>
text editor, not to be confused with .text editor
<sonny>
heat it's the primary way we get stuff into a computer?
ElectronApps has joined #osdev
<Jari-->
sonny I am good at marketing, it is possible I get my first 100 users pretty soon as I get my linker up and running
<Jari-->
before I used statically linked binaries and flat memory addressing
<Jari-->
paging kinda made me think a lot of it
<Jari-->
you have to have a seperate paging directory on each thread...
<Jari-->
its lots of headache for me, could you possibly do this simpler?
<Jari-->
CP/M wise design would imply I should do the dynamic runtime linker software, and have an universal memory map where all threads processes tasks operate together
srjek has quit [Ping timeout: 240 seconds]
<Jari-->
klange do you know any C runtime linker ld.so ?
<klange>
Mine.
<Jari-->
most code is C++ && it's annoying me a lot
<Jari-->
klange but I am not getting your marcoes :) and I lost the football at looking at your hash, could not find your hash routines anywhere :) although dependeable
<Jari-->
Did you mean: klang tourism
<sonny>
klange: any story behind the linker?
<klange>
story? it's... a dynamic linker, it does the thing
<Jari-->
heat this is typical FaceBook, really new to you?
MarchHare has joined #osdev
<heat>
nah
<Jari-->
I mean millionaries with >100 million revenue corporations can have only 2 or 3 likes quite often
<Jari-->
it is hilarious
fwg has quit [Quit: .oO( zzZzZzz ...]
<MarchHare>
Here's a question. Been bugging me all week when I think about it. When I copy data from memory to A000:0000-FFFF for a full screen vga image, it's really slow and I can see it building the image. How exactly do old games like commander keen (I'm not asking about their scrolling stuff) and doom do the full screen writes so fast? I'd guess page swapping, but how is that actually done in practice
<heat>
MarchHare, are you talking about real hardware or an emulator?
<MarchHare>
heat: Real hardware, but a virtual machine behaves about the same in my experience.
<heat>
vga memory isn't slow
<heat>
at least I haven't seen it be that slow
<MarchHare>
heat: In my bit of test code, I just include the raw image data in the bootsector and copy it to the vidmem.
<heat>
it's slower but not "hey i'm waiting for the image to render" slow
<MarchHare>
heat: I assume I'm just doing something super non-optimized and probably it's related to timing and memory exclusivity or something
<MarchHare>
heat: I'm not doing anything cutting edge (and to be frank, haven't played with it for a few years)
sdfgsdfg has quit [Quit: ZzzZ]
<heat>
I don't use VGA but I use the linear framebuffer with much higher resolutions than VGA allows
<heat>
usually 1024x768x32 is what I use
<heat>
and it's not as slow as you're saying it is
<heat>
and I don't really optimise it
<MarchHare>
heat: Like I said, I'm probably doing something super naiive.
<heat>
do you have sauce?
<MarchHare>
heat: There an article on how to use linear framebuffers?
<MarchHare>
heat: I can dig it up, sure.
sonny has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<heat>
MarchHare, yes, multiple on the wiki
<heat>
depends on what you're doing of course (BIOS, EFI, a bootloader like GRUB)
<MarchHare>
heat: I've just been doing bare metal with super minimal bios to get it started.
<MarchHare>
heat: This is more curiosity for the moment, since I've been super unmotivated lately and about to start a new job.
<MarchHare>
Well I think I have to look for it. I found the one that draws a CGA image to the screen.
<klange>
Video setup is one of those things where it became infeasible to DIY it somewhere around 30 years ago.
<MarchHare>
klange: Yeah, I know. I'm doing it for the lulz right now.
<Jari-->
klange it is easy to say to plug the linker to my MS-DOS...
<Jari-->
Anyone have experiencing regarding GCC / DJGPP / FreeDOS?
<Jari-->
I tried Rhide IDE (editor) and it crashed on FreeDOS...
<klange>
Jari--: My linker is for Elf binaries/shared objects, and that version of it is specifically for 64-bit stuff, it is absolutely useless to you if you are trying to use DOS.
<MarchHare>
klange: It's just fun playing around for me. Build it, stick it on a disk or CD, drop it into a real machine, see it light up. It's basica;y like embedded programming
<bslsk05>
www.pdos.org: Public Domain Operating System
<MarchHare>
heat: I'm thinking the code that does the vga one might actually be in BASIC. I could have sworn
<MarchHare>
I converted that one to asm.
ElectronApps has quit [Remote host closed the connection]
<MarchHare>
heat: Well, I found the BASIC version. I'm pretty sure I converted it, but it runs damn fast in dosemu under qbasic, so maybe I'm just remembering doing something REALLY naive.
<heat>
mandela effect yo
<Jari-->
Don't expect Microsoft workers to like your project.
<MarchHare>
heat: Anyway, got a link to a good article on how to use a linear framebuffer? I'm guessing that's hardware involving PCI hardware, which I'm not very good at (well, I completely don't understand it)
<klange>
"Using" a linear framebuffer is just writing pixels into a big array somewhere set up by the hardware. The tricky bit is setting one up.
<klange>
That's where my previous comes into play; there hasn't been a viable way to do this yourself, after you've left the safety of the BIOS, since the 90s.
<heat>
he's in real mode I think
Oli has quit [Quit: leaving]
<MarchHare>
heat: Yeah, I'm just doing this with real mode for now.
<Jari-->
klange planning to build a virtual machine to run 32-bit apps drivers?
<Jari-->
Windows like
<MarchHare>
klange: I assume you just tell the hardware where in memory your framebuffer is and it does the copy to hardware buffer, then?
<MarchHare>
klange: Sort of a DMA>
<heat>
no
fwg has joined #osdev
<klange>
MarchHare: Generally no, the hardware tells you where _its_ memory is, and you write directly to it.
<heat>
the hardware tells you where the framebuffer is and you just write to it
<heat>
no copy
<heat>
this is literally like VGA but better
<heat>
(well, not the hardware but the video bios/driver, but that's besides the point)
<klange>
I think LFB support is the point where bit-banging VGA is no longer viable; what you'll want to look at is VESA BIOS Extensions. It's a spec for a handful of BIOS functions to query and set video modes.
<MarchHare>
klange: Gotcha. So for double buffering for instance, the hardware will have a pointer that points to the page you write to and you just write to it and the hardware handles that, and when it's ready to flip the page, switches that pointer to it?
<MarchHare>
Sorry, switches the active screen rendering to that memory
<heat>
you don't have double buffering with LFBs
<Griwes>
if you had hardware double buffering, yes, but you don't
<heat>
you pull out the good old memcpy
<CompanionCube>
the funny thing about pdos is the manifesto pretending profit isn't a thing
<Griwes>
an LFB is literally just a chunk of the video controller's memory that's wired more or less directly to the cpu's memory controller and you just... write there
<MarchHare>
klange: I think I have a long bit of studying and tinkering ahead if I ever want to get something out of it out.
<klange>
You can have double buffering with LFBs if the video hardware supports something like panning, but that's out of the scope of what you'll get from generic interfaces.
<MarchHare>
Griwes: That doesn't really sound much different than writing to A000:0000 or something.
<heat>
it's not
<Griwes>
that's because it isn't
<heat>
you just have better video modes
<heat>
the gpu does to 0xA0000 what it does to the LFB's address
Matt|home has joined #osdev
<klange>
Better video modes, generally no banking (the 'linear' bit means it's pixel after pixel, not separate color channels)... very hands-off operation...
<klange>
Turns video setup into a fire-and-forget thing. Someone else set up a framebuffer, now you can just write to it and see pixels.
<heat>
although generally from what I've read the VGA memory thing is way hackier than your LFB that can be just video memory
<Griwes>
I mean there's no issues with implementing vga memory as being just the "video" memory
<Griwes>
it's fairly easy to turn that into a video signal
<heat>
the intel GPUs have a lot of weird internal details on VGA, etc in the chipset itself iirc
<Griwes>
I mean turning a bunch of bytes into a video signal is fairly trivial
<heat>
that's what I was referring to
<MarchHare>
Griwes: I pulled the manual for CGA awhile back an I was just awed by how easy that one is. I kind of want an old PC with true CGA just to play with
<Griwes>
if I was to implement a vga adaptor, I'd have separate buffers for vga memory and for an lfb
<CompanionCube>
i wonder if there's any notable internal VBE/GOP differences
zaquest has quit [Quit: Leaving]
<Griwes>
(I would not implement one, but if I had to...)
<MarchHare>
I'm kind of mad my mom gave away our old amstrad 6400 25 years ago.
<heat>
CompanionCube, they're always drivers :)
<Griwes>
(...if I had to, I would reuse bits from my B.Eng. project ;p)
<MarchHare>
Griwes: Wanna build a modern vga adapter that outputs on the video out for TV sets :)
<Griwes>
my B.Eng. project was literally an fpga thing that accepted text over serial, and then displayed the characters over hdmi
<MarchHare>
Griwes: Nice. Nice and simple, but maybe quite complex on the hdmi side of things. I assume you had to implement a character generator and everything?
<Griwes>
yes
<Griwes>
hdmi wasn't too bad
<Griwes>
just multiply the clocks with PLLs and retype some constants from the spec
<CompanionCube>
i bet displayport would be worse?
<Griwes>
yes
<Griwes>
god yes
<MarchHare>
Griwes: Maybe that's why displayport is taking off so slowly?
<Griwes>
taking off slowly?
<Griwes>
can't say I have noticed that
Burgundy has quit [Ping timeout: 240 seconds]
<MarchHare>
Griwes: Seems like HDMI kind of seems to be winning the format war over DP, but I'm also not super up to date
<MarchHare>
I see hdmi on most stuff, not so much DP
<heat>
nah display port is pretty on top
<heat>
most monitors come with DP for example
<Griwes>
maybe if you look at like TVs and shit
<Mutabah>
^
<heat>
laptops have eDP
<Mutabah>
And most modern cards will have one HDMI and many DP
<heat>
anything DP is winning
<klange>
I have the opposit experience.
<Griwes>
but in spaces where DP is actually beneficial, you'll see dp everywhere
<MarchHare>
So why don't TVs have it?
<heat>
MarchHare, legacy?
<Griwes>
it gains nothing for TVs tbh
<Griwes>
you ain't going to daisy chain TVs, you ain't going to throw things to them over usb-c or thunderbolt, ...
<Griwes>
the point of DP is that it works *very well* within the integrated environment of PC peripherals
<MarchHare>
I probably shouldn't be using my TV as a monitor anyway.
<Griwes>
you can easily get a single cable to give you power, networking, usb, displays, ...
<MarchHare>
I kind of did that because that's mostly where my power is in this room.
<Griwes>
(..., pci-e lanes, ...)
<MarchHare>
Griwes: DP can encapsulate PCI-E?
<Griwes>
no
<heat>
thunderbolt can
<Griwes>
but thunderbolt does, and it _also_ carries DP
<Griwes>
usb-c also carries DP
[itchyjunk] has quit [Remote host closed the connection]
<MarchHare>
Wow, I'm really behind on my tech.
<MarchHare>
Or my use cases don't involve a lot of perpherials or something
<MarchHare>
Which makes sense I guess, I tend to do things like serial over usb and embedded programming.
<Griwes>
my laptop currently has three external screens connected, two 1440p ones from a thunderbolt dock that also has my usb, audio, and ethernet
<Jari-->
formatting a disk drive (ramdisk) appears to work fine here
<Griwes>
and another one is a 3840x1600 that is connected with an usb-c dongle directly to the laptop, through just a normal usb-c port
<Griwes>
and all of this is internally routed to actual physical outputs of the laptop's dgpu
<Griwes>
it's kind of magical really
<MarchHare>
Griwes: I also don't have a performance laptop. The laptop I got is a crappy HP that I thought had a 1060p screen and it only had a 768 (and I was pi$$ed about that)
<Griwes>
right; I didn't intend to brag, rather to show what the sort-of-state-of-the-art of the year is
<MarchHare>
To be fair, I mostly used it for programming.
sdfgsdfg has quit [Quit: ZzzZ]
<MarchHare>
Griwes: Maybe if I last at my new job I'll score some better gear like decent screens and stuff.
* CompanionCube
switched to a 1440p monitor using dp recentlg
hbag has quit [Remote host closed the connection]
<MarchHare>
hell, maybe I'll spring for a better laptop too, this one is okay, but I'm not real impressed with it.
<MarchHare>
I really hate spending a lot on laptops, given that they tend to fail from physical wear and tear very reliably on about a 4 year schedule.
<MarchHare>
Seems like it's like clockwork with the last several I've had. 4-5 years.
<MarchHare>
And it tends to be things I can't pinpoint.
<MarchHare>
You guys have a lot of git repos you like to keep up to date? I've got a sweet little updater.
<MarchHare>
Lets you update stuff from a list, and only that stuff, so if you have a local only repo or something you don't want updated, just leave it out of the list.
<MarchHare>
I just do a find on my programming dir for list files and tell it to do them.
<kingoffrance>
CompanionCube, re pdos dont want to start anything, but i will note for usa he is 180 of declaration of independence about whether "companies" are "sovereign" or not. is australia, where he seems to be, different? dont know. cant say that is not a common "mistake" though. "company" is vague and meaningless.
<kingoffrance>
i dont think that changes anything...just doesnt inspire confidence
<MarchHare>
kingoffrance: Could be worse. Could be templeOS.
<kingoffrance>
thats actually similar for me -- no confidence :)
<kingoffrance>
really, i dont have anything 64-bit to screw around with
<kingoffrance>
my only 64-bit machine is occupeid
<CompanionCube>
i think he's using the word correctly
<MarchHare>
CompanionCube: Are you referring to pdos's license somewhere?
<MarchHare>
CompanionCube: This bit -> "company makes a sovereign decision"
<CompanionCube>
yes
<klange>
I think that's a fine use of the word?
<MarchHare>
CompanionCube, kingoffrance, klange: Seems to be used more or less correctly here, yes. Not sure I would have used sovereign, but the meaning intended is clear enough
<MarchHare>
He's basically trying to elevate it to the level of "It's their god-given right"
<klange>
With no comment on the rest of the statement, my intuition is that Paul means "when you make a decision without outside influence or control".
<CompanionCube>
the other thing is the interesting dissonance vis a vis his position on the GPL and on proprietary software
<MarchHare>
klange: Not quite. Sovereigns influence each other all the time. What he means is that within that domain (within their company), they have absolute authority to make that decision.
<MarchHare>
CompanionCube: He seems to be forgetting LGPL or something
<klange>
"Without outside _force_" then.
<klange>
"You made this decision, not because some other obligation forced you to, or a government said you had to, but because you evaluated the situation and came to that conclusion on your own".
<CompanionCube>
MarchHare: more: he goes on about stuff needing to be public domain to avoid reinvention, but at the same time argues that proprietary software with the same end result is fine.
<MarchHare>
klange: Yeah, more or less.
<MarchHare>
CompanionCube: He definitely contradicts himself in making his point. It's a valid point, but his argument is deficient.
<klange>
Paul's philosophy on the GPL is a common enough one, it's why a lot of stuff chooses BSD-style licenses.
<kingoffrance>
all: fair enough, i gathered that too...just wanted to note. agree with MarchHare too "within domain". that is pretty much the only real definition
<CompanionCube>
yeah the argument against the GPL is fine, it's just inconsistent with their *other* views
<klange>
Though I think some of his reasoning is flawed... the FSF fully admits that the GPL limits a freedom in service empowering other freedoms. GNU/FSF are also heavily focused on the idea of freedoms for end users and considers, eg., a company building software to not be an end user, so restricted their freedoms in service of end users is "fair game".
<klange>
s/in service empowering/in service to empowering/
<klange>
s/so restricted/so restricting/
<klange>
I am spoiled by message editing on Discord.
fwg has quit [Quit: .oO( zzZzZzz ...]
<klange>
My personal philosphy is... that I undersand and appreciate the goals of the GPL, but my own code, for the most part, does not have "end users", and I want to do what I can to make it easiest for actual users to enjoy my code.
zaquest has joined #osdev
<klange>
Also if someone takes my code, makes changes, and doesn't want to release them, they're assholes and I don't want their changes anyway.
<klange>
Like if my OS ended up in a backdoor system management engine on a CPU, would I want the code changes that made that possible? Heck no, that's revolting, keep it away from me!
<klange>
Public domain dedications are not legally viable, which makes them antithetical to the idea of maximizing anyone's freedoms. The same goes for all those joke license like the beer one or the WTFPL, they don't make it easier for users because now there's a legal debacle to solve.
<heat>
i think history has proven the GPL can't force anyone to release their changes
<MarchHare>
klange: Discord lets you use sed notation to edit things?
<klange>
It lets you edit things at all, I'm just old enough to do the sed thing on IRC because it's an old tradition.
<MarchHare>
klange: Oh. I did it too, I was just getting excited that I could use it to edit things
<klange>
oh actually it does but it's broken and doesn't handle the trailing / correctly
<kazinsal>
The GPL and its derivatives are carefully constructed for GNU software that has the backing of the FSF's lawyers. Everyone else just has to hope that the EFF will step in for them if needed.
<MarchHare>
klange: I just make my stuff gpl3 and if someone wants to use it, I don't make a big deal of it. But I reserve the right if someone wants to cook something really neat up and be a dick about it.
<klange>
silly discord, all sed replacements should have a trailing slash for symmetry and so you can specify options!
<MarchHare>
Oh nice, it does work!
sdfgsdfg has joined #osdev
ElectronApps has joined #osdev
ravan has joined #osdev
<Jari-->
klange :: I thought I am doing it better when I added directory caching system into JTMFS / JTMOS (dirdb cache)
<Jari-->
now the cache won't flush properly, so I need to format a drive twice to make it visible to ls / dir
<bslsk05>
29jm/SnowflakeOS - "It is very special" (10 forks/234 stargazers/MIT)
<heat>
i've been banging my head against the ps2 driver for like 4 hours in a row
<heat>
*it's 7am*
<klange>
what's yielding the head-banging?
<heat>
not working in real hardware
<heat>
i think i've tracked it down
<kazinsal>
2400 baud serial terminals ought to be enough for anybody
<klange>
Saw that Snowflake refs me in their ext2 driver (oof, good luck with that) and did a quick search on Github to see what's linking to me these days, and apparently choosealicense.com links to my repo as an example project using the NCSA/UofI license.
<heat>
yeeeeeees
<heat>
its aliveee
<j`ey>
heat: !!
<heat>
all I need is an rtl8168 driver and a working sshd now
<heat>
because my old laptop's keyboard is all busted up
<heat>
i've got storage, all the CPU goodness (with SMP ofc), a framebuffer and a working userspace
<heat>
this is getting surprisingly usable
<heat>
I also ported nano, python, gcc, a bunch of posix utilities, make
<bslsk05>
gist.github.com: 11 Years of ToaruOS · GitHub
<heat>
oh yeah I saw that
<heat>
do you just pipe stuff to tee?
<klange>
I think that's what I did for that.
<klange>
Configured a terminal for the same dimensions and tee'd vim, waited for it to settle, and then closed it
GeDaMo has joined #osdev
<sham1>
If it runs nyancat, it's good enough for me
<heat>
its not good enough for you then
<klange>
cli nyancat was also a ToaruOS test app before it was a telnet server / standalone application
<sham1>
Sadly there is no more telnet
<heat>
are you sure about that
<heat>
try doing telnet on your government mandated Onyx installation
<sham1>
I meant nyancat
<klange>
I no longer run it, and all of the mirrors people have sent me over the years have also disappeared.
<klange>
It's a huge bandwidth hog since it has very few optimizations and is just a constant stream of crap
<klange>
And while it's just a few frames per second, people would run it for _days_.
<klange>
Weirdly _that's_ not what got me kicked off the university network; recreating Dan Kaminsky's TCP-over-DNS project is.
<sham1>
People like the pop tart cat
<heat>
tcp over what
<sham1>
TCP over DNS, so TCP over UDP
<klange>
Outgoing packets encoded into request subdomains, responses over TXT records.
<klange>
Generally the pipe was actually SSH and then you'd throw SOCKS over that.
<kazinsal>
The only time I recall seeing someone get kicked off the university network when I was at BCIT was for running an intermural Dota 2 tournament without authorization… and opening it up to the world
<sham1>
Hah
<heat>
man I love me some low overhead protocols
<heat>
what's quic compared to tcp over dns
MarchHare has quit [Ping timeout: 240 seconds]
heat has quit [Ping timeout: 250 seconds]
<sham1>
Google, and by that I mean is that it's googleware
<CompanionCube>
klange: was the presumed filter that bad
<klange>
Specifically, I had my domain blacklisted from the DNS servers so they no longer made new recursive calls to it.
<klange>
Which, when you're making _millions_ of requests for new unique subdomains of a particular domain sure would look like an attack to basically anything.
<CompanionCube>
lol
<klange>
That tech got me free Internet on a plane once, so it was totally worth it. I had my own Python client connecting to an improved version of dakami's Perl server. RIP, man.
Sos has joined #osdev
<geist>
yay ahci actually identified a real disk on a real machine
<geist>
using MSIs as well
<j`ey>
x86?
<geist>
yah a ryzen machine, x570 chipset i believe
<j`ey>
is this the old ryzen?
<j`ey>
^
<geist>
more like a new ryzen actually
<kazinsal>
:toot:
<geist>
only ahci on a real non x86 i can think of is the Cavium machine i think has ahci controllers on the die
<geist>
maybe the marvell armada socs?
wgrant has quit [Quit: WeeChat 2.8]
<geist>
oh i guess a bunch of storage ARM socs have SATA. dunno if they do AHCI or some proprietary thing in general though
<sham1>
Woot
<geist>
i did read the identity block but am dreading actually parsing it. it's a huge mess of backwards compatibility
<geist>
but for now since i'm just doing SATA i can probably basically assume i think ATA7 and above (or is it ATA8 == SATA?)
<klange>
it does my self-worth some good hearing that geist of all people is struggling with ahci here
<geist>
haha it's mostly cause i'm not so PC focused, so i only go back and fill in the gaps later
<geist>
that eing said i like to build proper driver stacks too, and i tend to be bottom up, so i had to build a whole PCI stack, MSI allocation scheme, etc before even starting the driver
<geist>
still have to actually flesh out the PCI driver to assign bars (for ARM and RISCV qemu)
<geist>
since those PCI busses come up completely unconfigured
<geist>
i'll probably do nvme next, or actually wire up virtio-pci. previous virtio drivers are virtio-mmio based, whcih is a different aperture style
wgrant has joined #osdev
wgrant has quit [Quit: WeeChat 2.8]
<Jari-->
Oh my God people, it is called "loader" not "dynamic linker" what I am doing.
<bslsk05>
github.com: runtime-unpack/loader.c at master · 0xbigshaq/runtime-unpack · GitHub
<geist>
haha apple you taunt me
<geist>
it pops up a thing extolling the virtues of macos monterrey and telling me i should upgrade
<geist>
but this mac isn't eligable for one
<geist>
that's a surprising lack of polish for apple
<geist>
i expect that sort of nonsense from msft. especially since i've literally gotten it: upgrade to windows 11! your machine isn't eligable
<Jari-->
. /* allocating memory for the segment */ mmap(target_addr, phdr[i].p_memsz, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0); // hotfix patched by BigShaq
<GeDaMo>
"Hours of fun for all the family! Not for sale to children!" :P
<Jari-->
I will be using kmalloc for this.
<Jari-->
That will default to executable, read/write, kernel. Owner is PID.
<klange>
Hm, kling retweeted me... he doesn't even follow me, so that was a nice surprise. I give him a hard time because I'm constantly jelly of Serenity, but he does seem like a nice dude.
<sham1>
It might even be that Serenity was influenced by ToaruOS in some ways
<sham1>
I don't know though
<kazinsal>
does serenity release disk images yet
<j`ey>
not when I last checked
<sham1>
IIRC no
<klange>
From my last check, no, though their build process - while long - does seem to work okay.
<klange>
I do poke it with a stick every so often, gotta keep an eye on the competition.
<klange>
lol they require gcc-11 on the host now
<klange>
why
<sortie>
<heat> trianglix time
<sortie>
/\
<sortie>
_
<klange>
oh dear, your triangle is having some trouble
<sortie>
It all comes together
<klange>
△ here you can borrow one of mine
<sortie>
Oh neat I can barely feel it's uncontrolled rage
<bslsk05>
github.com: Meta+CI+Documentation: Bump host gcc requirement up to gcc 11 · SerenityOS/serenity@c62c10c · GitHub
<kazinsal>
probably the same reason they don't provide disk images
<kazinsal>
any *real* unix user etc etc
<GeDaMo>
s⃤
wgrant has joined #osdev
<klange>
oh no GeDaMo got a big one
<Jari-->
Whats the maximum frame rate throughput you can get for e.g. 1024x768 32 bpp with VESA Linear Frame Buffers?
<Jari-->
If you reblit the whole screen on constant basis.
<kazinsal>
not enough parameters
<sortie>
kazinsal, the real problem is when these disk images start replicating on their own, I got a whole containment mess down at the /cisortix/ build where it's even using scp to breach containment
<kazinsal>
sortie: glad to see you've managed to develop a cognitohazard
<kazinsal>
(thinking about it, this channel does sometimes get extremely Gamers Against Weed)
<klange>
ah, a regret: that I never set up a CI system that uses ToaruOS to build ToaruOS
<klange>
There was a period in the 1.x days when it would have been possible.
<j`ey>
2.x cant do that?
<sortie>
kazinsal, I've been leaning into the whole anomalous art scene lately
<klange>
There's a few blockers I would have to satisfy through ports, and some of the EFI stuff is touchy.
* kazinsal
plans to eventually rewrite his core for x86-64, figure out why he's mysteriously missing a bunch of CPU time on his test environment, get some more IPv4 features finished, and then open-source his project
<j`ey>
and provide disk images :P
<kazinsal>
I would like the first "release" to be something you could feasibly run as your home/SMB router/firewall.
<sortie>
These days I'm really wanting to go for cloud
<kazinsal>
in an ideal world I'd like to have sort of a netgate/pfsense thing going where the OS itself is open source but if you want a guaranteed supported hardware platform that's a thing you can buy
<sortie>
I totally want physical machines, but in practice, anyone doing anything useful with my OS, they're gonna stash it on some VM on some cloud provider
<kazinsal>
in a sense I'd be less selling the OS and more selling the hardware+support
<kazinsal>
yeah, I need to learn more about cloud networking
<sortie>
I think the networking is pretty trivial
<kazinsal>
both for osdev hackery and for work; the solutions architect I do a lot of stuff for has been declared the supreme emperor of cloud solutions
<sortie>
It's really all the virtio drivers, disk image formats, APIs called, etc.
<klange>
sortix as a google cloud option when
<sortie>
^^
<sham1>
That'd be neat
<sortie>
klange, uh, I did look at the compute engine pricing, seriously considered it, and went with a much cheaper competitor that gives me a really great deal
<klange>
(I feel like that joke would have been funnier with AWS, but I gotta play the cards I'm dealt)
<sham1>
Azure?
ravan_ has joined #osdev
<sortie>
That's where I host the infrastructure now. I got a big dedicated server and just spin up my recursive VMs.
<kazinsal>
I ought to actually spend some time and a few bucks on fiddling with the various cloud providers
<kazinsal>
we're technically an azure partner at work
<Jari-->
klange managed to get any funding for OS project or Open Source in general?
<sortie>
klange, I wasn't joking tho. I am seriously considering how to make compatible disk images for GCE, heck even AWS et al, I just only know GCE so far
Burgundy has joined #osdev
<sortie>
^^ This is how one's OS would probably get used in production for real.
<klange>
I think Travis's setups used to support nested virtualization, and I remember running tests with QEMU on them but I don't recall if I ever actually used KVM for it or if those tests run in TCG...
ravan_ has quit [Max SendQ exceeded]
<klange>
Github's stuff is all Docker madness.
ravan_ has joined #osdev
<kingoffrance>
sortie, any plans for multi-triangle aka pyramids?
<sortie>
GCE has a free tier that might be good enough to do a hint of experimentation with, although I can totally throw some bucks at some sizeable instances to test on. Not too bad if I don't run them permanently. Honestly it was the bandwidth I found too expensive.
ravan has quit [Ping timeout: 250 seconds]
<klange>
I could probably spin things up on a DO droplet...
<bslsk05>
gist.github.com: 11 Years of ToaruOS · GitHub
<sham1>
GeDaMo: oh man, that's odd looking
<GeDaMo>
Pyramid power! :P
<klange>
Heh, Toaru wallpaper eras. "Random Gnome-Look wallpapers" "screw it, here's one of the Miku wallpapers from my actual desktop" (that one is still on my left monitor but it's usually covered by a browser 24/7)
<sortie>
:D
<klange>
And then the "my own photos" era that continues to this day - 1.x was landscapes, 2.x is macro stuff
<sham1>
There was never a "monochromatic wallpaper" era interestingly
<kazinsal>
heh, my current wallpaper is one of the night shots from the macOS Mojave dynamic wallpaper
<klange>
Yutani has a default gray it will paint if there's no background window... which was actually a light blue originally.
<klange>
Went from light blue always being painted as a base to no base to "medium gray, but only if there's no bottom window, just to stop the ghosting effect".
<sham1>
I usually use #80020 because I like burgundy red
<sham1>
Err, #800020
<kazinsal>
I'm a purple kinda guy
<klange>
I also experimented with black and vary dark gray.
<kazinsal>
more blue-purple than red-purple.
<klange>
Hm, actually, I think I _do_ paint black now...
<sham1>
Black is the most "obvious"
<klange>
if (!yg->bottom_z || yg->bottom_z->anim_mode) { draw_fill(yg->backend_ctx, rgb(0,0,0)); }
<klange>
If there is no bottom window, or it's animating, I paint black. That was part of the login experience improvements, as the login screen does the "grow in/out" effect.
<kazinsal>
#5A4DDE is the "primary" accent colour for my project
<sham1>
sortie: that kinda looks like Windows 2K
<sham1>
I like it
<sortie>
Heck that blue still feels modern with a bit of transparent window decorations to give it a mid 2000's feel
<bslsk05>
en.wikipedia.org: Structure and Interpretation of Computer Programs - Wikipedia
Burgundy has quit [Remote host closed the connection]
<klange>
Hm, actually, this should go in that album... where's my SDL Yutani prototype screenshots...
<sham1>
SICP is nowadays in JavaScript
* klange
ventures into the dark forest that is imgur
Burgundy has joined #osdev
<sortie>
sham1, Windows 2K is one of my favorite computing eras growing up :)
<sham1>
I thought you'd venture into the OS screenshots thread of the forum
<kazinsal>
whoa, there's a forum?
<sortie>
Holy shit what a forum?
<kazinsal>
(the inverse of the classic SA joke "there's a front page?")
<klange>
The forum is slow these days, but it's at least been working for the last month or two.
<sham1>
Yeah
<klange>
And we don't get a bunch of spam I have to deal with!
<sham1>
Too much flamewar IMO
<klange>
Also I finally got wiki admin sorted out, woo.
<kazinsal>
I kinda tuned out of the forum after that extremely abrasive bzt dude got unbanned
<sortie>
sham1, yeah this color scheme reminding people of those times is a great thing, because it makes even the simplest screenshot like that, invoke some expectation of underlying power and flexibility (which totally isn't there, at least during that ancient screenshot)
<kazinsal>
anything actually intellectually stimulating in the osdev community happens here anyways
<kazinsal>
on the forum you've got "why is os crashing *dereferences null pointer*" and "look i made os [screenshot of a BIOS print string hello world booting from a floppy in bochs]"
<klange>
i mean, we get those here too
<kazinsal>
yeah but we also get vintage ISA discussion and practical OS design discussion and catgirls
<sham1>
Yeah, the developer section has a lot of relatively easy questions
<klange>
if you want catgirls on the forum, that can be arranged
<kazinsal>
amazon affiliate link for programmer socks and clip on headphone cat ears
<sham1>
Next April fools
<kazinsal>
maybe this year I'll get around to doing my 5150-compatible unix clone for april fools
<klange>
I'm sure if we had adsense or something embedded on the forum we'd get that sort of stuff
<sham1>
Speaking of compositors (on Linux land instead of in a custom OS because I just can't be arsed enough) I've actually needed to look into some interesting maths. Might just write a blog post, I suppose some people might find creating unions of rectangles using line sweeps useful
<klange>
(just in case anyone thought I was exagerating when I said I'd had that repository sitting around since 2015 and didn't get around to actually working on it until 2021)
* kazinsal
contemplates just bolting all of his code onto Misaka instead of writing a new kernel core...
<klange>
oh there was actually a _different_ solid color default background for Yutani after the SDL prototype https://i.imgur.com/3Lbk9xe.png
<geist>
oh thanks for reminding me, i meant to retweet that
<kazinsal>
same
<kazinsal>
hmm. it's three in the morning. why am I still awake
<bslsk05>
techcommunity.microsoft.com: Windows Kernel - Microsoft Tech Community
<sham1>
Okay
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
lkurusa has joined #osdev
Killashi234 has joined #osdev
<Killashi234>
Hello
<Killashi234>
Wait wait
<Killashi234>
Did I mistype my username or did I leave my other computer on
<Killashi234>
hm
Killashi234 has left #osdev [#osdev]
Killashi234 has joined #osdev
Killashi234 has quit [Client Quit]
lkurusa has quit [Client Quit]
sonny has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
lkurusa has joined #osdev
mahmutov has quit [Ping timeout: 256 seconds]
Lugar has joined #osdev
sonny has quit [Ping timeout: 250 seconds]
mahmutov has joined #osdev
sonny has joined #osdev
<junon>
Reading AMD64 vol 2 and it overviews SMM - is that code that is written by the system programmer? Or is it supplied by the processor that allows you to call into firmware stuff? It's really vague.
sonny has left #osdev [#osdev]
<sham1>
IIRC SMM is firmware stuff
<clever>
i think it comes from the bios blob, yeah
<clever>
and it basically just lets the bios continue to run, without the old problems of having to drop from virtual to real mode
<junon>
ah okay so it's almost an interrupt system between protected (or above) mode kernels and the BIOS, akin to ring 3 -> ring 0 interrupts?
<junon>
are SMIs standardized then? or are they different on each machine?
<clever>
i assume they are standardized
<clever>
i think the SMM can also trap IO ports
<clever>
so it can emulate a ps2 keyboard, and route it over usb
<bslsk05>
wiki.osdev.org: System Management Mode - OSDev Wiki
<clever>
junon: yeah, it looks like a whole other ring, and the cpu will context-switch in/out automatically, and then whatever code the bios/firmware setup runs to handle things
<junon>
ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
<junon>
Wow that's a much better explanation of it
<junon>
Thanks
<clever>
and it doesnt go thru the IDT, so the os cant really block it
<clever>
or break it
<junon>
Yeah makes sense
<junon>
I suppose it could have been a dedicated coprocessor but they did it this way to keep things all in one arch/spot/etc instead of making firmware vendors target a completely different ISA or something, yeah?
<clever>
yeah
<clever>
its far simpler to just context-switch then to add a whole other core
<junon>
cool
<clever>
fewer transistors in the cpu
<junon>
yeah definitely
<clever>
but at the cost that the OS just halts when you run SMM code
<clever>
junon: you might find more information in the coreboot source, since thats replacing the bios
<junon>
SMM code is pretty lightweight though no?
<junon>
and yeah good idea, I'll check there.
<clever>
yeah, if designed right, it shouldnt cost much time
<clever>
one of my older laptops, would lock up solid for ~0.5 seconds, every time the cpu freq changed
<clever>
and the FIFO from the internal keyboard would overflow if i type during that time
<clever>
causing loss of key-up events, causing auto-repeat to just take off
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<junon>
oh god haha
<clever>
junon: for extra fun, `ls -lh` causes the cpu usage to spike enough to make it change freq
<clever>
and the downclock afterwards, lines up with me reacting to the output, and typing the next cmd
<clever>
so basically every command i type, will drop keys and repeat others
<junon>
yuck
<clever>
i never found a proper fix
<junon>
so SMM also manages CPU voltage and whatnot, is it what controls parking and whatnot?
<clever>
but at the time, the governer was in userland, and had proper config files
<clever>
so i just told it to wait until the cpu usage is high for 30 seconds before stepping up
<clever>
then its less twitchy on the trigger
<clever>
junon: i think thats highly chip dependant
<clever>
some may hide it behind SMM code, others may directly expose it with acpi AML
<clever>
some may just use AML to poke the SMM
<junon>
Ah okay, so there's a tight relationship between SMM and ACPI then
<junon>
what's AML?
<clever>
a bytecode in acpi
<clever>
so you can run executable code the bios gave you
<clever>
in any isa
<clever>
(32bit vs 64bit)
bauen1 has joined #osdev
<junon>
o-o
<junon>
you have to implement a bytecode interpreter to run ACPI stuff?
<junon>
in the kernel?
<junon>
(I haven't gotten to ACPI yet but I hear a lot of groaning about it)
<junon>
either a 3-clause BSD, GPLv2, or an intel license - your choice.
biblio has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
Sos has quit [Quit: Leaving]
<Ermine>
Acpi specification is more than 1000 pages long...
<geist>
i can tell you that acpica is pretty easy to integrate, provided your os has some sort of mutex and routes to map/unmap mmio space, or is in a supervisor mode where it can directly do so
<geist>
downside is the esult is pretty large, 200KB or so of .text/data
<Oli>
You can say it is specific
<geist>
apica does have a nice porting layer, however
GreaseMonkey has joined #osdev
<Ermine>
Is acpica big because of portability layer?
<clever>
Ermine: i suspect its big just due to how many functions there are
eroux has joined #osdev
<geist>
yah most of it is a huge pile of if/elses and a shitton of structures
<geist>
since it has all the routines to parse every possible combination of everything
<geist>
plus the bytecode interpreter
<geist>
and also that does't link time optimize out that well, since most of the code is reachable through a relatively few entry points: parse_this_table() or run_this_bytecode(), etc
blockhead has joined #osdev
<Oli>
Seems like a good scenario for a jump table work
eroux has quit [Ping timeout: 256 seconds]
<geist>
yah lots of switch statements so the code probably already uses it
<geist>
it's basically lots of plain C. I don't particularly like the style of the code, it's very windowsy but that's their choice
<CompanionCube>
using kaitai struct in kernel space would be a new one :P
<CompanionCube>
doesn't seem to have a plain C output, which is likely to be a Problem