Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a port for macOS #16

Open
lucasvr opened this issue Feb 19, 2021 · 1 comment
Open

Create a port for macOS #16

lucasvr opened this issue Feb 19, 2021 · 1 comment

Comments

@lucasvr
Copy link
Owner

lucasvr commented Feb 19, 2021

HDF5-UDF is only supported on Linux. The two modifications that currently depend on Linux are (1) scanning of /proc to get a file handle to the underlying HDF5 file and (2) the use of Seccomp + Syscall-Intercept.

@lucasvr
Copy link
Owner Author

lucasvr commented May 26, 2021

An initial port for macOS has been introduced by commit 6689226. The three backends (Python, C/C++, and LuaJIT) are supported. The only limitation, for now, is the lack of support for sandboxing.

lucasvr added a commit that referenced this issue May 27, 2021
This commit isolates the sandbox implementation based on Seccomp and
Ptrace to ease the incorporation of a sandbox for macOS.

Note that, even though macOS provides a ptrace(2) implementation, that
API is far from complete. For instance, it is not possible to peek
registers, memory, or to monitor system call events from a child
process.

There aren't really too many options to monitor system calls on macOS
without requiring admin rights. The most viable approach seems to be
to implement something around Apple's Endpoint Security:

  https://developer.apple.com/documentation/endpointsecurity

Refs #16
lucasvr added a commit that referenced this issue May 27, 2021
The library loaded by `ffi` has a `.so` extension on Linux and `.dylib`
on macOS. This commit instructs the HDF5-UDF Python module to check the
platform name and then load the corresponding library name.

Refs #16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant