vak: (Default)
[personal profile] vak
Хотите хитрую задачку для любителей чего-нибудь просимулировать? В качестве домашнего хобби. Предлагается запустить на Линуксе бинарник от мака. Будет время - я сам эту задачку осилю, а пока предложу уважаемой публике.

Текст программы классический:
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
}
Если у вас линукс:
  • на интеловском процессоре - вот вам маковский бинарник Hello-World для архитектуры x86_64: hello-x86_64
  • на процессоре ARM (скажем, Raspberry Pi) - вот бинарник для архитектуры arm64: hello-arm64
Суть задания - написать программу, предположительно на Си или Си++, которая положит этот выполняемый код в память и запустит его, чтобы выдалось "Hello, World". Сразу предупрежу: бинарник требует системную динамическую библиотеку, а именно /usr/lib/libSystem.B.dylib. Вам придётся её сымитировать.

Подсказка: про устройство маковских бинарников и динамических библиотек можно подсмотреть в исходниках проекта Darling.

Date: 2023-11-04 12:51 (UTC)
ufm: (Default)
From: [personal profile] ufm
Интересно, вилки с ложками на кухне в семье - они динамические или разделяемые? :)