English slang Updated +Created
Primary school Updated +Created
Teaching statement Updated +Created
Part of the motivation letter required by some American universities explaining how amazing of a teacher you are, e.g.: wstein.org/job/Teaching/index.html
Eppendorf tube Updated +Created
Hox gene Updated +Created
MUD (game genre) Updated +Created
Student society Updated +Created
Conglomerate (company) Updated +Created
Enterprise wiki Updated +Created
Particle creation and annihilation Updated +Created
Predicted by the Dirac equation.
We've likely known since forever that photons are created: just turn on a light and see gazillion of them come out!
Photon creation is easy because photons are massless, so there is not minimum energy to create them.
The creation of other particles is much rarer however, and took longer to be discovered, one notable milestone being the discovery of the positron.
In the case of the electron, we need to start with at least enough energy for the mass of the electron positron pair. This requires a photon with wavelength in the picometer range, which is not common in the thermal radiation of daily life.
Symmetry breaking Updated +Created
Technology company Updated +Created
Latin phrase Updated +Created
Optimization problem Updated +Created
Secondary school Updated +Created
x86 Paging Tutorial / Application 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 4 GiB (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?
Canada Updated +Created
Feedback loop Updated +Created
Fingerprinting (cybersecurity) Updated +Created

Unlisted articles are being shown, click here to show only listed articles.