9 Repos
Virtual interfaces that decouple software from specific operating system file and I/O implementations.
Distinct from OS-Specific Integration Modules: Focuses on providing a generic interface to hide OS differences, rather than just modules that integrate with a specific OS's unique APIs.
Explore 9 awesome GitHub repositories matching operating systems & systems programming · OS Abstraction Layers. Refine with filters or upvote what's useful.
LevelDB is an embedded database library and persistent storage engine that provides a sorted key-value store. It uses a log-structured merge-tree architecture to map byte arrays to values, running directly within a process to provide storage without the need for a separate server process. The system is distinguished by its use of custom comparison functions to define key ordering, enabling efficient range scans and sequenced lookups. It ensures data reliability through atomic batch execution, consistent snapshot generation, and log-based recovery after failures. The engine covers broad capab
Provides an abstract file system interface to decouple the storage engine from the underlying operating system.
libuv is a cross-platform asynchronous I/O library that provides an abstraction layer for event-driven networking, filesystem operations, and system signals. It utilizes a non-blocking event loop to coordinate asynchronous tasks and I/O events across different operating systems. The project features a unified interface for managing TCP, UDP, and DNS resolution, alongside an inter-process communication layer for sharing sockets via named pipes and Unix domain sockets. To prevent blocking the main execution loop, it includes a multi-platform thread pool for offloading computationally expensive
Provides an abstraction layer that wraps OS-specific mechanisms like epoll, kqueue, and IOCP into a unified interface.
node-notifier ist eine Node.js-Bibliothek und ein plattformübergreifender Wrapper, der eine einheitliche JavaScript-Schnittstelle zum Senden nativer Desktop-Benachrichtigungen unter macOS, Windows und Linux bereitstellt. Es fungiert als Brücke zwischen JavaScript-Code und systemeigenen Benachrichtigungs-Binärdateien wie libnotify, Growl und Windows Toasters. Das Projekt unterstützt die Integration nativer Alerts in Node.js-Anwendungen, Electron-Desktop-Apps und Shell-Skripte. Es enthält ein CLI-Dienstprogramm, um Desktop-Alerts direkt aus einem Terminal mithilfe von Argumenten oder gepipter Eingabe auszulösen. Die Bibliothek verwaltet die native Alert-Zustellung, einschließlich der Wiedergabe benutzerdefinierter Benachrichtigungstöne. Sie überwacht zudem die Nutzerinteraktion, sodass Anwendungen auf Klicks oder Timeouts reagieren können, um programmatische Antworten auszulösen. Konfigurationsoptionen sind verfügbar, um Reporter-Einstellungen des Betriebssystems anzupassen, wie z. B. App-Identifikatoren und Dringlichkeitsstufen.
Provides an internal API to map generic notification properties to OS-specific command-line flags.
Dieses Projekt ist eine Erweiterung der Swift-Standardbibliothek und eine plattformübergreifende Systembibliothek. Es bietet eine Sammlung grundlegender Utility-Typen und Datenstrukturen, die die Swift-Basissprache erweitern und als betriebssystemunabhängige Schnittstellenschicht für Systemoperationen wie Netzwerk- und Dateisystemzugriffe dienen. Das Projekt verfügt über eine spezialisierte C++-Interoperabilitätsschicht, die C++-Typen und -Funktionen auf kompatible Swift-Schnittstellen für die sprachübergreifende Kommunikation abbildet. Dies beinhaltet einen Bridging-Mechanismus für Standardbibliothekstypen und externe Container, wodurch C++-Typen entweder als Referenz- oder Wertetypen gemappt werden können, um Speicherverwaltung und Semantik zu synchronisieren. Zu den umfassenden Funktionen gehören die Datenserialisierung für die Kodierung und Dekodierung strukturierter Formate wie JSON sowie ein Internationalisierungs-Framework für lokalisierungsspezifische Formatierungen, Kalender und regionale Einstellungen. Zudem bietet es ein Core-Datenmanagement für die Handhabung von URLs und binären Rohdaten.
Abstracts system operations like networking and file access to ensure consistent behavior across multiple operating systems.
FlyingCarpet is an ad hoc WiFi file transfer tool and offline file exchange utility. It enables peer-to-peer data transfer between devices using direct wireless connections, operating without the need for internet access, routers, or shared network infrastructure. The tool provides cross-platform peer-to-peer transfer capabilities across Windows, macOS, and Linux. It utilizes QR code network provisioning to share wireless credentials and peer addresses, automating the establishment of these offline connections. The system handles air-gapped data migration and cross-platform data exchange thr
Provides a common interface to manage wireless settings across Windows, macOS, and Linux system drivers.
OpenWifi ist eine Open-Source-Implementierung des IEEE 802.11n-Funkstandards, die für programmierbare Logik entwickelt wurde. Sie bietet eine Software-Defined-Radio-Plattform und einen WiFi-Basisband-Prozessor, der die physikalische Schicht und die MAC-Schicht auf FPGA-Hardware implementiert, ergänzt durch einen dedizierten Wireless-Treiber und ein Toolset zur Hardwaresteuerung. Das Projekt zeichnet sich durch seine tiefe Integration von Signalanalyse und Telemetrie aus, insbesondere durch ein Framework zur Erfassung von Kanalzustandsinformationen (CSI) und rohen IQ-Samples. Es ermöglicht hochpräzises Paket-Timestamping und schichtübergreifende Korrelation zwischen Samples der physikalischen Schicht und erfassten Paketen, um die Forschung an drahtlosen Protokollen und Sensorik zu unterstützen. Das System deckt ein breites Spektrum an drahtlosen Funktionen ab, einschließlich Funkkonfiguration für Frequenzabstimmung und Bandbreitenanpassung, HF-Management für Antennen- und Verstärkungssteuerung sowie Verkehrsmanagement für Low-MAC-Hardware-Offloading. Es unterstützt Standard-Netzwerkmodi wie Access Point, Station, Ad-hoc und Monitor und enthält Tools für Protokoll-Fuzzing und die Injektion roher Pakete. Das Projekt enthält Dienstprogramme zur Erstellung benutzerdefinierter OS-Images und unterstützt das dynamische Neuladen von Treibern, um FPGA-Images ohne Systemneustart zu aktualisieren.
Supports specific subcarriers and code rates to optimize high-speed wireless throughput.
This project is a portable implementation of the secure shell toolset designed for deployment across diverse operating systems and platforms. It provides a suite of tools for secure remote login and command execution based on the secure shell protocol. The implementation includes a sandboxed server that isolates processes to limit the impact of potential vulnerabilities on the host operating system. It also functions as a cryptographic key manager for generating and storing security keys to replace or supplement password-based authentication. The project covers encrypted file transfer for mo
Employs an OS abstraction layer to ensure portable execution across different Unix-like operating systems.
PCL-CE is a cross-platform game launcher and runtime environment designed to execute Windows game binaries on macOS and Linux. It functions as a game version manager and a build system for compiling source code into Windows executables from non-Windows development environments. The project provides a cross-platform runtime layer that facilitates the launching and execution of Windows-based game sessions on different operating systems. It includes a binary cross-compiler and a build pipeline that allows for the generation of Windows binaries from macOS and Linux hosts. The software covers gam
Implements an abstraction layer to provide a consistent game launching interface across different operating systems.
This project is a collection of operating systems courseware and educational programming exercises designed for studying operating system design and implementation. It provides a set of concept simulators for modeling CPU scheduling, memory virtualization, and concurrency mechanisms. The project includes specialized tools such as a concurrency simulation lab for experimenting with synchronization, a file system modeling suite for studying disk persistence and RAID configurations, and a process tree visualizer for displaying parent-child relationship hierarchies. The software covers broader c
Simulates how CPU scheduling and memory management abstract physical hardware into process and address space abstractions.