A well-defined system API for abstracting the OS platform

Related tags

Miscellaneous xsys
Overview

xsys

xsys is an effort to implement a thin and well-defined system API for enabling the development of programs that are portable; platform agnostic.

Instead of offering APIs for every imaginable programming language, xsys takes a more fundamental approach: The Linux syscall interface. To support a new platform a single function is implemented: syscall.

This makes it possible to run a program written for Linux on macOS—or WebAssembly, or Microsoft Windows—without having to make any changes to its source code.

How might xsys be interesting to me?

  • For application developers: a way to make your programs run on many platforms with minimal changes to your code

  • For compiler and programming-language authors: a way to target many platforms without having to implement whatever system API each platform uses.

  • For OS/platform authors: allow more programs to run natively even if they weren't written specifically for your platform.

Issues
  • Similarities / differences to WASI?

    Similarities / differences to WASI?

    WASI, the WebAssembly System Interface, sounds like it has somewhat similar goals as what you’re focusing on here.

    Have you given it a look? What are your thoughts and what would you like to do similarly or different?

    opened by voxpelli 2
  • Performance concerns

    Performance concerns

    Will xsys accommodate also for "shared" IRQs & memory between user space and kernel space?

    E.g. timers are notoriously known for being inefficient because of the need to call a syscall. Therefore there are many different attempts (e.g. use eBPF to ensure full preemptiveness of user space thread schedulers; use virtual vsyscall and vDSO if only user-space readouts of kernel-managed data are needed) to tame it, but they're by far not universally available :cry:.

    Btw. definitely read about ghOSt user space scheduling (https://netdevconf.info/0x15/slides/25/ghOSt%20Talk%20(Netdev).pdf ) - it's the future and has the potential to strongly influence any future syscall APIs.

    opened by dumblob 0
Owner
Rasmus
Personal Software, languages, compilers, Humans & Computers, and other fun things. Past professional life at Figma, Facebook, Spotify, Dropbox, etc.
Rasmus
Samir Teymurov 1 Oct 6, 2021
WTD is a python tool for replacing values with the C preprocessor macro which defined them.

Where's That Define WTD is a python tool for replacing values with the C preprocessor macro which defined them. An example of this is when trying to u

Caleb Connolly 5 Mar 28, 2022
Set of examples how to use CLion with various unsupported compilers using Custom Defined Compiler feature

About This repository contains: Set of examples how to use CLion with various unsupported compilers using Custom Defined Compiler feature Public set o

JetBrains 31 Aug 10, 2022
My_Shell is a user-defined interactive shell written in C that works similar to the original shell in linux

MY_SHELL Overview My_Shell is a user-defined interactive shell written in C that works similar to the original shell and it can execeute many of the l

Greeshma 1 Nov 22, 2021
BokuLoader - Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities.

BokuLoader - Cobalt Strike Reflective Loader Cobalt Strike User-Defined Reflective Loader written in Assembly & C for advanced evasion capabilities. B

Bobby Cooke 766 Aug 15, 2022
Lib 2d - A c++ library for paths defined by points within the 2d space

#lib_2d A c++ library for anything related to points within the 2d space (using floating point data types) using Catch as testing framework https://gi

Martin Buck 46 Dec 16, 2021
ToPS is an objected-oriented framework implemented using C++ that facilitates the integration of probabilistic models for sequences over a user defined alphabet

ToPS is an objected-oriented framework implemented using C++ that facilitates the integration of probabilistic models for sequences over a user defined alphabet

Andre Yoshiaki Kashiwabara 34 Aug 2, 2022
std::tuple like methods for user defined types without any macro or boilerplate code

Boost.PFR This is a C++14 library for very basic reflection that gives you access to structure elements by index and provides other std::tuple like me

Boost.org 1k Aug 7, 2022
Haptic input knob with software-defined endstops and virtual detents

SmartKnob SmartKnob is an open-source input device with software-configurable endstops and virtual detents. A brushless gimbal motor is paired with a

Scott Bezek 11.4k Aug 6, 2022
The AudioUnitSDK contains a set of base classes as well as utility sources required for Audio Unit development.

The AudioUnitSDK contains a set of base classes as well as utility sources required for Audio Unit development.

Apple 72 Aug 5, 2022
Had a tough time playing Microsoft Wordament ? Well WORDament_Solver has your back. It suggests you meaningful words you can use while playing the game and help you top the leaderboard.

WORDament_Solver Had a tough time playing Microsoft Wordament ? Well WORDament_Solver has your back. It suggests you meaningful words you can use whil

Tushar Agarwal 3 Aug 19, 2021
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Pavel Stehule 1.8k Aug 7, 2022
Windows kernel-mode driver emulating well-known USB game controllers.

Windows kernel-mode driver emulating well-known USB game controllers.

Virtual Gamepad Emulation Framework 1.5k Aug 10, 2022
New version of the well known ESP32 Radio. Now optional I2S output!

ESP32Radio-V2 New version of the well known ESP32 Radio. Now optional I2S output! Compile time configuration in config.h. Do not forget to upload the

Ed Smallenburg 42 Jul 19, 2022
Well known brainstorming and tricky coding questions

Interview questions NOTE:If you having any difficulty in solving then you can message me for solution Question 1 Rahman has N coins; let's denote the

Deepam Aggarwal 1 May 5, 2022
Well-organized, commented and documented sample project that shows the basic functionalities of the 42's mlx library.

miniLibX sample | slucas-s I developed this sample project to play around with the basic functionalities of the miniLibX, the simple graphics library

S. Lucas Serrano 41 Aug 13, 2022
Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified source engine as well as their Easy Anti Cheat Implementation.

Apex-Legends-SDK Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified sou

null 97 Aug 3, 2022
This Repository Aims To Help Beginners with their first successful pull request and Know How to do open source contributions Also For Intermediate and Advance level contributors as well.

Hacktoberfest_2021 This Repository Aims To Help Beginners with their first successful pull request and Know How to do open source contributions Also F

Rishu Rajan 15 Jan 9, 2022
Iot-Surveillance-Car - This is a IOT Based Surveillance Car which can be controlled, tracked globally as well as its data can be accessed globally

Iot-Surveillance-Car - This is a IOT Based Surveillance Car which can be controlled, tracked globally as well as its data can be accessed globally. The camera on the front of the car can also be monitored globally. It can go anywhere where sim connection is available. 5th Sem Mini project

Rahul Vijan 3 Jun 29, 2022