The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Cosmopolitan - стандартная Си-библиотека и формат кроссплатформенных исполняемых файлов

28.12.2020 10:12

Доступен первый выпуск проекта Cosmopolitan, развивающего стандартную Си-библиотеку и универсальный формат исполняемых файлов, который можно использовать для распространения программ для разных операционных систем. Получаемый при статическом связывании с предложенными libc и runtime файл пригоден для исполнения в любом дистрибутиве Linux, macOS, Windows, FreeBSD и OpenBSD. Код проекта распространяется под лицензией ISC (упрощённый вариант MIT/BSD).

Контейнер для формирования универсальных исполняемых файлов основан на совмещении специфичных для разных операционных систем сегментов и заголовков (PE, ELF, MACHO, OPENBSD) в одном файле. Для обеспечения запуска одного исполняемого файла в Windows и Unix-системах применяется трюк, суть которого в кодировании файлов Windows PE в виде shell-скрипта, пользуясь тем, что Thompson Shell не использует маркер скриптов "#!". В итоге создаётся исполняемый файл, в котором скомбинировано несколько разных форматов, используемых в Unix, Windows и macOS. Схема предложенного формата (пример приложения hello.com):


   MZqFpD='
   BIOS BOOT SECTOR'
   exec 7<> $(command -v $0)
   printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7
   exec "$0" "$@"
   exec qemu-x86_64 "$0" "$@"
   exit 1
   REAL MODE...
   ELF SEGMENTS...
   OPENBSD NOTE...
   MACHO HEADERS...
   CODE AND DATA...
   ZIP DIRECTORY...

Вначале файле указывается метка "MZqFpD", которая воспринимается как заголовок формата Windows PE. Данная последовательность также декодируется в инструкции "pop %r10 ; jno 0x4a ; jo 0x4a", а строка "\177ELF" в инструкцию "jg 0x47", которые применяются для проброса на точку входа. В Unix-системах выполняется shell-код, в котором используется команда exec с передачей исполняемого кода через неименованный канал. Ограничением предложенного метода является возможность запуска в Unix-подобных ОС только с использованием оболочек, поддерживающих режим совместимости с Thompson Shell. Прямой запуск при помощи системного вызова exec не сработает.

Вызов qemu-x86_64 предусмотрен для реализации дополнительной переносимости и позволяет выполнить скомпилированный для архитектуры x86_64 код на платформах, отличных от x86, например, на платах Raspberry Pi и устройствах Apple, укомплектованных процессорами ARM. Проект также может использоваться для создания самодостаточных приложений, работающих без операционной системы (bare metal). В таких приложениях к исполняемому файлу прикрепляется загрузчик, а программа выступает в роли загружаемой операционной системы.

В развиваемой проектом стандартной Си-библиотеке libc предложено около 1400 функций, позволяющих создавать консольные приложения. По производительности Cosmopolitan работает также быстро как и glibc и заметно опережает Musl и Newlib, при том, что Cosmopolitan по размеру кода на порядок меньше glibc и примерно соответствует Musl и Newlib. Для оптимизации часто вызываемых функций таких как memcpy и strlen, дополнительно используется техника "trickle-down performance", при которой для вызова функции применяется макрос-обвязка, в котором компилятор информируется о задействованных в процессе выполнения кода регистрах CPU, что позволяет экономить ресурсы при сохранении состояния CPU за счёт сохранения только изменяемых регистров.

Для создания программ, включающих несколько файлов (компоновки всех ресурсов в один файл), поддерживается формирование универсального исполняемого файла в виде специально оформленного ZIP-архива (содержимое можно посмотреть командой "unzip -v", но файл при этом остаётся доступным для прямого запуска).

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Прекращение поддержки формата исполняемых файлов a.out в ядре Linux
  3. OpenNews: Анализ использования фрагментов уязвимых библиотек в исполняемом коде
  4. OpenNews: Разработчики из Google предложили разработать свою libc для LLVM
  5. OpenNews: Для ядра Linux предложена реализация белого списка исполняемых приложений
  6. OpenNews: FatELF - формат для упаковки в исполняемый файл поддержки разных платформ
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54325-cosmopolitan
Ключевые слова: cosmopolitan, libc, exec, elf
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (162) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:35, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    NetBSD обидели :(
     
     
  • 2.20, Отпетый Виндузятник (?), 11:16, 28/12/2020 Скрыто ботом-модератором     [к модератору]
  • –8 +/
     
  • 2.41, Аноним (-), 12:18, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > NetBSD

    если надо будет, то сами для себя напишут поддержку. всё-таки в нетке прогеры крутые. и за себя пишут и детские баги или нубство в каких-нибудь openbsd находят типа как тут:

    https://www.opennet.ru/openforum/vsluhforumID3/119848.html#71

     
     
  • 3.47, Дон Ягон (ok), 12:38, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    О, поехавший тут как тут. Там уже свежее дыры нашли, дурик, обнови методичку)
     
     
  • 4.56, Аноним (1), 13:04, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В отличие от тебя, тот аноним подкрепил свой аргумент хоть чем-то, а ты пустослов.
     
     
  • 5.57, Дон Ягон (ok), 13:18, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В отличии от тебя я не семён)
    В отличии от тебя я знаю, где можно посмотреть список известных уязвимостей в openbsd и по-умолчанию считаю, что читающий эти строки тоже способен это найти. Если нет - тратить на него время тем более не стоит.
     
     
  • 6.63, Аноним (63), 13:30, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я другой аноним. А затмевающее самомнение не позволяет тебе в это поверить. И да, я не знаю где посмотреть. А теперь не тратьте своё время на меня, раз вы сами это написали. А по мне, если человек что-то утверждает, то должен быть готовым привести аргументы. А всякие отговорки про трату времени – детский лепет.
     
     
  • 7.74, Дон Ягон (ok), 13:51, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Честно - мне всё равно. Тратить время на тебя и не собираюсь, за то время что ты тут обижаешься, уже мог бы нагуглить всё, что хотел.
     
     
  • 8.79, деанон (?), 14:23, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Трепло, ответить время есть, а подтвердить правоту нет ... текст свёрнут, показать
     
     
  • 9.85, Дон Ягон (ok), 15:15, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Именно так ... текст свёрнут, показать
     
  • 9.93, Аноним (-), 15:39, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Т е хрень от балды можно писать только анонимам, а опровергать их можно только ... текст свёрнут, показать
     
     
  • 10.126, IRASoldier_registered (ok), 03:30, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Классика же гопота-менталитет-стайла - ты верблюд - нет - а докажи, что не ве... текст свёрнут, показать
     
  • 8.84, Аноним (1), 15:14, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, так всё равно, что снова комментарий написал И время совсем не потрати... текст свёрнут, показать
     
     
  • 9.87, Дон Ягон (ok), 15:15, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Мне всё равно, тот ты аноним или другой Заканчивай в любом случае ... текст свёрнут, показать
     
     
  • 10.88, Аноним (1), 15:20, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему это я должен заканчивать Не я обещал не тратить время, а вы ... текст свёрнут, показать
     
  • 5.66, Аноним (66), 13:42, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В отличие от тебя, тот аноним подкрепил свой аргумент хоть чем-то, а ты пустослов.
    >> Вот тебе и ку-ка-ре-ку самая безопасная в мире ОС OpenBSD ку-ка-ре-ку.

    Крутые аргументы, че.

     
     
  • 6.83, Аноним (1), 15:13, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По ссылкам переходить не умеем?
     
     
  • 7.91, Аноним (-), 15:29, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > По ссылкам переходить не умеем?

    Это цитата оттуда, о "совершенно другой аноним, у которого совсем-совсем не бомбит!"

     
     
  • 8.95, Аноним (1), 15:42, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да чёт не обратил внимание на эту эмоциональную часть в ссылке Извиняюсь ... текст свёрнут, показать
     
  • 3.65, Аноним (66), 13:39, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > всё-таки в нетке прогеры крутые. и за себя пишут и детские баги или нубство

    Пакетник, спотыкающийся на пробелах - оказывается взрослый, профессиональный баг. Яснопонятно.

     
  • 2.48, Дон Ягон (ok), 12:40, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    По-моему невозможность запустить это нечто (я не про netbsd ;)) - это плюс, а не минус. Очень надеюсь, что возможность сломать запуск слинкованных с этим приложений будет. Не нужна мне ваша кросплатформенная malware, запускаемая силами cosmopolitan.
     

     ....большая нить свёрнута, показать (20)

  • 1.2, Аноним (2), 10:39, 28/12/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     

     ....ответы скрыты (3)

  • 1.3, хацкер (ok), 10:40, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    > Для создания программ, включающих несколько файлов (компоновки всех ресурсов в один файл), поддерживается формирование универсального исполняемого файла в виде специально оформленного ZIP-архива

    прям голанг какой-то

     
     
  • 2.71, anonymous (??), 13:47, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какая вообще связь с Golang тут?
     
     
  • 3.152, Аноним (-), 10:15, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Какая вообще связь с Golang тут?

    Наверное размер файлов таскающих с собой все либы под все платформы. Интересно сколько на этом hello world весит?

     
  • 2.99, Аноним (99), 16:26, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Представляю как на такое будет ругаться антивирус.
     

  • 1.4, Аноним (4), 10:40, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А это уже интересно
     
     
  • 2.133, Аноним (133), 09:35, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ага, Томсон на удаление, чтоб вин-троянов не плодить.
     
     
  • 3.137, Аноним (137), 11:58, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты не понял, удалять надо все шеллы, которые путаются интерпретировать запускаемый файл, получив ENOEXEC. Записывай: ash, bash, dash, ksh, zsh… Другие пока не успел проверить.
     
     
  • 4.138, Аноним (137), 11:58, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    *пытаются
     
     
  • 5.153, Аноним (-), 10:16, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > *пытаются

    Вирусы погрызли спелчекер?

     

  • 1.5, Anonymou (?), 10:44, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Чувствую что крадётся ппц с такими проектами... Если раньше была надежда что код в другой системе не запускается, то с этой либой мы эту безопасность потеряем...
     
     
  • 2.64, Аноним (137), 13:38, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Если ты надеялся на такую «безопасность», у меня для тебя плохие новости…
     
     
  • 3.108, Аноним (1), 17:40, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вы придерживаетесь практики "всё или ничего"? Если дверь без замка, то лучше вообще без двери, да?
     
     
  • 4.118, Аноним (137), 00:33, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так это не дверь и не замок. Это распахнутые настежь ворота, в которые ведут рельсы с нестандартной шириной колеи, если ты так любишь аналогии. Вход открыт и конному, и пешему.
     

  • 1.7, A.Stahl (ok), 10:45, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Эти наши линуксоиды чуть не в обморок падают даже от предложения таскать с собой все so-шки, чтобы программа через 10 лет не превращалась в тыкву, а от такого предложения они же джихад объявят...
     
     
  • 2.8, анонэ (?), 10:47, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Чтобы программа не превращалась в тыкву, к ней прилагают исходники. Вендовый подход не нужен.
     
     
  • 3.12, A.Stahl (ok), 11:02, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Исходники это хорошо, но проблему не отменяют. Большинству людей нужно запускать программы, а не колупаться в выхлопе древних систем сборок. Вот скачаешь ты исходники на каком-то там Эрланге или, прости Ктулху, Форте. Что ты с ними делать будешь? Тут сишную программу редко с пол-пинка соберёшь...


     
     
  • 4.23, хацкер (ok), 11:21, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Большинству людей нужно запускать АКТУАЛЬНЫЕ программы. Если человеку кровь из носу нужно что-то давешнее, то он должен быть готов к увлекательнейшему времяпрепровождению (:
     
     
  • 5.39, Аноним (39), 12:13, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Проблема в том, что, актуальные программы превращаются в тыкву очень быстро, т.к. обновление зависимостей программы происходит быстрее чем обновление самой программы, если вообще происходит
     
     
  • 6.49, хацкер (ok), 12:44, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Этот вопрос на самом деле сложный. В Debian он разрешается полной заморозкой пакетной базы, в иных «нероллинговых» дистрибутивах для стабильности каждый пакет собирается с оглядкой на поддерживаемые версии зависимостей. Увы, но таковы реалии. Зато связанный с поломкой и последующей починкой unixporn помогает иногда скрасить пару холодных зимних вечеров.
     
  • 6.52, Аноним (137), 12:55, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > обновление зависимостей программы происходит быстрее чем обновление самой программы

    Не везде культура разработки такая же, как в ноде. Как правило, обратную совместимость всё же сохраняют, на бинарном уровне в том числе. Вот openssl без конца обновляют, а программы, слинкованные с версией 1.1.0древней, продолжают работать и с 1.1.1крайней.

     
     
  • 7.90, Lex (??), 15:25, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так у ноды и ее пакетного менеджера есть возможность норм разруливать в т.ч старые зависимости - они с некоторых пор никуда с npmjs не деваются если вирусная не обнаружилась.
    Тем более, ничто не мешает использовать локальные пакеты с любой кастомизацией.
     
     
  • 8.139, Аноним (137), 12:02, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Знаем-знаем Есть возможность притянуть сколь угодно старую и дырявую зависимост... текст свёрнут, показать
     
  • 5.43, zzz (??), 12:26, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, он абсолютно не должен ни к чему готовиться. Под десяткой я могу спокойно поставить 2007-ой офис. Это называется "обратная совместимость" - штука, которую в линуксе никто не нюхал, предпочитая вести разработку в стиле божественной десяточки.
     
     
  • 6.44, Отпетый Виндузятник (?), 12:33, 28/12/2020 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 6.46, хацкер (ok), 12:36, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Под десяткой я могу спокойно ... предпочитая вести разработку в стиле божественной десяточки

    у Вас тут явное противоречие: так божественна (в кавычках) она или всё же 2007 офис взлетит на ней без танцев с бубном?

     
     
  • 7.55, zzz (??), 13:03, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    2007 офис взлетит на ней без танцев с бубном. Под линуксом ты или вынужден обновлять вообще всё вне зависимости от желания, или идешь на три веселых
     
     
  • 8.59, Tifereth (ok), 13:20, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кто-нибудь, расскажите этому господину про Snap и Flatpak ... текст свёрнут, показать
     
     
  • 9.62, хацкер (ok), 13:29, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    честно -- не лучший выход... текст свёрнут, показать
     
     
  • 10.67, Аноним (137), 13:44, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Хреновый, но точно не хуже виндового ... текст свёрнут, показать
     
  • 9.68, псевдонимус (?), 13:44, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Оба переусложненные жирные уродцы ... текст свёрнут, показать
     
  • 9.98, zzz (??), 16:17, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Одной рукой ломать backward-compatibility каждый релиз, другой писать прослойку,... текст свёрнут, показать
     
     
  • 10.145, Tifereth (ok), 07:54, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Шизофрения - это когда физически всё происходит в одной голове Неверный термин ... текст свёрнут, показать
     
     
  • 11.146, псевдонимус (?), 17:19, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо Распихать все программы по виртуалкам давно уже можно Решение конечно ... текст свёрнут, показать
     
     
  • 12.147, Tifereth (ok), 17:47, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошие вопросы, и задать их нужно разработчикам и популяризаторам Snap Flatpak ... текст свёрнут, показать
     
     
  • 13.148, псевдонимус (?), 19:04, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У них одна параноидальная идея любое приложение считается вредоносным, если не ... большой текст свёрнут, показать
     
     
  • 14.150, Аноним (150), 08:30, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Bubblewrap, песочница из Flatpak, не предназначался для запуска вредоносного П... большой текст свёрнут, показать
     
     
  • 15.156, псевдонимус (?), 11:52, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я может невнятно, но показал, почему в общем случае это бессмысленно Дырки в Ду... текст свёрнут, показать
     
  • 13.149, псевдонимус (?), 19:07, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У них одна параноидальная идея любое приложение считается вредоносным, если не ... большой текст свёрнут, показать
     
     
  • 14.158, Аноним (-), 12:51, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Этот подход очень помогает от наслоений тулбаров толщиной в браузер, винлокеров ... большой текст свёрнут, показать
     
  • 8.157, Аноним (-), 12:44, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но работает это почему-то сильно хреновее офиса 97 И интерфейс в 2007 офисе отн... текст свёрнут, показать
     
  • 6.58, 1 (??), 13:20, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну запусти в десяточке первую civilization
     
     
  • 7.109, cvbxcbvxcvbxcvb (?), 18:15, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а есть где скачать циву?
    есть виртуалка с последней десяткой, можно попробовать
     
     
  • 8.113, трурль (?), 19:42, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https www old-games ru catalog gamename Civilization... текст свёрнут, показать
     
  • 7.134, Аноним (134), 10:09, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну запусти в десяточке первую civilization

    Она под DOS. DOSbox надо ставить.

     
     
  • 8.159, Аноним (-), 12:52, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дожили, досбокс в винде Обратная совместимость - говорили они ... текст свёрнут, показать
     
     
  • 9.163, cvbxcbvxcvbxcvb (?), 17:38, 06/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    не факт что актуальные процы умеют 16-битную эмуляцию - тут уже не до обратной с... текст свёрнут, показать
     
  • 5.50, Sgt. Gram (?), 12:50, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > что-то давешнее

    Не давешнее, а давнишнее. Давешнее — от «давеча», недавно.

     
     
  • 6.53, хацкер (ok), 13:00, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    спасибо
     
  • 5.82, псевдонимус (?), 14:38, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С чего это?
     
  • 5.86, Аноним (86), 15:15, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –8 +/
    А если именно актуальная не нужна? Я вот смотрю на одну такую актуальную версии 1.4.3 и понимаю, что ставить ее - плохая идея, ибо именно тот функционал, ради которого ей пользовался автор выкинул в 0.9.15 полтора года назад. Компилять самому - не факт что соберется на свежем QT и прочей шняге. В винде, само собой, никаких проблем: качай нужный экзешник с гитхаба и будет работать на всем от Win7 до Win10 20H2
     
     
  • 6.117, Led (ok), 00:09, 29/12/2020 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 7.140, Аноним (86), 12:24, 29/12/2020 Скрыто ботом-модератором     [к модератору]
  • –4 +/
     
  • 5.127, IRASoldier_registered (ok), 03:32, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кому должен? Сообществу, которое живет _по понятиям_ и у которого подгорает, когда "ах он сволота, из исходников не собирал, не пердолился, а просто запустил!"? :-)
     
     
  • 6.160, Аноним (-), 12:53, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это сообщество просто не хочет ассоциироваться с завирусованым ламерьем. Нормальное желание для разумных существ, кстати.
     
     
  • 7.161, IRASoldier_registered (ok), 15:37, 03/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Экий ты четкий и дерзкий.


     
  • 4.24, Аноним (24), 11:22, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Большинству людей нужно запускать программы, а не колупаться в выхлопе древних систем сборок

    Для этого люди придумали ебылды.

     
  • 4.30, user90 (?), 11:48, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Вот скачаешь ты исходники на каком-то там Эрланге или, прости Ктулху, Форте. Что ты с ними делать будешь?

    GCC!

     
  • 4.72, anonymous (??), 13:49, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Наберу "make"?
     
  • 4.154, Аноним (-), 10:19, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Исходники это хорошо, но проблему не отменяют. Большинству людей нужно запускать программы,
    > а не колупаться в выхлопе древних систем сборок. Вот скачаешь ты
    > исходники на каком-то там Эрланге или, прости Ктулху, Форте. Что ты
    > с ними делать будешь? Тут сишную программу редко с пол-пинка соберёшь...

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

     
  • 3.13, Отпетый Виндузятник (?), 11:02, 28/12/2020 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 4.15, Аноним (15), 11:03, 28/12/2020 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 5.18, Отпетый Виндузятник (?), 11:05, 28/12/2020 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 3.45, ixrws (??), 12:33, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Брехня, не компиляются исходники многих программ через 10 лет, потому что окружение сильно меняется и мелких изменений на средних размеров программу будет достаточно. Да, поправить зачастую не сложно, но кто будет править?
     
     
  • 4.60, 1 (??), 13:21, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Просто надо брать компилятор того же времени.
     
     
  • 5.69, Аноним (137), 13:45, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
     
  • 4.73, anonymous (??), 13:51, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В худшем случае есть chroot/lxc/docker.
     
  • 4.107, Урри (ok), 17:35, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Потому что надо писать на С, а не расте, го или другом каждые две недели меняющем синтаксис поделии.
     
     
  • 5.119, Аноним (137), 00:38, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пруфы касательно ломающих обратную совместимость изменений синтаксиса в rust и go ты нам, конечно же, сейчас предоставишь.
     
     
  • 6.155, Аноним (155), 10:21, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Пруфы касательно ломающих обратную совместимость изменений синтаксиса в rust и go ты
    > нам, конечно же, сейчас предоставишь.

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

     
  • 3.61, Аноним (61), 13:29, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > к ней прилагают исходники

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

     
     
  • 4.70, Аноним (137), 13:46, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для этого и существуют мейнтейнеры.
     
  • 4.78, Вася (??), 14:22, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    эта категория товарищей вполне себе может позволить взять в ручки, покрутить и обломавшись пойти дальше крутить средним колёсиком в ленточке новостей о том, кто где покакал. ничего в жизни при этом не потеряв, даже чувства собственного профессионального достоинства, даже завидно.

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

     
     
  • 5.115, Аноним (115), 20:51, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Почему-то дорогие комментаторы обходят стороной, что поломки старого кода через выпуск новых либ может делаться умышленно, некоторыми корпорациями. И на мой взгляд это уже очень давно практикуется. А для несогласных есть conduct of чего-то там и всякие другие уловки по нервотрепанию.
     
  • 2.27, iPony129412 (?), 11:31, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    У каждого линуксоида под подушкой свежий выпуск Cosmopolitan 😮
     
     
  • 3.29, Гэндальф (?), 11:38, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ах ты ж мой космополитичный пони! Хватит строчить камменты своими копытцами (к слову, как ты это делаешь? магия этого чёрта Сарумана, не иначе!), иди-ка вози хоббитов по Ширу.
     
     
  • 4.35, Аноним (6), 12:01, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это не тот пони, он не гарцующий.
     
  • 2.80, funny.falcon (?), 14:29, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Угу... и потому придумали docker, чтобы таскать с собою вообще всё пользовательское окружение.
     

     ....большая нить свёрнута, показать (63)

  • 1.9, Аноним (9), 10:59, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Извращение какое-то. Зачем и за что себя так мучить.
     
     
  • 2.14, Аноним (14), 11:02, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Прост.
     
  • 2.19, wrubfom (?), 11:16, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Было бы очень удобно кроссплатформенные вирусы писать, если бы не ограничение про неработающий exec
     

  • 1.16, Аноним (16), 11:03, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Прикольно. А C++ простые прожки тоже крос-платформенными становятся?
     
     
  • 2.28, Аноним (28), 11:34, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наверное, если туда в архив libstdc++ запихнуть.
     

  • 1.17, Аноним (17), 11:05, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Без своего дистрибутива как-то не серьезно
     
     
  • 2.25, хацкер (ok), 11:30, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    без своИХ дистрибутивОВ тогда уж
     

  • 1.21, Урри (ok), 11:17, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    К сожалению, не юзабельно.

    При подключении стандартных хедеров ругается на переопределение стандартных типов. А если хедеры не подключать - то многих стандартных типов и констант не хватает.

     
     
  • 2.75, anonymous (??), 13:53, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Каких например не хватает?
     
     
  • 3.105, Урри (ok), 17:30, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Например, <dlfcn.h>. Если включить <dlfcn.h>, то ругается
    ./cosmopolitan.h:25534:34: error: ‘RTLD_DI_LINKMAP’ redeclared as different kind of symbol
    25534 | #define RTLD_DI_LINKMAP SYMBOLIC(RTLD_DI_LINKMAP)

    А если не включать, то нету dlopen и dlsym.

    Нету inet_addr, gethostbyname, struct hostent, struct sockaddr_storage, prctl, SECCOMP_MODE_STRICT.
    Это из того, что я попробовал у себя быстро собрать.

     

  • 1.22, Аноним (24), 11:19, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Теперь вири будут работать везде?
     
     
  • 2.100, Аноним (99), 16:27, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На линуксе где в каждом дистре свои либы свои правила. Без потанцуй с бубном установи зависимости вирус запустить не получится.
     
     
  • 3.116, Аноним (116), 22:23, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как на счет вирусов, которые таскают в себе статическую стандартную библиотеку?
     
  • 2.102, Аноним (102), 16:35, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но сначала им нужно будет сделать chmod +x
     

  • 1.26, КО (?), 11:30, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я разочарован.
    Где очевидные петросянские комментарии?
     
     
  • 2.31, Аноним (31), 11:52, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Держи.

    > в любом дистрибутиве ... macOS

    Скомпилированная для macOS программа не запустится в ЛЮБОЙ версии macOS.

     
  • 2.38, Аноним (38), 12:08, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Напиши сам, исходники же есть (прямо тут где-то).
     

  • 1.32, erthink (ok), 11:54, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да уж, очень удобно для кросс-платформенных троянов и червей.
     
  • 1.33, InuYasha (??), 11:54, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    +1 как минимум за элегантный хак!
    А вообще - я всегда мечтал об универсальном формате исполняемых файлов.
     
     
  • 2.128, Аноним (128), 03:43, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мечта давным давно реализована и имя ей ELF.
     
     
  • 3.136, InuYasha (??), 11:10, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Мечта давным давно реализована и имя ей ELF.

    Win/DOS?

     
     
  • 4.142, Аноним (137), 19:40, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/kikoqiu/elfloader
     
     
  • 5.143, InuYasha (??), 01:59, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>Through it's just a toy now, it's able to run some small apps.

    через cygwin

     

  • 1.34, Аноним12345 (?), 11:58, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Отличная дыра
     
     
  • 2.112, Аноним (28), 18:47, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот на Расте как перепишут и не будет дыр.
     

  • 1.36, Аноним 80_уровня (ok), 12:02, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как сказал бы один доктор, "ну а мы продолжаем продолжать изобретать fat binaries".
     
     
  • 2.144, InuYasha (??), 02:00, 30/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    "ну а мы продолжаем продолжать читать fat trolls". )

     

  • 1.37, Аноним (-), 12:06, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А зачем так усложнять-то? Надо просто не покупать OS Windows и macOS. И тогда проблема решится сама собой.
     

     ....ответы скрыты (6)

  • 1.40, ryoken (ok), 12:16, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Запуск из OpenFirmware- & EFI-shell не привинтили, не комплект.
     
  • 1.51, Аноним (51), 12:51, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    - Я прекрасно знаком с компьютерной технологией «сто одна позиция».
    - Поподробней, пожалуйста.
    - Ну, для этого нужен 486-й, хотя бы. Хотя лучше Пентиум. Ах, да, вот ещё что хотел сказать.
    У меня, как у всякого знатока компьютерных технологий, есть свои принципы и свои симпатии и антипатии. Мне дорог IBM. Дорог своим подлинным демократизмом. Своим всемирным охватом, и, я не побоюсь этого слова, своим космополитизмом. Как омерзительны снобистские амбиции Макинтоша, этого убогого фетиша женоподобных слюнтяев из Гарварда и Йеля.
    Вот, собственно и всё, что я хотел сообщить вам на эту тему.
    «Пан или пропал», 2003 г., 5 серя, 4-6 минута
     
  • 1.54, Аноним (137), 13:01, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Тема не раскрыта. Как они решили проблему несовпадающих системных вызовов?
     
     
  • 2.81, funny.falcon (?), 14:31, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дублированием машинного код: в бинаре есть версии инструкций под каждую операционку.
     
  • 2.94, n00by (ok), 15:40, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    The Cosmopolitan Library exports only the most stable canonical system calls for all supported operating systems, regardless of which platform is used for compilation. We polyfill many of the APIs, e.g. read(), write() so they work consistently everywhere while other apis, e.g. CreateWindowEx(), might only work on one platform, in which case they become no-op functions on others.
     

  • 1.76, Аноним (76), 13:56, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Получаемый при статическом связывании

    Сразу на ***. Динамическое связывание не для того придумали и реализовали, чтобы всякие ****** продолжали пользоваться статическим, жря память и плодя не просто vulnerable dependency hell, а ещё и recompilation hell.


    А ведь взлетит: смузихлёбы такое дерьмо очень любят. А работать - не любят.

     
     
  • 2.104, Аноним (86), 16:45, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Динамическое связывание не нужно. Статическое дает хоть какие-то шансы запускать прогу под любым кocтылинупcoм простым копированием бинарей в /opt не заморачиваясь опакечиванием в rpm, deb, txz и прочие ебилды. Даже если собирал ты ее дома на последней федоре, а запускать придется еще и на работе в каком-нибудь SLES 5летней давности.
     
     
  • 3.130, анонимит (?), 07:12, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я статический бинарь собирал из Go приложения в Docker контейнере. Очень удобно то что одного файла там вообще ничего больше не было и все работает.
     
  • 3.151, Аноним (150), 08:45, 01/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А при динамическом связывании что мешает скопировать ещё горсть бинарей с расширением .so в любимый /opt? Не, не отвечай, твои вкусы слишком специфичны, я не пойму.
     
     
  • 4.162, Аноним (86), 17:28, 05/01/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >А при динамическом связывании что мешает скопировать ещё горсть бинарей с расширением .so в любимый /opt?

    Ненужность этой затеи

     

  • 1.77, Аноним (77), 14:17, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Охренительные просторы для размножения вирусов, парсеров паролей и прочей хренотени.
     
     
  • 2.96, ыы (?), 15:53, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Такое впечатление что вы только сейчас открыли мир гетерогенных сетей.

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

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

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

    к том уже что делать вирусу эесплуатирующему виндовый SMB в среде linux серверов - хз. со всей его кросплатформенностью... Вы не знаете?

     

  • 1.92, Ingener (??), 15:31, 28/12/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     
  • 1.97, YetAnotherOnanym (ok), 15:57, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ух, сколько подводных камней может вылезти в таких "универсальных" бинарниках...
     
     
  • 2.106, Аноним (106), 17:35, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Аха.
     

  • 1.110, Ingener2 (?), 18:30, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оно делает по к (к=5 где-то) ОС. Тогда бинарник будет в к раз жирнее? Так? Тогда надо ли оно? Может лучше чтобы компилер генерировал к разных бинарников и народ качал только "свой" бинарник без дополонительного мертвого груза в (к-1) бинарников?
     
     
  • 2.111, A.Stahl (ok), 18:39, 28/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ты глянь на размер современных бинарников. Именно исполнимых файлов, не данных. Они редко бывают больше пары МиБ, так что в большинстве случаев этой ерундой можно пренебречь.
     
     
  • 3.121, Аноним (123), 01:19, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    они редко бывают меньше 20 мб
     
     
  • 4.131, A.Stahl (ok), 07:54, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что это меняет в post-floppy мире?
     

  • 1.114, Аноним (114), 20:32, 28/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это интересно. А для прикладных программ оно пригодно?
     
  • 1.120, Аноним (123), 01:17, 29/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну и бредятина. Хотя для хелловорлда хватит
     
     
  • 2.125, Аноним (125), 02:36, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Дык трюкачи же ...
     

  • 1.122, Аноним (123), 01:20, 29/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как в мемчике про +1 стандарт
     
  • 1.132, CHERTS (ok), 08:47, 29/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>Прямой запуск при помощи системного вызова exec не сработает.

    И зачем оно нужно?

     
  • 1.135, Аноним (135), 10:48, 29/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Какое отвратительное название либы.
     
     
  • 2.141, Аноним (124), 16:06, 29/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так либа на гламурных и нацелена.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру