Forum Discussion

ChinmoyDip2007's avatar
ChinmoyDip2007
Copper Contributor
Jul 19, 2022

My idea of Unified Binaries

Unified Binaries is like one binary that with proper runtime or framework integrated into Windows, can work in any architecture (ARM/x86). It's quite like Java or Python or .NET core, where a runtime for a specific architecture can run a same universal code for windows. I gave two different types of Unified Binaries:
1.for older binaries, There will be a runtime created that can run that can run non native (x86 on ARM or ARM on x86) windows binaries without any modification into the actual software.
2.Newer binaries will be compiled from scratch in a way that proper frameworks on windows can easily run it on any architecture. For .NET binaries you already have what to do. Just try to create a framework for C++ binaries
It's like Minecraft java, the underlying java part is the same but different launchers and C++ code for system communication. This method I assume can be designed in a way that the apps can think that they are running natively. Please also consider graphics

  • Reza_Ameri's avatar
    Reza_Ameri
    Silver Contributor
    Like you mentioned .NET Core is available on multiple planforms including Android and iOS, in addition to Windows. So, you are asking for a similar way but for the C++?
    • ChinmoyDip2007's avatar
      ChinmoyDip2007
      Copper Contributor
      Yes. I mostly target it for business customers who are using ARM based PCs to run x64 binaries. I also want Arm on x64 for developers without a ARM PC.
    • ChinmoyDip2007's avatar
      ChinmoyDip2007
      Copper Contributor
      I want a similar way for C++, but not for interplatform support, but for interarchitectural support for windows apps (ARM on x64 or x64 on ARM)
  • Mousefluff's avatar
    Mousefluff
    Iron Contributor

    ChinmoyDip2007Essentially what you're after, is managed code, which is an extremely powerful feature which is part of the CLR (.NET Framework.) Ironically, a lot of people who write software, even for mobile platforms, do not use managed code, despite the fact that it was widely available in most compiler toolchains around 2005-2006 or so. It's really strange, given almost every big problem is already solved by just using managed code, even performance issues in a cross-platform setting:

     

    "Common Language Runtime (CLR) overview

     

    ...The runtime uses metadata to locate and load classes, lay out instances in memory, resolve method invocations, generate native code, enforce security, and set run-time context boundaries."

     

    https://docs.microsoft.com/en-us/dotnet/standard/clr

     

    https://en.wikipedia.org/wiki/Managed_code

     

  • ChinmoyDip2007's avatar
    ChinmoyDip2007
    Copper Contributor
    In such cases where specifically compiled code is necessary, there will be a standard (Unified Binary) launcher app and different binaries for specific system will be installed. The Unified Binary launcher will detect the native architecture of the system it's running on and will run the specific binary for it.

Share