Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal]: Support BDS-Linux #1442

Open
5 tasks
Redbeanw44602 opened this issue Jan 19, 2024 · 3 comments
Open
5 tasks

[Proposal]: Support BDS-Linux #1442

Redbeanw44602 opened this issue Jan 19, 2024 · 3 comments
Assignees
Labels
priority: low Can be postponed status: proposal Suggestion or idea for consideration

Comments

@Redbeanw44602
Copy link
Member

Redbeanw44602 commented Jan 19, 2024

We are planning to add support to the linux version of bedrock dedicated server.

Preconditions

We need perfect c++ header files generated from Win-BDS because the name mangling standard defined in the itanium c++ abi does not contain a complete declaration.
The current header is close to perfection, but it has some shortcomings, such as some virtual functions are unknown or the order is incorrect. This problem also affects: #1041 #1429 .

Making cross-platform

These are just some expected problems that need to be solved, and may be revised frequently in actual operations.

  • Reconsider the use of hardcoded offsets.
  • The platform-specific portion of the header file.
  • Avoid using mangled symbols for hooks. (How to deal with virtual functions?)
  • ElfEditor (just like PeEditor)
  • ...
@Redbeanw44602 Redbeanw44602 added priority: low Can be postponed status: proposal Suggestion or idea for consideration labels Jan 19, 2024
@Redbeanw44602 Redbeanw44602 self-assigned this Jan 19, 2024
@Redbeanw44602
Copy link
Member Author

Redbeanw44602 commented Jan 20, 2024

BDS: Performance between WIN and LINUX

We did a small experiment to evaluate the performance of bds under linux and windows.

Environment

  • CPU: AMD EPYC Rome (x2 vCPU)
  • Memory: 8GB
  • Version: 1.20.51.01
  • System: Debian 12 & Windows Server 2022 & Wine 8.0
  • Seed: -7587006310728081808

Experiment

We created 4096 TNT (from 0,0,0 to 15,15,15) and detonate it at the same location (0, 15, 0). To avoid chance, we conducted the experiment three times under the same environment, the result is as follows:

System First(s) Second(s) Third(s) Average(s)
Windows 57.3 58.2 57.1 57.5
Wine 55.9 51.9 52.2 53.3
Linux 69.3 72.1 71.3 70.9

It can be seen that the time required for BDS to complete the 4096 TNT explosion calculations under linux is more than ten seconds longer than that under windows(not wine).

Possibility

This is just a simple performance test. It does not reflect all the performance of BDS on different platforms, but it is also representative to a certain extent (TNT explosion involves calculations of various systems).
The reason for this situation may be due to the compiler optimization level when BDS uses clang to generate executable files suitable for linux.

@RimuruChan RimuruChan changed the title Support BDS-Linux [Proposal] Support BDS-Linux Jan 30, 2024
@RimuruChan RimuruChan changed the title [Proposal] Support BDS-Linux [Proposal]: Support BDS-Linux Jan 30, 2024
@YueHua46
Copy link

我很需要这个支持

@Mih4n
Copy link

Mih4n commented Apr 6, 2024

It will allow people to create more servers on levilamina because of cost of the servers. Windows server 4 or more times more expensive than linux server, depends on hosting service. Yeah we have docker image that runs under wine but there a lot of restrictions such as uv_pipe_opened problem on node js and the size of image is really big.

Sorry for my English)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: low Can be postponed status: proposal Suggestion or idea for consideration
Development

No branches or pull requests

3 participants