The Linux kernel is a program that sits between the hardware and the processes and manages resource allocation (e.g. CPU access) and device drivers (e.g. printers)—among other things.
The kernel’s tasks are challenging and performance is critical because anything you do with your computer will be impacted by performance issues. This is why Linux (and Windows) rely on (one of) the fastest programming language C.
This StackOverflow answer gives some information about why C is THAT fast: (source)
“There is a trade off the C designers have made. That’s to say, they made the decision to put speed above safety. C won’t
- Check array index bounds
- Check for uninitialized variable values
- Check for memory leaks
- Check for null pointer dereference”
Because C does not have a garbage collector or other things that make the lives of developers easier, it’s also quite minimalistic. You can do a lot of things wrong. But you can also use the whole spectrum of optimizations. With more freedom comes greater responsibility.
Can I check out the Android OS code?
If you are interested in how the Android system is implemented, you can dive into Google’s Android Git repository.
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.