Когда слышишь, что всё что делают линуксоиды - это запускают neofetch, поэтому сделал дистрибутив, который ничего не делает, кроме запуска neofetch
👍36🤣24🔥2🤡1
Представлен Blink, эмулятор x86-64, опережающий QEMU по производительности
Проектом blink развивается новый эмулятор процессоров x86-64, позволяющий запускать статически собранные Linux-приложения в виртуальной машине с эмулируемым процессором. Основным назначением проекта является предоставление возможности запуска собранных для архитектуры x86-64 Linux-программ в других операционных системах и на оборудовании с другой аппаратной архитектурой. Код проекта написан на языке Си (ANSI C11) и распространяется под лицензией ISC. Из зависимостей требуется только libc (POSIX.1-2017).
По функциональности blink напоминает команду qemu-x86_64, но отличается от QEMU более компактным исполнением и значительным приростом производительности. Например, исполняемый файл Blink занимает всего 157 КБ вместо 4 МБ у qemu-x86_64, а по производительности в тесте запуска в эмуляторе GCC Blink обгоняет QEMU в два раза.
Поддерживается прямой запуск в эмуляторе исполняемых файлов в форматах ELF, PE и bin, собранных со стандартными Си-библиотеками Cosmopolitan, Glibc и Musl. Имеется встроенная поддержка более сотни системных вызовов Linux, включая fork() и clone(). Поддерживается эмуляция наборов инструкций i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED и RDTSCP.
Проектом blink развивается новый эмулятор процессоров x86-64, позволяющий запускать статически собранные Linux-приложения в виртуальной машине с эмулируемым процессором. Основным назначением проекта является предоставление возможности запуска собранных для архитектуры x86-64 Linux-программ в других операционных системах и на оборудовании с другой аппаратной архитектурой. Код проекта написан на языке Си (ANSI C11) и распространяется под лицензией ISC. Из зависимостей требуется только libc (POSIX.1-2017).
По функциональности blink напоминает команду qemu-x86_64, но отличается от QEMU более компактным исполнением и значительным приростом производительности. Например, исполняемый файл Blink занимает всего 157 КБ вместо 4 МБ у qemu-x86_64, а по производительности в тесте запуска в эмуляторе GCC Blink обгоняет QEMU в два раза.
Поддерживается прямой запуск в эмуляторе исполняемых файлов в форматах ELF, PE и bin, собранных со стандартными Си-библиотеками Cosmopolitan, Glibc и Musl. Имеется встроенная поддержка более сотни системных вызовов Linux, включая fork() и clone(). Поддерживается эмуляция наборов инструкций i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED и RDTSCP.
👍21🤡1
Уязвимость в приложениях на базе HTTP-библиотеки Hyper
В библиотеке Hyper, предлагающей реализацию протоколов HTTP/1 и HTTP/2 на языке Rust, имеется особенность работы с памятью, которая при использовании в приложениях без учёта рекомендаций из документации, может привести к появлению уязвимостей, дающих возможность вызвать отказ в обслуживании (исчерпание доступной процессу памяти) через отправку специально оформленного HTTP-запроса уязвимому обработчику. Библиотека достаточно популярна (67 млн загрузок) и используется в качестве зависимости у 2579 проектов, представленных в каталоге crates.io.
Причиной появления уязвимостей является отсутствие ограничений на размер ресурсов, передаваемых в HTTP-запросах и ответах. В библиотеке Hyper для копирования запроса или тела ответа предлагается функция body::to_bytes, копирующая данные запроса и ответа целиком в один буфер без проверки размера полученных данных. Соответственно, атака сводится к передаче очень большого запроса или ответа, обработка которого приведёт к выделению буфера, не вмещающегося в доступную память. Примечательно, что указанное поведение явно описано в документации, в которой рекомендуется выполнять отдельные проверки размера, но предупреждение игнорировалось в различных продуктах, использующих Hyper (например, проблема всплыла в проектах Axum, Salvo и conduit-hyper).
В реальных условиях для атаки нет необходимости отправлять большой объём данных - так как при обработке chunked-запросов буфер выделяется на основе информации в заголовке Content-Length, для выделения большого блока памяти или аварийного завершения процесса достаточно отправить начальный пакет с большим значением в Content-Length.
В библиотеке Hyper, предлагающей реализацию протоколов HTTP/1 и HTTP/2 на языке Rust, имеется особенность работы с памятью, которая при использовании в приложениях без учёта рекомендаций из документации, может привести к появлению уязвимостей, дающих возможность вызвать отказ в обслуживании (исчерпание доступной процессу памяти) через отправку специально оформленного HTTP-запроса уязвимому обработчику. Библиотека достаточно популярна (67 млн загрузок) и используется в качестве зависимости у 2579 проектов, представленных в каталоге crates.io.
Причиной появления уязвимостей является отсутствие ограничений на размер ресурсов, передаваемых в HTTP-запросах и ответах. В библиотеке Hyper для копирования запроса или тела ответа предлагается функция body::to_bytes, копирующая данные запроса и ответа целиком в один буфер без проверки размера полученных данных. Соответственно, атака сводится к передаче очень большого запроса или ответа, обработка которого приведёт к выделению буфера, не вмещающегося в доступную память. Примечательно, что указанное поведение явно описано в документации, в которой рекомендуется выполнять отдельные проверки размера, но предупреждение игнорировалось в различных продуктах, использующих Hyper (например, проблема всплыла в проектах Axum, Salvo и conduit-hyper).
В реальных условиях для атаки нет необходимости отправлять большой объём данных - так как при обработке chunked-запросов буфер выделяется на основе информации в заголовке Content-Length, для выделения большого блока памяти или аварийного завершения процесса достаточно отправить начальный пакет с большим значением в Content-Length.
☃8👍3🤡1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17⚡4🤡1
Состоялся выпуск библиотеки libmdbx 0.12.3 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Поддерживаются все актуальные операционные системы и архитектуры. Для libmdbx предлагается развитое C++ API, а также поддерживаемые энтузиастами привязки к языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala. Исторически libmdbx является глубокой переработкой СУБД LMDB и превосходит своего прародителя по надёжности, набору возможностей и производительности.
Основные новшества, доработки и исправления:
- Реализована prefault-запись при выделении страниц для read-write отображений. Это приводит к кратному снижению системных издержек и существенному увеличению производительности в соответствующих сценариях использования.
- Добавлена опция для принудительного включения/выключения prefault-записи.
- Реализован динамический выбор между сквозной записью на диск и обычной записью с последующим вызовом fdatasync().
И другие изменения.
Основные новшества, доработки и исправления:
- Реализована prefault-запись при выделении страниц для read-write отображений. Это приводит к кратному снижению системных издержек и существенному увеличению производительности в соответствующих сценариях использования.
- Добавлена опция для принудительного включения/выключения prefault-записи.
- Реализован динамический выбор между сквозной записью на диск и обычной записью с последующим вызовом fdatasync().
И другие изменения.
👍6🌚3🤡1
Объединение индейцев добивается переименования проектов Apache
Некоммерческая организация Natives in Tech, занимающаяся развитием технологической экосистемы для коренных народов, призвала сообщество Apache Software Foundation прекратить использование слова "Apache" и индейской символики в логотипе, в том числе переименовать все развиваемые под данным именем проекты.
Петицию подписали 40 активистов. Среди поддержавших петицию Бредли Кун, основатель организации Software Freedom Conservancy, Джош Симмонс, председатель совета директоров организации Open Source Initiative, и Эрин Стейн, руководитель организации Data and Tech for Good.
Использование слова Apache и присвоение идентичности коренных жителей в качестве бренда для достижения своих собственных целей воспринимается как недопустимая манипуляция культурными ценностями национальных меньшинств, искажающая представление об индейцах и основанная на стереотипах.
Представитель фонда Apache заявил, что сообщество услышало опасение коренных американцев и прислушается к ним, но на изменение потребуется время, необходимое для обсуждения поднятого вопроса в сообществе, оценки юридических последствий и принятия взвешенного решения. Также изучаются альтернативные пути решения.
➡️До 2003 года имя http-сервера Apache трактовалось в FAQ проекта, как "A PAtCHy server", т.е. HTTP-сервер, полученный в результате модификации кодовой базы http-сервера NCSA. В 2003 году пояснение было изменено на указание, что имя выбрано из уважения к индейским племенам Апачи.
Некоммерческая организация Natives in Tech, занимающаяся развитием технологической экосистемы для коренных народов, призвала сообщество Apache Software Foundation прекратить использование слова "Apache" и индейской символики в логотипе, в том числе переименовать все развиваемые под данным именем проекты.
Петицию подписали 40 активистов. Среди поддержавших петицию Бредли Кун, основатель организации Software Freedom Conservancy, Джош Симмонс, председатель совета директоров организации Open Source Initiative, и Эрин Стейн, руководитель организации Data and Tech for Good.
Использование слова Apache и присвоение идентичности коренных жителей в качестве бренда для достижения своих собственных целей воспринимается как недопустимая манипуляция культурными ценностями национальных меньшинств, искажающая представление об индейцах и основанная на стереотипах.
Представитель фонда Apache заявил, что сообщество услышало опасение коренных американцев и прислушается к ним, но на изменение потребуется время, необходимое для обсуждения поднятого вопроса в сообществе, оценки юридических последствий и принятия взвешенного решения. Также изучаются альтернативные пути решения.
➡️До 2003 года имя http-сервера Apache трактовалось в FAQ проекта, как "A PAtCHy server", т.е. HTTP-сервер, полученный в результате модификации кодовой базы http-сервера NCSA. В 2003 году пояснение было изменено на указание, что имя выбрано из уважения к индейским племенам Апачи.
🤡42🥴4👍3😁2👎1
Google включает Rust в число языков, допустимых в коде проекта Chromium. Существующий код пока не планируют переписывать на Rust, но отныне будет разрешена интеграция в кодовую базу сторонних библиотек, написанных на Rust. В сборочную систему уже добавлен инструментарий для компиляции кода на языке Rust, проведения тестов и интеграции компонентов на Rust с кодом на C++. Появление кода на Rust в составе выпусков Chrome ожидается в следующем году.
Решение принято для предотвращения появления ошибок работы с памятью в кодовой базе Chrome. Судя по предоставленной два года назад статистике 70% опасных и критических проблем с безопасностью в Chromium вызваны ошибками при работе с памятью.
Решение принято для предотвращения появления ошибок работы с памятью в кодовой базе Chrome. Судя по предоставленной два года назад статистике 70% опасных и критических проблем с безопасностью в Chromium вызваны ошибками при работе с памятью.
👍14👎13🌚6
- Добавлены новые фильтры содержимого, показываемого в панели: показ только файлов, отсеивание по маске без учёта регистра символов и использование шаблонов в стиле shell.
- Реализована возможность продолжения копирования после прерывания операции (например, после случайного нажатия Esc во время копирования).
- Для выбора порядка сортировки в меню возвращена горячая клавиша "S", а горячая клавиша для "SFTP link" заменена c "S" на "N".
- Добавлена поддержка кросс-компиляции с разными путями к Perl во время сборки ("--build") и выполнения ("--host").
- Добавлена поддержка систем на базе чипа Apple M1.
И другие изменения.
- Реализована возможность продолжения копирования после прерывания операции (например, после случайного нажатия Esc во время копирования).
- Для выбора порядка сортировки в меню возвращена горячая клавиша "S", а горячая клавиша для "SFTP link" заменена c "S" на "N".
- Добавлена поддержка кросс-компиляции с разными путями к Perl во время сборки ("--build") и выполнения ("--host").
- Добавлена поддержка систем на базе чипа Apple M1.
И другие изменения.
👍7
Разработчики браузерного движка Servo, написанного на языке Rust, объявили о получении финансирования, которое поможет возродить проект. Среди первых задач: возвращение к активной разработке движка, восстановление сообщества и привлечение новых участников. В течение 2023 года планируется заняться улучшением системы компоновки страниц (layout system) и добиться рабочей поддержки CSS2.
Стагнация проекта продолжалась с 2020 года, после того как компания Mozilla уволила команду, развивавшую Servo, и передала проект организации Linux Foundation, в которой для разработки планировалось сформировать сообщество из заинтересованных разработчиков и компаний.
Движок отличается поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM.
Изначально браузерный движок Firefox не мог в полной мере задействовать потенциал современных многоядерных систем из-за использования однопоточных схем обработки контента. Servo позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender.
Стагнация проекта продолжалась с 2020 года, после того как компания Mozilla уволила команду, развивавшую Servo, и передала проект организации Linux Foundation, в которой для разработки планировалось сформировать сообщество из заинтересованных разработчиков и компаний.
Движок отличается поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM.
Изначально браузерный движок Firefox не мог в полной мере задействовать потенциал современных многоядерных систем из-за использования однопоточных схем обработки контента. Servo позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender.
👍13🔥5🤡3🍌2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁31🤡12👍7🌚3🤨2