Kernel vs process memory layout by Ciro Santilli 34 Updated +Created
The Linux Kernel reserves two zones of virtual memory:
  • one for kernel memory
  • one for programs
The exact split is configured by CONFIG_VMSPLIT_.... By default:
  • on 32-bit:
    • the bottom 3/4 is program space: 00000000 to BFFFFFFF
    • the top 1/4 is kernel memory: C0000000 to FFFFFFFF, like this:
      ------------------ FFFFFFFF
      Kernel
      ------------------ C0000000
      ------------------ BFFFFFFF
      
      
      Process
      
      
      ------------------ 00000000
  • on 64-bit: currently only 48-bits are actually used, split into two equally sized disjoint spaces. The Linux kernel just assigns:
    • the bottom part to processes 00000000 00000000 to 008FFFFF FFFFFFFF
    • the top part to the kernel: FFFF8000 00000000 to FFFFFFFF FFFFFFFF, like this:
      ------------------ FFFFFFFF
      Kernel
      ------------------ C0000000
      
      
      (not addressable)
      
      
      ------------------ BFFFFFFF
      Process
      ------------------ 00000000
Kernel memory is also paged.
Identity mapping by Ciro Santilli 34 Updated +Created
FFFFF 000 points to its own physical address FFFFF 000. This kind of translation is called an "identity mapping", and can be very convenient for OS-level debugging.
Why not a balanced tree by Ciro Santilli 34 Updated +Created
Learned readers will ask themselves: so why use an unbalanced tree instead of balanced one, which offers better asymptotic times en.wikipedia.org/wiki/Self-balancing_binary_search_tree?
Likely:
  • the maximum number of entries is small enough due to memory size limitations, that we won't waste too much memory with the root directory entry
  • different entries would have different levels, and thus different access times
  • tree rotations would likely make caching more complicated
Electromagnetic radiation by Ciro Santilli 34 Updated +Created
Ubuntu release by Ciro Santilli 34 Updated +Created
Pros and cons of superconducting qubits by Ciro Santilli 34 Updated +Created
Closure table by Ciro Santilli 34 Updated +Created
INSERT (SQL) by Ciro Santilli 34 Updated +Created
Microsoft SQL Server by Ciro Santilli 34 Updated +Created
Giant magnetoresistance by Ciro Santilli 34 Updated +Created
Video 1.
Introduction to Spintronics by Aurélien Manchon (2020) giant magnetoresistance section
. Source.
Describes how giant magnetoresistance was used in magnetoresistive disk heads in the 90's providing a huge improvement in disk storage density over the pre-existing inductive sensors
Faster-than-light by Ciro Santilli 34 Updated +Created
In special relativity, it is impossible to travel faster than light.
One argument of why, is that if you could travel faster than light, then you could send a message to a point in Spacetime that is spacelike-separated from the present. But then since the target is spacelike separated, there exists a inertial frame of reference in which that event happens before the present, which would be hard to make sense of.
Even worse, it would be possible to travel back in time:
Chemical bond by Ciro Santilli 34 Updated +Created
RSA vs Diffie-Hellman by Ciro Santilli 34 Updated +Created
As its name indicates, Diffie-Hellman key exchange is a key exchange algorithm. TODO verify: this means that in order to transmit a message, both parties must first send data to one another to reach a shared secret key. For RSA on the other hand, you can just take the public key of the other party and send encrypted data to them, the receiver does not need to send you any data at any point.
Principal quantum number by Ciro Santilli 34 Updated +Created
Determines energy. This comes out directly from the resolution of the Schrödinger equation solution for the hydrogen atom where we have to set some arbitrary values of energy by separation of variables just like we have to set some arbitrary numbers when solving partial differential equations with the Fourier series. We then just happen to see that only certain integer values are possible to satisfy the equations.
Prokaryotic small ribosome subunit by Ciro Santilli 34 Updated +Created
Mars by Ciro Santilli 34 Updated +Created
ARM by Ciro Santilli 34 Updated +Created
Information about ARM paging can be found at: cirosantilli.com/linux-kernel-module-cheat#arm-paging
Copy-on-write by Ciro Santilli 34 Updated +Created
Besides a missing page, a very common source of page faults is copy-on-write (COW).
Page tables have extra flags that allow the OS to mark a page a read-only.
Those page faults only happen when a process tries to write to the page, and not read from it.
When Linux forks a process:
  • instead of copying all the pages, which is unnecessarily costly, it makes the page tables of the two process point to the same physical address.
  • it marks those linear addresses as read-only
  • whenever one of the processes tries to write to a page, the makes a copy of the physical memory, and updates the pages of the two process to point to the two different physical addresses

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