Src of The Linux Programming Interface and its Rust implementation (Exercise included)
| Chapter | Src Directory | Exercise Directory |
|---|---|---|
| 3 System Programming Concepts | lib | Ch3 |
| 4 File I/O: The Universal I/O Model | fileio | Ch4 |
| 5 File I/O: Further Details | fileio | Ch5 |
| 6 Processes | proc | Ch6 |
| 7 Memory Allocation | memalloc | Ch7 |
| 8 Users and Groups | users_groups | Ch8 |
| 9 Process Credentials | proccred | Ch9 |
| 10 Time | time | Ch10 |
| 11 System Limits And Options | syslim | Ch11 |
| 12 System And Process Information | sysinfo | Ch12 |
| 13 File I/O Buffering | filebuff | Ch13 |
| 14 File Systems | filesys | Ch14 |
| 15 File Attributes | files | Ch15 |
| 16 Extended Attributes | xattr | Ch16 |
| 17 Access Control Lists | acl | Ch17 |
| 18 Directories and Links | dirs_links | Ch18 |
| 19 Monitoring File Events | inotify | Ch19 |
| 20 Signals: Fundamental Concepts | inotify | Ch20 |
| Chapter | Name | Reason | Relevant Issue |
|---|---|---|---|
| 6 | mem_segments.rs | Rust does not allow global variables to be unitialized, thus we can not allocate variable in .bss segment | None |
| 6 | longjmp.rs | Relevant syscalls are missing in libc |
#1 |
| 6 | setjmp_vars.rs | Relevant syscalls are missing in libc |
#1 |
| 8 | check_passwords-rs | crypt(3) is not exposed in libc |
#3 |
| 10 | calendar_time-rs | ctime(3) and asctime(3) are not exposed in libc |
#4 |
| 10 | strtime-rs | strftime(3) and strptime(3) are not exposed in libc |
#5 |
| 10 | showtime-rs | strftime(3) and asctime(3) are not exposed in libc |
None |
| 10 | process_time-rs | clock(3) is not exposed in libc |
None |
| Chapter | Exercise | language | Reason | Relevant Issue |
|---|---|---|---|---|
| 4 | 4-2 | C and Rust | Currently I am not sure about what is a hole and how to create it, for more info, you can check this post | None |
| 6 | 6-2 | Rust | setjmp and longjmp are missing in libc |
#1 |
| 6 | 6-3 | Rust | We can not directly access environ in Rust whereas this is necessary to unset the environment variables that are defined multiple times |
#2 |
| 15 | 15-7 | Rust | FS_* constants are missing from libc |
None |
| 17 | 17-1 | C | I don' want to touch those acl_xxx_xxx() functions |
None |
| Chapter | Exercise | Description | Relevant Issue |
|---|---|---|---|
| 7 | 7-2 | The implementation of free() can be improved by merging memory fragments |
None |