diff --git a/00_crosscompiler/OLVASSEL.md b/.00_crosscompiler/OLVASSEL.md similarity index 100% rename from 00_crosscompiler/OLVASSEL.md rename to .00_crosscompiler/OLVASSEL.md diff --git a/00_crosscompiler/README.md b/.00_crosscompiler/README.md similarity index 100% rename from 00_crosscompiler/README.md rename to .00_crosscompiler/README.md diff --git a/01_bareminimum/Makefile b/.01_bareminimum/Makefile similarity index 100% rename from 01_bareminimum/Makefile rename to .01_bareminimum/Makefile diff --git a/01_bareminimum/OLVASSEL.md b/.01_bareminimum/OLVASSEL.md similarity index 100% rename from 01_bareminimum/OLVASSEL.md rename to .01_bareminimum/OLVASSEL.md diff --git a/01_bareminimum/README.md b/.01_bareminimum/README.md similarity index 100% rename from 01_bareminimum/README.md rename to .01_bareminimum/README.md diff --git a/01_bareminimum/kernel8.img b/.01_bareminimum/kernel8.img similarity index 100% rename from 01_bareminimum/kernel8.img rename to .01_bareminimum/kernel8.img diff --git a/01_bareminimum/link.ld b/.01_bareminimum/link.ld similarity index 100% rename from 01_bareminimum/link.ld rename to .01_bareminimum/link.ld diff --git a/01_bareminimum/start.S b/.01_bareminimum/start.S similarity index 100% rename from 01_bareminimum/start.S rename to .01_bareminimum/start.S diff --git a/02_multicorec/Makefile b/.02_multicorec/Makefile similarity index 100% rename from 02_multicorec/Makefile rename to .02_multicorec/Makefile diff --git a/02_multicorec/OLVASSEL.md b/.02_multicorec/OLVASSEL.md similarity index 100% rename from 02_multicorec/OLVASSEL.md rename to .02_multicorec/OLVASSEL.md diff --git a/02_multicorec/README.md b/.02_multicorec/README.md similarity index 100% rename from 02_multicorec/README.md rename to .02_multicorec/README.md diff --git a/02_multicorec/kernel8.img b/.02_multicorec/kernel8.img similarity index 100% rename from 02_multicorec/kernel8.img rename to .02_multicorec/kernel8.img diff --git a/02_multicorec/link.ld b/.02_multicorec/link.ld similarity index 100% rename from 02_multicorec/link.ld rename to .02_multicorec/link.ld diff --git a/02_multicorec/main.c b/.02_multicorec/main.c similarity index 100% rename from 02_multicorec/main.c rename to .02_multicorec/main.c diff --git a/02_multicorec/start.S b/.02_multicorec/start.S similarity index 100% rename from 02_multicorec/start.S rename to .02_multicorec/start.S diff --git a/03_uart1/Makefile b/.03_uart1/Makefile similarity index 100% rename from 03_uart1/Makefile rename to .03_uart1/Makefile diff --git a/03_uart1/OLVASSEL.md b/.03_uart1/OLVASSEL.md similarity index 100% rename from 03_uart1/OLVASSEL.md rename to .03_uart1/OLVASSEL.md diff --git a/03_uart1/README.md b/.03_uart1/README.md similarity index 100% rename from 03_uart1/README.md rename to .03_uart1/README.md diff --git a/03_uart1/gpio.h b/.03_uart1/gpio.h similarity index 100% rename from 03_uart1/gpio.h rename to .03_uart1/gpio.h diff --git a/03_uart1/kernel8.img b/.03_uart1/kernel8.img similarity index 100% rename from 03_uart1/kernel8.img rename to .03_uart1/kernel8.img diff --git a/03_uart1/link.ld b/.03_uart1/link.ld similarity index 100% rename from 03_uart1/link.ld rename to .03_uart1/link.ld diff --git a/03_uart1/main.c b/.03_uart1/main.c similarity index 100% rename from 03_uart1/main.c rename to .03_uart1/main.c diff --git a/03_uart1/start.S b/.03_uart1/start.S similarity index 100% rename from 03_uart1/start.S rename to .03_uart1/start.S diff --git a/03_uart1/uart.c b/.03_uart1/uart.c similarity index 100% rename from 03_uart1/uart.c rename to .03_uart1/uart.c diff --git a/03_uart1/uart.h b/.03_uart1/uart.h similarity index 100% rename from 03_uart1/uart.h rename to .03_uart1/uart.h diff --git a/04_mailboxes/Makefile b/.04_mailboxes/Makefile similarity index 100% rename from 04_mailboxes/Makefile rename to .04_mailboxes/Makefile diff --git a/04_mailboxes/OLVASSEL.md b/.04_mailboxes/OLVASSEL.md similarity index 100% rename from 04_mailboxes/OLVASSEL.md rename to .04_mailboxes/OLVASSEL.md diff --git a/04_mailboxes/README.md b/.04_mailboxes/README.md similarity index 100% rename from 04_mailboxes/README.md rename to .04_mailboxes/README.md diff --git a/04_mailboxes/gpio.h b/.04_mailboxes/gpio.h similarity index 100% rename from 04_mailboxes/gpio.h rename to .04_mailboxes/gpio.h diff --git a/04_mailboxes/kernel8.img b/.04_mailboxes/kernel8.img similarity index 100% rename from 04_mailboxes/kernel8.img rename to .04_mailboxes/kernel8.img diff --git a/04_mailboxes/link.ld b/.04_mailboxes/link.ld similarity index 100% rename from 04_mailboxes/link.ld rename to .04_mailboxes/link.ld diff --git a/04_mailboxes/main.c b/.04_mailboxes/main.c similarity index 100% rename from 04_mailboxes/main.c rename to .04_mailboxes/main.c diff --git a/04_mailboxes/mbox.c b/.04_mailboxes/mbox.c similarity index 100% rename from 04_mailboxes/mbox.c rename to .04_mailboxes/mbox.c diff --git a/04_mailboxes/mbox.h b/.04_mailboxes/mbox.h similarity index 100% rename from 04_mailboxes/mbox.h rename to .04_mailboxes/mbox.h diff --git a/04_mailboxes/start.S b/.04_mailboxes/start.S similarity index 100% rename from 04_mailboxes/start.S rename to .04_mailboxes/start.S diff --git a/04_mailboxes/uart.c b/.04_mailboxes/uart.c similarity index 100% rename from 04_mailboxes/uart.c rename to .04_mailboxes/uart.c diff --git a/04_mailboxes/uart.h b/.04_mailboxes/uart.h similarity index 100% rename from 04_mailboxes/uart.h rename to .04_mailboxes/uart.h diff --git a/06_random/Makefile b/.06_random/Makefile similarity index 100% rename from 06_random/Makefile rename to .06_random/Makefile diff --git a/06_random/OLVASSEL.md b/.06_random/OLVASSEL.md similarity index 100% rename from 06_random/OLVASSEL.md rename to .06_random/OLVASSEL.md diff --git a/06_random/README.md b/.06_random/README.md similarity index 100% rename from 06_random/README.md rename to .06_random/README.md diff --git a/06_random/gpio.h b/.06_random/gpio.h similarity index 100% rename from 06_random/gpio.h rename to .06_random/gpio.h diff --git a/06_random/kernel8.img b/.06_random/kernel8.img similarity index 100% rename from 06_random/kernel8.img rename to .06_random/kernel8.img diff --git a/06_random/link.ld b/.06_random/link.ld similarity index 100% rename from 06_random/link.ld rename to .06_random/link.ld diff --git a/06_random/main.c b/.06_random/main.c similarity index 100% rename from 06_random/main.c rename to .06_random/main.c diff --git a/06_random/mbox.c b/.06_random/mbox.c similarity index 100% rename from 06_random/mbox.c rename to .06_random/mbox.c diff --git a/06_random/mbox.h b/.06_random/mbox.h similarity index 100% rename from 06_random/mbox.h rename to .06_random/mbox.h diff --git a/06_random/rand.c b/.06_random/rand.c similarity index 100% rename from 06_random/rand.c rename to .06_random/rand.c diff --git a/06_random/rand.h b/.06_random/rand.h similarity index 100% rename from 06_random/rand.h rename to .06_random/rand.h diff --git a/06_random/start.S b/.06_random/start.S similarity index 100% rename from 06_random/start.S rename to .06_random/start.S diff --git a/06_random/uart.c b/.06_random/uart.c similarity index 100% rename from 06_random/uart.c rename to .06_random/uart.c diff --git a/06_random/uart.h b/.06_random/uart.h similarity index 100% rename from 06_random/uart.h rename to .06_random/uart.h diff --git a/07_delays/Makefile b/.07_delays/Makefile similarity index 100% rename from 07_delays/Makefile rename to .07_delays/Makefile diff --git a/07_delays/OLVASSEL.md b/.07_delays/OLVASSEL.md similarity index 100% rename from 07_delays/OLVASSEL.md rename to .07_delays/OLVASSEL.md diff --git a/07_delays/README.md b/.07_delays/README.md similarity index 100% rename from 07_delays/README.md rename to .07_delays/README.md diff --git a/07_delays/delays.c b/.07_delays/delays.c similarity index 100% rename from 07_delays/delays.c rename to .07_delays/delays.c diff --git a/07_delays/delays.h b/.07_delays/delays.h similarity index 100% rename from 07_delays/delays.h rename to .07_delays/delays.h diff --git a/07_delays/gpio.h b/.07_delays/gpio.h similarity index 100% rename from 07_delays/gpio.h rename to .07_delays/gpio.h diff --git a/07_delays/kernel8.img b/.07_delays/kernel8.img similarity index 100% rename from 07_delays/kernel8.img rename to .07_delays/kernel8.img diff --git a/07_delays/link.ld b/.07_delays/link.ld similarity index 100% rename from 07_delays/link.ld rename to .07_delays/link.ld diff --git a/07_delays/main.c b/.07_delays/main.c similarity index 100% rename from 07_delays/main.c rename to .07_delays/main.c diff --git a/07_delays/mbox.c b/.07_delays/mbox.c similarity index 100% rename from 07_delays/mbox.c rename to .07_delays/mbox.c diff --git a/07_delays/mbox.h b/.07_delays/mbox.h similarity index 100% rename from 07_delays/mbox.h rename to .07_delays/mbox.h diff --git a/07_delays/start.S b/.07_delays/start.S similarity index 100% rename from 07_delays/start.S rename to .07_delays/start.S diff --git a/07_delays/uart.c b/.07_delays/uart.c similarity index 100% rename from 07_delays/uart.c rename to .07_delays/uart.c diff --git a/07_delays/uart.h b/.07_delays/uart.h similarity index 100% rename from 07_delays/uart.h rename to .07_delays/uart.h diff --git a/08_power/Makefile b/.08_power/Makefile similarity index 100% rename from 08_power/Makefile rename to .08_power/Makefile diff --git a/08_power/OLVASSEL.md b/.08_power/OLVASSEL.md similarity index 100% rename from 08_power/OLVASSEL.md rename to .08_power/OLVASSEL.md diff --git a/08_power/README.md b/.08_power/README.md similarity index 100% rename from 08_power/README.md rename to .08_power/README.md diff --git a/08_power/delays.c b/.08_power/delays.c similarity index 100% rename from 08_power/delays.c rename to .08_power/delays.c diff --git a/08_power/delays.h b/.08_power/delays.h similarity index 100% rename from 08_power/delays.h rename to .08_power/delays.h diff --git a/08_power/gpio.h b/.08_power/gpio.h similarity index 100% rename from 08_power/gpio.h rename to .08_power/gpio.h diff --git a/08_power/kernel8.img b/.08_power/kernel8.img similarity index 100% rename from 08_power/kernel8.img rename to .08_power/kernel8.img diff --git a/08_power/link.ld b/.08_power/link.ld similarity index 100% rename from 08_power/link.ld rename to .08_power/link.ld diff --git a/08_power/main.c b/.08_power/main.c similarity index 100% rename from 08_power/main.c rename to .08_power/main.c diff --git a/08_power/mbox.c b/.08_power/mbox.c similarity index 100% rename from 08_power/mbox.c rename to .08_power/mbox.c diff --git a/08_power/mbox.h b/.08_power/mbox.h similarity index 100% rename from 08_power/mbox.h rename to .08_power/mbox.h diff --git a/08_power/power.c b/.08_power/power.c similarity index 100% rename from 08_power/power.c rename to .08_power/power.c diff --git a/08_power/power.h b/.08_power/power.h similarity index 100% rename from 08_power/power.h rename to .08_power/power.h diff --git a/08_power/start.S b/.08_power/start.S similarity index 100% rename from 08_power/start.S rename to .08_power/start.S diff --git a/08_power/uart.c b/.08_power/uart.c similarity index 100% rename from 08_power/uart.c rename to .08_power/uart.c diff --git a/08_power/uart.h b/.08_power/uart.h similarity index 100% rename from 08_power/uart.h rename to .08_power/uart.h diff --git a/09_framebuffer/Makefile b/.09_framebuffer/Makefile similarity index 100% rename from 09_framebuffer/Makefile rename to .09_framebuffer/Makefile diff --git a/09_framebuffer/OLVASSEL.md b/.09_framebuffer/OLVASSEL.md similarity index 100% rename from 09_framebuffer/OLVASSEL.md rename to .09_framebuffer/OLVASSEL.md diff --git a/09_framebuffer/README.md b/.09_framebuffer/README.md similarity index 100% rename from 09_framebuffer/README.md rename to .09_framebuffer/README.md diff --git a/09_framebuffer/delays.c b/.09_framebuffer/delays.c similarity index 100% rename from 09_framebuffer/delays.c rename to .09_framebuffer/delays.c diff --git a/09_framebuffer/delays.h b/.09_framebuffer/delays.h similarity index 100% rename from 09_framebuffer/delays.h rename to .09_framebuffer/delays.h diff --git a/09_framebuffer/gpio.h b/.09_framebuffer/gpio.h similarity index 100% rename from 09_framebuffer/gpio.h rename to .09_framebuffer/gpio.h diff --git a/09_framebuffer/homer.h b/.09_framebuffer/homer.h similarity index 100% rename from 09_framebuffer/homer.h rename to .09_framebuffer/homer.h diff --git a/09_framebuffer/kernel8.img b/.09_framebuffer/kernel8.img similarity index 100% rename from 09_framebuffer/kernel8.img rename to .09_framebuffer/kernel8.img diff --git a/09_framebuffer/lfb.c b/.09_framebuffer/lfb.c similarity index 100% rename from 09_framebuffer/lfb.c rename to .09_framebuffer/lfb.c diff --git a/09_framebuffer/lfb.h b/.09_framebuffer/lfb.h similarity index 100% rename from 09_framebuffer/lfb.h rename to .09_framebuffer/lfb.h diff --git a/09_framebuffer/link.ld b/.09_framebuffer/link.ld similarity index 100% rename from 09_framebuffer/link.ld rename to .09_framebuffer/link.ld diff --git a/09_framebuffer/main.c b/.09_framebuffer/main.c similarity index 100% rename from 09_framebuffer/main.c rename to .09_framebuffer/main.c diff --git a/09_framebuffer/mbox.c b/.09_framebuffer/mbox.c similarity index 100% rename from 09_framebuffer/mbox.c rename to .09_framebuffer/mbox.c diff --git a/09_framebuffer/mbox.h b/.09_framebuffer/mbox.h similarity index 100% rename from 09_framebuffer/mbox.h rename to .09_framebuffer/mbox.h diff --git a/09_framebuffer/start.S b/.09_framebuffer/start.S similarity index 100% rename from 09_framebuffer/start.S rename to .09_framebuffer/start.S diff --git a/09_framebuffer/uart.c b/.09_framebuffer/uart.c similarity index 100% rename from 09_framebuffer/uart.c rename to .09_framebuffer/uart.c diff --git a/09_framebuffer/uart.h b/.09_framebuffer/uart.h similarity index 100% rename from 09_framebuffer/uart.h rename to .09_framebuffer/uart.h diff --git a/0A_pcscreenfont/Makefile b/.0A_pcscreenfont/Makefile similarity index 100% rename from 0A_pcscreenfont/Makefile rename to .0A_pcscreenfont/Makefile diff --git a/0A_pcscreenfont/OLVASSEL.md b/.0A_pcscreenfont/OLVASSEL.md similarity index 100% rename from 0A_pcscreenfont/OLVASSEL.md rename to .0A_pcscreenfont/OLVASSEL.md diff --git a/0A_pcscreenfont/README.md b/.0A_pcscreenfont/README.md similarity index 100% rename from 0A_pcscreenfont/README.md rename to .0A_pcscreenfont/README.md diff --git a/0A_pcscreenfont/delays.c b/.0A_pcscreenfont/delays.c similarity index 100% rename from 0A_pcscreenfont/delays.c rename to .0A_pcscreenfont/delays.c diff --git a/0A_pcscreenfont/delays.h b/.0A_pcscreenfont/delays.h similarity index 100% rename from 0A_pcscreenfont/delays.h rename to .0A_pcscreenfont/delays.h diff --git a/0A_pcscreenfont/font.psf b/.0A_pcscreenfont/font.psf similarity index 100% rename from 0A_pcscreenfont/font.psf rename to .0A_pcscreenfont/font.psf diff --git a/0A_pcscreenfont/gpio.h b/.0A_pcscreenfont/gpio.h similarity index 100% rename from 0A_pcscreenfont/gpio.h rename to .0A_pcscreenfont/gpio.h diff --git a/0A_pcscreenfont/kernel8.img b/.0A_pcscreenfont/kernel8.img similarity index 100% rename from 0A_pcscreenfont/kernel8.img rename to .0A_pcscreenfont/kernel8.img diff --git a/0A_pcscreenfont/lfb.c b/.0A_pcscreenfont/lfb.c similarity index 100% rename from 0A_pcscreenfont/lfb.c rename to .0A_pcscreenfont/lfb.c diff --git a/0A_pcscreenfont/lfb.h b/.0A_pcscreenfont/lfb.h similarity index 100% rename from 0A_pcscreenfont/lfb.h rename to .0A_pcscreenfont/lfb.h diff --git a/0A_pcscreenfont/link.ld b/.0A_pcscreenfont/link.ld similarity index 100% rename from 0A_pcscreenfont/link.ld rename to .0A_pcscreenfont/link.ld diff --git a/0A_pcscreenfont/main.c b/.0A_pcscreenfont/main.c similarity index 100% rename from 0A_pcscreenfont/main.c rename to .0A_pcscreenfont/main.c diff --git a/0A_pcscreenfont/mbox.c b/.0A_pcscreenfont/mbox.c similarity index 100% rename from 0A_pcscreenfont/mbox.c rename to .0A_pcscreenfont/mbox.c diff --git a/0A_pcscreenfont/mbox.h b/.0A_pcscreenfont/mbox.h similarity index 100% rename from 0A_pcscreenfont/mbox.h rename to .0A_pcscreenfont/mbox.h diff --git a/0A_pcscreenfont/start.S b/.0A_pcscreenfont/start.S similarity index 100% rename from 0A_pcscreenfont/start.S rename to .0A_pcscreenfont/start.S diff --git a/0A_pcscreenfont/uart.c b/.0A_pcscreenfont/uart.c similarity index 100% rename from 0A_pcscreenfont/uart.c rename to .0A_pcscreenfont/uart.c diff --git a/0A_pcscreenfont/uart.h b/.0A_pcscreenfont/uart.h similarity index 100% rename from 0A_pcscreenfont/uart.h rename to .0A_pcscreenfont/uart.h diff --git a/0B_readsector/Makefile b/.0B_readsector/Makefile similarity index 100% rename from 0B_readsector/Makefile rename to .0B_readsector/Makefile diff --git a/0B_readsector/OLVASSEL.md b/.0B_readsector/OLVASSEL.md similarity index 100% rename from 0B_readsector/OLVASSEL.md rename to .0B_readsector/OLVASSEL.md diff --git a/0B_readsector/README.md b/.0B_readsector/README.md similarity index 100% rename from 0B_readsector/README.md rename to .0B_readsector/README.md diff --git a/0B_readsector/delays.c b/.0B_readsector/delays.c similarity index 100% rename from 0B_readsector/delays.c rename to .0B_readsector/delays.c diff --git a/0B_readsector/delays.h b/.0B_readsector/delays.h similarity index 100% rename from 0B_readsector/delays.h rename to .0B_readsector/delays.h diff --git a/0B_readsector/gpio.h b/.0B_readsector/gpio.h similarity index 100% rename from 0B_readsector/gpio.h rename to .0B_readsector/gpio.h diff --git a/0B_readsector/kernel8.img b/.0B_readsector/kernel8.img similarity index 100% rename from 0B_readsector/kernel8.img rename to .0B_readsector/kernel8.img diff --git a/0B_readsector/link.ld b/.0B_readsector/link.ld similarity index 100% rename from 0B_readsector/link.ld rename to .0B_readsector/link.ld diff --git a/0B_readsector/main.c b/.0B_readsector/main.c similarity index 100% rename from 0B_readsector/main.c rename to .0B_readsector/main.c diff --git a/0B_readsector/mbox.c b/.0B_readsector/mbox.c similarity index 100% rename from 0B_readsector/mbox.c rename to .0B_readsector/mbox.c diff --git a/0B_readsector/mbox.h b/.0B_readsector/mbox.h similarity index 100% rename from 0B_readsector/mbox.h rename to .0B_readsector/mbox.h diff --git a/0B_readsector/sd.c b/.0B_readsector/sd.c similarity index 100% rename from 0B_readsector/sd.c rename to .0B_readsector/sd.c diff --git a/0B_readsector/sd.h b/.0B_readsector/sd.h similarity index 100% rename from 0B_readsector/sd.h rename to .0B_readsector/sd.h diff --git a/0B_readsector/start.S b/.0B_readsector/start.S similarity index 100% rename from 0B_readsector/start.S rename to .0B_readsector/start.S diff --git a/0B_readsector/uart.c b/.0B_readsector/uart.c similarity index 100% rename from 0B_readsector/uart.c rename to .0B_readsector/uart.c diff --git a/0B_readsector/uart.h b/.0B_readsector/uart.h similarity index 100% rename from 0B_readsector/uart.h rename to .0B_readsector/uart.h diff --git a/0C_directory/Makefile b/.0C_directory/Makefile similarity index 100% rename from 0C_directory/Makefile rename to .0C_directory/Makefile diff --git a/0C_directory/OLVASSEL.md b/.0C_directory/OLVASSEL.md similarity index 100% rename from 0C_directory/OLVASSEL.md rename to .0C_directory/OLVASSEL.md diff --git a/0C_directory/README.md b/.0C_directory/README.md similarity index 100% rename from 0C_directory/README.md rename to .0C_directory/README.md diff --git a/0C_directory/delays.c b/.0C_directory/delays.c similarity index 100% rename from 0C_directory/delays.c rename to .0C_directory/delays.c diff --git a/0C_directory/delays.h b/.0C_directory/delays.h similarity index 100% rename from 0C_directory/delays.h rename to .0C_directory/delays.h diff --git a/0C_directory/fat.c b/.0C_directory/fat.c similarity index 100% rename from 0C_directory/fat.c rename to .0C_directory/fat.c diff --git a/0C_directory/fat.h b/.0C_directory/fat.h similarity index 100% rename from 0C_directory/fat.h rename to .0C_directory/fat.h diff --git a/0C_directory/gpio.h b/.0C_directory/gpio.h similarity index 100% rename from 0C_directory/gpio.h rename to .0C_directory/gpio.h diff --git a/0C_directory/kernel8.img b/.0C_directory/kernel8.img similarity index 100% rename from 0C_directory/kernel8.img rename to .0C_directory/kernel8.img diff --git a/0C_directory/link.ld b/.0C_directory/link.ld similarity index 100% rename from 0C_directory/link.ld rename to .0C_directory/link.ld diff --git a/0C_directory/main.c b/.0C_directory/main.c similarity index 100% rename from 0C_directory/main.c rename to .0C_directory/main.c diff --git a/0C_directory/mbox.c b/.0C_directory/mbox.c similarity index 100% rename from 0C_directory/mbox.c rename to .0C_directory/mbox.c diff --git a/0C_directory/mbox.h b/.0C_directory/mbox.h similarity index 100% rename from 0C_directory/mbox.h rename to .0C_directory/mbox.h diff --git a/0C_directory/sd.c b/.0C_directory/sd.c similarity index 100% rename from 0C_directory/sd.c rename to .0C_directory/sd.c diff --git a/0C_directory/sd.h b/.0C_directory/sd.h similarity index 100% rename from 0C_directory/sd.h rename to .0C_directory/sd.h diff --git a/0C_directory/start.S b/.0C_directory/start.S similarity index 100% rename from 0C_directory/start.S rename to .0C_directory/start.S diff --git a/0C_directory/uart.c b/.0C_directory/uart.c similarity index 100% rename from 0C_directory/uart.c rename to .0C_directory/uart.c diff --git a/0C_directory/uart.h b/.0C_directory/uart.h similarity index 100% rename from 0C_directory/uart.h rename to .0C_directory/uart.h diff --git a/0D_readfile/Makefile b/.0D_readfile/Makefile similarity index 100% rename from 0D_readfile/Makefile rename to .0D_readfile/Makefile diff --git a/0D_readfile/OLVASSEL.md b/.0D_readfile/OLVASSEL.md similarity index 100% rename from 0D_readfile/OLVASSEL.md rename to .0D_readfile/OLVASSEL.md diff --git a/0D_readfile/README.md b/.0D_readfile/README.md similarity index 100% rename from 0D_readfile/README.md rename to .0D_readfile/README.md diff --git a/0D_readfile/delays.c b/.0D_readfile/delays.c similarity index 100% rename from 0D_readfile/delays.c rename to .0D_readfile/delays.c diff --git a/0D_readfile/delays.h b/.0D_readfile/delays.h similarity index 100% rename from 0D_readfile/delays.h rename to .0D_readfile/delays.h diff --git a/0D_readfile/fat.c b/.0D_readfile/fat.c similarity index 100% rename from 0D_readfile/fat.c rename to .0D_readfile/fat.c diff --git a/0D_readfile/fat.h b/.0D_readfile/fat.h similarity index 100% rename from 0D_readfile/fat.h rename to .0D_readfile/fat.h diff --git a/0D_readfile/gpio.h b/.0D_readfile/gpio.h similarity index 100% rename from 0D_readfile/gpio.h rename to .0D_readfile/gpio.h diff --git a/0D_readfile/kernel8.img b/.0D_readfile/kernel8.img similarity index 100% rename from 0D_readfile/kernel8.img rename to .0D_readfile/kernel8.img diff --git a/0D_readfile/link.ld b/.0D_readfile/link.ld similarity index 100% rename from 0D_readfile/link.ld rename to .0D_readfile/link.ld diff --git a/0D_readfile/main.c b/.0D_readfile/main.c similarity index 100% rename from 0D_readfile/main.c rename to .0D_readfile/main.c diff --git a/0D_readfile/mbox.c b/.0D_readfile/mbox.c similarity index 100% rename from 0D_readfile/mbox.c rename to .0D_readfile/mbox.c diff --git a/0D_readfile/mbox.h b/.0D_readfile/mbox.h similarity index 100% rename from 0D_readfile/mbox.h rename to .0D_readfile/mbox.h diff --git a/0D_readfile/sd.c b/.0D_readfile/sd.c similarity index 100% rename from 0D_readfile/sd.c rename to .0D_readfile/sd.c diff --git a/0D_readfile/sd.h b/.0D_readfile/sd.h similarity index 100% rename from 0D_readfile/sd.h rename to .0D_readfile/sd.h diff --git a/0D_readfile/start.S b/.0D_readfile/start.S similarity index 100% rename from 0D_readfile/start.S rename to .0D_readfile/start.S diff --git a/0D_readfile/uart.c b/.0D_readfile/uart.c similarity index 100% rename from 0D_readfile/uart.c rename to .0D_readfile/uart.c diff --git a/0D_readfile/uart.h b/.0D_readfile/uart.h similarity index 100% rename from 0D_readfile/uart.h rename to .0D_readfile/uart.h diff --git a/0E_initrd/Makefile b/.0E_initrd/Makefile similarity index 100% rename from 0E_initrd/Makefile rename to .0E_initrd/Makefile diff --git a/0E_initrd/OLVASSEL.md b/.0E_initrd/OLVASSEL.md similarity index 100% rename from 0E_initrd/OLVASSEL.md rename to .0E_initrd/OLVASSEL.md diff --git a/0E_initrd/README.md b/.0E_initrd/README.md similarity index 100% rename from 0E_initrd/README.md rename to .0E_initrd/README.md diff --git a/0E_initrd/delays.c b/.0E_initrd/delays.c similarity index 100% rename from 0E_initrd/delays.c rename to .0E_initrd/delays.c diff --git a/0E_initrd/delays.h b/.0E_initrd/delays.h similarity index 100% rename from 0E_initrd/delays.h rename to .0E_initrd/delays.h diff --git a/0E_initrd/gpio.h b/.0E_initrd/gpio.h similarity index 100% rename from 0E_initrd/gpio.h rename to .0E_initrd/gpio.h diff --git a/0E_initrd/initrd.c b/.0E_initrd/initrd.c similarity index 100% rename from 0E_initrd/initrd.c rename to .0E_initrd/initrd.c diff --git a/0E_initrd/initrd.h b/.0E_initrd/initrd.h similarity index 100% rename from 0E_initrd/initrd.h rename to .0E_initrd/initrd.h diff --git a/0E_initrd/kernel8.img b/.0E_initrd/kernel8.img similarity index 100% rename from 0E_initrd/kernel8.img rename to .0E_initrd/kernel8.img diff --git a/0E_initrd/link.ld b/.0E_initrd/link.ld similarity index 100% rename from 0E_initrd/link.ld rename to .0E_initrd/link.ld diff --git a/0E_initrd/main.c b/.0E_initrd/main.c similarity index 100% rename from 0E_initrd/main.c rename to .0E_initrd/main.c diff --git a/0E_initrd/mbox.c b/.0E_initrd/mbox.c similarity index 100% rename from 0E_initrd/mbox.c rename to .0E_initrd/mbox.c diff --git a/0E_initrd/mbox.h b/.0E_initrd/mbox.h similarity index 100% rename from 0E_initrd/mbox.h rename to .0E_initrd/mbox.h diff --git a/0E_initrd/start.S b/.0E_initrd/start.S similarity index 100% rename from 0E_initrd/start.S rename to .0E_initrd/start.S diff --git a/0E_initrd/uart.c b/.0E_initrd/uart.c similarity index 100% rename from 0E_initrd/uart.c rename to .0E_initrd/uart.c diff --git a/0E_initrd/uart.h b/.0E_initrd/uart.h similarity index 100% rename from 0E_initrd/uart.h rename to .0E_initrd/uart.h diff --git a/0F_executionlevel/Makefile b/.0F_executionlevel/Makefile similarity index 100% rename from 0F_executionlevel/Makefile rename to .0F_executionlevel/Makefile diff --git a/0F_executionlevel/OLVASSEL.md b/.0F_executionlevel/OLVASSEL.md similarity index 100% rename from 0F_executionlevel/OLVASSEL.md rename to .0F_executionlevel/OLVASSEL.md diff --git a/0F_executionlevel/README.md b/.0F_executionlevel/README.md similarity index 100% rename from 0F_executionlevel/README.md rename to .0F_executionlevel/README.md diff --git a/0F_executionlevel/gpio.h b/.0F_executionlevel/gpio.h similarity index 100% rename from 0F_executionlevel/gpio.h rename to .0F_executionlevel/gpio.h diff --git a/0F_executionlevel/kernel8.img b/.0F_executionlevel/kernel8.img similarity index 100% rename from 0F_executionlevel/kernel8.img rename to .0F_executionlevel/kernel8.img diff --git a/0F_executionlevel/link.ld b/.0F_executionlevel/link.ld similarity index 100% rename from 0F_executionlevel/link.ld rename to .0F_executionlevel/link.ld diff --git a/0F_executionlevel/main.c b/.0F_executionlevel/main.c similarity index 100% rename from 0F_executionlevel/main.c rename to .0F_executionlevel/main.c diff --git a/0F_executionlevel/mbox.c b/.0F_executionlevel/mbox.c similarity index 100% rename from 0F_executionlevel/mbox.c rename to .0F_executionlevel/mbox.c diff --git a/0F_executionlevel/mbox.h b/.0F_executionlevel/mbox.h similarity index 100% rename from 0F_executionlevel/mbox.h rename to .0F_executionlevel/mbox.h diff --git a/0F_executionlevel/start.S b/.0F_executionlevel/start.S similarity index 100% rename from 0F_executionlevel/start.S rename to .0F_executionlevel/start.S diff --git a/0F_executionlevel/uart.c b/.0F_executionlevel/uart.c similarity index 100% rename from 0F_executionlevel/uart.c rename to .0F_executionlevel/uart.c diff --git a/0F_executionlevel/uart.h b/.0F_executionlevel/uart.h similarity index 100% rename from 0F_executionlevel/uart.h rename to .0F_executionlevel/uart.h diff --git a/10_virtualmemory/Makefile b/.10_virtualmemory/Makefile similarity index 100% rename from 10_virtualmemory/Makefile rename to .10_virtualmemory/Makefile diff --git a/10_virtualmemory/OLVASSEL.md b/.10_virtualmemory/OLVASSEL.md similarity index 100% rename from 10_virtualmemory/OLVASSEL.md rename to .10_virtualmemory/OLVASSEL.md diff --git a/10_virtualmemory/README.md b/.10_virtualmemory/README.md similarity index 100% rename from 10_virtualmemory/README.md rename to .10_virtualmemory/README.md diff --git a/10_virtualmemory/gpio.h b/.10_virtualmemory/gpio.h similarity index 100% rename from 10_virtualmemory/gpio.h rename to .10_virtualmemory/gpio.h diff --git a/10_virtualmemory/kernel8.img b/.10_virtualmemory/kernel8.img similarity index 100% rename from 10_virtualmemory/kernel8.img rename to .10_virtualmemory/kernel8.img diff --git a/10_virtualmemory/link.ld b/.10_virtualmemory/link.ld similarity index 100% rename from 10_virtualmemory/link.ld rename to .10_virtualmemory/link.ld diff --git a/10_virtualmemory/main.c b/.10_virtualmemory/main.c similarity index 100% rename from 10_virtualmemory/main.c rename to .10_virtualmemory/main.c diff --git a/10_virtualmemory/mbox.c b/.10_virtualmemory/mbox.c similarity index 100% rename from 10_virtualmemory/mbox.c rename to .10_virtualmemory/mbox.c diff --git a/10_virtualmemory/mbox.h b/.10_virtualmemory/mbox.h similarity index 100% rename from 10_virtualmemory/mbox.h rename to .10_virtualmemory/mbox.h diff --git a/10_virtualmemory/mmu.c b/.10_virtualmemory/mmu.c similarity index 100% rename from 10_virtualmemory/mmu.c rename to .10_virtualmemory/mmu.c diff --git a/10_virtualmemory/mmu.h b/.10_virtualmemory/mmu.h similarity index 100% rename from 10_virtualmemory/mmu.h rename to .10_virtualmemory/mmu.h diff --git a/10_virtualmemory/start.S b/.10_virtualmemory/start.S similarity index 100% rename from 10_virtualmemory/start.S rename to .10_virtualmemory/start.S diff --git a/10_virtualmemory/uart.c b/.10_virtualmemory/uart.c similarity index 100% rename from 10_virtualmemory/uart.c rename to .10_virtualmemory/uart.c diff --git a/10_virtualmemory/uart.h b/.10_virtualmemory/uart.h similarity index 100% rename from 10_virtualmemory/uart.h rename to .10_virtualmemory/uart.h diff --git a/11_exceptions/Makefile b/.11_exceptions/Makefile similarity index 100% rename from 11_exceptions/Makefile rename to .11_exceptions/Makefile diff --git a/11_exceptions/OLVASSEL.md b/.11_exceptions/OLVASSEL.md similarity index 100% rename from 11_exceptions/OLVASSEL.md rename to .11_exceptions/OLVASSEL.md diff --git a/11_exceptions/README.md b/.11_exceptions/README.md similarity index 100% rename from 11_exceptions/README.md rename to .11_exceptions/README.md diff --git a/11_exceptions/exc.c b/.11_exceptions/exc.c similarity index 100% rename from 11_exceptions/exc.c rename to .11_exceptions/exc.c diff --git a/11_exceptions/gpio.h b/.11_exceptions/gpio.h similarity index 100% rename from 11_exceptions/gpio.h rename to .11_exceptions/gpio.h diff --git a/11_exceptions/kernel8.img b/.11_exceptions/kernel8.img similarity index 100% rename from 11_exceptions/kernel8.img rename to .11_exceptions/kernel8.img diff --git a/11_exceptions/link.ld b/.11_exceptions/link.ld similarity index 100% rename from 11_exceptions/link.ld rename to .11_exceptions/link.ld diff --git a/11_exceptions/main.c b/.11_exceptions/main.c similarity index 100% rename from 11_exceptions/main.c rename to .11_exceptions/main.c diff --git a/11_exceptions/mbox.c b/.11_exceptions/mbox.c similarity index 100% rename from 11_exceptions/mbox.c rename to .11_exceptions/mbox.c diff --git a/11_exceptions/mbox.h b/.11_exceptions/mbox.h similarity index 100% rename from 11_exceptions/mbox.h rename to .11_exceptions/mbox.h diff --git a/11_exceptions/mmu.c b/.11_exceptions/mmu.c similarity index 100% rename from 11_exceptions/mmu.c rename to .11_exceptions/mmu.c diff --git a/11_exceptions/mmu.h b/.11_exceptions/mmu.h similarity index 100% rename from 11_exceptions/mmu.h rename to .11_exceptions/mmu.h diff --git a/11_exceptions/start.S b/.11_exceptions/start.S similarity index 100% rename from 11_exceptions/start.S rename to .11_exceptions/start.S diff --git a/11_exceptions/uart.c b/.11_exceptions/uart.c similarity index 100% rename from 11_exceptions/uart.c rename to .11_exceptions/uart.c diff --git a/11_exceptions/uart.h b/.11_exceptions/uart.h similarity index 100% rename from 11_exceptions/uart.h rename to .11_exceptions/uart.h diff --git a/12_printf/Makefile b/.12_printf/Makefile similarity index 100% rename from 12_printf/Makefile rename to .12_printf/Makefile diff --git a/12_printf/OLVASSEL.md b/.12_printf/OLVASSEL.md similarity index 100% rename from 12_printf/OLVASSEL.md rename to .12_printf/OLVASSEL.md diff --git a/12_printf/README.md b/.12_printf/README.md similarity index 100% rename from 12_printf/README.md rename to .12_printf/README.md diff --git a/12_printf/gpio.h b/.12_printf/gpio.h similarity index 100% rename from 12_printf/gpio.h rename to .12_printf/gpio.h diff --git a/12_printf/kernel8.img b/.12_printf/kernel8.img similarity index 100% rename from 12_printf/kernel8.img rename to .12_printf/kernel8.img diff --git a/12_printf/link.ld b/.12_printf/link.ld similarity index 100% rename from 12_printf/link.ld rename to .12_printf/link.ld diff --git a/12_printf/main.c b/.12_printf/main.c similarity index 100% rename from 12_printf/main.c rename to .12_printf/main.c diff --git a/12_printf/mbox.c b/.12_printf/mbox.c similarity index 100% rename from 12_printf/mbox.c rename to .12_printf/mbox.c diff --git a/12_printf/mbox.h b/.12_printf/mbox.h similarity index 100% rename from 12_printf/mbox.h rename to .12_printf/mbox.h diff --git a/12_printf/sprintf.c b/.12_printf/sprintf.c similarity index 100% rename from 12_printf/sprintf.c rename to .12_printf/sprintf.c diff --git a/12_printf/sprintf.h b/.12_printf/sprintf.h similarity index 100% rename from 12_printf/sprintf.h rename to .12_printf/sprintf.h diff --git a/12_printf/start.S b/.12_printf/start.S similarity index 100% rename from 12_printf/start.S rename to .12_printf/start.S diff --git a/12_printf/uart.c b/.12_printf/uart.c similarity index 100% rename from 12_printf/uart.c rename to .12_printf/uart.c diff --git a/12_printf/uart.h b/.12_printf/uart.h similarity index 100% rename from 12_printf/uart.h rename to .12_printf/uart.h diff --git a/13_debugger/Makefile b/.13_debugger/Makefile similarity index 100% rename from 13_debugger/Makefile rename to .13_debugger/Makefile diff --git a/13_debugger/OLVASSEL.md b/.13_debugger/OLVASSEL.md similarity index 100% rename from 13_debugger/OLVASSEL.md rename to .13_debugger/OLVASSEL.md diff --git a/13_debugger/README.md b/.13_debugger/README.md similarity index 100% rename from 13_debugger/README.md rename to .13_debugger/README.md diff --git a/13_debugger/dbg.c b/.13_debugger/dbg.c similarity index 100% rename from 13_debugger/dbg.c rename to .13_debugger/dbg.c diff --git a/13_debugger/dbg.h b/.13_debugger/dbg.h similarity index 100% rename from 13_debugger/dbg.h rename to .13_debugger/dbg.h diff --git a/13_debugger/disasm.h b/.13_debugger/disasm.h similarity index 100% rename from 13_debugger/disasm.h rename to .13_debugger/disasm.h diff --git a/13_debugger/gpio.h b/.13_debugger/gpio.h similarity index 100% rename from 13_debugger/gpio.h rename to .13_debugger/gpio.h diff --git a/13_debugger/kernel8.img b/.13_debugger/kernel8.img similarity index 100% rename from 13_debugger/kernel8.img rename to .13_debugger/kernel8.img diff --git a/13_debugger/link.ld b/.13_debugger/link.ld similarity index 100% rename from 13_debugger/link.ld rename to .13_debugger/link.ld diff --git a/13_debugger/main.c b/.13_debugger/main.c similarity index 100% rename from 13_debugger/main.c rename to .13_debugger/main.c diff --git a/13_debugger/mbox.c b/.13_debugger/mbox.c similarity index 100% rename from 13_debugger/mbox.c rename to .13_debugger/mbox.c diff --git a/13_debugger/mbox.h b/.13_debugger/mbox.h similarity index 100% rename from 13_debugger/mbox.h rename to .13_debugger/mbox.h diff --git a/13_debugger/sprintf.c b/.13_debugger/sprintf.c similarity index 100% rename from 13_debugger/sprintf.c rename to .13_debugger/sprintf.c diff --git a/13_debugger/sprintf.h b/.13_debugger/sprintf.h similarity index 100% rename from 13_debugger/sprintf.h rename to .13_debugger/sprintf.h diff --git a/13_debugger/start.S b/.13_debugger/start.S similarity index 100% rename from 13_debugger/start.S rename to .13_debugger/start.S diff --git a/13_debugger/uart.c b/.13_debugger/uart.c similarity index 100% rename from 13_debugger/uart.c rename to .13_debugger/uart.c diff --git a/13_debugger/uart.h b/.13_debugger/uart.h similarity index 100% rename from 13_debugger/uart.h rename to .13_debugger/uart.h diff --git a/14_raspbootin64/Makefile b/.14_raspbootin64/Makefile similarity index 100% rename from 14_raspbootin64/Makefile rename to .14_raspbootin64/Makefile diff --git a/14_raspbootin64/OLVASSEL.md b/.14_raspbootin64/OLVASSEL.md similarity index 100% rename from 14_raspbootin64/OLVASSEL.md rename to .14_raspbootin64/OLVASSEL.md diff --git a/14_raspbootin64/README.md b/.14_raspbootin64/README.md similarity index 100% rename from 14_raspbootin64/README.md rename to .14_raspbootin64/README.md diff --git a/14_raspbootin64/gpio.h b/.14_raspbootin64/gpio.h similarity index 100% rename from 14_raspbootin64/gpio.h rename to .14_raspbootin64/gpio.h diff --git a/14_raspbootin64/kernel8.img b/.14_raspbootin64/kernel8.img similarity index 100% rename from 14_raspbootin64/kernel8.img rename to .14_raspbootin64/kernel8.img diff --git a/14_raspbootin64/link.ld b/.14_raspbootin64/link.ld similarity index 100% rename from 14_raspbootin64/link.ld rename to .14_raspbootin64/link.ld diff --git a/14_raspbootin64/main.c b/.14_raspbootin64/main.c similarity index 100% rename from 14_raspbootin64/main.c rename to .14_raspbootin64/main.c diff --git a/14_raspbootin64/mbox.c b/.14_raspbootin64/mbox.c similarity index 100% rename from 14_raspbootin64/mbox.c rename to .14_raspbootin64/mbox.c diff --git a/14_raspbootin64/mbox.h b/.14_raspbootin64/mbox.h similarity index 100% rename from 14_raspbootin64/mbox.h rename to .14_raspbootin64/mbox.h diff --git a/14_raspbootin64/start.S b/.14_raspbootin64/start.S similarity index 100% rename from 14_raspbootin64/start.S rename to .14_raspbootin64/start.S diff --git a/14_raspbootin64/uart.c b/.14_raspbootin64/uart.c similarity index 100% rename from 14_raspbootin64/uart.c rename to .14_raspbootin64/uart.c diff --git a/14_raspbootin64/uart.h b/.14_raspbootin64/uart.h similarity index 100% rename from 14_raspbootin64/uart.h rename to .14_raspbootin64/uart.h diff --git a/OLVASSEL.md b/OLVASSEL.md deleted file mode 100644 index 3c45e435..00000000 --- a/OLVASSEL.md +++ /dev/null @@ -1,142 +0,0 @@ -A Raspberry Pi 3 alacsony szintű programozása -============================================= - -Üdvözöllek! Ez az oktatóanyag azok számára készült, akik szeretnének saját alacsony szintű (bare metal) -programot írni a Raspberry Pi-jükre. - -A célközönsége elsősorban azok a hobby OS fejlesztők, akik most ismerkednek ezzel a hardverrel. Példákat mutatok -arra, hogyan kell az alapfunkciókat megvalósítani, úgy mint soros vonalra írás, billentyűleütés kiolvasás, beállítani -a képernyő felbontását és rajzolni rá. Azt is megmutatom, hogy kell az alaplap sorszámát és igazi, vas által -generált véletlenszámot kiolvasni, valamint hogy hogyan kell fájlokat beolvasni a kártyáról. - -Ez az oktatóanyag *nem* arról szól, hogy hogyan írjunk operációs rendszert. Nem érint olyan témákat, mint a -memória gazdálkodás, virtuális fájlrendszer kezelés, vagy hogy hogyan valósítsuk meg a multitaszkot. Ha saját -OS-t szeretnél írni a Raspberry Pi-re, akkor javaslom előbb nézz körbe máshol, mielőtt folytatnád. Ez az -oktatóanyag kifejezetten arról szól, hogy kommunikáljunk az adott hardverrel, és nem az operációs rendszerek -hátteréről. - -Feltételezem, hogy elegendő GNU/Linux ismerettel rendelkezel, tudod, hogy kell programokat fordítani és lemez -valamint fájlrendszer képfájlokat létrehozni. Nem fogok kitérni ezekre, bár pár apró tanácsot adok arról, hogy -hogyan állítsuk be a kereszt-fordítót kifejezetten ehhez az architektúrához. - -Miért Raspberry Pi 3? ---------------------- - -Több okból is erre esett a választásom: először is olcsó, könnyen beszerezhető. Másodszor teljesen 64 bites -masina. Már réges rég felhagytam a 32 bites fejlesztéssel, mivel a 64 bit sokkal izgalmasabb. A címterülete -hatalmas, nagyobb, mint a tárolókapacitás, ezért lehetővé teszi új, izgalmas megoldások létrehozását. -Harmadsorban MMIO-t használ, amit könnyű programozni. - -32 bites oktatóanyagokhoz a következőket ajánlom: -[Cambridge-i oktatóanyagok](http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/) (ASM és csak 32 bites példák), -[David Welch oktatóanyagai](https://github.com/dwelch67/raspberrypi) (főleg C, néhány 64 bites példával), -[Peter Lemon oktatóanyagai](https://github.com/PeterLemon/RaspberryPi) (csak ASM, 64 bites példák is) and -[Leon de Boer oktatóanyagai](https://github.com/LdB-ECM/Raspberry-Pi) (C és ASM, 64 bites és összetettebb példák is, mint USB és OpenGL). - -Előkészületek -------------- - -Mielőtt belevágnánk, szükséged lesz egy kereszt-fordítóra (lásd 00_crosscompiler könyvtár) és egy Micro SD -kártyára néhány [firmware fájllal](https://github.com/raspberrypi/firmware/tree/master/boot) egy FAT partíción. - -Javaslom, hogy szerezz be egy [Micro SD kártya USB adaptert](http://media.kingston.com/images/products/prodReader-FCR-MRG2-img.jpg) -(sok gyártó eleve szállít ilyent az SD kártyáihoz), hogy könnyedén csatlakoztathasd az asztali gépedhez, mint egy -pent, speciális kártya olvasó interfész nélkül (habár sok laptopban gyárilag van ilyen olvasó manapság). - -Az MBR partíciós táblát létre kell hozni az SD kártyán LBA FAT32 (0x0C típusú) partícióval, leformázni azt, -majd rámásolni a *bootcode.bin*, *start.elf* és *fixup.dat* állományokat. Alternatívaként letöltheted a raspbian képfájlt, -`dd`-vel rárakhatod a kártyára, majd mountolás után letörölheted a felesleges .img fájlokat. Amenyik szimpatikusabb. A lényeg -az, hogy ezekben az oktatóanyagokban `kernel8.img` fájlokat gyártunk, amit a partíció gyökér könyvtárába kell másolni, -és más `.img` kiterjesztésű fájl nem lehet ott. - -Javaslom továbbá, hogy vegyél egy [soros USB debug kábelt](https://www.adafruit.com/product/954). Ezt a GPIO 14-es -és 15-ös lábára kell csatlakoztatni, az asztali gépen pedig a következő paranccsal kell elindítani a minicom-ot: - -```sh -minicom -b 115200 -D /dev/ttyUSB0 -``` - -Emulálás --------- - -Sajnálatos módon a hivatalos qemu bináris nem támogatja a Raspberry Pi 3-at egyenlőre. De van egy jó hírem, megírtam -a támogatást hozzá, így hamarosan érkezik. Addig sajnos fordítani kell a qemu-t a legfrissebb forrásból. Miután -lefordult, így tudod használni: - -```sh -qemu-system-aarch64 -M raspi3 -kernel kernel8.img -serial stdio -``` - -Vagy (a fájl rendszer oktatóanyagok esetében) - -```sh -qemu-system-aarch64 -M raspi3 -drive file=$(yourimagefile),if=sd,format=raw -serial stdio -``` - -Az első paraméter utasítja a qemu-t a Raspberry Pi 3 hardver emulálására. A második megadja a használandó kernel -fájl (vagy a második esetben az SD kártya képfájl) nevét. Végezetül az utolsó paraméter lehetővé teszi, hogy az -emulált gép UART0-ját átirányítsuk a qemu-t futtató terminál be- és kimenetére, azaz hogy minden, a virtuális gépen -soros vonalra küldött karater megjelenjen a terminálon, az ott leütött karaktereket pedig kiolvashassuk a vm-en. Ez -csak az 5-ös oktatóanyagtól működik, mivel az UART1 alapból *nem* irányítódik át. Ehhez plusz paraméterekre van szükség, -mint például `-chardev socket,host=localhost,port=1111,id=aux -serial chardev:aux` (köszönet [@godmar](https://github.com/godmar)-nak az infóért). - -**!!!FIGYELEM!!!** Qemu emulálása felületes, csak a legáltalánosabb perifériákat támogatja! **!!!FIGYELEM!!!** - -Magáról a hardverről --------------------- - -Rengeteg oldal foglalkozik az interneten a Raspberry Pi 3 hardverének részletes bemutatásával, szóval itt rövid -leszek, és csak az alapokat futjuk át. - -Az alaplapon egy [BCM2837 SoC](https://github.com/raspberrypi/documentation/tree/master/hardware/raspberrypi/bcm2837) csip -található. Ebbe beszereltek - - - VideoCore grafikus processzort (GPU) - - ARM-Cortex-A53 általános processzort (CPU, ARMv8) - - És néhány MMIO-val leképzett perifériát. - -Érdekesség, hogy a nem a CPU a fő processzor. Amikor bekapcsoljuk, először a GPU kezd futni. Amikor végzett az -inicializálásával, ami a bootcode.bin futtatását jelenti, betölti a start.elf programot. Ez nem egy ARM-es futtatható -állomány, hanem a GPU-ra íródott. Ami számunkra érdekes, az az, hogy ez a start.elf különféle ARM futtathatók után -kutat, melyek mind `kernel`-el kezdődnek, és `.img`-re végződnek. Mivel mi a CPU-t AArch64 módban fogjuk programozni, -ezért nekünk a `kernel8.img` fájlra van szükségünk, ami a legutolsó keresett fájlnév. Miután betöltötte, a GPU magasba -emeli az ARM processzor reset lábát, aminek hatására elkezdi a futtatást a 0x80000-as címen (egész pontosan a 0-ás -címen, csak oda a GPU egy ARM ugrás utasítás rakott előtte). - -A RAM (1G a Raspberry Pi 3-on) meg van osztva a CPU és a GPU között, ezért az egyik tudja olvasni, amit a másik -a memóriába írt. A félreértések elkerülése végett egy jól definiált, úgy nevezett levelesláda [mailbox](https://github.com/raspberrypi/firmware/wiki/Mailboxes) -interfészt alakítottak ki. A CPU beletesz egy üzenetet a levesládába, és szól a GPU-nak, hogy üzenete van. A GPU -(tudván, hogy a teljes üzenet a memóriában van) értelmezi azt, és ugyanarra a címre egy választ rak. A CPU-nak -folyamatosan figyelni kell a memóriát, hogy végzett-e a GPU, és ha igen, akkor és csak akkor kiolvashatja a választ. - -Hasonlóan a perifáriák is a memórián keresztül kommunikálnak a CPU-val. Mindegyiknek saját dedikált címe van, -0x3F000000-tól kezdődően, de ez nem igazi RAM (MMIO, memóriába leképzett ki- és bemenet). Namost itt nincs levelesláda, -minden eszköz saját protokollt beszél. Ami közös, az az, hogy ez a memóriarész csak 32 bites adagokban, 4-el osztható -címen írható / olvasható (szavak), és mindegyiknek kontroll/státusz illetve adat szavai vannak. Sajnálatos módon -a Broadcom (a SoC gyártója) hírhedten szarul dokumentája a termékeit. A legjobb, ami van, a BCM2835-ös leírása, ami -azért eléggé hasonló. - -Van továbbá lapcímfordító egység (MMU) a CPU-ban ami lehetővé teszi virtuális címterek használatát. Ez néhány -speciális CPU rendszer regiszterrel programozható, és oda kell figyelni, amikor ezeket az MMIO területeket képezük le -vele a virtuális címtérbe. - -Néhány az érdekesebb MMIO címek közül: -``` -0x3F003000 - Rendszer Időzítő (System Timer) -0x3F00B000 - Megszakítás vezérlő (Interrupt controller) -0x3F00B880 - VideoCore levelesláda (VideoCore mailbox) -0x3F100000 - Energiagazdálkodás (Power management) -0x3F104000 - Véletlenszám generátor (Random Number Generator) -0x3F200000 - Általános célú ki- és bemenet vezérlő (General Purpose IO controller) -0x3F201000 - UART0 (soros port, PL011) -0x3F215000 - UART1 (soros port, AUX mini UART) -0x3F300000 - Külső tároló vezérlő (External Mass Media Controller, SD kártya olvasás) -0x3F980000 - USB vezérlő (Universal Serial Bus controller) -``` -A többi információ megtalálható a Raspberry Pi firmware wiki-ben és a documentation repóban a github-on. - -https://github.com/raspberrypi - -Sok szerencsét és élvezetes hekkelést a Raspberry-dhez! :-) - -bzt