The-Linux-Programming-Interface

Src of The Linux Programming Interface and its Rust implementation (Exercise included)

GPL-3.0 License

Stars
7

The-Linue-Programming-Interface

Src of The Linux Programming Interface and its Rust implementation (Exercise included)

Chapters and their corresponding directories

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

What are unimplemented/skipped in Src

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

What are unimplemented/skipped in Exercise

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

What can be improved in Exercise

Chapter Exercise Description Relevant Issue
7 7-2 The implementation of free() can be improved by merging memory fragments None