The OpenNET Project / Index page

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

Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6

08.04.2022 11:02

Представлен релиз стандартной Си-библиотеки Musl 1.2.3, предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Имеется поддержка всех обязательных интерфейсов C99 и POSIX 2008, а также частично C11 и набор расширений для многопоточного программирования (POSIX threads), управления памятью и работы с локалями. Код Musl поставляется под свободной лицензией MIT.

В новой версии добавлена функция qsort_r, намеченная на включение в будущий стандарт POSIX и применяемая для сортировки массивов с использованием произвольных функций сравнения элементов. Для некоторых моделей CPU PowerPC добавлена поддержка альтернативных SPE FPU (Signal Processing Engine). Внесены изменения, нацеленные на улучшение совместимости, например, связанные с сохранением значения errno, принятием нулевых указателей в gettext и обработкой переменной окружения TZ. Устранены регрессивные изменения в функциях wcwidth и duplocale, а также несколько ошибок в математических функциях, при определённом стечении обстоятельств приводивших к вычислению неверного результата (например, на системах без FPU в fmaf неверно округлялся результат).

Дополнительно можно отметить выпущенный несколько дней назад релиз стандартной Си-библиотеки PicoLibc 1.7.6, развиваемой Китом Паккардом (Keith Packard, лидер проекта X.Org) для применения на встраиваемых устройствах с ограниченным размером постоянного хранилища и оперативной памяти. При разработке часть кода заимствована из библиотеки newlib от проекта Сygwin и AVR Libc, развивавшейся для микроконтроллеров Atmel AVR. Код PicoLibc распространяется под лицензией BSD. Поддерживается сборка библиотеки для архитектур ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k и PowerPC. В новой версии реализовано применение математических inline-функции для архитектуры aarch64 и возможность использования математических inline-функций в приложениях на архитектурах arm и risc-v.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.5
  3. OpenNews: Проект OpenWRT перешел на использование Musl в качестве libc по умолчанию
  4. OpenNews: В системной библиотеке Musl устранена удалённая уязвимость
  5. OpenNews: Представлена стандартная Си-библиотека Musl 1.0.0, развиваемая в качестве альтернативы Glibc
  6. OpenNews: Выпуск системной библиотеки Glibc 2.35
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56987-musl
Ключевые слова: musl, libc, picolibc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:20, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Нужно!
     
     
  • 2.2, Аноним (2), 11:23, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Но только для уязвимостей класса arbitrary code execition в printf.
     
     
  • 3.3, Аноним (3), 12:29, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    в си даже уязвимости быстрые
     
     
  • 4.22, ilyafedin (ok), 19:34, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Мы так быстро воспользовались уязвимостью, что вы даже не заметили!
     

  • 1.4, Аноним (-), 12:52, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    >Код Musl поставляется под свободной лицензией MIT.

    И в этом кроется фатальная ошибка. Надо перелицензировать на копилефт.

     
     
  • 2.6, Аноним (6), 13:54, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    зачем? пермиссив - это одно из преимуществ перед жолибцой.
     
     
  • 3.48, Аноним (-), 16:51, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому там комитит узкая группа лиц, получая толпу корпоративных паразитов на хребет. Корпам так то удобнее, конечно...
     

  • 1.9, Аноним (9), 15:03, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Изучал и то и то!
    Качество кода и там и там полный трешак. Я бы даже сказал, что это пособие по тому как не надо писать код!!!
     
     
  • 2.11, Аноним (9), 15:07, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Изучая этот код, я понял что значит Сишность головного мозга:)
     
     
  • 3.12, Аноним (12), 15:33, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Пруф или не было. Что конкретно не понравилось?
     
     
  • 4.13, Аноним (9), 15:43, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ИМХО, там качество кода на уровне https://www.ioccc.org/ :)
    Кстати, нашел свои ребусы. Вдохновение черпал в те времена когда изучал musl:))
    char *strncpy(char *dest, const char *s, size_t n) {
        char *d = dest;
        while (n && (--n, (*d++ = *s++)));
        while (n--) *d++ = 0;
        return dest;
    }
    char *strncat(char *dest, const char *s, size_t n) {
        char *d = dest;
        while (*d) ++d;
        while (n-- ? (*d++ = *s++) : (*d = 0));
        return dest;
    }
    ППС: Никогда так не пишите!!!:)
     
     
  • 5.14, Аноним (14), 15:58, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Никогда так не пишите

    почему ? как надо было ?

     
     
  • 6.15, n00by (ok), 16:14, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ну типа цикл в одну строчку, сложное условие и без тела. Плохо читается питонистами, а мозг баш-программистов POCA LINUX вообще скажет "Пока Линукс". На деле подобный код писали десяток-другой лет назад, что бы помочь транслятору.



    // возвращает не по стандарту
    char* strncpy(char* dst, const char* src, size_t n)
    {
      assert(dst || n == 0);
      assert(src || n == 0);
      while (n && (*dst++ = *src++) != 0)
        n--;
      if(n)
        *dst++ = 0;
      return dst;
    }



     
  • 6.17, Аноним (9), 17:43, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> почему ? <<<

    Код должен быть понятным (принцип KISS)
    >>> как надо было ? <<<

    Я бы использовал memccpy (принцип DRY):
    char *strncpy(char *to, const char *from, size_t count) {
        char *stop = memccpy(to, from, '\0', count);
        if (stop != NULL)
            memset(stop, '\0', count - (stop - to));
        return to;
    }
    char *strncat(char *to, const char *from, size_t count) {
        size_t len = strlen(to);
        char *stop = memccpy(to + len, from, '\0', count);
        if (stop == NULL)
            to[len + count] = '\0';
        return to;
    }

     
     
  • 7.18, Аноним (9), 17:50, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Кроме того это будет работать быстро, разумеется при условии что вы оптимизируете strlen, memset и memccpy, а чаще всего это именно так!
     
     
  • 8.41, n00by (ok), 09:51, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы мсье был не теоретиком, то оказалось бы, что у транслятора может быть св... текст свёрнут, показать
     
     
  • 9.57, Аноним (9), 08:38, 10/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной эксперт подъехал Ваши советы для меня бесценны, - я просто заново от... текст свёрнут, показать
     
     
  • 10.62, n00by (ok), 06:59, 11/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А, Вы уже написали свою реализацию стандартной библиотеки, как это сделал я Ссы... текст свёрнут, показать
     
     
  • 11.63, Аноним (9), 12:01, 12/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Одно дело детально изучить технологию так как надо по работе , и совсем другое ... текст свёрнут, показать
     
     
  • 12.65, n00by (ok), 08:10, 13/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет ничего плохого в бытие теоретиком, почему Вы расстраиваетесь Изучили деталь... текст свёрнут, показать
     
     
  • 13.66, Аноним (9), 13:00, 13/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Забавно слышать такое от человека который советует другим, читать книженцию почт... текст свёрнут, показать
     
     
  • 14.67, n00by (ok), 14:01, 13/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    30 лет назад, это классика Тогда люди сначала сами делали, а только потом други... текст свёрнут, показать
     
  • 7.30, Аноним (30), 23:16, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    какой тут ужас...
     
     
  • 8.34, Аноним (9), 08:15, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    м очередной опеннетный эксперт, который скорее всего профессионально не написа... текст свёрнут, показать
     
     
  • 9.39, n00by (ok), 09:46, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Просто откройте для себя классическую книжку Верёвка достаточной длины, что бы ... текст свёрнут, показать
     
     
  • 10.58, Аноним (9), 08:41, 10/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот это поворот - можете за меня ещё помолится на книжку K R ... текст свёрнут, показать
     
  • 7.31, Пользователь Чебурнета (?), 03:55, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Код должен быть понятным в прикладном ПО. В системном нужна оптимизация и скорость работы. Поэтому страдающие паскалем головного мозга к подобным работам не допускаются.
     
     
  • 8.33, Аноним (9), 08:06, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Опа, эксперты с Сишностью головного мозга повылазили Этот код, довольно быстр... текст свёрнут, показать
     
  • 7.36, myhand (ok), 08:59, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>>> почему ? <<<
    > Код должен быть понятным (принцип KISS)

    Видите ли вьюнош, код должен быть понятным не только лишь всем.

     
     
  • 8.43, Минона (ok), 10:40, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какая глубокая мысль 129318 ... текст свёрнут, показать
     
  • 7.61, Аноним (61), 20:00, 10/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Keep it simple, stupid
    Скорее речь о простом коде
     
  • 5.16, ИмяХ (?), 16:43, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Нормальный, профессиональный код. Работает идеально, не требует никаких исправлений, патчей и т.п. поэтому людям его незачем читать. Что-то похожее я видел в книге "С для чайников"
     
     
  • 6.19, Аноним (9), 18:19, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >>> поэтому людям его незачем читать <<<

    А потом когда вдруг понадобится что-то сделать, внезапно придется искать программиста, который знает язык COBOL:)))

     
     
  • 7.23, Аноним (23), 20:28, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вы, конечно, и сравнили английский с древне-тюркским
     
     
  • 8.24, Аноним (9), 21:00, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скорее просто вы не поняли при чём тут COBOL ну да ладно, видимо моя шутка не ... текст свёрнут, показать
     
     
  • 9.32, Пользователь Чебурнета (?), 04:09, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Петросянство не прокатило, да Религиозные проповеди насчёт понятности и читаемо... текст свёрнут, показать
     
     
  • 10.35, Аноним (9), 08:56, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Продолжайте и дальше в это верить Так мог написать только человек, который ник... текст свёрнут, показать
     
  • 10.44, Минона (ok), 10:42, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что ты несёшь 129318 ... текст свёрнут, показать
     
  • 7.37, alexrayne (?), 09:22, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот меня удивляет, в чем проблема освоить КОБОЛ? почему это стало проблемой то?
    нытье о "поиске погромиста" обусловлено закидонами работодателя.
     
  • 7.64, ИмяХ (?), 13:43, 12/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >> что-то сделать

    В нём не надо ничего делать. В нём уже сделано всё, что надо.

     
  • 2.49, Аноним (-), 16:52, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Качество кода и там и там полный трешак.

    Да не скажи, в Musl местами довольно неплохой код попадается.

     

  • 1.10, ИмяХ (?), 15:05, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >> и высокой производительностью

    Высокая производительность у него только во всяких хеллоуворлдах. Мало-мальски серьёзные приложения в нём сильно тормозят.

     
     
  • 2.20, sig11 (ok), 18:34, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Высокая производительность у него только во всяких хеллоуворлдах.

    а также у правильно написанных приложениях (не требующих 3 выделений памяти на склеивание двух строк)

    >> Мало-мальски серьёзные приложения в нём сильно тормозят.

    python тормозит адски - подтверждаю

     
     
  • 3.52, Аноним (-), 17:06, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы питон быстро бегал - это была бы ж...а, сожрал бы все живое!
     
  • 2.21, Аноним (21), 19:24, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Было бы неплохо взглянуть на соответствующий тест производительности. Наверное вы сделали свой вывод опираясь на какое-то исследование - поделитесь пожалуйста?
     
     
  • 3.42, Аноним (42), 09:54, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    например
    https://paste.sr.ht/%7Eminus/18b44cfe58789bc1fb69494130e859a1189d1772
    https://habr.com/ru/post/520920/
    см. комментарии
     
     
  • 4.55, Ан (??), 20:35, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Этот твой пост по ссылкам достаточно хорошо объясняет, почему glibc нестандартизированная параша, которая не должна иметь права быть *стандартной* библиотекой.

    И ещё: http://www.etalabs.net/compare_libcs.html

     

  • 1.26, Ан (??), 22:15, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А я уже думал, что эта весна настолько уже хороша, что лучше уже и некуда, но нет! Ждём musl 1.3!
     
  • 1.29, Ан (??), 23:14, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ctrl+F "Void Linux" ничего не показал, а тем временем, это лучший rolling-release дистрибутив на сегодняшний день, в том числе и в варианте c musl вместо glibc.
     
     
  • 2.38, Аноним (38), 09:41, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он лучший для умеющих собирать из исходников, яинить баги. Вот вышло 5.17, 5.17.1, а в XBPS их нет. Тем временем автоподбор параметров ядра легко может не включить скажем протоколы для работы сенсорной панели ноутбука. То есть слабонервным новичкам там делать особо нечего. Но на musl вариант и правда хорош. Там некуда торопиться, ибо автоисправлений ошибок нет как в glibc. OpenWRT по умолчанию тоже на musl. И вот вторая библиотека для весьма тощих устройств. Впрочем в Void есть s6 как дополнительная система инициализации. И да, нытики будут ныть, что разработчики не включили автоматически какие-нибудь сервисы сразу же. У одноклеточных выбор из одного доступного варианта позволяет не использовать мозг, ведь они свято верят, что мозгами пользоваться - моветон.
     
     
  • 3.40, ИмяХ (?), 09:49, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Людям за компьютером работать надо, а не собирать исходники и чинить баги.
     
     
  • 4.50, Кэп (?), 16:54, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сбор софта и починка багов тоже работа за компьютерами так то. А еще булки на деревьях не растут.
     
  • 3.45, Аноним (45), 10:44, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В следующий раз попытайтесь логически связывать слова и предложения, набор букв какой-то
     
  • 3.47, Пимпа (?), 15:29, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Жесть, брателло, тебе бы отдыхать побольше без компьютера. Даже через буквы видно, что у тебя глаз дёргается.
     
  • 3.51, Аноним (-), 17:03, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Тем временем автоподбор параметров ядра легко может не включить скажем протоколы для работы
    > сенсорной панели ноутбука.

    Лучше позвольте роботу баланс креды тратить. Так интриги больше.

    > То есть слабонервным новичкам там делать особо нечего.

    А им вообще туда зачем? Демонстрировать что получается у обезьяны с гранатой?

     
  • 2.46, Аноним (45), 10:50, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    как дистр без пакетов может быть лучше арча, который с пакетами?
     
     
  • 3.56, Ан (??), 20:37, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты, похоже, не в курсе, что XBPS означает X  ***Binary Package*** System.
     

  • 1.59, Аноним (-), 09:06, 10/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >x86_64

    это что за архитектура такая?

    Ведь была же фирма AMD, создала не с нуля архитектуру amd64 - так я до сих пор пользуюсь, а фирма intel-aviv на то время сосала четвёртый пень длинным конвеером и не создавала полезных архитектур...

     
     
  • 2.60, Ан (??), 11:47, 10/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > intel-aviv

    Спасибо, посмеялся %)

     
     
  • 3.68, Аноним (-), 14:43, 13/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то опоздали вы со смехом, уволили их всех уже.
     

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



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

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