The OpenNET Project / Index page

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

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

21.08.2022 09:36

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

Контейнер для формирования универсальных исполняемых файлов основан на совмещении специфичных для разных операционных систем сегментов и заголовков (PE, ELF, MACHO, OPENBSD) в одном файле, комбинируя в нем несколько разных форматов, используемых в Unix, Windows и macOS. Для обеспечения запуска одного исполняемого файла в Windows и Unix-системах применяется трюк, связанный с кодированием файлов Windows PE в виде shell-скрипта, пользуясь тем, что Thompson Shell не использует маркер скриптов "#!". Для создания программ, включающих несколько файлов (компоновки всех ресурсов в один файл), поддерживается формирование исполняемого файла в виде специально оформленного ZIP-архива. Схема предложенного формата (пример приложения 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.

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

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

Среди изменений в новом выпуске:

  • Изменена схема обращения к внутренним ресурсам внутри zip-файла (при открытии файлов теперь используются обычные пути /zip/... вместо обращения по префиксу zip:..). Аналогично для доступа к дискам в Windows предоставлена возможность использования путей вида "/c/..." вместо "C:/...".
  • Предложен новый загрузчик APE (Actually Portable Executable), определяющий формат универсальных исполняемых файлов. Новый загрузчик использует mmap для размещения программы в памяти и больше не изменяет содержимое на лету. При необходимости универсальный исполняемый файл может быть сконвертирован в обычные исполняемые файлы, привязанные к отдельным платформам.
  • На платформе Linux реализована возможность использования модуля ядра binfmt_misc для запуска APE-программ. Отмечается что использование binfmt_misc является наиболее быстрым методом запуска.
  • Для Linux предложена реализация функциональности системных вызовов pledge() и unveil(), развиваемых проектом OpenBSD. Предоставляется API для использования данных вызовов в программах на языках C, C++, Python и Redbean, а также утилита pledge.com для изоляции произвольных процесов.
  • Для сборки задействована утилита Landlock Make - редакция GNU Make с более жёсткой проверкой зависимостей и использованием системного вызова Landlock для изоляции программы от остальной системы и повышения эффективности кэширования. В качестве опции сохранена возможности сборки и обычным GNU Make.
  • Реализованы функции для многопоточности - _spawn() и _join(), представляющие собой универсальные обвязки над специфичными для разных операционных систем API. Также ведётся работа над реализацией поддержки POSIX Threads.
  • Предоставлена возможность использования ключевого слова _Thread_local для использования отдельных для каждого потока хранилищ (TLS, Thread-Local Storage). По умолчанию C runtime инициализирует TLS для основного потока, что привело к увеличению минимального размера исполняемого файл с 12 до 16 КБ.
  • В исполняемые файлы добавлена поддержка параметров "--ftrace" и "--strace" для вывода в stderr информации о всех вызовах функций и системных вызовах.
  • Добавлена поддержка системного вызова closefrom(), поддерживаемого в Linux 5.9+, FreeBSD 8+ и OpenBSD.
  • На платформе Linux до 10 раз увеличена производительность вызовов clock_gettime и gettimeofday за счёт использования механизма vDSO (virtual dynamic shared object), дающего возможность перенести обработчик системного вызова в пространство пользователя и избежать переключений контекста.
  • Из библиотеки Musl перенесены математические функции для работы с комплексными числами. Ускорена работа многих математических функций.
  • Предложена функция nointernet(), отключающая сетевые возможности.
  • Добавлены новые функции для эффективного прикрепления строк: appendd, appendf, appendr, appends, appendw, appendz, kappendf, kvappendf и vappendf.
  • Добавлен защищённый вариант семейства функций kprintf(), предназначенный для работы при повышенных привилегиях.
  • Значительно повышена производительность реализаций SSL, SHA, curve25519 и RSA.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Cosmopolitan - стандартная Си-библиотека и формат кроссплатформенных исполняемых файлов
  3. OpenNews: Redbean 2.0 - платформа для web-приложений, упакованных в универсальный исполняемый ZIP-архив
  4. OpenNews: Проект по портированию механизма изоляции pledge для Linux
  5. OpenNews: Разработчики из Google предложили разработать свою libc для LLVM
  6. OpenNews: FatELF - формат для упаковки в исполняемый файл поддержки разных платформ
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/57663-cosmopolitan
Ключевые слова: cosmopolitan, libc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (95) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 13:09, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > без использования интерпретаторов и виртуальных машин

    exec qemu-x86_64 "$0" "$@"

    Точно-точно без?!

     
     
  • 2.8, Аноним84701 (ok), 13:56, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >> для распространения программ для разных операционных систем без использования интерпретаторов и виртуальных машин.

    ...
    >> Вызов qemu-x86_64 предусмотрен для реализации дополнительной переносимости и позволяет выполнить скомпилированный для архитектуры x86_64 код на платформах, отличных от x86,
    > exec qemu-x86_64 "$0" "$@"
    > Точно-точно без?!

    Точно-точно читал?

     
     
  • 3.22, Аноним (3), 15:35, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > для разных операционных систем без использования

    с использованием :)

     
     
  • 4.93, Аноним (-), 16:36, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > с использованием :)

    Но заметно меньше чем многое другое, кстати: бинарь транслируется x86 -> ARM, но либы в этом случае вызываются нативные, системные и все их вызовы идут с нативной скоростью, а qemu умеет в jit при кроссе.

     
  • 2.9, Noname (??), 13:59, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это для запуска x86-бинарника из arm-системы.
     
     
  • 3.21, Аноним (3), 15:34, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Спасибо, кэп, и в каком месте тут "для разных операционных систем без использования интерпретаторов и виртуальных машин"? Врут же, чертяки, нэ?
     
     
  • 4.25, я из фейсбука (?), 15:58, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Т.е. ты не понимаешь отличия между ос и платформой
     
     
  • 5.48, Аноним (3), 18:26, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты такой умный, расскажи, какая ос на устройствах Эппл?

    > Вызов qemu-x86_64 предусмотрен ... на устройствах Apple

     
     
  • 6.65, elcanner (?), 23:28, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ты точно умеешь читать? Ладно, поможем.

    >> ... отличных от x86, например, на платах Raspberry Pi и устройствах Apple, укомплектованных процессорами ARM

    Apple переходит на ARM и удивидетельно, но у apple тоже появились PC на ARM, внезапно!

    >> какая ос на устройствах Эппл?

    Что за вопрос? Какую установишь, такая и будет стоять...
    Изначально идёт с macOS.

     
     
  • 7.116, Аноним (116), 10:25, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем ты мне отвечаешь, если вопрос был твоему брату по разуму?
     
  • 4.73, Noname (??), 06:32, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не врут. Разные операционные системы одной архитектуры процессора могут выполнять этот бинарник без виртуальных машин и интерпретаторов.
     
     
  • 5.117, Аноним (117), 10:30, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Разные операционные системы одной архитектуры процессора могут выполнять этот бинарник без виртуальных машин и интерпретаторов.

    Архитектура - ARM, ОСи - макось, ведро, линух... Что будет? qemu будет...

     
  • 3.88, Fedd (ok), 09:40, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    qemu же и так сама подхватывает бинарник своей архитектуры
     
  • 2.10, Аноним (10), 14:02, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если выполнять на той же архитектуре, для которой скомпилирован код, до этой строки выполнение не дойдёт.
     
     
  • 3.23, Аноним (3), 15:40, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    До других архитектур выполнение вообще не дойдёт, qemu эмулирует код со скоростью спящей черепахи.
     
  • 2.71, freehck (ok), 05:01, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> без использования интерпретаторов и виртуальных машин
    > exec qemu-x86_64 "$0" "$@"
    > Точно-точно без?!

    Космополитан -- это такая обёртка-хак, которая форматы исполняемых файлов разных операционных систем под одну общую базу подводит. Это слегонца так не про архитектуру CPU. Когда речь заходит про архитектуру CPU, что особенно актуально именно в случае с Apple, переходящий с x86_64 на arm, тогда в дело вступает qemu.

     

  • 1.5, Аноним (-), 13:24, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    линук энтерпрайз эдишен)
     
  • 1.7, Аноним (7), 13:37, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    А никого не интересует что даже если этот бинарник запустится на разных системах, сам софт должен быть заточен под разные системы и разные библиотеки. А раз уж ты все равно затачиваешь программу под разные системы почему бы тебе не выпустить разные бинарники для каждой системы?
     
     
  • 2.11, Аноним (10), 14:05, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если программе для ввода-вывода и взаимодействия с пользователем достаточно функциональности, предоставляемой этой libc, ни о какой «заточке» речь не идёт. Легко представить себе условную вычислительную программу, принимающую на вход файл, обрабатывающую его и записывающую выходной файл.
     
     
  • 3.24, Аноним (3), 15:41, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    в каждом виндовсе, конечно, есть этот libc
     
     
  • 4.30, Аноним (-), 16:35, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Речь о том что скампилировал один раз бинарник и он запускается на любой экосистеме.
     
     
  • 5.49, Аноним (3), 18:30, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если бинарь ничего не делает - то запустится. В реальном приложении сграблишь траблы в любом месте. Удачи тебе портануть, например, Windows.Media.OCR API.
     
     
  • 6.70, Аноним (70), 01:04, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Если бинарь ничего не делает - то запустится. В реальном приложении сграблишь
    > траблы в любом месте. Удачи тебе портануть, например, Windows.Media.OCR API.

    Нуачо, взять да и заимплементить как обертку к либе какого-нибудь tesseract или cuneiform. Будет гейт апи в апи, сам по себе штука довольно примитивная и банальная.

     
     
  • 7.82, Аноним (82), 08:12, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем тогда нужна такая переносимость? Проще тогда просто всё сделать правильно.  
     
     
  • 8.94, Аноним (-), 16:37, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не то чтобы я фанат того метода, но при желании так можно ... текст свёрнут, показать
     
  • 3.37, Аноним (37), 17:03, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Может ты еще заодно скажешь зачем этим программам тогда переносимость?
     
     
  • 4.99, . (?), 17:04, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это троллинг тупостью? или в чём противоречие?
     
  • 2.14, n00by (ok), 14:55, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вопрос из разряда «почему всем пофик, что в Cygwin нет mremap()». Наверное, потому что иногда хватит и memcpy().
     
     
  • 3.67, Аноним (-), 00:56, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Вопрос из разряда «почему всем пофик, что в Cygwin нет mremap()». Наверное,
    > потому что иногда хватит и memcpy().

    Оно пофиг, пока не пытаешься собрать произвольный софт под него. А если пытаться - вот там временами становится уже не пофиг. Я в свое время понял что устал сношаться с cygwin и msys и свалил на линя целиком. Так жизня сильно упростилась.

     
     
  • 4.74, n00by (ok), 06:46, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот, замечательный пример. В итоге стало пофик, что там в cygwin. :)
     
     
  • 5.108, Аноним (-), 00:11, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот, замечательный пример. В итоге стало пофик, что там в cygwin. :)

    Еще и билдуется раза в 2-3 быстрее к тому же :P. Все же линуксные ядерщики не зря свой хлеб жрут.

     
  • 2.41, Аноним (41), 17:27, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В как бы переносимом коде Qt, скомпилированном для разных систем, не работает система печати.
     
     
  • 3.57, Аноним (57), 21:01, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А в электроне всё работает.  
     
     
  • 4.68, Аноним (-), 00:57, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > А в электроне всё работает.

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

     
  • 3.62, ИмяХ (?), 22:08, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это как жаловаться,  что в фотошопе нет поддержки звука. А в микрософт офисе неудобное 3d моделирование.
     
  • 2.54, Аноним (54), 20:09, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Заточил приложение на +3 и под виндой больше не запускается.
     
     
  • 3.59, Аноним (59), 21:47, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Все можно разные версии разными фичами выпускать.  
     
  • 3.66, Dzen Python (ok), 00:32, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фу, слабак. Мне выпало легенданрное уникальное приложение, я в слоты вставил 5 уникальных комплектных гемов и получил программу, работающую...
     
     
  • 4.121, Аноним (121), 11:41, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > 5 уникальных комплектных гемов

    Прикольно, кто-то пишет прикладной софт на Ruby.

     
  • 2.95, BorichL (ok), 16:44, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну на "Hello world!" хватит...
     

  • 1.16, АнонимГоним (?), 15:07, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Сначала подумал, вот бы было здорово, если б можно было договориться о едином стандарте исполняемых файлов. Потом вспомнил мем про "у нас есть 10 конкурирующих стандартов, я сделал стандарт который объединяет их все. Теперь у нас 11 конкурирующих стандартов", так что может так оно и к лучшему.
     
     
  • 2.17, n00by (ok), 15:10, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем? Обычно PE/COFF импортирует всякие kernel32.dll, которых нет в Linux. Так что всё равно нужно Wine, где есть свой загрузчик.
     
  • 2.103, Neon (??), 20:48, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, вместо того, чтобы договориться о едином стандарте исполняемых файлов, в IT предпочитают жить в эпоху мануфактур и ремесленников. И каждый изобретает свои варианты резьбы, болты и гайки
     

  • 1.18, Аноним (18), 15:11, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вот и пришли к кроссплатформенности, статикам и вкомпиливанию всего внутрь. И при чём тут Паскаль? А, ну да.
     
     
  • 2.31, Аноним (31), 16:37, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    При чём тут Go?
     
     
  • 3.44, Аноним (44), 17:29, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Go не нужен, потому что его надо собирать под каждый платформу и потому что уже есть быстрый и безопасный язык Карбон.  
     
     
  • 4.63, Аноним (31), 22:15, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто, для Паскаля (первый Аноним упомянул) не надо собирать под каждую платформу. А Carbon,... ну дайте же ему окончательно вылупиться из яйца, а потом посмотрим, на что он способен и что с ним можно делать.
     
     
  • 5.79, Аноним (82), 08:09, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Мы уже посмотрели на раст. Хуже не у раста у Карбона получится в принципе не может.
     
  • 2.43, Аноним (41), 17:29, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Паскаль

    А что это? Вот ответ, который хотелось бы всегда слышать на поставленный вопрос.

     
  • 2.50, Аноним (50), 18:33, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Почему бы сразу не вкомпилировать ОС в исполняемый файл.
     
     
  • 3.56, Аноним (57), 21:00, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Неудобно загружать. Хотя сабж такое умеет.  
     
  • 2.104, Neon (??), 20:49, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А кто мешает делать статическую линковку всего в С или С++ ? Разве что религия)))
     
     
  • 3.109, n00by (ok), 08:20, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Лицензия на библиотеку мешает. Далее уже под это подводят чепуху типа «экономится место на диске». Tor собирают статически с musl, поскольку там больше думают о безопасности, чем о свободе руткитов с LD_PRELOAD.
     

  • 1.27, Аноним (31), 16:32, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Теперь, когда у них есть WSL2, переносимые исполняемые становятся уже не актуальными.
     
     
  • 2.32, Аноним (-), 16:37, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в macOS есть WSL2 ?
     
     
  • 3.38, Аноним (37), 17:05, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, с точки зрения эпл это вообще большой вопрос, какого хрена у тебя на сервере не стоит MacOS.
     
     
  • 4.61, Аноним (31), 22:07, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У админов нелокалхостов на MacOS не стоит.
     
  • 4.90, ryoken (ok), 11:24, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ...с учётом того, что яблы вообще дропнули свою серверную ОСь...
     
     
  • 5.101, Аноним (-), 18:02, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно сделали. Не модно же. Админы не мытые, в грязных свитерах, на бороде бегают вши.
     
  • 2.72, Аноним (72), 05:12, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    WSL2 - это виртуальная машина с линуксом. Нативный hypervisor framework в макоси есть давным-давно. А уж как именно запустить в нем Линукс - вариантом полно. Можно, как все, docker desktop, можно что-то типа Karton.
     

  • 1.36, Аноньимъ (ok), 16:59, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Выглядит как вирус.
     
     
  • 2.45, Аноним (41), 17:30, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если что-то выглядит, как вирус, и ведет себя, как вирус, то это вирус есть. Переходите на стандартную ОС.
     
  • 2.46, n00by (ok), 17:51, 21/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    На него так и реагируют. В прошлой теме https://www.opennet.ru/openforum/vsluhforumID3/127849.html#61
    я приводил ссылку https://www.virustotal.com/gui/file/742401fa0ec2648c392f32d5afae239ab3262f3370
    было 21 из 67, теперь 28 из 69.
     
     
  • 3.69, Аноним (70), 01:01, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А что ты хотел с валидным бутсектором как начало файла? Разумеется у половины анализеров случился приступ паранои с нестандартного формата :). Но они так на каждый второй пакер исполняемых вопят, лишь за то что структура файла нестандартная. И вообще, лучший антивирус это глаза и голова, пожалуй.
     
     
  • 4.76, n00by (ok), 06:57, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Антивирусы ругаются на упаковщики, поскольку ими упаковывают трояны, а распаковывать умеет не каждый антивирус. Да и польза от легальных упаковщиков сомнительна: в Windows они вызывают перерасход ОЗУ.
     
     
  • 5.107, Аноним (-), 00:09, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Антивирусы ругаются на упаковщики, поскольку ими упаковывают трояны,

    А также демки, кряки, прикольные тулсы, тулсы где защищают какие-то ноу-хау и много чего еще (там более жесткие exe protectors бывают).

    > а распаковывать умеет не каждый антивирус.

    Даже clamav умеет, если кто лажовее чем даже это - зачем он вообще нужен?

    > Да и польза от легальных упаковщиков сомнительна: в
    > Windows они вызывают перерасход ОЗУ.

    Да оно и в Linux вроде не может ту магию с CoW(RCU) и реюзом страниц процесса и либ.

     
     
  • 6.110, n00by (ok), 08:31, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> Антивирусы ругаются на упаковщики, поскольку ими упаковывают трояны,
    > А также демки, кряки, прикольные тулсы, тулсы где защищают какие-то ноу-хау и
    > много чего еще (там более жесткие exe protectors бывают).

    Прикалываетесь? Демки пакуют что бы в 64К или 4К уместиться, а не что бы реверсера смешить. Что бы защититься от дампа давно были придуманы наномиты в Armadillo и виртуализаторы типа VMProtect, и это всё так же давно спецами разобрано. Остались непобеждёнными вроде только «софтверные анклавы» (ц) Клерка, их более десяти лет ищут и не могут найти.

     
  • 4.84, АНоним (?), 08:55, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У меня нет антивируса, значит нет вирусов ©
     
  • 4.87, Аноним (87), 09:13, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Самое забавное, что все эти поделки максимально (МАКСИМАЛЬНО) бесполезны против реальной малвари. А поделки, которые хоть что-то могут сделать (и не только по сигнатурам), никак не реагируют.
     
     
  • 5.98, Аноним (98), 16:58, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Самое забавное, что все эти поделки максимально (МАКСИМАЛЬНО) бесполезны против реальной
    > малвари. А поделки, которые хоть что-то могут сделать (и не только
    > по сигнатурам), никак не реагируют.

    Любой минимально адекватный малварщик AFAIK делает то же что и n00by, заливает свое нечто на вон те сервисы, проверить что его творение вопросов у антивирей не вызывает. Поэтому антивири ловят только совсем ламерскую дрянь где школьнику вчера приспичило проверить может ли он стереть целый диск рекурсивно да совсем уж баянный хлам, пробирающий только клюшек из бухгалтерии которые бездумно кликают на любой аттач вида "blablablacoolphoto.jpg                       .exe".

     
     
  • 6.113, n00by (ok), 08:42, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Только они не vitustotal заливают, а на аналогичные платные сервисы, которые не сливают экземпляры (по их заявлениям) антивирусным компаниям и прочим жаждущим посмотреть. Рекламу тех сервисов при желании несложно найти на специализированных ресурсах, где в соседних темах написано «кто работает по .РУ, к тому приходят кенгуру» - на чём безопасность до недавних событий и держалась.
     

  • 1.52, Аноним (52), 19:21, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    годная штука
     
     
  • 2.122, Аноним (122), 16:40, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
     

  • 1.53, Анонимомус (?), 20:08, 21/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Считаю всех чудаков до сих пор пишущих "поддержка PC" или "на PC", подразумевая при этом только форточку, надо обязать пользоваться этим творением, чтобы хоть частично выражения соответствовали действительности.
     
     
  • 2.77, n00by (ok), 06:58, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    IBM PC же, значит надо обязать MS-DOS 6.22.
     
     
  • 3.80, Аноним (82), 08:10, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    CP_M на нём тоже нормально запускался.
     
  • 2.105, Neon (??), 20:50, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Забыли божественный OS/2 и всякие Колибри с Минуэтами)
     

  • 1.75, . (?), 06:55, 22/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не очень понял про томпсон шелл. ты делаешь файл исполняемым и как система дальше поймёт через что его исполнять? так то без #! можно любой скрипт запустить, передав файл в интерпретатор явно.
     
  • 1.78, хрю (?), 07:35, 22/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD

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

     
     
  • 2.81, Аноним (82), 08:11, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нельзя. Потому что тебе надо будет ставить питон. А сабж просто работает.
     
     
  • 3.89, Аноним (87), 09:52, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    С питоном проблема в том, что питон это просто песчинка по сравнению с вагоном бинарных платформоспецифичных зависимостей, на которые будет завязано любое приложение. Да и сам питон ни разу не одинаковый на различных платформах, в конечном счёте, это всё ещё про "написать". А насчёт ставить… Если не страдать приступами беспочвенного аутизма, то питон во все щели это куда менее проблемно, чем мутные и кривые нативные зависимости. Ну и питон должен быть везде, но не в этом дело, чаще всего просто поставляется в дистрибутиве приложения и нормально. А вот нестандартная libc это гарантированно много боли во всех отношения и для всех, кому придётся иметь с этим дело. Понятно, что это фофан, о какой работе может идти речь?
     
     
  • 4.100, Аноним (-), 17:11, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > С питоном проблема в том, что питон это просто песчинка

    Песчинка, размером с груду бетонных блоков, с его очешуеть stdlib на все случаи жизни.

    > всех, кому придётся иметь с этим дело. Понятно, что это фофан,
    > о какой работе может идти речь?

    За всех вот не надо тут. На сях в некоторых случаях может и относительно осмысленно получиться. А плач вебмакак это прикольно, но вон те электронщики рассказываюшие про кроссовость - а пусть покажут запуск одного бинаря отдаваемого юзеру и на ARM и на x86, допустим, вообще? А, там еще весь электрон и так и так придется приволочь и бинарник станет весить не 200 мегов а 400? :)

     
     
  • 5.112, Аноним (112), 08:36, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты так говоришь, как будто это что-то плохое.  
     

  • 1.83, Аноним (83), 08:16, 22/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждём VAPE, very actually portable executable
     
     
  • 2.85, АНоним (?), 08:56, 22/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ждём от тебя.  
     

  • 1.91, Аноним (91), 12:51, 22/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а еще djgpp добавить до кучи...
     
     
  • 2.120, Аноним (120), 11:12, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ...Нет
     

  • 1.92, Максим (??), 15:24, 22/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Монстр какой-то ненужный, тупиковый экстенсивный путь развития.
     
     
  • 2.115, pashev.ru (?), 10:21, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    См. https://justine.lol/sizetricks/
     

  • 1.102, Neon (??), 20:44, 22/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Слабаки. C# проги, собранные под винду, бинарники, прекрасно запускаются в линуксах без всяких перекомпиляций. Просто добавь Моно.))) Ну и используй WinForms, но не WPF, например.)))
     
     
  • 2.106, Аноним (-), 00:06, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Слабаки. C# проги, собранные под винду, бинарники, прекрасно запускаются в линуксах без
    > всяких перекомпиляций. Просто добавь Моно.))) Ну и используй WinForms, но не
    > WPF, например.)))

    Еще не хватало ставить гиг индусских фекалий от майкрософта. К тому же штуки типа Rust гарантируют что это с точки зрения програмизма махровейшее легаси. Как оказалось можно некие гарантии насчет кода получать и без переросточных VM

     
     
  • 3.111, Аноним (112), 08:34, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Карбон уже по всем статьям переиграл раст, даже еще до релиза компилятора.  
     
     
  • 4.123, Аноним (83), 18:23, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Карбон сдох еще до релиза.
    Can anything good come out of google?
    Холи байбл, читайте на ночь. Можно суррогаты, типа taoup.
    Да и вообще, плох тот программист что не написал свой язык.
     
     
  • 5.124, Аноним (124), 18:33, 23/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сама парадигма что язык должен быть как Typescript или Kotlin просто транслятор в основной язык это радикальное изменение ставит крест на всей идее раста.

    Начинай изучать язык Карбон прямо сейчас https://github.com/carbon-language/carbon-lang без смс и регистрации.

     

  • 1.126, qweo (?), 16:27, 24/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Захотелось на её базе собрать дистрибутив - мой любимый Gobo, например. Или с Gentoo начать?..
    Статическое связывание всего не страшно, дистрибутивы есть такие, в том числе и минималистичные. Но любопытно, каковы будут средние накладные расходы, и, важнее, сколько нужных функций не реализовано.
     

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



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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