• DNS Main architecture
  • DNS Requests
  • DNS Zone file records
  • DNS Security
  • Useful commands / tool

DNS Main architecture

This post is a personal “pot-pourri” of some researches I have made on main memory (RAM) and OS initialization steps …


  • CPU real mode
  • CPU protected mode
  • Paging
  • Kernel memory management
  • Process memory management
  • ELF extension
  • Linux booting steps (for main memory)

CPU real mode

Most CPUs (Intel) start in “real mode”.
This mode can address 20 bits of memory.
Thus, a total of 1MB is available: from 00000H to FFFFFH.
This 1 MB is also known as “conventional memory” (it was considered as a large amount back at that time).

Memory is accessed by putting the right values in the right registers:

This blog post follows the previous one on the Central Processing Unit (CPU).

“CPU, cores, tasks, hyperthreading, multithreading, user threads, multi-cores”
A lot of vocabulary exists when it comes to parallelism in CPUs / OS.
Moreover, we don’t know exactly what is responsible for what:
Hardware ? CPU ? Assembly ? OS kernel code ? User code ?
I tried to get a better understanding and made some illustrations.


  • Single core CPU
  • How are user processes and threads scheduled ?
  • Hyper-threading
  • Multi-cores CPU

Single core CPU

A first and naive representation of a CPU could be the following:


  • What is a CPU ?
  • CPU main components
  • CPU interrupts
  • AMD, Intel, ARM

What is a CPU ?

The Central Processing Unit (CPU) is the brain / heart of a computer as it executes instructions.
Instructions are coded in a language called “assembly” which is the only one spoken by the CPU.
Each CPU manufacturer has its own version of assembly language.
That’s the reason why one needs to select a specific CPU architecture in order to download the Debian operating system (Figure 1).

‘VPN’ has become a catch-all term nowadays.
What does VPN mean ?
→ A software used to insure privacy on the internet ?
→ A way to connect 2 distant private networks together ?
→ An encryption mechanism ?
→ A tunneling protocol ?
→ A type of router / firewall ?
→ A layer 2 / 3 / 4 protocol ?
I’ll try to shed light on everything above.


  • Network tunnels (types, layers)
  • Basic tunneling protocols (IP-in-IP, GRE)
  • Improved tunneling protocols (PPTP, L2TP)
  • Security (IPSec, TLS)
  • VPN Timeline

Network tunnels

In computer networks, a tunneling protocol is a communications protocol that…

This blog post aims to create a big picture of cryptography in the IT world.


  • Vocabulary
  • Symmetric Ciphers
  • Asymmetric ciphers
  • Diffie-Hellman key exchange
  • Hash
  • HMAC — Keyed-hash message authentication code
  • Digital Signature
  • Certificates


In the last blog post, we studied the Internet Protocol and how computers can transmit packets between them.

Now let’s understand two most commonly used upper-layer protocols: UDP and TCP.


  • UDP
  • TCP
  • Socket abstraction

UDP (User Datagram Protocol)

UDP is very close to the lower protocol (IP) as it doesn’t add much features / complexity.
It is made to send IP packets without caring if the destination host receives the packets or not; a packet sent with UDP could never be received at all.
Thus one benefit of UDP is the transmission speed; useful for certain cases such as video or audio streaming. …

This blog post aims to create a big picture of the Internet protocol (IP) and the internetwork infrastructure allowing the transmission of IP packets.


  • Main IP transmission principle
  • IP packet anatomy
  • Routers
  • How are IP addresses attributed to LIRs (Local Internet Registries)?
  • Routing inside a LIR?
  • Routing between LIRs: BGP, peering, transit
  • Internet backbone (Tier 1 ISPs)

Main IP transmission principle

The Internet protocol allows two physically distant hosts to exchange (send and receive) data through networks composed of routers.

Exchanged data are encapsulated in “IP packets” which add meta-data in a header field.

The IP is a connectionless (no state between packets) and…

Studying network programming, I understood how to use Linux sockets in order to communicate with other systems/computers. I also studied a lot of higher level technologies built on top of sockets such as http, ssh, ftp.

I wrote this blog post while improving my understanding of Linux kernel networking features, from a socket to a NIC.


I) The Network Interface Controller (NIC)
II) The Network Interface
III) From socket to NIC
IV) Network interface functions

I) The Network Interface Controller (NIC)

According to Wikipedia; a NIC is a hardware component connecting a computer to a computer network.

Images are at the source of nearly every media. Therefore, I think it is interesting to get a glimpse of how images are stored on a computer. I have decided to get a tour of the most famous image format : jpg (or “jpeg”, as you may prefer).


  1. The basics
  2. The JPEG format
  3. The JPEG compression algorithm

1) The basics

Image values

Before diving deeper into jpeg, let’s first understand how image values are stored. An image is a set of pixels; a pixel is the smallest unit composing our image.

Each pixel carries :

  • A value for the red
  • A value for the blue

Grégoire Monet

I write my own computer science “cheatsheets” and “big pictures” as posts here. I mainly do it for myself but it may benefit others

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store