Application by Ciro Santilli 34 Updated +Created
Paging makes it easier to compile and run two programs or threads at the same time on a single computer.
For example, when you compile two programs, the compiler does not know if they are going to be running at the same time or not.
So nothing prevents it from using the same RAM address, say, 0x1234, to store a global variable.
And thread stacks, that must be contiguous and keep growing down until they overwrite each other, are an even bigger issue!
But if two programs use the same address and run at the same time, this is obviously going to break them!
Paging solves this problem beautifully by adding one degree of indirection:
(logical) ------------> (physical)
             paging
Where:
  • logical addresses are what userland programs see, e.g. the contents of rsi in mov eax, [rsi].
    They are often called "virtual" addresses as well.
  • physical addresses can be though of the values that go to physical RAM index wires.
    But keep in mind that this is not 100% true because of further indirections such as:
Compilers don't need to worry about other programs: they just use simple logical addresses.
As far as programs are concerned, they think they can use any address between 0 and 4GiB (2^32, FFFFFFFF) on 32-bit systems.
The OS then sets up paging so that identical logical addresses will go into different physical addresses and not overwrite each other.
This makes it much simpler to compile programs and run them at the same time.
Paging achieves that goal, and in addition:
  • the switch between programs is very fast, because it is implemented by hardware
  • the memory of both programs can grow and shrink as needed without too much fragmentation
  • one program can never access the memory of another program, even if it wanted to.
    This is good both for security, and to prevent bugs in one program from crashing other programs.
Or if you like non-funny jokes:
Figure 1.
Comparison between the Linux kernel userland memory virtualization and The Matrix
. Source. Is this RAM real?
64-bit architectures by Ciro Santilli 34 Updated +Created
64 bits is still too much address for current RAM sizes, so most architectures will use less bits.
x86_64 uses 48 bits (256 TiB), and legacy mode's PAE already allows 52-bit addresses (4 PiB). 56-bits is a likely future candidate.
12 of those 48 bits are already reserved for the offset, which leaves 36 bits.
If a 2 level approach is taken, the best split would be two 18 bit levels.
But that would mean that the page directory would have 2^18 = 256K entries, which would take too much RAM: close to a single-level paging for 32 bit architectures!
Therefore, 64 bit architectures create even further page levels, commonly 3 or 4.
x86_64 uses 4 levels in a 9 | 9 | 9 | 9 scheme, so that the upper level only takes up only 2^9 higher level entries.
The 48 bits are split equally into two disjoint parts:
----------------- FFFFFFFF FFFFFFFF
Top half
----------------- FFFF8000 00000000


Not addressable


----------------- 00007FFF FFFFFFFF
Bottom half
----------------- 00000000 00000000
A 5-level scheme is emerging in 2016: software.intel.com/sites/default/files/managed/2b/80/5-level_paging_white_paper.pdf which allows 52-bit addresses with 4k pagetables.
Linux kernel usage by Ciro Santilli 34 Updated +Created
The Linux kernel makes extensive usage of the paging features of x86 to allow fast process switches with small data fragmentation.
There are also however some features that the Linux kernel might not use, either because they are only for backwards compatibility, or because the Linux devs didn't feel it was worth it yet.
Why did Facebook buy WhatsApp? by Ciro Santilli 34 Updated +Created
Obviously with the single intention of killing a competitor.
It is impossible to make money off WhatsApp as it is because of end-to-end encryption.
Facebook just clearly bought it to prevent it from actually growing further and killing facebook.
It is mindblowing that the sale wasn't cancelled due to anti trust.
The outcome of this is that WhatApp will remain with the same feature set forever, while other competitors have been growing, notably Discord and Slack.
It seems that there is a case looming 10 years after the fact: www.cityam.com/facebook-fails-to-block-antitrust-lawsuit-over-whatsapp-and-instagram-ownership/ Wake up???
Electronvolt by Ciro Santilli 34 Updated +Created
After the 2019 redefinition of the SI base units it is by definition exactly Joules.
History of the University of Oxford by Ciro Santilli 34 Updated +Created
This book series appears to be the one: global.oup.com/academic/content/series/h/history-of-the-university-of-oxford-huo/. A mere 250 pounds+ each.
Video 1.
History of Oxford University by Chris Day (2018)
Source. A large part of the video talks about how the insane system of colleges of the University of Oxford came about organically.
  • youtu.be/uol4V1Wa8B0?t=343 at the University of Bologna, the original system was for students to decide what they would learn, and hire and fire teachers as they decided. This is opposed to the system of the university of Paris, in which teachers make the final decisions. He mentions that this is the system that the University of Oxford and the University of Cambridge use: the "congregation". He mentions that Oxbridge are one of the few universities that maintained this structure (as opposed to having funding sources select the final decision makers)
  • youtu.be/uol4V1Wa8B0?t=1327 mentions the quadrangle architecture which served as the basis of the Colleges: make a closed square with everything students need: Chapel, Hall to eat, classes and accommodation. This is based of course on monastic cloisters.
Oxbridge by Ciro Santilli 34 Updated +Created
Bloch sphere by Ciro Santilli 34 Updated +Created
A more concrete and easier to understand version of it is the more photon-specific Poincaré sphere, have a look at that one first.
Elongation factor by Ciro Santilli 34 Updated +Created
SVG 1.0 by Ciro Santilli 34 Updated +Created
Superconducting qubit by Ciro Santilli 34 Updated +Created
Aegisub by Ciro Santilli 34 Updated +Created
This worked well on 3.2.2 Ubuntu 20.10. Recommended.
First import video with:
aegisub-3.2 ourbigbook-parent.mkv
They don't have an aegisub executable without the version number. Amazing.
If you already have a subtitle file that you want to edit, then just pass it on as well:
aegisub-3.2 ourbigbook-parent.mkv ourbigbook-parent.ass
Ctrl + P: play and pause video.
Ctrl + 3: set current substitle start time.
Ctrl + 4: set current substitle end time.
Enter: finish editing the current entry and start a new one.
Ribosome small subunit by Ciro Santilli 34 Updated +Created
The small one in comparison to the ribosome large subunit.
Intermembrane space by Ciro Santilli 34 Updated +Created
Initial public offering by Ciro Santilli 34 Updated +Created
Stanford University faculty by Ciro Santilli 34 Updated +Created
SQL transaction by Ciro Santilli 34 Updated +Created
Spontaneous emission defies causality by Ciro Santilli 34 Updated +Created
TODO understand better, mentioned e.g. at Subtle is the Lord by Abraham Pais (1982) page 20, and is something that Einstein worked on.
Why is the spin of the electron half? by Ciro Santilli 34 Updated +Created
More interestingly, how is that implied by the Stern-Gerlach experiment?
physics.stackexchange.com/questions/266359/when-we-say-electron-spin-is-1-2-what-exactly-does-it-mean-1-2-of-what/266371#266371 suggests that half could either mean:

There are unlisted articles, also show them or only show them.