Skip to content

SteveLauC/The-Linux-Programming-Interface

Repository files navigation

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published