URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 127212
[ Назад ]

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

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

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=56987


Содержание

Сообщения в этом обсуждении
"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 11:20 
Нужно!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 11:23 
Но только для уязвимостей класса arbitrary code execition в printf.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 12:29 
в си даже уязвимости быстрые

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено ilyafedin , 08-Апр-22 19:34 
Мы так быстро воспользовались уязвимостью, что вы даже не заметили!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 12:52 
>Код Musl поставляется под свободной лицензией MIT.

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 13:54 
зачем? пермиссив - это одно из преимуществ перед жолибцой.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 16:51 
Поэтому там комитит узкая группа лиц, получая толпу корпоративных паразитов на хребет. Корпам так то удобнее, конечно...

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 15:03 
Изучал и то и то!
Качество кода и там и там полный трешак. Я бы даже сказал, что это пособие по тому как не надо писать код!!!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 15:07 
Изучая этот код, я понял что значит Сишность головного мозга:)

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 15:33 
Пруф или не было. Что конкретно не понравилось?

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 15:43 
ИМХО, там качество кода на уровне 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;
}
ППС: Никогда так не пишите!!!:)

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 15:58 
> Никогда так не пишите

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено n00by , 08-Апр-22 16:14 
Ну типа цикл в одну строчку, сложное условие и без тела. Плохо читается питонистами, а мозг баш-программистов 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;
}


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 17:43 
>>> почему ? <<<

Код должен быть понятным (принцип 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;
}


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 17:50 
Кроме того это будет работать быстро, разумеется при условии что вы оптимизируете strlen, memset и memccpy, а чаще всего это именно так!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено n00by , 09-Апр-22 09:51 
Если бы мсье был не теоретиком, то оказалось бы, что у транслятора может быть своё представление об упомянутых функциях, и порой лучше выполнить man gcc|grep -C2 memcpy, прежде чем что-то писать на публику. Двойное strlen вообще комментировать смысла нет.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 10-Апр-22 08:38 
Очередной эксперт подъехал!) Ваши советы для меня бесценны, - я просто заново открыл, для себя мир разработки;)) вот это поворот!- пойду дальше читать теорию трансляторов;), - но вы держите меня в курсе событий;)

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено n00by , 11-Апр-22 06:59 
А, Вы уже написали свою реализацию стандартной библиотеки, как это сделал я? Ссылочкой не порадуете?

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 12-Апр-22 12:01 
Одно дело детально изучить технологию (так как надо по работе), и совсем другое переписывать кучу говнокода! Надо быть полным дебилом чтобы заниматься чем-то подобным за бесплатно!!!
>>> как это сделал я <<<

Rustоманы вам будут рады, - там любят всё переписывать!:)


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено n00by , 13-Апр-22 08:10 
> Одно дело детально изучить технологию

Нет ничего плохого в бытие теоретиком, почему Вы расстраиваетесь? Изучили детально, сможете когда-нибудь применить знания на практике. Главное, поменьше трындите на темы, которыми не занимались и не понимаете. ;)

> и совсем другое переписывать кучу говнокода!

Вы о наболевшем? С этим не ко мне, а к платному психологу.

>>>> как это сделал я <<<
> Rustоманы вам будут рады, - там любят всё переписывать!:)

Конечно будут, растоманы ведь пока не осилили ядро. Но я пока не осилил Раст. ;)


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 13-Апр-22 13:00 
Забавно слышать такое от человека который советует другим, читать книженцию почти 30-летней давности:))) На такое способен только эксперт с большой буквы:) Ну да ладно, продолжайте и дальше жить в середине 80-x:)))
ПС: Хотя автору musl не мешало бы прочитать Главу 1, пункты 7 и 7.1 из этой вашей экспертой книги:)

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено n00by , 13-Апр-22 14:01 
30 лет назад, это классика. Тогда люди сначала сами делали, а только потом других учили. Ныне каждый Аноним может написать musl. Если в процессе его не разбудит мама словами "пора в школу".

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 23:16 
какой тут ужас...

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 08:15 
м.. очередной опеннетный эксперт, который скорее всего профессионально не написал и строчки Си кода и никогда не работал в команде, - иначе там бы вам объяснили, что автор musl пишет лютый говнокод! с таким говнокодом вас не возьмут не в одну команду разработки!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено n00by , 09-Апр-22 09:46 
Просто откройте для себя классическую книжку "Верёвка достаточной длины, что бы выстрелить себе в ногу" за авторством Ален И. Голуб. И всё сразу станет понятно, кто и что на самом деле писал. Цитирую:

К тому же, многие программисты избегают условной операции (?:) просто потому, что она им кажется непонятной. Тем не менее, это условное выражение может существенно упростить ваш код и, следственно, сделать его лучше читаемым. Я думаю, что:

printf("%s", str ? str : "<пусто>");

гораздо элегантнее, чем:

if ( str == NULL )
  printf( "<пусто>" );
else
  printf( "%s", str );

...

Таблица 2. Как ничего не делать в С.

if ( p != NULL )
if ( p == NULL )


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 10-Апр-22 08:41 
Вот это поворот! - можете за меня ещё помолится на книжку K&R:)

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Пользователь Чебурнета , 09-Апр-22 03:55 
Код должен быть понятным в прикладном ПО. В системном нужна оптимизация и скорость работы. Поэтому страдающие паскалем головного мозга к подобным работам не допускаются.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 08:06 
Опа, эксперты с Сишностью головного мозга повылазили:)) Этот код, довольно быстрый,и для этого не пришлось писать лютый говногод, как это сделал автор musl, так что о какой производительности идет речь? - вы походу, и строчки Си кода не написали в своей жизни:)

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено myhand , 09-Апр-22 08:59 
>>>> почему ? <<<
> Код должен быть понятным (принцип KISS)

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Минона , 09-Апр-22 10:40 
>>>>> почему ? <<<
>> Код должен быть понятным (принцип KISS)
> Видите ли вьюнош, код должен быть понятным не только лишь всем.

Какая глубокая мысль! 🤦


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 10-Апр-22 20:00 
Keep it simple, stupid
Скорее речь о простом коде

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено ИмяХ , 08-Апр-22 16:43 
Нормальный, профессиональный код. Работает идеально, не требует никаких исправлений, патчей и т.п. поэтому людям его незачем читать. Что-то похожее я видел в книге "С для чайников"

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 18:19 
>>> поэтому людям его незачем читать <<<

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 20:28 
Ну вы, конечно, и сравнили английский с древне-тюркским

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 21:00 
Скорее просто вы не поняли при чём тут COBOL:) ну да ладно, видимо моя шутка не удалась:)
Сути это не меняет: надо писать простой и самое главное понятный код, который будет легко читать, а значит и сопровождать в дальнейшем, - если это не так, значит вы написали говнокод!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Пользователь Чебурнета , 09-Апр-22 04:09 
Петросянство не прокатило, да. Религиозные проповеди насчёт понятности и читаемости тоже не прокатят. Системное ПО не предусматривает написания кода, который был бы понятен даже идиоту. Для разработки системной библиотеки вовсе не требуется стопицот кодеров, сотни тимлидов, десятки менеджеров и несколько руководителей. А те высококлассные узкие специалисты, способные тянуть такую разработку, вполне могут подобные коды читать и понимать, и сами должны уметь писать точно также, с минимумом строк.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 08:56 
Продолжайте и дальше в это верить:)
Так мог написать только человек, который никогда не работал программистом и тем боле в команде:)))
ПС: Продолжайте и дальше восхвалять говнокод типа musl:) Ах, да, можете ещё перед сном помолится на книжку K&R, после которой люди как раз и пишут говнокод, никогда не обрабатывают даже элементарные ошибки, и уж тем более не знают что такое тестирование!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Минона , 09-Апр-22 10:42 
> Петросянство не прокатило, да. Религиозные проповеди насчёт понятности и читаемости тоже
> не прокатят. Системное ПО не предусматривает написания кода, который был бы
> понятен даже идиоту. Для разработки системной библиотеки вовсе не требуется стопицот
> кодеров, сотни тимлидов, десятки менеджеров и несколько руководителей. А те высококлассные
> узкие специалисты, способные тянуть такую разработку, вполне могут подобные коды читать
> и понимать, и сами должны уметь писать точно также, с минимумом
> строк.

Что ты несёшь! 🤦


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено alexrayne , 09-Апр-22 09:22 
Вот меня удивляет, в чем проблема освоить КОБОЛ? почему это стало проблемой то?
нытье о "поиске погромиста" обусловлено закидонами работодателя.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено ИмяХ , 12-Апр-22 13:43 
>> что-то сделать

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 16:52 
> Качество кода и там и там полный трешак.

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено ИмяХ , 08-Апр-22 15:05 
>> и высокой производительностью

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено sig11 , 08-Апр-22 18:34 
>> Высокая производительность у него только во всяких хеллоуворлдах.

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

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

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 17:06 
Если бы питон быстро бегал - это была бы ж...а, сожрал бы все живое!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 08-Апр-22 19:24 
Было бы неплохо взглянуть на соответствующий тест производительности. Наверное вы сделали свой вывод опираясь на какое-то исследование - поделитесь пожалуйста?

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 09:54 
например
https://paste.sr.ht/%7Eminus/18b44cfe58789bc1fb69494130...
https://habr.com/ru/post/520920/
см. комментарии

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Ан , 09-Апр-22 20:35 
Этот твой пост по ссылкам достаточно хорошо объясняет, почему glibc нестандартизированная параша, которая не должна иметь права быть *стандартной* библиотекой.

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Ан , 08-Апр-22 22:15 
А я уже думал, что эта весна настолько уже хороша, что лучше уже и некуда, но нет! Ждём musl 1.3!

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Ан , 08-Апр-22 23:14 
Ctrl+F "Void Linux" ничего не показал, а тем временем, это лучший rolling-release дистрибутив на сегодняшний день, в том числе и в варианте c musl вместо glibc.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 09:41 
Он лучший для умеющих собирать из исходников, яинить баги. Вот вышло 5.17, 5.17.1, а в XBPS их нет. Тем временем автоподбор параметров ядра легко может не включить скажем протоколы для работы сенсорной панели ноутбука. То есть слабонервным новичкам там делать особо нечего. Но на musl вариант и правда хорош. Там некуда торопиться, ибо автоисправлений ошибок нет как в glibc. OpenWRT по умолчанию тоже на musl. И вот вторая библиотека для весьма тощих устройств. Впрочем в Void есть s6 как дополнительная система инициализации. И да, нытики будут ныть, что разработчики не включили автоматически какие-нибудь сервисы сразу же. У одноклеточных выбор из одного доступного варианта позволяет не использовать мозг, ведь они свято верят, что мозгами пользоваться - моветон.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено ИмяХ , 09-Апр-22 09:49 
Людям за компьютером работать надо, а не собирать исходники и чинить баги.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Кэп , 09-Апр-22 16:54 
Сбор софта и починка багов тоже работа за компьютерами так то. А еще булки на деревьях не растут.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 10:44 
В следующий раз попытайтесь логически связывать слова и предложения, набор букв какой-то

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Пимпа , 09-Апр-22 15:29 
Жесть, брателло, тебе бы отдыхать побольше без компьютера. Даже через буквы видно, что у тебя глаз дёргается.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 17:03 
> Тем временем автоподбор параметров ядра легко может не включить скажем протоколы для работы
> сенсорной панели ноутбука.

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

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

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 09-Апр-22 10:50 
как дистр без пакетов может быть лучше арча, который с пакетами?

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Ан , 09-Апр-22 20:37 
Ты, похоже, не в курсе, что XBPS означает X  ***Binary Package*** System.

"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 10-Апр-22 09:06 
>x86_64

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

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Ан , 10-Апр-22 11:47 
> intel-aviv

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


"Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6"
Отправлено Аноним , 13-Апр-22 14:43 
Что-то опоздали вы со смехом, уволили их всех уже.