Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/harrymadison297/linux-programming-interview

Linux embedded programming interview Q&A
https://github.com/harrymadison297/linux-programming-interview

embedded interview interview-preparation linux networking

Last synced: about 2 months ago
JSON representation

Linux embedded programming interview Q&A

Awesome Lists containing this project

README

        

# Linux Programming interview

## Books
[Advanced Linux Programming.pdf](/Books/Advanced%20Linux%20Programming.pdf)

[The Linux Programming Interface.pdf](/Books/The%20Linux%20Programming%20Interface.pdf)

[Understanding Linux Kernel.pdf](/Books/Understanding%20Linux%20Kernel.pdf)

## Linux covered topics
### 1. Process
[Read here](/QA/Process.md)
* Process definition
* PID, PPID
* Command line argument
* Envinronment
* Who can access to a process (Process credentials)
* UIDs and GIDs
* File-system user permissions
* Interface
* Process creation
* `folk()`
* File access when folk a new process
* Memory semantics
* Race condition
* Child process monitor
* `wait( *status)`
* `waitpid( pid, *status, options)`
* Orphan process and zombie process
* Program execution
* `execve( path, argv, envp )`
* Run a shell command `system( *command)`
* Process priorities and scheduler
* `getpriority( which, who)`
* `setpriority( which, who)`
* Realtime scheduling
* Process memory and resource

![](/Assets/Memory_layout.png)
* Process infomation in file system (`/proc`)
* Process termination
* `exit(status)`
* Exit handlers `atexit(void (*func)(void))`, `on_exit()`
* Termination flow
* Daemon process
* Definition
* How to create a daemon process
### 2. Threads
[Read here](/QA/Thread.md)
* Definition

![](/Assets/Thread_memory_layout.png)
* Thread identify
* `pthread_self()`
* `pthread_equal( thread_id_1, thread_id_2)`
* Thread creation
* `pthread_create( *thread, *attr, *(*start), *arg)`
* Thread manage
* `pthread_join( thread, **retval)`
* `pthread_detach( thread)`
* Thread termination
* `pthread_exit( *retval)`
* Compling thread
* `-pthread`
* Thread synchronization
* Mutexes
* Condition variables
### 3. Inter-Process Communication
[Read here](/QA/IPC.md)

![](/Assets/ipc.png)
### 4. File System Management
[Read here](/QA/FileSystem.md)
### 5. Memory
[Read here](/QA/Memory.md)
### 6. Networking
[Read here](/QA/Networking.md)
### 7. Other
[Read here](/QA/Other.md)
* Serial communication
* UART
* SPI
* I2C
* USB
* Wireless communication
* Wifi
* BLE
* Zigbee