Post

Replies

Boosts

Views

Activity

Reply to FSKit - Retrieve Process ID?
I tested this against Xcode 27 beta 3 and the macOS 27 SDK. The new handler-style FSKit API gets close, but FSContext currently exposes only the caller’s real/ effective UID and GID. For a process-scoped Nix store, two processes owned by the same user may need to see different store paths. Visibility is determined by a selected process and its descendants, so the filesystem needs a stable PID, audit token, or equivalent per- process identity. UID/GID alone isn’t sufficient. Because /nix/store objects are immutable, file-data cache coherency isn’t a concern. The remaining caching question is namespace visibility: can positive or negative lookup results and vnodes be reused across callers without invoking the context-aware FSKit handler? For example, one process may resolve /nix/store/X, while another same-UID process should receive ENOENT. A cached positive or negative lookup must not leak between those views. Could Apple clarify: Is there a public way to obtain the initiating process identity or audit token from FSContext? When lookup results depend on FSContext, does FSKit guarantee that the handler is invoked for each caller despite name/vnode caching? If the second guarantee already exists, process identity may be the only missing capability. Otherwise, this use case would also need caller-scoped namespace caching or a way to disable positive and negative lookup caching.
Topic: App & System Services SubTopic: Core OS Tags:
4d
Reply to FSKit - Retrieve Process ID?
I tested this against Xcode 27 beta 3 and the macOS 27 SDK. The new handler-style FSKit API gets close, but FSContext currently exposes only the caller’s real/ effective UID and GID. For a process-scoped Nix store, two processes owned by the same user may need to see different store paths. Visibility is determined by a selected process and its descendants, so the filesystem needs a stable PID, audit token, or equivalent per- process identity. UID/GID alone isn’t sufficient. Because /nix/store objects are immutable, file-data cache coherency isn’t a concern. The remaining caching question is namespace visibility: can positive or negative lookup results and vnodes be reused across callers without invoking the context-aware FSKit handler? For example, one process may resolve /nix/store/X, while another same-UID process should receive ENOENT. A cached positive or negative lookup must not leak between those views. Could Apple clarify: Is there a public way to obtain the initiating process identity or audit token from FSContext? When lookup results depend on FSContext, does FSKit guarantee that the handler is invoked for each caller despite name/vnode caching? If the second guarantee already exists, process identity may be the only missing capability. Otherwise, this use case would also need caller-scoped namespace caching or a way to disable positive and negative lookup caching.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
4d