diff --git a/internal/sys.hpp b/internal/sys.hpp
new file mode 100644
index 0000000..e0a02bf
--- /dev/null
+++ b/internal/sys.hpp
@@ -0,0 +1,54 @@
+#pragma once
+
+namespace blobs
+{
+
+namespace internal
+{
+/**
+ * Interface to the dynamic library loader.
+ */
+class DlSysInterface
+{
+  public:
+    virtual ~DlSysInterface() = default;
+
+    /**
+     * obtain error diagnostic for functions in the dlopen API
+     *
+     * @return the error details
+     */
+    virtual const char* dlerror() const = 0;
+
+    /**
+     * open a shared object
+     *
+     * @param[in] filename - the path to the shared object or the filename to
+     * for searching
+     * @param[in] flags - the flags
+     * @return a handle to the shared object (null on failure)
+     */
+    virtual void* dlopen(const char* filename, int flags) const = 0;
+
+    /**
+     * obtain address of a symbol in a shared object or executable
+     *
+     * @param[in] handle - pointer to shared object
+     * @param[in] symbol - name of the symbol to find
+     * @return the address of the symbol if found (null otherwise)
+     */
+    virtual void* dlsym(void* handle, const char* symbol) const = 0;
+};
+
+class DlSysImpl : public DlSysInterface
+{
+  public:
+    const char* dlerror() const override;
+    void* dlopen(const char* filename, int flags) const override;
+    void* dlsym(void* handle, const char* symbol) const override;
+};
+
+extern DlSysImpl dlsys_impl;
+
+} // namespace internal
+} // namespace blobs
