URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 129432
[ Назад ]

Исходное сообщение
"Представлен Blink, эмулятор x86-64, опережающий QEMU по производительности"

Отправлено opennews , 05-Янв-23 09:20 
Проектом blink развивается новый эмулятор процессоров x86-64, позволяющий запускать статически собранные Linux-приложения в виртуальной машине с эмулируемым процессором. Основным назначением проекта является предоставление возможности запуска собранных для архитектуры  x86-64 Linux-программ в других операционных системах (macOS, FreeBSD, NetBSD, OpenBSD) и на оборудовании с другой аппаратной архитектурой (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Код проекта написан на языке Си (ANSI C11) и распространяется под лицензией ISC. Из зависимостей требуется только libc (POSIX.1-2017)...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=58434


Содержание

Сообщения в этом обсуждении
"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 05-Янв-23 09:20 
Нужно больше слоёв прослоек и виртуализации.
Зачем нам нужен maximum performance в родных, оптимизированных бинариях? Мы луДше засунем туда все, смешаем и взболтаем com, pe и elf, а потом начнем выполнять на виртуалке. А еще луДше - в виртуалке внутри виртуалки, чтобы мы могли отлаживать виртуалку внутри виртуалки. Java уже стописят лет как сделала? Даже редмондсофт семьсятпять лет как сделала IL? Мы пойдем своим путём - у них у всех есть ФАТАЛЬНЫЙ НЕДОСТАТОК!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено папа Мигеля , 05-Янв-23 09:53 
> в родных, оптимизированных бинариях?

Которые ты для всех напишешь, да?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 05-Янв-23 10:05 
Компилятор слинкует, родненький. Или ты того, самого, не в курсе процесса сборки программ?
А для проприентари есть ультиматимативное средство - "Я за что вам деньги плачу, разрывай договор, мои юристы с вас еще неустойку с ущербом спишут".

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:35 
Я уже представляю, как я пишу это в давно закрытую компанию, выпустившую пару классных игрушек в начале 2000х, и требую от них порта на RISC-V.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:44 
Игрушка явно настолько классная - широко известная в очень-очень узеньких кругах - что для нее не появилось ни Open* движков, ни ремастера с Гога, ни даже официально вскрытых исходников?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено DBA , 05-Янв-23 11:48 
например эта Supreme Commander: Forged Alliance

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 22:31 
Или Unreal(1998).

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 15:29 
RTS-ники - кликеры everywhere

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Просто , 09-Янв-23 15:55 
Хороша стратежка. Особенно вариант FAF

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено НяшМяш , 05-Янв-23 11:55 
> ремастера с Гога

Не знал, что они добавляют процессорные архитектуры в порты.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 13:42 
Кстати, добавляют. По крайней мере, на x86_64.

Если посмотришь, там есть ремастеры кучи классический РПГ типа Baldur's Gate 1/2, Icewind Dale 1 и так далее. А вот ремастера Icewind Dale 2 нет, как раз потому что Black Isle просpали исходники.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено _dz , 05-Янв-23 19:08 
>А вот ремастера Icewind Dale 2 нет

Есть мод фанатский на ремастер BG. Но он вроде как пока в закрытой бете и только под винду:
https://forums.beamdog.com/discussion/79872/icewind-dale-2-e...


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 13:35 
Ага. Прикинь, и такое бывает! А от некоторых игрушек, бывает, исходники вообще просраны.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Бывалый смузихлёб , 05-Янв-23 15:55 
> исходники вообще просраны

3DO с героями меча и магии, ты ли это
До сих пор неясно, как юбисофт умудрился купить шматок некомпилируемого продукта даже без доков по лору


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 05-Янв-23 18:20 
Пути три:
а) в стим, к Габену, и требуешь, чтобы за твои 249.99 по скидке он дал возможность тебе играть на риске.
б) идёшь к Vovan34-namber-van на рутрекере и слезно умоляешь в комментариях сделать сборку под твой риск.
в) ставишь нормальное РОДНОЕ окружение для игры (накладные расходы при прямых руках будут минимальны) или, если ниасилил - вино.
Играешь.

Эта порнография с универсальными бинарниками в недоВМ в принципе имеет сценарии использования, но их настолько мало, что можно ими пренебречь.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 21:46 
А кроме манямирка решения будут? К габену он пойдёт, ути какой серьёзный.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 11:51 
Интересно, почему так не происходит в реальности?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 16:18 
Тебе не нужно — не мешай другим работать.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 05-Янв-23 23:34 
Сразу видно человека, который даже хелловорлд толком осилить не смог.

Я в прошлом году выкладывал очень простую инструкцию по сборке своей одной программы под множество архитектур. Так вот, все что слегка сложнее хелловорлда сразу под все не соберется. И не сразу не соберется. И с танцами с бубном не соберется. А когда ты уже все нервы себе вытрепешь и таки соберешь, то не запустится (есть и вторая инструкция, по запуску).

Если хочешь нас поразить и усадить в лужу своим "профессионализмом" - возьми какой-нибудь мало-мальски известный проект (но не задроченный уже с болью и потом авторами именно что под мультиплатформу) и собери. Что может быть проще, да?
Точнее - сделай патчи, чтобы он собирался и хотя бы(!) запускался, и покажи.

Покажи и мы все точно заткнемся. И поверим, что ты действительно знаешь о чем говоришь (на самом деле не поверим, так как у нас тоже есть опыт - мы этим, понимаешь ли, каждый день занимаемся).

ссылка раз: https://www.opennet.me/tips/3193_build_compile_test_arm_mips...
ссылка два: https://www.opennet.me/tips/3201_helloworld_build_compile_li...


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 06-Янв-23 00:27 
Хы, ты опять гитхабами меряться лезешь.
Все-таки приятно, что даже сам ВЫЛИКЫЙ УРРИ триггернулся.

> А когда ты уже все нервы себе вытрепешь и таки соберешь, то не запустится (есть и вторая инструкция, по запуску).

А я обычно изучаю предполагаемую целевую архитектуру. Сначала. Перед сборкой. Чтобы иметь представление, какие функции там есть и какие механизмы как реализованы. После чего все вполне достаточно просто - хотя и не спорю, иные моменты приходится выносить в условную компиляцию, а другие - перерабатывать с учетом того, что такой мегаудобной функции нет, или есть, только возвращает не то и не так.

А вообще здесь стоит задать простой вопрос: "Ты считаешь себя программистом, при этом достаточно не раскуривая целевых платформ при кросс-сборке?"

> то не запустится (есть и вторая инструкция, по запуску).

Эта проблема сохраняется и с этими "универсальными" бинарниками внутри недовиртуалки - программа работает в окружении, а окружение - ВНЕЗАПНО - может быть разным.

> Точнее - сделай патчи, чтобы он собирался и хотя бы(!) запускался, и покажи.

Сколько ты за это заплатишь? Нет, серьёзно. Сумма на кону.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 01:47 
> А я обычно изучаю предполагаемую целевую архитектуру. Сначала. Перед сборкой.

Кинь-ка нам ссылку на историю github'а, показывающую, как эта стратегия, приводит к успеху в создании мультиплатформенных приложений. Пока это звучит не как, работающая стратегия, а как необоснованный дилетантский оптимизм.

> Сколько ты за это заплатишь? Нет, серьёзно. Сумма на кону.

Сейчас ты должен ему доплачивать за хороший совет, как ты можешь поднять свою квалификацию. Он, от широкой души видимо, не просит денег. Но это не значит, что он тебе должен доплачивать за то, что ты займёшься самообразованием.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 06-Янв-23 20:36 
> Сколько ты за это заплатишь? Нет, серьёзно. Сумма на кону.

Хы. Получается мультиплатформа это таки сложно? Настолько, что без денежки даже за что-то средненькое браться не комильфо?

О чем я и писал.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 06-Янв-23 23:55 
> Настолько, что без денежки даже за что-то средненькое браться не комильфо?

Не-а, дядя.

Просто меряться цифровыми членами с тобой, выполняя рутинную работу в НЕРАБОЧЕЕ время - особенно в новогодние праздники - нахожу немного неразумным. Семья, быт, отдых, здоровый сон, к родителям съездить, все дела - терять ради тупого спора желания нет. Если у тебя настолько нет жизни - то это, на деле, не мои проблемы, а твоё горе.

Так и запишем - урри не готов компенсировать свои тупые "Я протрахался стописят часов, портируя Х на Y. Слабо тебе так же?"



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 07-Янв-23 07:11 
Ну, понимаешь, а для остальных в результате есть солюшн от урри и фига от тебя. Не знаю на что вы спорили но предлагаю отдать победу Урри.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:21 
Хостовую виртуалку нужно написать на javascript.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 05-Янв-23 18:28 
Я уже как-то тут писал вполне вероятную цепочку из интерпретаторов и виртуальных машин типа: в eBPF запускаем урезанную java, внутри которой выполняется полная java, внутри полной java-машины крутится виртуалка с обычной виндой, в винде, в дотнетовском IL крутится написанная для шарпея обвязка для js-двигла, внутри js'а крутится мини-ОС, в которой выполняется родной HelloWorld.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:50 
>писал

Где скачать можно?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dzen Python , 05-Янв-23 18:56 
> Где скачать можно?

Где-то в истории комментариев.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 19:51 
>Зачем нам нужен maximum performance в родных, оптимизированных бинариях?

эта умнейшая мысль могла прийти только такому гениальному эксперту как вы. Ни один современный "разработчик" до неё бы не догадался.
Вам нужно начать переписывать программы чтобы их можно было скомпилировать в архитектуры ARM, RISC-V, MIPS, PowerPC, s390x. Уверена, такому компетентному разработчику как вы, это будет очень легко. Вы легко посрамите Justine Tunney, сделав бессмысленной её работу.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 11:56 
Вы s390 живьём когда последний раз видели?)))

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 21:15 
+ за Ваш стиль!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 09:31 
> По функциональности blink напоминает команду qemu-x86_64, но отличается
> от QEMU

тем что умеет запускать только бинарники linoops - причем загадочные "статически собранные приложения" (статической сборки в glibc нет уже двадцать лет).

О прочих "преимуществах" после этого можно было уже и не писать.
(Безусловно, программа которая абсолютно ничего не умеет, будет быстрее и компактнее полноценного эмулятора реальной аппаратуры. Быстро и компактно делая ничего.)

Чудо-отладчик, естественно, работает только для x86.

Хорошая поделка для гика, которому нечем заняться в новогодние каникулы, но пользы от нее - никому и никакой.



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 09:46 
> статической сборки в glibc нет уже двадцать лет

Да что ты говоришь, родной... Правда, что ли? Пойду расскажу коллегам по подвалу, а то "мужики-то не знают".


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:36 
>Да что ты говоришь, родной... Правда, что ли? Пойду расскажу коллегам по подвалу, а то "мужики-то не знают".

Расскажи. Заодно расскажи мужикам про dlopen(), который в glibc дёргается на каждый чих.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 11:52 
Это тебе кто такую чушь рассказал, или сам нафантазировал?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:28 
намекаешь, что нужно использовать glibc без nss, iconv и чего-то там еще

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 05-Янв-23 16:53 
Здрасьте приехали. Это новое поколение? Тебе сколько лет?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 05-Янв-23 23:57 
> Здрасьте приехали. Это новое поколение? Тебе сколько лет?

Судя по всему с линуксом давненько не работали... чувак правду говорит, под линуксом х86_64 glibc не компилится статически, если там что чуть посложней  ХелоВорлд, Я чуть ниже предложил Урри потренироваться на кошках/sqlite3, можете обьеденить усилия и доказать что есть еще порох в штанах


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 06-Янв-23 10:15 
Судя по минусам, убеждаюсь еще раз в "глубоких" знаниях "спецов" опеннета...


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 12:17 
>> Здрасьте приехали. Это новое поколение? Тебе сколько лет?
> Судя по всему с линуксом давненько не работали... чувак правду говорит, под
> линуксом х86_64 glibc не компилится статически, если там что чуть посложней
>  ХелоВорлд, Я чуть ниже предложил Урри потренироваться на кошках/sqlite3, можете
> обьеденить усилия и доказать что есть еще порох в штанах

Ну что же, вызов принят.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 13:07 
http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz

Собрано на Debian bullseye 64. Собрано почти по рецепту, полностью не разбирался, пакет отлаживать лень. Не собрано csv.so ну и понятно это .so.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 20:37 
> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
> Собрано на Debian bullseye 64. Собрано почти по рецепту, полностью не разбирался,
> пакет отлаживать лень. Не собрано csv.so ну и понятно это .so.

Сорри, но это обрубыш, которым пользоваться будет трудно (без readline, ncurses ), я чуть ниже предложил опции для компиляции, более сложный пример (и наверное боллее подходящий в контексте дискуссии) - статический php-cli с маст хэв extensions


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 08-Янв-23 13:26 
Там в папке рядом деб пакеты и rules как я собирал. Tar gz это фигня.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 10-Янв-23 02:15 
> Там в папке рядом деб пакеты и rules как я собирал. Tar
> gz это фигня.

Вот простой исходник:

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>

int main(int argc, char const *argv[]) {
    struct addrinfo hints;
    struct addrinfo *res, *tmp;
    char host[256];

    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family = AF_INET;

    if (argc != 2) {
        fprintf(stderr, "%s string\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    int ret = getaddrinfo(argv[1], NULL, &hints, &res);
    if (ret != 0) {
        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(ret));
        exit(EXIT_FAILURE);
    }

    for (tmp = res; tmp != NULL; tmp = tmp->ai_next) {
        getnameinfo(tmp->ai_addr, tmp->ai_addrlen, host, sizeof(host), NULL, 0, NI_NUMERICHOST);
        puts(host);
    }

    freeaddrinfo(res);
    exit(EXIT_SUCCESS);
}


Компилим:
    gcc -Wall -static  -static-libgcc -o getaddrinfo  getaddrinfo.c

Читаем:

    getaddrinfo.c:(.text+0x8c): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

делаем

   ldd getaddrinfo
    not a dynamic executable

котoрый вроде успокаивает, но теперь переносим бинарник на Alpine Linux и обламываемся потому как все написанно в предупреждении. В более сложных случаях, даже на системах с glibc но с более старой версией будет такой же облом потому как это фейк статика


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 05-Янв-23 23:41 
Хм.

```
$ cat helloworld.c
#include <stdio.h>

int main()
{
    printf("Hello, World!\n");
    return 42;
}

$ gcc helloworld.c -static -static-libgcc

$ ls
a.out helloworld.c

$ readelf -d a.out
There is no dynamic section in this file.

$ ./a.out
Hello, World!
```


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 05-Янв-23 23:46 
А теперь, чуть посложней пожалуйста -  sqlite3 для х86_64 под линь, плыз

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 06-Янв-23 20:48 
> А теперь, чуть посложней пожалуйста -  sqlite3 для х86_64 под линь,
> плыз

Писос ты бездарь... Самому сложно было трайнуть? Даже гуглить не надо, все выше написано.
Да без проблем. Минута времени:

$ uname -a
Linux PC 5.13.0-39-generic #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

$ wget https://www.sqlite.org/2022/sqlite-amalgamation-3400100.zip
$ unzip ./sqlite-amalgamation-3400100.zip
$ cd sqlite-amalgamation-3400100

$ gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc

$ readelf -d a.out
There is no dynamic section in this file.

$ ./a.out
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> create table noob (id integer primary key);
sqlite> insert into noob (id) values (NULL) returning id;
1
sqlite> .exit

--
А теперь просим выступить на бис с заявлением "извините, коллеги, облажался. написал фигню, но вы мне убедительно показали что был не прав.".


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 07-Янв-23 08:23 
> $ gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc

Так и знал что Урри найдет amalgamation и таки покажет лабуху мастеркласс. Зачетно.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 19:51 
>> $ gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc
> Так и знал что Урри найдет amalgamation и таки покажет лабуху мастеркласс.
> Зачетно.

Подшакалил ? Зачетно ! Лизни еще, а потом попробуй компильнуть ПЫХ или питон статически, не голяк, а экстеншенами с readline, json, xml...


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 19:42 
Откуда бLять у вас здесь столько желчи у всех?! В этом здесь большинство первоклассные спецы... "так держать !"


> gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc

/usr/bin/ld: /tmp/ccdxr656.o: in function `find_home_dir':
shell.c:(.text+0x283f2): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено пох. , 08-Янв-23 20:25 
о, ну хоть один попался если не грамотный то умеющих хотя бы прочитать выхлоп компилятора.

А сколько еще тебя ждет открытий чудных, если ты ЭТО еще и запускать вздумаешь...


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 10-Янв-23 02:11 
> о, ну хоть один попался если не грамотный то умеющих хотя бы прочитать выхлоп компилятора.

Да куда нам грешым до "вашего величества" :)

> А сколько еще тебя ждет открытий чудных, если ты ЭТО еще и запускать вздумаешь...

Это не ко мне, это к народу свято верующим в чудо что glibc можно компилить статически


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено пох. , 10-Янв-23 20:40 
> Это не ко мне, это к народу свято верующим в чудо что
> glibc можно компилить статически

На самом деле они правильное веруют - компилить - можно ;-) Только потом ничего кроме хеловротов не работает.

Я уж не знаю что такое надо придумать, чтоб не зацепить хотя бы nsswitch, а это в современных версиях еще далеко не все.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 22:13 
> А теперь просим выступить на бис с заявлением "извините, коллеги, облажался. написал
> фигню, но вы мне убедительно показали что был не прав.".

У меня проблем нет быть признательным и признавать свои ошибки, буду только рад если кто-то поправит, но только не на примерах ХелоВорлд. На сегодняшний день полагаться на то, что можно сложный проект слинковать с glibc без сюрпризов - не реально. Попробуйте собрать статически пых с расширениями(!), потом поговорим



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 10-Янв-23 02:19 
> Писос ты бездарь... Самому сложно было трайнуть? Даже гуглить не надо, все
> выше написано.
> Да без проблем. Минута времени:

Ну давай, "не" писос, попробуй:

https://www.opennet.me/openforum/vsluhforumID3/129432.html#256

> А теперь просим выступить на бис с заявлением "извините, коллеги, облажался. написал
> фигню, но вы мне убедительно показали что был не прав.".

^^^


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено pavlinux , 06-Янв-23 21:56 
> А теперь, чуть посложней пожалуйста

https://github.com/pavlinux/ctorrents-plx


...
LIBS :=-L. -static-libstdc++ -static-libgcc -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 07-Янв-23 08:54 
> https://github.com/pavlinux/ctorrents-plx

Хренакс, у каркуши даже что-то дельное в репах было.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 19:57 
>> А теперь, чуть посложней пожалуйста
> https://github.com/pavlinux/ctorrents-plx
> ...
> LIBS :=-L. -static-libstdc++ -static-libgcc -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto

ldd ctorrent
    linux-vdso.so.1 (0x00007ffc64275000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc1cff00000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1cfd7d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1cfbbd000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc1cff9f000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1cfb9c000)

Это - НЕ СТАТИКА

Должно быть: not a dynamic executable


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено pavlinux , 08-Янв-23 19:58 
>[оверквотинг удален]
>> LIBS :=-L. -static-libstdc++ -static-libgcc -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto
> ldd ctorrent
>  linux-vdso.so.1 (0x00007ffc64275000)
>  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc1cff00000)
>  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1cfd7d000)
>  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1cfbbd000)
>  /lib64/ld-linux-x86-64.so.2 (0x00007fc1cff9f000)
>  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1cfb9c000)
> Это - НЕ СТАТИКА
> Должно быть: not a dynamic executable

Давно это было, задача была от libstdc++ избавиться.
libc статиком - не проблема, только нафига если она
в системе юзается другими.



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 10-Янв-23 02:24 
>только нафига если она
> в системе юзается другими.

Далеко не везде есть glibc, как самый яркий пример Alpine Linux, где даже правильно скомпилированный статически исходник ликнутый с glibc работаь не будет, в то время когда настоящий статический бинарник будет работать на всех версиях внутри платформы


Пример: https://www.opennet.me/openforum/vsluhforumID3/129432.html#256


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 10-Янв-23 23:20 
> libc статиком - не проблема, только нафига если она
> в системе юзается другими

Банально — к примеру, у меня есть сборочный хост с glibc 2.32 и я хочу собирать на нём один портативный бинарник, который бы будет запускаться на любом LTS линуксе.

Собираю и получаю падение на CentOS 7, потому что символы всё равно берутся из glibc, но версия символов не совпадает с рантаймом.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 05-Янв-23 23:43 
> Да что ты говоришь, родной... Правда, что ли? Пойду расскажу коллегам по подвалу, а то "мужики-то не знают".

Ну скомпилируйте там, сообща, sqlite3 к примеру для х86_64 под линолиум ;)
Не забудьте похвастать как получится


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 06-Янв-23 10:42 
В чем проблема?

test@test:~/test$ cat test.c
#include <sqlite3.h>
#include <stdio.h>

int main(void) {
    printf("%s\n", sqlite3_libversion());
    return 0;
}
test@test:~/WORK/test$ cc test.c -I sqlite3/include -l sqlite3 -L sqlite3/lib -static  -static-libgcc -pthread -ldl -lm
/usr/bin/ld: sqlite3/lib/libsqlite3.a(sqlite3.o): in function `unixDlOpen':
~/test/sqlite-autoconf-3400100/sqlite3.c:43242: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
test@test:~/test$ ./a.out
3.40.1
test@test:~/test$  readelf -d a.out

There is no dynamic section in this file.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 10:57 
> В чем проблема?

может в этом?
> warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

оно у тебя статическое в плане формата бинарника, но dlopen немного мешает. Например в зависимости от конфигов хоста glibc будет подгружать модули с хоста и эти модули могут не подойти


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 06-Янв-23 11:17 
В чем проблема взять статически собранную libc и залинковать?
ну да бинарник будет толстый :))

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 11:29 
а можно еще вырезать поддержку модулей.

Проблема в том, что ты не сможешь залинковать все модули. Например у пользователя более свежая версия libc и там появилось несколько новых модулей, которых нет в бинарнике или у него вообще свой модуль. Загрузить мы их не можем, будем игнорировать настройки системы и станем работать с тем, что есть?

т.е. приходим к тому, что libc в общем случае получается не совсем статическая и надо либо ее резать, либо впихивать в нее какой-то набор модулей и работать только с ним в нарушение настроек.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 06-Янв-23 11:33 
Вам шашечки? или ехать?
если ехать то статический бинарник который работает везде, либо окружение с shared библиотеками которым нужно только ядро...



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 11:54 
я просто говорю, что в общем случае получить "статический бинарник который работает везде" с glibc нельзя. Если мы что-то колдуем с модулями, то это уже не "общий" случай и оно все равно может не заработать везде.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 06-Янв-23 12:00 
еще раз задаем вопрос.
почему нельзя взять статический libc с тем что тебе нужно????
религия не позволяет??

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 12:28 
на хосте используется libnss_ldap:
1. ты про него забыл. Твой "статический бинарник который работает везде" продолжит работу с непонятным результатом или завершится?
2. ты про него не забыл, но он бесполезен, т.к. на хосте настройки для более новой версии. Твой "статический бинарник который работает везде" продолжит работу с непонятным результатом или завершится?

а теперь представим, что на хосте используется лютая экзотическая проприетарщина libnss_wtf, исходников для которой нет. Как будем поступать?

> почему нельзя взять статический libc с тем что тебе нужно????

потому что ты должен взять статический libc с тем, что нужно пользователю.
Если пользователь ты и окружение, где исполняется бинарник, под твоим контролем, то проблем нет.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 06-Янв-23 12:39 
ну так бы и сказал, сферический конь в вакууме скорее всего не поедет...

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 12:52 
ну я и говорил, про "общий случай"
но тут не конь в вакууме. glibc такой и задумана — она использует модули в зависимости от конфигов хоста.

Я даже не уверен, что в более частном случае, например при использовании libnss_systemd, получится добиться успеха при разных версиях systemd


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 14:59 
glibc сама не использует dlopen. А что есть в статическом бинарнике дак то и есть.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 16:44 
> glibc сама не использует dlopen

просто грепом по исходникам:
inet/idna.c
nss/nss_module.c
iconv/gconv_dl.c

даже твой статический sqlite3 смотрит в /etc/nsswitch.conf, а потом ищет и открывает libnss_files или libnss_sss. (да, я запускаю бинарники от анонимов)


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 17:05 
>> glibc сама не использует dlopen
> просто грепом по исходникам:
> inet/idna.c
> nss/nss_module.c
> iconv/gconv_dl.c
> даже твой статический sqlite3 смотрит в /etc/nsswitch.conf, а потом ищет и открывает
> libnss_files или libnss_sss. (да, я запускаю бинарники от анонимов)

Я все равно не понимаю тебя. В общем случае для программы, использующей плагины, тащи их и их полный рантайм в LD_LIBRARY_PATH. На сам статический бинарник это не влияет.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 17:28 
> для программы, использующей плагины

glibc сама по себе использует плагины, поэтому любая программа слинкованная с glibc использует плагины glibc. Какие плагины будут использованы зависит от вызываемых функций и настроек хоста пользователя. На хосте может быть установлен и настроен произвольный набор плагинов glibc, которые твой статический бинарник не сможет использовать или сможет, но результат непредсказуем (segfault например).

предупреждение как раз об этом — в общем случае статический бинарник с glibc не самодостаточен


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 17:33 
>> для программы, использующей плагины
> glibc сама по себе использует плагины, поэтому любая программа слинкованная с glibc
> использует плагины glibc. Какие плагины будут использованы зависит от вызываемых функций
> и настроек хоста пользователя. На хосте может быть установлен и настроен
> произвольный набор плагинов glibc, которые твой статический бинарник не сможет использовать
> или сможет, но результат непредсказуем (segfault например).
> предупреждение как раз об этом — в общем случае статический бинарник с
> glibc не самодостаточен

Статическая версия glibc.a не использует плагины, Вы заблуждаетесь. Нужно только плагин программы и его зависимости. Об этом и предупреждают.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 17:35 
>>> для программы, использующей плагины
>> glibc сама по себе использует плагины, поэтому любая программа слинкованная с glibc
>> использует плагины glibc. Какие плагины будут использованы зависит от вызываемых функций
>> и настроек хоста пользователя. На хосте может быть установлен и настроен
>> произвольный набор плагинов glibc, которые твой статический бинарник не сможет использовать
>> или сможет, но результат непредсказуем (segfault например).
>> предупреждение как раз об этом — в общем случае статический бинарник с
>> glibc не самодостаточен
> Статическая версия glibc.a не использует плагины, Вы заблуждаетесь. Нужно только плагин
> программы и его зависимости. Об этом и предупреждают.

Смотрите код, там или явные ifdef, или "откроем библиотеку, а если нет, поищем и без неё в самом бинаре".


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 17:40 
так "не использует плагины" или "откроем библиотеку"?

> поищем и без неё в самом бинаре".

и что произойдет, если в бинаре нет подходящей?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 17:19 
>> glibc сама не использует dlopen
> просто грепом по исходникам:
> inet/idna.c
> nss/nss_module.c
> iconv/gconv_dl.c
> даже твой статический sqlite3 смотрит в /etc/nsswitch.conf, а потом ищет и открывает
> libnss_files или libnss_sss. (да, я запускаю бинарники от анонимов)

Нет, не вводи нас в заблуждение, при статической линковке там обходные пути.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 17:33 
какие?

$ strace 2>&1 ./sqlite3 | grep ^open
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib64/ld-linux-x86-64.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/user/.sqliterc", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/user/.sqlite_history", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/terminfo/x/xterm", O_RDONLY) = 3
openat(AT_FDCWD, "/user/.inputrc", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/inputrc", O_RDONLY) = 3


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 17:37 
>[оверквотинг удален]
> openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
> openat(AT_FDCWD, "/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
> openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
> openat(AT_FDCWD, "/lib64/ld-linux-x86-64.so.2", O_RDONLY|O_CLOEXEC) = 3
> open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
> openat(AT_FDCWD, "/user/.sqliterc", O_RDONLY) = -1 ENOENT (No such file or directory)
> openat(AT_FDCWD, "/user/.sqlite_history", O_RDONLY) = -1 ENOENT (No such file or directory)
> openat(AT_FDCWD, "/usr/share/terminfo/x/xterm", O_RDONLY) = 3
> openat(AT_FDCWD, "/user/.inputrc", O_RDONLY) = -1 ENOENT (No such file or directory)
> openat(AT_FDCWD, "/etc/inputrc", O_RDONLY) = 3

file ./sqlite3 ?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 17:42 
вы же сами можете запустить файл из своего поста. Там таки вирус? :)

$ file ./sqlite3
./sqlite3: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=40a90728237f33e18647d91a31e9c9f4209c9773, for GNU/Linux 3.2.0, not stripped


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 17:48 
> вы же сами можете запустить файл из своего поста. Там таки вирус?
> :)
> $ file ./sqlite3
> ./sqlite3: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked,
> BuildID[sha1]=40a90728237f33e18647d91a31e9c9f4209c9773, for GNU/Linux 3.2.0, not
> stripped

Не нервничай, истина того стоит. Открыват если есть.


sudo chroot . ./sqlite3
SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

Вот ему неоткуда взять, и что это для нас означает?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 18:01 
это означает, что sqlite не использует nss, по крайней мере при простом запуске, а обращение к библиотекам происходит из-за инициализации частей самой glibc

Вряд ли sqlite вызывает getaddrinfo или что-то подобное. Вообще на мой взгляд пример неудачный, т.к. взаимодействия с чем-либо кроме файлов там вроде нет. /etc/passwd оно конечно прочитало, но я не знаю, есть ли в sqlite функции связанные с пользователями системы


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 18:09 
Ну и пусть, на этой остановке я пожалуй сойду. Просто нет такой помойки в Linux чтобы libnss* с собой таскать.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 06-Янв-23 15:22 
Это предупреждение как я понял из экспериментов говорит о том, что загружаемя dlopen библиотека все равно потянет свой рантайм своих ldd зависимостей. Это не значит что мы должны переносить рантайм с бюилд системы.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 18:29 
> Это предупреждение как я понял из экспериментов говорит о том, что загружаемя
> dlopen библиотека все равно потянет свой рантайм своих ldd зависимостей. Это
> не значит что мы должны переносить рантайм с бюилд системы.

Если не использовать читинг с мюслями, то c glibc это облом

```
    wget https://www.sqlite.org/2022/sqlite-amalgamation-3400100.zip && unzip ./sqlite-amalgamation-3400100.zip
    cd ./sqlite-amalgamation-3400100

    gcc  -O2                \
      -DHAVE_USLEEP         \
      -DSQLITE_DQS=0        \
      -DHAVE_READLINE       \
      -DSQLITE_USE_ALLOCA   \
      -DSQLITE_THREADSAFE=0 \
      -DSQLITE_ENABLE_FTS4  \
      -DSQLITE_ENABLE_FTS5  \
      -DSQLITE_ENABLE_JSON1 \
      -DSQLITE_ENABLE_RTREE \
      -DSQLITE_ENABLE_EXPLAIN_COMMENTS \
      -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
      shell.c sqlite3.c  -static -lpthread -ldl -lm -lreadline -lncursesw -o sqlite3
```

сикля простой пример, но если добавить сетку, то с glibc будет еще веселей.

LD_LIBRARY_PATH тоже проблемно, побробуйте компильнуть PHP как статический CLI бинарник используя glibc, естественно не голый, а хотя бы с

bcmath
calendar
ctype
curl
dom
filter
gd
hash
iconv
inotify
json
libxml
mbstring
mongodb
mysqlnd
openssl
pcntl
pdo
pdo_mysql
phar
posix
redis
simplexml
sockets
sqlite3
pdo_sqlite
swoole
tokenizer
xml
xmlreader
xmlwriter
zlib


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 06-Янв-23 19:35 
> В чем проблема?

Можно глянуть на uname -a ?

И: ldd sqlite3


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хмм... , 06-Янв-23 20:08 
>> В чем проблема?
> Можно глянуть на uname -a ?
> И: ldd sqlite3

$ uname -a
Linux whyberg 5.16.0-0.bpo.3-amd64 #1 SMP PREEMPT Debian 5.16.11-1~bpo11+1 (2022-03-02) x86_64 GNU/Linux


$ ldd ./sqlite3
        linux-vdso.so.1 (0x00007fff5ebab000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbb1363d000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbb134f9000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbb134f3000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbb134d1000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbb132fc000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbb1381f000)


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 07-Янв-23 18:01 
вот когда  ldd ./sqlite3 начнет выводить для той же самой строки компиляции:

```
    not a dynamic executable
```

вот тогда можно будет смело сказать что компиляция статическая и бинарник можно таскать в пределах платформы и не нарываться на облом что glibc не совместима


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 09-Янв-23 14:08 
и че дальше :) ?
$ ldd sqlite3
not a dynamic executable


> вот когда  ldd ./sqlite3 начнет выводить для той же самой строки
> компиляции:
> ```
>     not a dynamic executable
> ```
> вот тогда можно будет смело сказать что компиляция статическая и бинарник можно
> таскать в пределах платформы и не нарываться на облом что glibc
> не совместима


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 10-Янв-23 02:08 
> и че дальше :) ?

А слабо самому (ну или "других мужиков с подвала" попросить) попробывать на Alpine Linux и убедится - Работать, не будет


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Хм... , 10-Янв-23 11:41 
Alpine Linux принципиально?

$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
$ uname -a
Linux cbttest 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$./sqlite3
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

напомню что собиралось все на машине вот такой
$ uname -a
Linux sqlitetest 5.16.0-0.bpo.3-amd64 #1 SMP PREEMPT Debian 5.16.11-1~bpo11+1 (2022-03-02) x86_64 GNU/Linux

ну и вишенкой оно и в chroot(пустой каталог с бинарником sqlite3) работает...


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 10-Янв-23 20:31 
> Alpine Linux принципиально?

Да, в силу того что он основой в докерах, а еще есть QNX, Void, Oasis, Chimera, Dragora, KISS... a еще чтобы не нарваться в лямбде на облом типа Opps, Glibc 2.xx not found

> cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)

на нем есть glibc,  поэтому и работает. В предупреждениях компилятора явно говорится что такая "статика" будет работать только там где есть glibc в системе, т.е. тоже самое что и с динамикой, - зависимость от внешей либы.

Я единстенное, что призаню, что пример с sqlite был плохой идеей (хотя если нацеплять на него полезные плагины, то он загнется тоже 100%)

В chroot оно работает только потому, что там нужна только функция поиска домашнего каталога, на что сикля ложет просто балалайку.

Весь смысл разговора был в том, - что с современным glibc нельзя сделать полноценный статический бинарник, и мой пример с getaddrinfo наглядно это показывает, выкручивайтесь как хотите с ключами для компилятора, но в системах где нет glibc - оно работать не будет


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 12-Янв-23 16:25 
Для любителей ставить минусы, - домашняя задачка:

https://www.opennet.me/openforum/vsluhforumID3/129432.html#256

Компильте со "статической glibc", а потом поробуйте резолвнуть ваш любимый сайт запуская бинарник поd Alpine Linux



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 20:50 
У нас в подвале pthreads при статической сборке на свежей убунте отвалились. Какой-нибудь join теперь пустышка, и нормально не подхватывается.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 09:42 
Нам нужен эмулятор x86 на процессе x86. Чтобы проприетарщина без sse с помощью эмулятора ускорялась инструкциями sse.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 11:22 
Может рекомпилятор тогда?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:45 
Эмулятор или рекомпилятор x86/x86_64 на/для RV64.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:11 
Под C/C++ существуют рекомпиляторы? Есть ли удобный способ декомпилировать бинарник, а потом его собрать заново?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:28 
Может тебе еще корову из котлет восстановить? Компиляция односторонний процесс. Его полное реверсирование невозможно. Некоторые штуки типа ida пытаются опознать типовые функции типовых рантаймов, понимают прототип вызова, но на этом все.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 05-Янв-23 23:44 
реверс - это восстановление алгоритма, а не как именно называлась переменная. и да, полный(!) реверс очень даже возможен. и мало того, что возможен, так еще куча народу этим постоянно занимается.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 10:04 
> реверс - это восстановление алгоритма

бинарный код - тоже описывает алгоритм. Причем наиболее приближенным к аппаратуре способом.
Но реверс таки нужен - для _понимания_ алгоритма.

Если переменные после "декомпилятора" называются var1 и var2, а функции - func0001/0002/и так далее - вряд ли ты разберешься в чем-то посложнее своего любимого хеловрота.

> еще куча народу этим постоянно занимается.

занимается. Вручную.
Но в результате получается - переписанный код, а не возврат к оригиналу.
Иногда - работающий неправильно, потому что что-то где-то недопоняли или не угадали.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 06-Янв-23 20:33 
Забавно что вчерашние школьники даже не представляют себе как можно понять алгоритм с var1 и var2, а не total-count-of-money-spent-in-the-mall. Но при этом так авторитетно рассказывают, так авторитетно ))

Как же энтузиасты отреверсили майнкрафтик до состояния полностью читабельного кода? Из var1 и var2?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 21:06 
С майнкрафтом проще хотябы потому, что у джавы байткод лучше декомпилируется (то есть с теми же var1, func_1488), и классы разложены по разным местам.
В большом нитивном блобе хрен разберёшь даже где данные а где код, и оптимизации могут очень всё попортить.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Урри , 06-Янв-23 23:15 
> В большом нитивном блобе хрен разберёшь даже где данные а где код,
> и оптимизации могут очень всё попортить.

Вполне нормально раскладывается. Тем более, что есть инструменты. Тыкнул в иде "с" - вот тебе и код.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 22:48 
Забавно наблюдать как ты пыжишься, пытаясь изобразить себя умнее всех, а по факту - д-л д-лом. Осилил хеловрот на двенадцати платформах... а, снова не ты осилил.

> Как же энтузиасты отреверсили майнкрафтик до состояния полностью читабельного кода?

Так же как ты мог бы "отреверсить" даже вообще бинарный код (правда, у x86 он не очень удобочитаем - но можно). Ну а чего - ручка, бумажка, сто лет впереди.

> Из var1 и var2?

afair, жабка сохраняет имена переменных в коде, если специально не стараться.

Ну и "отреверсили" - не декомпилировали. Тебе ведь никак не понять разницу? Отреверсить можно и вовсе mov eax, dword ptr [esi+2fb4h] - если у тебя впереди бесконечность. (У игроков в майнкрафт так-то, да)

Очень удобно и, главное - очень, очень похоже на тот прибор, куда суют колбасу а получается обратно баран. [Нет. Этот прибор умеет обычно хорошо что-то одно.]


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено _kp , 10-Янв-23 11:44 
>> Если переменные после "декомпилятора" называются var1 и var2, а функции - func0001/0002/и так далее..

Есть декомпиляторы восстанавливающие смысл значительной подобных имен, и делают выхлоп декомпилятора более понятным. И так же  строят карту кто что использует, что вызывает, наложение участков памяти, и нестандартные места.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Прохожий , 06-Янв-23 10:59 
Человек про компилятор спрашивал, а не про народ.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 05-Янв-23 16:56 
Не это нужно чтобы выполнять программы с no exec  разделов. Но хитрый Тео де Радт уже запретил  mmap (MAP_ANON|MAP_EXEC)

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 09:45 
Опять штука которая ничего не умеет оказалась быстрее на полтора виртуальных попугая

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 09:45 
неплохой эмулятор, пользуюсь уже года 4, пока все устраивает

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 06-Янв-23 00:01 
> неплохой эмулятор, пользуюсь уже года 4, пока все устраивает

Эта деваха на редкость умничка, редкий хакер(в хорошем смысле слова), побольше бы таких


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено OpenEcho , 06-Янв-23 00:07 
Бл... да она,оно,он... короче того этого... приехали, а я то уж повелся, думал новая Рутковски...

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 09:29 
Эта деваха - эмулятор.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:01 
blink -- это SIP-клиент, https://icanblink.com/

Качество эмуляции у этих ребят такое же, как и скилл нагуглить уникальное имя?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:11 
у тебя в паспорте тоже негуглящееся имя?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 02:43 
ага, 5000 программ разного назначения и все называются nginx. Еще 10000 - Exel. И Emacs несколько сотен, часть из них базы данных, другие - браузеры, третьи - игрушки уровня AAA. Ну а чё, других имен то нет, только Саша, Маша и Марина.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:53 
Blink это HTML-движок хромых браузеров, а не эти ваши SIP-клиенты.

Совсем у авторов названия кончились, я смотрю.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 11:04 
Blink это мигать

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено name , 05-Янв-23 14:18 
TO blink! Эх, молодежь, всему учить надо.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 16:07 
У меня в школе французский был, а эти ваши инглишы мы не изучали!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 16:18 
Позиционная связь в грамматике - не мой конёк, я не знаю как переводить такие отдельные английские слова, они мало значат.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено sig11 , 05-Янв-23 17:28 
Blink - это фидошный софт под OS/2

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 17:59 
Был такой, да. Ему ещё морду отрывать надо было, иначе память текла и нода за пару суток крашилась.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Michael Shigorin , 05-Янв-23 18:09 
А точно не bink? (фидошники тут binkd когда-то собирали)

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено sig11 , 05-Янв-23 22:36 
и bink был, и tmail, и golded
А Blink был только для чтения почты. Даж не нашел в инете ссылок.. Он еще до появления google помер

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено прохожий , 07-Янв-23 13:42 
нули праху его.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 10:58 
Эту штуку лучше рассматривать как DBI/DBA систему наряду с Valgrind или DynamoRIO.

Пока в зачаточном состоянии, но написть, например, отладчик памяти по аналогии с memcheck или Dr. Memory — весьма прямолинейная задача.

Открытым вопрос остаётся как Blink разруливает ситуацию с самомодифицирующимся кодом — фиременный pain-in-the-ass для проектов такого рода.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 05-Янв-23 17:01 
Самомодифицирующийся код, ужас какой, все безопасники от этого бегут, джит мешает многим, а тут чудеса какие не для простых смертных.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:30 
На мой вкус W^X такому коду и убить при поползновении, как эксплойт или малварь. Легитимных поводов это делать довольно мало. Особенно под вон той штукой.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Анонн , 07-Янв-23 00:32 
Так как раз в том и прикол что малвари как раз надо запускать в виртуалках чтобы они не трогали что не велено.
Или предлагаешь прямо на

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено _kp , 10-Янв-23 11:54 
В критичных к быстродействию местах самомодифицирующийся код не заменим ни как, кроме как несколькими экземплярами части ПО. Я не говорил про 3-4 экземпляра. Больше.

Но.. это или в очень хитрых играх в стародавние времена, или в эмуляторах, или в узкоспециализированном ПО.
В общем, если не сможет это переварить, мир не перевернётся.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 11:01 
Автор(ша) была раньше автором. Так можно под новую статью РФии попасть)
https://en.wikipedia.org/wiki/Justine_Tunney

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 11:30 
Это пример того, что те, кто говорят, что они недолюди, бесполезны и даже не программируют, а только COC пишут - врут.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:50 
Ну ведь второй-то пункт - выполнен?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено pashev.ru , 05-Янв-23 12:08 
Думаю, скоро оно совершит <роскомнадзор>.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 14:08 
Ого, судя по биографии, автор(ша) умудряется сочитать повесточку с "техно-фашизмом" (считает тебя не просто привелигированным цисгендерным чудаком, но ещё и тупым), левацкий социализм в духе "отнять и поделить" вместе с обожанием "правильных" корпораций (Google, где ему/ей дали работу), право на протест вместе с цензурой всех кто с ним/ней не согласен. "Интересная" личность, в общем.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 15:32 
> Автор(ша) была раньше автором.

ето просто эмуляция сработала


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 11:07 
> Код проекта написан на языке Си (ANSI C11)

Нет покоя безумцам


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:47 
K&R наше фсё!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:49 
Согласен, нужно было писать на чём-то нормальном типа lisp или ocaml.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 11:07 
Если считать, что раздувание и усложнение ПО - заговор, то многие её программы подтверждают его. И то же с Фабрисом Белларом.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:37 
А власти скрывают!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено YetAnotherOnanym , 05-Янв-23 11:07 
> опережающий QEMU по производительности

В этом нет ничего особенного.
> Cosmopolitan, Redbean

За таких павлино-утко-ежей розгами сечь надо.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:23 
Такие секатели розгами в реальности начинают лепетать, что розга это абстракция и вы меня не так поняли.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено YetAnotherOnanym , 05-Янв-23 18:33 
А уж как в реальности начинают лепетать те, кто грозился пообщаться в реальности с секателями розгами - заслушаешься!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено pic , 05-Янв-23 11:38 
Заявлено в 2 раза быстрее

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено pashev.ru , 05-Янв-23 12:07 
Переизобретая Яву.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено KroTozeR , 05-Янв-23 12:19 
Ох, ёлки... Какую только ересь не изобретут, лишь бы вые... попасть в книгу рекордов долбо... придумать что-то оригинальное, не шибко то полезное, но оригинальное.

А Wine/Crossover для кого придумали? Не, вы не понимаете, это другое? Или "Фу, старьё!!! Уноси, надо новое!". А ничего, что задача QEMU — полная эмуляция аппаратной платформы? То есть не для юзверей, а для разработчиков.

Вот и пришла эпоха кибернеформалов. Весь Github завален этим кринжем.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:36 
А в чем кринж? Вполне годная штука, если нужно запустить бинарь на неродной платформе.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 12:52 
Угу. Статический (!) бинарь. Линуксный (!) x86-64 (!) статический бинарь.
Очень-очень нужно запустить на неродной платформе.

Ты й..нутый или да?!


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 13:39 
Чувак, если все твои задачи сводятся к кручению виджетов в кде, то бери смузи и отваливай, не твоего ума.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 16:22 
Она сама использовала для разработки и типа топит за статические бинари с космополитан. Для такой разработки нужно, я думаю.
А что сложного добавить динамические?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:53 
> Она сама использовала для разработки и типа топит за статические бинари с
> космополитан. Для такой разработки нужно, я думаю.
> А что сложного добавить динамические?

А я знай?
Я боюсь в код ЭТОГО заглядывать. Так что нет даже предположений о том как хотя бы чисто технически достигнут сей "успех" (в конце-концов - ld.so вполне себе статический бинарник, если что).

Но, думаю, ларчик просто открывается - ЭТО работало в гугле. Т.е. бинарники на которых ОНО тренировалось - вполне вероятно - игогошные (а вовсе не космополитские какие). Никаких "dlopen" и никаких проблем. Что бывают еще какие-то другие - ОНО могло и не знать просто. Вот зачем бы тебе понадобилось такое запускать на чем-то кроме того на чем оно и так - это вопрос эсхатологический, тут его бестолку задавать.

Зато оно в двестиписисят раз быстрее куемы! (загадка даже, как это удалось сравнить)


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Сам себе режиссер , 05-Янв-23 16:50 
и в чем проблема? проприетарное ПО ооочень часто распространяется как статический бинарь и чаще всего собирают только под x86_64, а тебе надо запусткать на чем-то маленьком с aarch64. и оно вовсе не обязательно ресурсожрущее и/или риалтайм.

+ аналогичный кейс когда для разработки используется macos на m1/m2 (который тоже arm64=aarch64)


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Michael Shigorin , 05-Янв-23 18:12 
> Угу. Статический (!) бинарь. Линуксный (!) x86-64 (!) статический бинарь.
> Очень-очень нужно запустить на неродной платформе.

Хозяйке на заметку: найдите слово statifier на http://altlinux.org/эльбрус/rtc/перепаковка (насколько понимаю, дальше те же ребята сделали более универсальный magic ermine).


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:39 
Пользовался я как-то этим башегуано statifierом. Не помог, сгенеренная программа запускаться отказалась. Не на C была написана.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:54 
> Пользовался я как-то этим башегуано statifierом. Не помог, сгенеренная программа запускаться
> отказалась. Не на C была написана.

Как будто тебе помогло бы то, что она была бы на си...



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:32 
> Угу. Статический (!) бинарь. Линуксный (!) x86-64 (!) статический бинарь.

Всякие пропрентарные гамезы например.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено KroTozeR , 05-Янв-23 14:04 
> А в чем кринж? Вполне годная штука, если нужно запустить бинарь на
> неродной платформе.

Если надо протестировать "железо", есть QEMU.
Если надо просто запустить, есть WINE и WSL.
Приложения FreeBSD под GNU/Linux и GNU/Linux под FreeBSD под одной платформой я запускал и так.

В статье же говорится про эмулетранслятор под одной платформой — x86_64 (amd64).


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:56 
> Если надо протестировать "железо", есть QEMU.

хнык... ты бы знал как ты далек от просветления...

> Если надо просто запустить, есть WINE и WSL.

Это если винду в венде. А вдруг нет?
> Приложения FreeBSD под GNU/Linux и GNU/Linux под FreeBSD под одной платформой я
> запускал и так.

оно и этого не умеет.

> В статье же говорится про эмулетранслятор под одной платформой — x86_64 (amd64).

нет, там вообще такого не говорится (хотя вряд ли оно соберется хоть под чем другим)

Там говорится что _запускать_ оно умеет покачто только x86_64 lin00ps и более ничего.



"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:17 
просто автор этого так называемого "продукта" даже не понимает что написал, а новость публикует.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено афтырь , 06-Янв-23 00:19 
Я к публиканту новости никакого отношения не имею. Он и правда не понимает что я написало, но я-то тут причем?

Я вообще ни о каких рассейских сайтах не в курсе и не хожу на них.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено GOrilla , 05-Янв-23 17:06 
Мы в курсе. У меня на моем компе спокойно выполняются чруты armhf  и aarch64 с помощью qemu-user-static.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:07 
один из немногих разумных комментариев во всей новости, достойный отлития в граните.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:34 
> А Wine/Crossover для кого придумали?

Попробуй им хоть что-то запустить на RISCV или aarch64? Чем тут вайн вообще поможет? А вот эта штука бодренько так x86-64 -> target транслирует.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено гага , 14-Янв-23 19:27 
Wine/Crossover это транслятор winapi, какое он вообще имеет отношение к эмуляторам архитектур процессоров?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено KroTozeR , 16-Янв-23 10:07 
> Wine/Crossover это транслятор winapi, какое он вообще имеет отношение к эмуляторам архитектур
> процессоров?

Никакого, но авторы проекта решили создать гибрид транслятора и эмулятора. Потому Wine/Crossover имеют отношение к упомянутому проекту.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 14:38 
>значительным приростом производительности

Ну если повыкидывать все условные переходы, какие есть в qemu, то действительно производительность прирастёт. Но зачем? Зачем нам несколько процентов производительности в обмен на неприминимость к реальному миру?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 14:47 
А он точно хорошо эмулирует?)))

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 16:00 
А чего это никто не орет что musl им не нужен? А то ведь глядите, сначала кто-нибудь запустит wine на малинке, потом игру с этим инструментом и потом ваше х86 железо станет ненужным ибо само уже давно теряет производительность из-за совместимости с х86. А интел то уже и так сливает амд. И нвидия сливает амд, особенно в линуксах.
Того и глядишь до Эльбрусов доберутся со своей ускоренной трансляцией окаянной и нельзя будет тупо орать что купленный у продавана старый штеуд еще годится для игорей.
А какая попа боль будет выбирать из Российских армов и Эльбрусов. Ну хоть на Байкал уже можно это вкорячить да глянуть что там с фэпээсами да ребятки?
Так ведь не охота из винды выползать на свет божий.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 16:20 
Из-за проблем с государством очень опасно брать эльбрусы и байкалы, если их будут впаривать населению - тут никакой особенной теории заговора припахивать не надо.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Michael Shigorin , 05-Янв-23 18:15 
> Из-за проблем с государством очень опасно брать эльбрусы и байкалы, если их будут впаривать
> населению - тут никакой особенной теории заговора припахивать не надо.

Скорее телеграфируйте детали зпт волнуюсь тчк.

// я всерьёз чуть не сполз под стол, прочитав это с домашнего "Эльбрус-16С"


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:29 
> с домашнего "Эльбрус-16С"

И? Похвастался? Молодец. Но для широких масс этот агрегат всё равно недоступен, как по деньгам, так и чисто физически не продаётся в каком-нибудь DNS'е. Разумнее по параметрам цена\производительность купить комплект на зеонах с али.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:39 
А ты широкая масса? Не признал так сразу. Те кто не могут себе позволить купить компьютер могут на вторичном рынке поискать предложения подешевле.
А тут видишь ли взрослые дяди ходят, которые имеют деньги и общаются и они не как широкие массы и способны выделить из бюджета сумму на покупку компьютера.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 22:04 
А смысл покупать за много денег дохлую платформу с проприетарным компилером? Производить это все равно не на чем.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 12:27 
То то интеловцы изо всех сил пытались такую платформу осилить, да не смогли.
Компилятор часть платформы. И GCC могут сами добавить нужные компоненты. Или ты думал на простых платформах простые компиляторы были бесплатными?
Если ты подозреваешь, что что-то происходит не так выучи ассемблер Эльбруса и дизассемблируй свои хеллоуворлды.
И то что ты не в курсе, что китайцы осилили техпроцесс это наверное для тебя персонально должны найти новость.
А то может еще чего тебе лично найти про то как чюв России решают данный вопрос? Ты не оборзел там слишком? Мне бы задохлый 12900к поменять на эльбоюрус 16С и я был бы счастлив.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Dima , 08-Янв-23 00:59 
А тебе Интел и Амд уже открыли прошивки процов? :))))) А Нвидиа? А изготовители процов на АРМ? :))))))))))))))))))) Толку что компилятор открытый, когда в самих железках всё закрыто и живёт своей жизнью. И Эльбрусы не мёртвая платформа.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 19:31 
Вот я дурак, купил себе новую Тойоту! Надо было Опель Кадет на вторичке поискать!

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено _kp , 10-Янв-23 12:30 
Если денег только на почти новую (фе)калилину, то старый Опель более комфортный вариант. Хотя и не Кадет. :)

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:09 
Разумнее? Зионы не оч для бытовых задач. И тот же фотошоп гораздо лучше работает когда там турбобуст 5ггц пусть и не долго. Древним зионам без симд место на помойке опять же. Зионы имеет смысл только на задачах типа баз данных (сюда же и более жирные кэши), или сервера (много подключений, много клиентов, задержки имеют значение больше скорости обработки процессором). Высокая стоимость не даст прироста производительности на бытовых задачах, для них есть несколько другие процессоры. А вот у сабжа восьмиканальная память и прямо интересно насколько хорошо она себя проявляет, потому что есть очень много задач, на которых память это узкое место.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 00:42 
> И тот же фотошоп гораздо лучше работает когда там турбобуст 5ггц пусть и не долго.

Как то поржал от души. Зачем тебе последний Фотошоп? У меня на моём i9-9900K стоит Фотошоп 7.0 эпохи Windows 98, и я на нём делаю то, что школоло с ютуба даже на последних версиях с всякой тряхомудией типа AI близко не умеют.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 10:15 
> Как то поржал от души. Зачем тебе последний Фотошоп? У меня на моём i9-9900K стоит Фотошоп 7.0
> эпохи Windows 98

который не умеет в 32бит, поэтому любые операции теряют данные?
Который не умеет в память больше единственнодоступной w98 гигабайтной (да и та с ограничениями) и нещадно насилует "scratch disk"? (надеюсь как верный поклонник доисторического хлама ты нашел ему под это ide dtla и наслаждаешься звуками "scratch"ей пока оно неторопливо рисует превьюшку к фильтру - заново на каждый движ регулятора)
У которого нет ACR вообще? (а еще ее надо обновлять вместе с камерой... впрочем, у тебя ж небось дедулин "зоркий", и вообще зачем фотошоп, щас-щас-щас, проявитель разведешь)

В котором даже просто увеличить картинку для попадания в разрешение принтера - хуже, чем просто ее отправить печатать как есть (потому что принтер может умеет в бикубик, а мы тогда изобретали ужасти вроде "stair interpolation" или вынуждены были использовать 3d-party софт)

Ну да, ну да... делаешь то что никто уже даже близко не умеет - и не хочет, ибо незачем др-ть в присядку.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 07-Янв-23 20:27 
Поставьте уже себе Dr. Halo в досбоксе, зачем себя фотошопом мучить.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 19:30 
Вам скорее не страшно, пока. И вам не впаривали же, вы сами взяли, ещё и сложно как-то за большие деньги. Так что я не уверен, что там есть закладки. Но они появятся, когда эльбрусы будут позиционироваться именно для дома и стоить дешевле.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 19:33 
На интелах закладки с рождения. Всем плевать.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 19:42 
Уже обсудили, важны не только закладки, но и пользование ими, а также "законодательные нормы". Это настолько очевидно, что просто совсем. Кроме того есть разные "стили управления", так что их наличие там менее очевидно. Разумеется из всего этого вытекает, что они не будут использовать их для массовых дел, так как их не это беспокоит. А вот у нас сделают, ибо всё держится на насилии и трон шатается.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 19:43 
Ну и более конкретно - я не в США живу, закладки других стран лучше, особенно не очень дружественных. В моём сообщении и про это как-бы есть, но оно путаное и многозначное.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 00:48 
> закладки других стран лучше

Поддержу. Сам выхожу в интернет исключительно с личного VPN на базе WireGuard, VPS'ка с которым расположена в "недружественной" стране. Про товарища майора забыл как о страшном сне.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено ivan_erohin , 08-Янв-23 17:41 
а у т-ща майора на дашборде красный флажок: "весь трафик в ваергарде,
весь обмен только с одним IP, открытого трафика вообще нет".

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 04:43 
Я всерьёз чуть не сполз под стол, прочитав про «домашний "Эльбрус-16С"»

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено mos87 , 06-Янв-23 21:40 
ой вей

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:32 
> будут впаривать населению

Как можно впарить компьютер на котором не идёт винда условному Васе со средней зарплатой 12к рублей даже для МСК.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:32 
> Как можно впарить компьютер

* за тысячи баксов


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:37 
Ах ну конечно. Вася же  винду по 16000 покупает с зарплатой в 12000 чтобы купить подешевле себе железо, а потом еще на игори тратиться готов.

https://www.dns-shop.ru/product/8175d0af45b4ed20/operacionna.../

К тому же в Москве зарплаты выше. Я уже молчу про поднятый МРОТ. Вас там из криокамеры наверное только по праздникам выпускают чтобы вы могли с пьяни с просону, да еще до кучи с бодуна ояпнуть свои очень важные 12 копеек как будто Васю заставляют покупать 16 ядерник вместо 12.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 19:32 
Самые богатые и самые жадные же (и воровитые, по крайней мере на постсовке). Видел много поцев с компом за овердофига денег (есесссно у них не только комп из имущества), которые не то что винду, лицуху любимой игры в стиме на распродаже со скидкой 80 и выше процентов жмутся купить.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 23:02 
Богатые не создают себе долги. А имущество еще удержать нужно. Так что вряд ли можно брать с таких пример. Их жизнь поставит на место как и наглосаксов. Игр уже столько навыпускали, что я менее 80% скидки и не смотрю больше. Ну правда, кто хочет заплатить за какой-нибудь Tekken 7 полную сумму? Так что если есть деньги на багет/пряники/кофе то и на игры найдутся.
И да, я гоняю на линуксе.
Современные игры полны убогой тухлой механики, так что юольшинство все равно не стоит внимания.
Где механика основанная на физике?
Нвидия же типа ускоритель физики. Все типа ж натурально.
За 20 лет после халф лайфа так и не родили физику. Так что 100 рублей максимум игры стоят.
Там просто нет современных технологий.
А то потом гномы валят на землю гигантов и это типа нормас и совсем не издевательство над здравым смыслом.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 19:36 
> винду по 16000 покупает

Это такой троллинг тупостью? Разве винду (да и вообще программы) кто-то ПОКУПАЕТ?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 23:03 
Да не тупи. Конечно покупают. И в паре с ноутбуками тоже.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Уася , 10-Янв-23 12:42 
И что ты тогда на опеннете делаешь? тут никто не покупает.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 19:33 
Там идёт винда. Через трансляцию, причём транслятор и запускается без ОС (сам себе ОС), вместе с драйверами и всё такое. Тормозит конечно, но не "до ужаса". Они даже киберпанк запускали и он даже не сильно тормозил.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено kusb , 05-Янв-23 16:22 
Кстати они не быстрее потому что большая часть аппаратного обеспечения не эмулируется?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:58 
> Кстати они не быстрее потому что большая часть аппаратного обеспечения не эмулируется?

я боюсь это смотреть, но по описанию похоже что потому что большая часть линуксного ведра - параэмулируется. То есть не аппаратное, и даже не паравиртуальные драйверы, а ядерная паравиртуалочка.

Понятно что не работает ничего сложнее хеловрота, но для хайпа - сойдет.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 22:05 
А зачем ему это делать?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:08 
На arm телефон установил Limbo ( qemu для android ). Тормоза дикие, сливает даже 386му. Вот бы стоящая альтернатива была...

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 18:26 
Какая-то хрень непойми как даже запускается.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 20:12 
полностью поддерживаю. Автор этого так называемого "продукта" вообще не понимает что делает.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено corvuscor , 05-Янв-23 20:29 
Вообще говоря, для RISC-V железа небесполезный проект.
Но нишу использования сильно сужают статические бинари и то,
что на ARM есть, например, Box86, FEX-Emu, дающие производительность
близкую к нативу и адаптированные для реальных юзеркейсов.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 21:41 
Обращает на себя внимание отсутствие AVX в списке поддерживаемых инструкций. Не означает ли это что x86_64-программы в этом эмуляторе не будут работать чуть менее чем все?

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 05-Янв-23 23:28 
AVX максимально бесполезен, а системы без AVX2 как-то работают и сегодня. В основном это поддержка в коде, по примеру как ffmpeg делает автодетект доступных инструкций в рантайме. Но, если ты скомпилируешь с такими параметрами, что avx обязателен, то бинарь исполняться не будет, и придётся потеть. Но такого софта не существует, ты сам должен отстрелить себе голову. Обычно таргет сегодня msse42 или msee41.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено НяшМяш , 06-Янв-23 11:28 
> Но такого софта не существует

Современные игрушки очень многие используют AVX или AVX2. Несколько лет назад в игры для совместимости два екзешника клали - вроде gamename.exe и gamename_avx2.exe


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 13:17 
Странная затея, особенно учитывая, что частота режется. Даже если не режется, температура повышается и начинает тротлить. Когда это целесообразно в играх всегда использовали simd, только, когда они нужны, и им отдельный бинарь не надо.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Андрей , 06-Янв-23 00:01 
На macOS научили Rosetta устанавливать deb пакеты, так что эмулятор ему и не особо нужен, хотя для маков софта и так предостаточно хорошего, не нужна в принципе и Rosetta.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 00:38 
> для маков софта и так предостаточно хорошего

Спасибо, перед сном поржал от души.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено iPony129412 , 07-Янв-23 11:24 
Я тут не так давно смотрел по новости

https://github.com/buttplugio/awesome-buttplug

Количество Windows Only конечно большое


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено vitalif , 06-Янв-23 02:33 
Эм... но это же некорректно сравнивать с QEMU, если оно только линуксовые бинари умеет

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 03:32 
Сделали ли бы уже какой-то интерфейик для запуска всякого неподходящего для данной платформы что бы так же как wine подхватывал все на лету а то опять сиди выбирай чего там под о что там

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 04:50 
> It's designed to do the same thing as the qemu-x86_64 command, except (a) rather than being a 4mb binary, Blink only has a ~156kb footprint; and (b) Blink goes 2x faster than Qemu on some benchmarks such as emulating GCC. The tradeoff is Blink doesn't have as many features as Qemu.

Может в этом (The tradeoff is Blink doesn't have as many features as Qemu.) и есть причина почему у этого транслятора footprint только 156Кб?


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 06-Янв-23 21:09 
Туда бы wine завернуть, чтобы можно было сразу виндовый exeшник на любой системе запускать.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Ддд , 06-Янв-23 23:27 
Хорошо что мои проги компилятся под все платформы

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Всем Анонимам Аноним , 07-Янв-23 15:26 
Прикольно читать большинство коментариев, что типа это не нужно.
Просто показывает насколько расходится ситуация с западными странами, где все сидят на M1 уже.

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Псевдоним аноним , 07-Янв-23 19:44 
Да всё нормально ребята, успокойтесь! А то ведь все станут учёными и у всех будут только лучшие компы, и счастье придёт всем, и бабушкам, и дедушкам, детям и другим...

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено bircoph , 07-Янв-23 19:55 
Глядя на профиль автора в github я уж было подумал, что это такая яркая и талантливая девушка в IT: https://github.com/jart

Но нет, чудес не бывает:
https://en.wikipedia.org/wiki/Justine_Tunney#Personal_life

Но к коду это замечание отношения не имеет, код и вправду хорош.


"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Псевдоним аноним , 07-Янв-23 20:01 
об этом давно уже было написано
https://www.opennet.me/opennews/art.shtml?num=50763

"Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."
Отправлено Аноним , 09-Янв-23 15:54 
Два раза быстрее? Но никто не вспоминает про Exagear на ARM, он быстрее QEMU в 4.5 раза