LuckyLuke81
Posts: 1
Joined: Fri Jul 22, 2016 5:41 am

Learn Linux kernel

Fri Jul 22, 2016 5:59 am

Hi, this is my first post and I don't know if this is the right place, so please excuse me if I'm a little clumsy here.
I'm using a Raspberry Pi 2 (but I got a Pi 3 as well) as a learning platform.
I'm a novice embedded programmer,and I've some experience on 8 bit and 32 bit MCUs (AVR and ARM Cortex), and I want to program the Pi with C to access the peripherals and do some serious learning about OSs and Linux in particular.
I know there are some good libraries out there (WiringPi,BCM), but I would like to do direct register acces (I'm reading the BCM peripherals manual).
I don't know much about Operating Systems and their inner workings (system calls,APIs) and I would like to shed some light on the subject (what is a kernel? how do I access it? what are all those headers I see when I read some C code that uses function like read() ? Are they part of some standard?)
So my question is,where to begin?
I need advice on where to start learning,possibly a very good book on the subject (I know the web is full of resources but I need some guidance here..)

Luca

User avatar
topguy
Posts: 6527
Joined: Tue Oct 09, 2012 11:46 am
Location: Trondheim, Norway

Re: Learn Linux kernel

Fri Jul 22, 2016 10:09 am

http://advancedlinuxprogramming.com/downloads.html

This book is available for free PDF downloads.

>> what are all those headers I see when I read some C code that uses function like read() ? Are they part of some standard?

Yes, most of them is part of the "C standard Library" : https://en.wikipedia.org/wiki/C_standard_library
Most Linux/Unix systems also conforms to the POSIX standard : https://en.wikipedia.org/wiki/POSIX -- https://en.wikipedia.org/wiki/C_POSIX_library

ejolson
Posts: 5477
Joined: Tue Mar 18, 2014 11:47 am

Re: Learn Linux kernel

Sat Jul 23, 2016 10:33 pm

That book seems to be a real nice mix of practical Unix/Linux systems programming advice and examples.

Return to “C/C++”