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
toBFFFFFFF
- the top 1/4 is kernel memory:
C0000000
toFFFFFFFF
, like this:------------------ FFFFFFFF Kernel ------------------ C0000000 ------------------ BFFFFFFF Process ------------------ 00000000
- the bottom 3/4 is program space:
- 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
to008FFFFF FFFFFFFF
- the top part to the kernel:
FFFF8000 00000000
toFFFFFFFF FFFFFFFF
, like this:------------------ FFFFFFFF Kernel ------------------ C0000000 (not addressable) ------------------ BFFFFFFF Process ------------------ 00000000
- the bottom part to processes
Kernel memory is also paged.
In previous versions, the paging was continuous, but with HIGHMEM this changed.
There is no clear physical memory split: stackoverflow.com/questions/30471742/physical-memory-userspace-kernel-split-on-linux-x86-64
Contains the genes: e. Coli K-12 MG1655 gene thrL, e. Coli K-12 MG1655 gene thrA, e. Coli K-12 MG1655 gene thrB and e. Coli K-12 MG1655 gene thrC, all of which have directly linked functionality.
We can find it by searching for the species in the BioCyc promoter database. This leads to: biocyc.org/group?id=:ALL-PROMOTERS&orgid=ECOLI.
By finding the first operon by position we reach: biocyc.org/ECOLI/NEW-IMAGE?object=TU0-42486.
That page lists several components of the promoter, which we should try to understand!
Some of the transcription factors are proteins:
After the first gene in the codon, thrL, there is a rho-independent termination. By comparing:we understand that the presence of threonine or isoleucine variants, L-threonyl and L-isoleucyl, makes the rho-independent termination become more efficient, so the control loop is quite direct! Not sure why it cares about isoleucine as well though.
TODO which factor is actually specific to that DNA region?
In the classification of finite simple groups, groups of Lie type are a set of infinite families of simple lie groups. These are the other infinite families besides te cyclic groups and alternating groups.
A decent list at: en.wikipedia.org/wiki/List_of_finite_simple_groups, en.wikipedia.org/wiki/Group_of_Lie_type is just too unclear. The groups of Lie type can be subdivided into:
- Chevalley groups
- TODO the rest
The first in this family discovered were a subset of the Chevalley groups by Galois: , so it might be a good first one to try and understand what it looks like.
TODO understand intuitively why they are called of Lie type. Their names , seem to correspond to the members of the classification of simple Lie groups which are also named like that.
But they are of course related to Lie groups, and as suggested at Video "Yang-Mills 1 by David Metzler (2011)" part 2, the continuity actually simplifies things.
This feels good.
One problem though is that Heroku is very opinionated, a likely like other PaaSes. So if you are trying something that is slightly off the mos common use case, you might be fucked.
Another problem with Heroku is that it is extremely difficult to debug a build that is broken on Heroku but not locally. We needed a way to be able to drop into a shell in the middle of build in case of failure. Otherwise it is impossible.
Deployment:
git push heroku HEAD:master
View stdout logs:
heroku logs --tail
PostgreSQL database, it seems to be delegated to AWS. How to browse database: stackoverflow.com/questions/20410873/how-can-i-browse-my-heroku-database
heroku pg:psql
Drop and recreate database:All tables are destroyed.
heroku pg:reset --confirm <app-name>
Restart app:
heroku restart
This was the first full scale nuclear reactor in the world, and was brought up slowly to test it out.
x86's multi-level paging scheme uses a 2 level K-ary tree with 2^10 bits on each level.
Addresses are now split as:
| directory (10 bits) | table (10 bits) | offset (12 bits) |
Then:
- the top 10 bits are used to walk the top level of the K-ary tree (
level0
)The top table is called a "directory of page tables".cr3
now points to the location on RAM of the page directory of the current process instead of page tables.Page directory entries are very similar to page table entries except that they point to the physical addresses of page tables instead of physical addresses of pages.Each directory entry also takes up 4 bytes, just like page entries, so that makes 4 KiB per process minimum.Page directory entries also contain a valid flag: if invalid, the OS does not allocate a page table for that entry, and saves memory.Each process has one and only one page directory associated to it (and pointed to bycr3
), so it will contain at least2^10 = 1K
page directory entries, much better than the minimum 1M entries required on a single-level scheme. - the next 10 bits are used to walk the second level of the K-ary tree (
level1
)Second level entries are also called page tables like the single level scheme.Page tables are only allocated only as needed by the OS.Each page table has only2^10 = 1K
page table entries instead of2^20
for the single paging scheme.Each process can now have up to2^10
page tables instead of2^20
for the single paging scheme. - the offset is again not used for translation, it only gives the offset within a page
One reason for using 10 bits on the first two levels (and not, say,
12 | 8 | 12
) is that each Page Table entry is 4 bytes long. Then the 2^10 entries of Page directories and Page Tables will fit nicely into 4Kb pages. This means that it faster and simpler to allocate and deallocate pages for that purpose.- qubit.guide/ HTML version od the book.
- github.com/thosgood/qubit.guide. Source code. Written in Bookdown.
- www.arturekert.org/iqis links to the lectures: www.youtube.com/@ArturEkert/playlists Well done in splitting those videos up!
- zhenyucai.com/post/intro_to_qi/
Interesting presentation cycle at Merton BTW: www.arturekert.org/teaching/merton
Artur looks like a cool teacher.
Tested as of Cataclysm: Dark Days Ahead 0.E-3-1, seems possible built-in:
- Disable autosave on settings
- Quisave (Esc + 9)
- To restore the save, just close the game window directly before clicking Yes or No on the "Watch the last moments of your life" dialog.
A less risky save scum can be achieved with rsync:and after you die:
rsync -av ~/.local/share/cataclysm-dda/save/ ~/.local/share/cataclysm-dda/save.bak/
rsync -av ~/.local/share/cataclysm-dda/save.bak/ ~/.local/share/cataclysm-dda/save/
In 2015, they got a 50 million investment from Grupo Arcano, led by Alberto Chang-Rajii, who is a really shady character who fled from justice for 2 years:
Merged into Quantinuum later on in 2021.
What if Process 1 tries to access
0x00003000
, which is not present?The hardware notifies the software via a Page Fault Exception.
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.It just tries to accesses a certain byte in a given possible range, and if the OS is happy it adds that page to the process address space, otherwise, it sends a signal to the process.
- 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.The OS can discover that this is the case based on the contents of the rest of the page table entry, since if the present flag is clear, the other entries of the page table entry are completely left for the OS to to what it wants.On Linux for example, when present = 0:
- if all the fields of the page table entry are 0, invalid address.
- else, the page has been swapped to disk, and the actual values of those fields encode the position of the page on the disk.
In any case, the OS needs to know which address generated the Page Fault to be able to deal with the problem. This is why the nice IA32 developers set the value of
cr2
to that address whenever a Page Fault occurs. The exception handler can then just look into cr2
to get the address.After a translation between linear and physical address happens, it is stored on the TLB. For example, a 4 entry TLB starts in the following state:
valid linear physical
----- ------ --------
> 0 00000 00000
0 00000 00000
0 00000 00000
0 00000 00000
The
>
indicates the current entry to be replaced.And after a page linear address and after a second translation of
00003
is translated to a physical address 00005
, the TLB becomes: valid linear physical
----- ------ --------
1 00003 00005
> 0 00000 00000
0 00000 00000
0 00000 00000
00007
to 00009
it becomes: valid linear physical
----- ------ --------
1 00003 00005
1 00007 00009
> 0 00000 00000
0 00000 00000
Now if
00003
needs to be translated again, hardware first looks up the TLB and finds out its address with a single RAM access 00003 --> 00005
.Of course,
00000
is not on the TLB since no valid entry contains 00000
as a key.Apparently, DC current comes in, and microwaves come out.
TODO: sample power efficiently of this conversion and output spectrum of this conversion on some cheap device we can buy today.
The common ones.
Extremelly ironic that it was bought by Oxford University Press and ceased to be "Home University". University is broken.
One of the brightest natural objects in the sky, and by far the brightest not in the Milky Way! This is partly because it is relatively close to us.
www.quora.com/How-can-I-be-as-great-as-Bill-Gates-Steve-Jobs-Elon-Musk-or-Sir-Richard-Branson/answer/Justine-Musk is a fantastic ansewr by Justine Musk, Elon Musk's ex-fife, to the question:One of her key thesis is Many successful people are neurodiverse:
How can I be as great as Bill Gates, Steve Jobs, Elon Musk or Sir Richard Branson?
These people tend to be freaks and misfits who were forced to experience the world in an unusually challenging way. They developed strategies to survive, and as they grow older they find ways to apply these strategies to other things, and create for themselves a distinct and powerful advantage. They don't think the way other people think. They see things from angles that unlock new ideas and insights. Other people consider them to be somewhat insane.
Largest known ranks of an elliptic curve over the rational numbers Updated 2024-12-23 +Created 1970-01-01
web.math.pmf.unizg.hr/~duje/tors/rankhist.html gives a list with Elkies (2006) on top with:TODO why this non standard formulation?
There are unlisted articles, also show them or only show them.