My guess is kernel needs to know the current directory of a process so that when said process tries to open a file without an absolute path (eg. just "file.txt" and not "/tmp/file.txt"), it can open "$CWD/file.txt".
This must be tracked by kernel, because not all syscalls go through libc, you can issue the open syscall directly from a process.
There might be other reasons, but I'd bet it's the main one.
This must be tracked by kernel, because not all syscalls go through libc, you can issue the open syscall directly from a process.
There might be other reasons, but I'd bet it's the main one.