Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/harrymadison297/linux-programming-interview
- Owner: harrymadison297
- Created: 2024-10-08T09:08:00.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-10T10:53:39.000Z (3 months ago)
- Last Synced: 2024-10-19T13:37:40.890Z (3 months ago)
- Topics: embedded, interview, interview-preparation, linux, networking
- Language: C
- Homepage:
- Size: 22.5 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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