Guqin bibliography Updated 2025-07-16
Bibliography:
U.S. state Updated 2025-07-16
Geologic time scale hierarchy Updated 2025-07-16
Guzheng Updated 2025-07-16
San Francisco Updated 2025-07-16
x86 Paging Tutorial Page faults Updated 2025-07-16
When an exception happens, the CPU jumps to an address that the OS had previously registered as the fault handler. This is usually done at boot time by the OS.
This could happen for example due to a programming error:but there are cases where it is not a bug, for example in Linux when:
int *is = malloc(1);
is[2] = 1;- the program wants to increase its stack.
- the page was swapped to disk.The OS will need to do some work behind the processes back to get the page back into RAM.
History of radio Updated 2025-07-16
Journey to the West (1986 TV series) Updated 2025-07-16
x86 Paging Tutorial Page table entries Updated 2025-07-16
The exact format of table entries is fixed by the hardware.
The page table is then an array of
struct.On this simplified example, the page table entries contain only two fields:so in this example the hardware designers could have chosen the size of the page table to b
bits function
----- -----------------------------------------
20 physical address of the start of the page
1 present flag21 instead of 32 as we've used so far.All real page table entries have other fields, notably fields to set pages to read-only for Copy-on-write. This will be explained elsewhere.
It would be impractical to align things at 21 bits since memory is addressable by bytes and not bits. Therefore, even in only 21 bits are needed in this case, hardware designers would probably choose 32 to make access faster, and just reserve bits the remaining bits for later usage. The actual value on x86 is 32 bits.
Here is a screenshot from the Intel manual image "Formats of CR3 and Paging-Structure Entries with 32-Bit Paging" showing the structure of a page table in all its glory: Figure 1. "x86 page entry format".
The fields are explained in the manual just after.
Aufbau principle Updated 2025-07-16
Boring rule that says that less energetic atomic orbitals are filled first.
Much more interesting is actually determining that order, which the Madelung energy ordering rule is a reasonable approximation to.
x86 Paging Tutorial Process memory layout Updated 2025-07-16
For each process, the virtual address space looks like this:
------------------ 2^32 - 1
Stack (grows down)
v v v v v v v v v
------------------
(unmapped)
------------------ Maximum stack size.
(unmapped)
-------------------
mmap
-------------------
(unmapped)
-------------------
^^^^^^^^^^^^^^^^^^^
brk (grows up)
-------------------
BSS
-------------------
Data
-------------------
Text
-------------------
------------------- 0The kernel maintains a list of pages that belong to each process, and synchronizes that with the paging.
If the program accesses memory that does not belong to it, the kernel handles a page-fault, and decides what to do:
When an ELF file is loaded by the kernel to start a program with the
exec system call, the kernel automatically registers text, data, BSS and stack for the program.The
brk and mmap areas can be modified by request of the program through the brk and mmap system calls. But the kernel can also deny the program those areas if there is not enough memory.brk and mmap can be used to implement malloc, or the so called "heap".mmap is also used to load dynamically loaded libraries into the program's memory so that it can access and run it.Stack allocation: stackoverflow.com/questions/17671423/stack-allocation-for-process
Calculating exact addresses Things are complicated by:
- Address Space Layout Randomization.
- the fact that environment variables, CLI arguments, and some ELF header data take up initial stack space: unix.stackexchange.com/questions/145557/how-does-stack-allocation-work-in-linux/239323#239323
Why the text does not start at 0: stackoverflow.com/questions/14795164/why-do-linux-program-text-sections-start-at-0x0804800-and-stack-tops-start-at-0
x86 Paging Tutorial Second Level Address Translation Updated 2025-07-16
Two level address translation to make OS emulation more efficient.
Comedian Updated 2025-07-16
How to blackout your window without drilling Updated 2025-07-16
This is meant to be an answer to: diy.stackexchange.com/questions/27669/how-can-i-thoroughly-blackout-a-bedroom-window-on-a-budget but that question was protected and I can't answer right now because I don't have 10 reputation on the website, so here goes.
Automated theorem proving by halting problem reduction Updated 2025-07-16
If you can reduce a mathematical problem to the Halting problem of a specific turing machine, as in the case of a few machines of the Busy beaver scale, then using Turing machine deciders could serve as a method of automated theorem proving.
That feels like it could be an elegant proof method, as you reduce your problem to one of the most well studied representations that exists: a Turing machine.
However it also appears that certain problems cannot be reduced to a halting problem... OMG life sucks (or is awesome?): Section "Turing machine that halts if and only if Collatz conjecture is false".
Horizontal gene transfer Updated 2025-07-16
Ways in which it can happen:
How to teach Updated 2025-07-16
Off-the-shelf techniques to become a teaching superhero.
Customized website idea at: OurBigBook.com.
Industry Updated 2025-07-16
List of comics Updated 2025-07-16
Monolithic system Updated 2025-07-16
Unlisted articles are being shown, click here to show only listed articles.

