Ketika saya kecil, saya suka sekali nge-cheat dengan Cheat Engine. Ketika saya tahu Cheat Engine melakukan pekerjaannya dengan memodifikasi memori, saya jadi penasaran dengan apa yang sebenarnya terjadi. Mumpung saya mengambil kelas OS, hehe.
Position Independent Executables
Ketika Pak RMS menjelaskan adanya address yang berubah setiap kompilasi. Saya pun penasaran apa yang menyebabkan hal ini mungkin terjadi. Saya diberitahukan oleh dirtboll tentang PIC dan PIE.
PIE dapat mengurangi efektivitas ROP atau Return-Oriented Programming. Saya pun ingin tahu, apakah ROP sebuah paradigma programming analog dengan OOP? Ternyata ia adalah sebuah eksploit program stack.
Difference Between Internal and External Fragmentation
Saya penasaran akan apa yang dimaksud dengan fragmentasi dan bagaimana membedakan antara fragmentasi internal dan eksternal. Website ini menjelaskan cukup apa yang butuh saya tahu.
Fragmentasi eksternal bisa diatasi salah satunya dengan algoritma compaction. Saya penasaran, apa yang dimaksud dengan compaction dan bagaimana compaction terjadi?
Dalam slides, dibahas sebuah konsep yang disebut swapping. Saat saya install Debian dan membuat guest, ada istilah ‘swap’ yang baru sekarang saya paham maksud dan gunanya.
Ketika saya membaca slide, disebut semacam konsep caching untuk Page Table bernama TLB atau translation look-aside buffer. Untuk memperjelas, saya mencarinya di Google dan menemukan ini.
Karena literal translation binding dan linking mirip-mirip, saya sedikit tertukar-tukar. Syukurnya, thread StackOverflow ini memberikan pencerahan yang cukup agar saya dapat discern keduanya.
Bukankah dynamic linking selalu memiliki advantage di atas static linking? Thread ini memberikan pemaparan yang jelas bahwa static linking memiliki kelebihannya sendiri, meski konsep dynamic linking terkesan lebih hemat resource.
Dynamic Linking vs. Dynamic Loading
Saya sempat rancu antara linking dan loading. Untungnya laman ini menyelamatkan saya dari fog of ignorance.