<clever>
starting to cool off here, after that last wave
<geist>
yah it's nice outside here now
<kazinsal>
same here
<kazinsal>
the firestorm weather in the interior is pretty wicked though
riposte has quit [Quit: Quitting]
nyah has joined #osdev
sts-q has quit [Ping timeout: 265 seconds]
ElectronApps has joined #osdev
sts-q has joined #osdev
<doug16k>
no air conditioner?
<clever>
doug16k: correct
<clever>
in canada, you only need one for maybe one week every year
<doug16k>
it's worse here
<doug16k>
more like, you are soaked with sweat all day every day one week of the year, rest is just stuffy awful, or beautiful
<doug16k>
it's not that hot this year though
<doug16k>
places where it usually isn't bad are getting it
<doug16k>
honestly though I run straight to the air conditioned office after I go outside :P
<doug16k>
humidity is pretty uncomfortable
<air>
it is awesome here, a nice ~105F everyday, but still have a jacket when going to the store which runs their AC too low
mctpyt has joined #osdev
heat has quit [Ping timeout: 265 seconds]
bermuda911 has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
<bermuda911>
Yes, as the logs show , all of you are knowing where things go to, especially Klange and Geist and Clever such enthusiasts wasting the worlds time, after all the logs and how you were thrown out from freenode show what intelligence we are talking about here, dudes belive it is ridiculous . geist never passed a single turing test on the channel and only parroted how to sanction me and how mentally ill i am, total mistakes dude, and yeah you know
<bermuda911>
everything including all where my talks are heading too indeed, based of your intelligence you can sort of anticipate literally "everywhere" how things work, and the truth is something you can aniticipate when getting a lot of anal from others, that this guy is dangerously talking about truth where we OSDEV "heros" lack any senses what is even right or wrong, you are a waste of time in the world, and probably get removed from libera.chat too.
bermuda911 has quit [Quit: Leaving]
srjek|home has quit [Ping timeout: 240 seconds]
ElectronApps has quit [Read error: Connection reset by peer]
sprock has quit [Quit: brb]
ElectronApps has joined #osdev
sprock has joined #osdev
GeDaMo has joined #osdev
ElectronApps has quit [Read error: Connection reset by peer]
sprock has quit [Quit: brb]
sprock has joined #osdev
tenshi has joined #osdev
riposte has joined #osdev
mrlemke has quit [Read error: Connection reset by peer]
mrlemke has joined #osdev
riposte has quit [Quit: Quitting]
riposte has joined #osdev
riposte has quit [Remote host closed the connection]
riposte has joined #osdev
freakazoid333 has quit [Read error: Connection reset by peer]
JerryXiao has quit [Quit: Bye]
JerryXiao has joined #osdev
Arthuria has joined #osdev
ElectronApps has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]
<klange>
I could just... see how they're doing it, but that feels like cheating.
<klange>
I am also reading instruction listings and it's a very interesting little bytecode machine; primarily stack-based, but there is a "graphics state" which is essential dedicated registers for things like unit vectors and points.
asymptotically has joined #osdev
dennis95 has joined #osdev
mahmutov has quit [Ping timeout: 240 seconds]
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
<sortie>
klange is definitely building the matrix
Arthuria has quit [Read error: Connection reset by peer]
<bslsk05>
typesetinthefuture.com: Alien | Typeset In The Future
silverwhitefish has quit [Ping timeout: 272 seconds]
<sortie>
Oh no klange is affiliated with the people at Yutani
nick8325 has joined #osdev
mahmutov has joined #osdev
ElectronApps has quit [Read error: Connection reset by peer]
tacco has joined #osdev
froggey has quit [Ping timeout: 268 seconds]
zoey has joined #osdev
froggey has joined #osdev
_mrlemke_ has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]
mrlemke has quit [Ping timeout: 256 seconds]
Arthuria has joined #osdev
GeDaMo has quit [Ping timeout: 272 seconds]
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
GeDaMo has joined #osdev
<klange>
okay got curves implemented on my own, need to do compound glyphs and finish the extraneous metrics bits and it should be ready for at least an initial switchover, then I can invest some time in the instruction interpreter
Arthuria has quit [Read error: Connection reset by peer]
gmacd has quit [Read error: Connection reset by peer]
gmacd has joined #osdev
Skyz has joined #osdev
Skyz has quit [Client Quit]
dennis95_ has joined #osdev
dennis95 has quit [Remote host closed the connection]
dennis95_ is now known as dennis95
dennis95_ has joined #osdev
dennis95 has quit [Remote host closed the connection]
gmacd has quit [Read error: Connection reset by peer]
gmacd has joined #osdev
heat has quit [Read error: Connection reset by peer]
mahmutov has joined #osdev
gmacd has quit [Read error: Connection reset by peer]
gmacd has joined #osdev
dennis95_ has quit [Quit: Leaving]
asymptotically has quit [Quit: Leaving]
silverwhitefish has joined #osdev
happy-dude has joined #osdev
gmacd has quit [Read error: Connection reset by peer]
gmacd has joined #osdev
Arthuria has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
gmacd has quit [Read error: Connection reset by peer]
gmacd has joined #osdev
<alexander>
I'm trying to figure out how to identity map the first 4MiB of memory. I tried to have two entries (2MiB each) but they appear to be only 4KiB eventhough I set the PS bit and PAE is enabled. Did I miss something obvious? (https://gist.github.com/superaxander/a9cbd35a9833009ee5c14e5611322d85)
<bslsk05>
gist.github.com: boot.asm · GitHub
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
<ZetItUp>
change or eax, 1 << 8, to or eax, 1 << 3
<ZetItUp>
or b00000100 if you prefer that
gmacd has quit [Read error: Connection reset by peer]
happy-dude has quit [Quit: Reconnecting]
vdamewood has joined #osdev
<alexander>
But the LME bit is bit 8 right? Anyway changing 1 << 8 to either 0b100 or 1 << 3 did not work. Bochs tells me that I tried to set reserved bits in the EFER MSR.
<doug16k>
where does it fault? the ljmp?
<doug16k>
ah reserved bits
<alexander>
Yeah but that only happened after applying ZetItUp's suggestion
<doug16k>
can you make a new paste?
<doug16k>
is bochs built to support x86_64?
<doug16k>
the one in your package manager probably has a goofy configuration
<doug16k>
you should build it from source
<ZetItUp>
no idea btw if amd and intel's GDT are the same?
<doug16k>
ZetItUp, amd invented long mode
<alexander>
Is there an easy way to check? There is a cpuid check before this so that at least reports long mode support
<doug16k>
yeah, intel made theirs match amd's when they copied it
<ZetItUp>
doug16k ah ok :D
<doug16k>
the only significant difference is, (at least some) intel will decode a far jump in long mode, AMD won't because it says plain as day in the amd64 spec that you can't far jump in long mode
<doug16k>
absolute I mean
<ZetItUp>
oh :o
<alexander>
Before I changed the page table from one that simply had 512 4KiB entries it got past the long jump but I wanted to access additional memory after that which didn't work because it wasn't mapped
<doug16k>
portable way is push seg, push off, lret, or store it and jmp *something
<doug16k>
I had the simplest long mode page table init code ever a while ago in my rom project
<doug16k>
it used 1GB pages though
Arthuria has quit [Read error: Connection reset by peer]
<ZetItUp>
alexander you are in pmode before trying to enable long mode i hope? :D
<doug16k>
qemu doesn't limit check line 53 btw. only bochs or kvm will catch a limit violation
<doug16k>
QEMUs emulation won't trap invalid efer setting or invalid cr0 either
<doug16k>
long mode code working in qemu means nothing
<alexander>
Good thing I'm using Bochs in that case :P
<doug16k>
yes
<alexander>
Man I'm glad I'm making progress because this project is from 2018 but I got stuck back then, I'm glad I'm getting further now :)
<doug16k>
bochs strictly enforces everything
<doug16k>
it's so real, it forces the uart to be slow and makes it overrun if your code would overrun
<doug16k>
comments are wrong a lot
<doug16k>
use constants, not hardcoded crap with comments that are wrong
Arthuria has quit [Read error: Connection reset by peer]
<doug16k>
1 << 4 is hideous
Arthuria has joined #osdev
<doug16k>
avoid that
chrysanthematic has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]
<doug16k>
you typed enough to write the constant for PSE three times over
<doug16k>
...in comments
Arthuria has joined #osdev
<alexander>
Oh yeah I don't even remember if I wrote those comments myself
<doug16k>
you don't need PSE in long mode
Arthuria has quit [Read error: Connection reset by peer]
<doug16k>
TIL
Arthuria has joined #osdev
<doug16k>
PAE implies PSE
<alexander>
Yeah I don't remember where I originally read that but it was somewhere on the wiki
<doug16k>
use the real manual
Arthuria has quit [Read error: Connection reset by peer]
<doug16k>
I couldn't care less what the wiki says
Arthuria has joined #osdev
<alexander>
Oh yeah I know the wiki is just convenient sometimes
Arthuria has quit [Read error: Connection reset by peer]
<doug16k>
when it isn't a gauntlet to sign into the wiki, I might contribute again
Arthuria has joined #osdev
<alexander>
What do you mean?
<doug16k>
bunch of song and dance you have to do with the forum login or something. I can't be bothered
<doug16k>
I don't want to make an edit that badly
<doug16k>
it's an utterly inept login form
<alexander>
Oh I did that in 2015 so I don't even remember
<doug16k>
feels like a perl script in 1999
<doug16k>
what is it doing?
<doug16k>
it should have an account recovery that works like people expect
<doug16k>
send me a password reset, like a normal website
<doug16k>
some bb thing I have to go to or something? wut?
<alexander>
Yeah I dunno
<doug16k>
so inconvenient I can't be bothered
<doug16k>
I think the joke is, if you can't figure out the login, then we don't want the edit
<doug16k>
unfortunately that also means that people that know what they are doing get deflected away
<doug16k>
just the because of inconvenience
<kazinsal>
the wiki just reads the forum database for your account info iirc
<kazinsal>
but the forum software hasn't been upgraded since like 2007 so it's positively archaic
transistor has joined #osdev
GeDaMo has quit [Quit: Leaving.]
mathway has joined #osdev
<mathway>
Hi, guys. I am reading Tanenbaum's book "Structured Computer Organization" and now on the chapter dedicated to Operating systems. There's a question at the end of this chapter which sound like this and i can't solve it: Not all computers have a hardware bit that is automatically set when a page is written
<mathway>
to. Nevertheless, it is useful to keep track of which pages have been modified, to avoid
<mathway>
having to assume worst case and write all pages back to the disk after use. Assuming
<mathway>
that each page has hardware bits to separately enable access for reading, writing, and
<mathway>
execution, how can the operating system keep track of which pages are clean and
<mathway>
which are dirty?
<j`ey>
mathway: mark a page read only, if its written to, you page fault and can set the dirty bit
<mathway>
What means "operating system can keep track of which pages are clean and which are dirty?"
<mathway>
Hmm
<j`ey>
dirty = page that has been written to
<j`ey>
clean = not yet written to
<mathway>
Wow, it's an interesting solution. The dirty bit is stored somewhere in kernel's memory i guess?
<j`ey>
page tables usually
<immibis>
wherever the kernel wants to store it. It could be an unused bit in the page table, if you want to track it per virtual page instead of physical page
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
riposte has quit [Ping timeout: 256 seconds]
riposte has joined #osdev
<mathway>
Thanks a lot!
tenshi has quit [Quit: WeeChat 3.2]
<mathway>
Also, i have read an article about paging on wiki.osdev.org, which describes it in x86, and it mentions an access bit inside pd/pt. Can you tell me why it is useful? If it is set, it is still indeterministic if page have been written to or not, so os can't rely on it as a dirty bit. So, why intel developers decided to mark not as dirty bit, but access bit?
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
<immibis>
mathway: maybe you want to swap out infrequently used pages. If the access bit is set, the page isn't infrequently used.
<immibis>
assuming that you clear it every so often
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
<immibis>
both read access and write access are useful things to know
<immibis>
it's just one factor in the decision though - it's not a panacea. swapping out a clean file-backed page is cheaper than swapping out a dirty file-backed page, but swapping out a clean anonymous page is the same cost as a dirty anonymous page, unless the page was previously swapped out and still exists in the swapfile...
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
<immibis>
accessing a page that's been swapped out is expensive so if it's been accessed in the recent past you might guess it's going to be accessed in the near future, and therefore expensive to swap out
<immibis>
deduplicating a page is free but only if neither page gets written to... etc etc
<immibis>
there is no perfect memory management policy... except, maybe, leaving it to apps to indicate how their memory should be managed, so you can blame the app instead of the kernel when it's wrong :)
chrysanthematic has quit [Quit: chrysanthematic]
<immibis>
irrelevant trivia: the term "disk operating system" didn't come from a disk variant of something called an "operating system". It came from a system which operates disks.
<immibis>
i.e. a disk-operating system
<mathway>
That's so interesting... i need a little bit of time to understand
<mathway>
I need to clarify 2 terms. 1) Swapping out means to prepare a physical page to be reused by another application?; 2) anonymous page is page which has got no backed file i guess?
<mathway>
I thought before that os store all of the information needed for page-replacement policy inside some of its memory, not inside pd/pt structure
<bslsk05>
[ <div class="about-me">  <h2>About me</h2>  <p>  I am a software engineer from the Bay Area, currently working at <a href="http://www.salesforce.com">Salesforce</a>.  </p>  <p>  I love to learn new things and build things.  </p>  <p>  I have a <a href="https://github.com/davidcelis">Github</a> account.  </p>  <p> 
<kazinsal>
AI-powered code generation: still an incredibly bad idea
riposte has quit [Ping timeout: 265 seconds]
riposte has joined #osdev
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
f4t4l_3rr0r has joined #osdev
f4t4l_3rr0r has quit [Client Quit]
f4t4l_3rr0r has joined #osdev
sortie has quit [Quit: Leaving]
f4t4l_3rr0r is now known as IRCMonkey
Arthuria has quit [Ping timeout: 272 seconds]
flx has joined #osdev
Skyz has joined #osdev
flx has quit [Client Quit]
mathway has joined #osdev
mathway has quit [Ping timeout: 252 seconds]
IRCMonkey has quit [Quit: .oO (bbl tc folks~!)]
froggey has quit [Ping timeout: 258 seconds]
johnjay has joined #osdev
froggey has joined #osdev
wootehfoot has quit [Quit: Leaving]
wolfshappen has quit [Remote host closed the connection]