Git Product home page Git Product logo

kentjhall / horizon-linux Goto Github PK

View Code? Open in Web Editor NEW

This project forked from torvalds/linux

657.0 657.0 15.0 3.65 GB

arm64 Linux patched to run programs for the Nintendo Switch’s Horizon OS

License: Other

Shell 0.32% C++ 0.03% Python 0.11% Perl 0.11% C 98.31% Clojure 0.01% Assembly 0.85% Awk 0.01% UnrealScript 0.01% Makefile 0.21% XS 0.01% Yacc 0.01% Lex 0.01% M4 0.01% Roff 0.02% Gherkin 0.01% sed 0.01% SmPL 0.01% Raku 0.01% MATLAB 0.01%

horizon-linux's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

horizon-linux's Issues

Use Unikernel design

A relevant Linux feature (UKL) has just been proposed: https://lore.kernel.org/lkml/[email protected]/

A research paper on the work: https://arxiv.org/pdf/2206.00789.pdf

Brief introduction: "Unikernels are specialized operating systems where an application is linked directly with the kernel and runs in supervisor mode. This allows the developers to implement application specific optimizations to the kernel, which can be directly invoked by the application (without going through the syscall path). An application can control scheduling and resource management and directly access the hardware."

From a bit more reading, it seems like this could "modestly" improve performance, make development easier to maintain, and simplify installation for users.

Has this project been euthanized?

I cannot find any documentation anywhere, and with the recent takedown of yuzu, I'm worried the developer of this project thought that it could be a risk (which it is not because if you actually look into why yuzu was taken down, you would see that you are very well within requirements/legal guidelines.)

its either That or the dev got bored, either way if it is true, reach out to the ouija board and let us know the truth, that way maybe a brave dev will pick up the project where it was left off.

why not userspace

This is definitely an intriguing approach, but it seems unnecessary to patch the kernel when translation layers like Wine can work entirely in userspace. What is the rationale behind resorting to patching all over the kernel?

While Wine doesn't necessarily need to deal with direct syscalls in most cases, there was actually a solution developed for the cases when it is in fact needed: https://www.kernel.org/doc/html/latest/admin-guide/syscall-user-dispatch.html

Are there any other blockers for doing the translation in userspace, and if so, did you inquire about possible solutions on the LKML?

Doing this in kernelspace seems like a last resort, and apart from syscalls (for which the kernel side of the solution now exists) I don't see any immediately obvious blockers for doing the translation in userspace?

Apart from being much cleaner and requiring less maintenance, doing the translation fully in userspace would make it possible to package the project in general purpose distributions, running horizon applications alongside standard Linux desktop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.