Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| kernel [2012/08/28 09:52] – [Pandaboard ES] admin | kernel [2023/06/15 18:14] (current) – admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | https:// | ||
| Kernel headers should be copied into / | Kernel headers should be copied into / | ||
| Line 17: | Line 18: | ||
| The Kernel may also run **kernel threads**, standard processes that exist only in kernel-space, | The Kernel may also run **kernel threads**, standard processes that exist only in kernel-space, | ||
| + | |||
| + | ====== Concurrency and shared resources ====== | ||
| + | * Interrupts | ||
| + | * Kernel preemption, causing the kernel to switch from the execution of one system call to another | ||
| + | * Multiprocessing | ||
| + | |||
| + | We need to keep as much local state as possible and use locking for the shared resources. | ||
| + | |||
| + | ===== Locks ===== | ||
| + | * Mutex, the main kernel locking primitive. Usable in contexts where sleeping is allowed. | ||
| + | * Semaphores. | ||
| + | * Spinlocks, used with code that is not allowed to sleep (interrupt handlers) or that doesn' | ||
| + | * Alternatives: | ||
| ====== Debugging ====== | ====== Debugging ====== | ||
| Line 28: | Line 42: | ||
| to restrict bisection to commits that touch [path]. | to restrict bisection to commits that touch [path]. | ||
| + | http:// | ||
| ====== Porting the kernel to ARM devices ====== | ====== Porting the kernel to ARM devices ====== | ||
| [[http:// | [[http:// | ||
| Line 49: | Line 64: | ||
| | | ||
| - | ====== Pandaboard ES ====== | ||
| - | mkimage | + | ====== Contributing ====== |
| + | |||
| + | [[http:// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | https:// | ||
| - | # wget kernel sources | + | ====== |
| - | make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm omap2plus_defconfig | + | https:// |
| - | make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm menuconfig | + | |
| - | make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm -j4 all | + | |
| - | make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm uImage | + | |
| - | make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm modules | + | |
| - | make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm modules_install INSTALL_MOD_PATH=../dest_lib | + | |
| - | mkinitramfs 3.4.10 -o initrd.img-3.4.10-0001-omap4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- | + | |
| - | # cp modules to exported rootfs | + | |
| - | | + | |
| ====== Useful links ====== | ====== Useful links ====== | ||
| Line 72: | Line 86: | ||
| http:// | http:// | ||
| + | http:// | ||