Introduction into Linux development.
This file is not a proper HOWTO, it just has some notes about learning programming from scratch.
This is even less of a HOWTO, because rather than teaching stuff, it is mostly just guiding the reader over the existing islands of knowledge.
This HOWTO is written with the following goals in mind:
- Let the reader as quickly as possible be able to start developing for Android.
- …
- PROFIT
1. TODO Body
1.1. Overview
Linux is a kernel, and it runs binary files.
Its binary files are mostly ELF files, “executable-linkable format” files. The spec for ELF files is available from the Linux Foundation website https://refspecs.linuxfoundation.org/elf/elf.pdf#page=9.39 .
The description is easier than it seems.
But if you get lost, there are more human-readable HOWTOs:
- Learning Linux Binary Analysis by Ryan “elfmaster” O’Neill, Chapter 2
- https://blog.k3170makan.com/2018/09/introduction-to-elf-format-elf-header.html
- https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
- https://thinkingeek.com/categories/aarch64/
ELF files are characterised by a header and a footer, and the amazing thing is, you can parse the header by just doing a read() into a Elf64_Ehdr* pointer.
I kid you not.