The OpenNET Project / Index page

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

Выпуск системной библиотеки Glibc 2.28

01.08.2018 19:20

После шести месяцев разработки подготовлен релиз системной библиотеки GNU C Library (glibc) 2.28, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2008. В состав нового выпуска включены исправления от 58 разработчиков.

Из добавленных в Glibc 2.28 улучшений можно отметить:

  • Обеспечена возможность сборки и запуска на системах GNU/Hurd без применения дополнительных патчей;
  • Добавлена функция renameat2, предоставляющая средства для атомарной замены имён двух файлов (первый файл переименовывается во второй, а второй в первый). Функция renameat2 отличается от renameat наличием дополнительного флагового поля. Если флаг не указан поведение renameat2 полностью аналогично renameat. Из флагов поддерживается RENAME_NOREPLACE, при котором операция переименования не приводит к замене уже существующего файла. В случае, если ядро не поддерживает системный вызов renameat2 и при вызове указаны аргументы, будет возвращена ошибка;
  • Добавлена функция statx, которая отличается от fstatat64 наличием дополнительного флагового аргумента. В случае, если ядро не поддерживает системный вызов statx, возвращающего расширенную информацию о файле, включая время создания файла и специфичные для файловых систем флаги, в glibc предоставляется базовая поддержка на основе функции fstatat64;
  • Добавлена поддержка потоков ISO C (threads.h), определённых в спецификации ISO/IEC 9899:2011). Для использования потоков в приложениях необходимо связывание с libpthread. В многопоточных программах можно использовать следующие функции:
    • thrd_current, thrd_equal, thrd_sleep, thrd_yield, thrd_create, thrd_detach, thrd_exit и thrd_join для управления потоками;
    • mtx_init, mtx_lock, mtx_timedlock, mtx_trylock, mtx_unlock, and mtx_destroy для управления мьютексами;
    • call_once для синхронизации вызова функций;
    • cnd_broadcast, cnd_destroy, cnd_init, cnd_signal, cnd_timedwait и cnd_wait для условных переменных;
    • tss_create, tss_delete, tss_get и tss_set для TLS (thread-local storage).
  • Данные локализации обновлены до свежей четвёртой редакции стандарта ISO 14651 для полного соответствия с Unicode 9.0.0. Для многих локалей добавлены новые свойства "Collation", позволяющие задавать правила сортировки и методы сопоставления с учётом смысла символов. Включение данной информации привело к увеличению размера скомпилированных файлов с локалями;
  • При сборке обеспечена поддержка технологии Intel CET (Control-flow Enforcement Technology). При указании сборочной опции "--enable-cet" осуществляется включение для исполняемого кода защиты с использованием инструкций IBT (indirect branch tracking) и SHSTK (shadow stack), при этом сохраняется совместимость со всеми существующими исполняемыми файлами и библиотеками. Новый режим сборки доступен для архитектур i386, x86_64 и x32 при сборке с GCC 8 и наличии binutils 2.29;
  • Добавлена корректная поддержка символов ABSOLUTE (SHN_ABS), поддерживаемых компоновщиком GNU linker;
  • Кодировки, информация о типах символов и таблицы транслитерации обновлены для поддержки спецификации Unicode 11.0.0;
  • Добавлены новые варианты математических функций, определённых в заголовочном файле math.h, которые округляют результат до типа narrower, определённого в спецификациях TS 18661-1:2014 и TS 18661-3:2015:
    • fadd, faddl, daddl и соответствующие им fMaddfN, fMaddfNx, fMxaddfN и fMxaddfNx;
    • fsub, fsubl, dsubl и соответствующие им fMsubfN, fMsubfNx, fMxsubfN and fMxsubfNx;
    • fmul, fmull, dmull и соответствующие им fMmulfN, fMmulfNx, fMxmulfN and fMxmulfNx;
    • fdiv, fdivl, ddivl и соответствующие им fMdivfN, fMdivfNx, fMxdivfN and fMxdivfNx;
  • Добавлена локаль для якутского языка Yakut (sah_RU), в которой обеспечена поддержка двух разных грамматических форм имён месяцев;
  • Для обработки интернационализированных доменных имён в функциях getaddrinfo и getnameinfo теперь используется система libidn2, при наличии соответствующей библиотеки. В случае отсутствия библиотеки libidn2 кодирование и декодирование интернационализированных имён не производится, даже при указании флагов AI_IDN и NI_IDN (указание не ASCII-символов приведёт к возврату ошибки). Ранее применяемые флаги AI_IDN_ALLOW_UNASSIGNED, AI_IDN_USE_STD3_ASCII_RULES, NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES объявлены устаревшими и игнорируются;
  • При разборе динамических строковых токенов в DT_RPATH, DT_RUNPATH, DT_NEEDED, DT_AUXILIARY и DT_FILTER обеспечена поддержка всех выражений ELF gABI, включая конструкции '$ORIGIN$ORIGIN'. Для приложений с флагом SUID/GUID применение выражений ограничено и динамические строки интерпретируются как строковые литералы;
  • Прекращена поставка устаревших заголовочных файлов libio.h и _G_config.h, функциональность которых предоставляется в stdio.h;
  • Функции 'getc' и 'putc' теперь не определены в форме макросов, а реализованы через вызов (f)getc_unlocked и (f)putc_unlocked;
  • Во всех функциях stdio изменено поведение при обработке конца файла в случае добавления данных после открытия файла (для чтения добавленных данных требуется вызов clearerr или функций вида fseek и rewind);
  • Макросы 'major', 'minor' и 'makedev' теперь доступны только при подключении заголовочного файла sys/sysmacros.h (загрузки sys/types.h недостаточно);
  • Прекращена поддержка конфигураций tilegx*-*-linux-gnu;
  • Объявленные устаревшими функции ustat, fcrypt, nfsservctl, llseek, encrypt, encrypt_r, setkey, setkey_r, cbc_crypt, ecb_crypt и des_setparity теперь не предоставляются вновь скомпонованным исполняемым файлам;
  • В будущих выпусках связанные с хэшированием паролей функции будут вынесены во внешний проект и потребуют отдельной установки crypt.h и libcrypt. В текущем выпуске для отключения встроенной реализации libcrypt предложена опция "--disable-crypt";
  • Для сборки glibc теперь требуется как минимум GNU make 4.0 или более новая версия;
  • Устранены уязвимости:
    • CVE-2016-6261, CVE-2016-6263, CVE-2017-14062 - серия уязвимостей во встроенной реализации функций для разбора интернационализированных имён доменов;
    • CVE-2017-18269 - в функции memmove с оптимизациями SSE2 для архитектуры i386 выявлена уязвимость, которая может привести к повреждению областей памяти;
    • CVE-2018-11236 - уязвимость в функции realpath, которая может привести к переполнению буфера при передаче слишком длинного пути;
    • CVE-2018-11237 - уязвимость в реализации функции mempcpy для архитектуры Intel Xeon Phi, позволяющая организовать запись данных в область за границей буфера.


  1. Главная ссылка к новости (https://sourceware.org/ml/libc...)
  2. OpenNews: Конфликт между Ричардом Столлманом и командой разработчиков Glibc
  3. OpenNews: Выпуск системной библиотеки Glibc 2.27
  4. OpenNews: Уязвимость в Glibc, позволяющая поднять привилегии в системе
  5. OpenNews: Уязвимость в Glibc ld.so, позволяющая поднять свои привилегии в системе
  6. OpenNews: Переполнение буфера в функции glob из состава Glibc
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49059-glibc
Ключевые слова: glibc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 20:43, 01/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Каковы преимущества Hurd?
     
     
  • 2.4, Andrey Mitrofanov (?), 20:55, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Каковы преимущества Hurd?

    GNU, FSF и GPLv3+.

     
     
  • 3.18, ананим.orig (?), 23:37, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +10 +/
    нда.. а раньше тут бы обсуждали микроядро итд.
     
     
  • 4.62, freehck (ok), 10:28, 09/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Скорость развития системы вокруг микроядра не позволяет ей быстро адаптироваться к изменяющимся требованиям. Ну и толку-то его обсуждать... Идея-то, может и хорошая...
     
  • 3.21, Аноним (21), 00:05, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >GNU, FSF и GPLv3+.

    В общем, одни минусы

     
     
  • 4.41, _hide_ (ok), 12:56, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Новые версии от Анонима:
    * GNU-
    * FSF-
    * GDPLv3-
     
  • 4.48, Andrey Mitrofanov (?), 09:19, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>GNU, FSF и GPLv3+.
    > В общем, одни минусы

    Отлично!! Вы можете не приходить, вычёркиваю.

    И это тоже, если не плюс, то бонус.

     
  • 3.60, Тот_Самый_Анонимус (?), 19:46, 07/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >GNU, FSF и GPLv3+.

    Серьёзно? Один гуманитарный шлак.
    Технические преимущества есть?

     
     
  • 4.61, Andrey Mitrofanov (?), 10:31, 08/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>GNU, FSF и GPLv3+.
    > Серьёзно? Один гуманитарный шлак.
    > Технические преимущества есть?

    Да, серьёзно.  Мне нравится.

    Вам могут понравитья "технические преимущества" в отделе продаж, обратитесь к дилеру Микрософт.

     
     
  • 5.64, Тот_Самый_Анонимус (?), 05:28, 10/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, серьёзно.  Мне нравится.
    > Вам могут понравитья "технические преимущества" в отделе продаж, обратитесь к дилеру Микрософт.

    Фанатик, понятно. Как мне майкрософт может обосновать технические преимущества Hurd? Как вы на глаз определяете преимущество лицензии, не заглядывая в описание и в саму лицензию?

     
  • 2.5, Аноним (5), 21:03, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Каковы преимущества Hurd?

    Самая безопасная ОС. Пока ещё не известно ни одного случая взлома.

     
     
  • 3.6, НеСкарказм (?), 21:17, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А известны ли случая использования этой ОС где-нибудь еще кроме локалхоста?
     
     
  • 4.7, Аноним (7), 21:34, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Сейчас Митрофанов скажет, что да, но на самом деле нет.
     
  • 4.16, Митрофанов (?), 23:09, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Да, но пока - нет
     
  • 4.25, maximnik0 (?), 00:48, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • –8 +/
    >А известны ли случая использования этой ОС где-нибудь еще кроме локалхоста?

    А про интел материнские платы и встроенные бэкторы забыли ?
    Так все это крутиться на модэфицированной разновидности этой ос.

     
     
  • 5.28, Аноним (28), 01:12, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> А известны ли случая использования этой ОС где-нибудь еще кроме локалхоста?
    >А про интел материнские платы и встроенные бэкторы забыли ?
    >Так все это крутиться на модэфицированной разновидности этой ос.

    Совсем мимо.

     
  • 5.29, ананим.orig (?), 01:20, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1. бэкдоры
    2. миникс
    Зыж
    Если уж говорить о хард, то основа Hurd — микроядро GNU Mach.
    Как и макос.
     
     
  • 6.51, имя (?), 18:21, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Только в макоси не гнутый, а чей-то ещё Mach, у которого с GNU Mach из общего только название и предок.
     
     
  • 7.58, Аноним (58), 17:30, 06/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    CMU, разумеется.

    эх... Беркли, Карнеги-Меллон, МИТ - куда делись эти способные студенты и аспиранты? (понятно, выросли и пошли рабами в стартапы работать 10 часов в день, но где новые-то поколения, они что - совсем ничего не умеют?)
    Нынешние университетские проекты - Япония, а то и вовсе Китай...

     
     
  • 8.59, Andrey Mitrofanov (?), 17:35, 06/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Они питон учат См соседнюю тему Разжигаете по групповому аяяяй ... текст свёрнут, показать
     
  • 5.32, ryoken (ok), 08:58, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Проспитесь. Там же minix.
     
  • 4.33, КО (?), 10:01, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вас обманули, ОС - это GNU, а Hurd - это труЪ йадро к ней. И вот не прошло и 35 лет, как основная библиотека этой ОС может работать с ним.
     
     
  • 5.44, Аноним (44), 16:10, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Т.е. перешла из состояния "не собирается" в состояние "не работает". Прогресс, чо.
     
  • 5.45, Аноним (45), 17:16, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Она и раньше работала
     
  • 5.63, Hammerbreast (?), 15:11, 09/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше поздно чем никогда?
     
  • 3.42, Аноним (42), 13:24, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Неуловимый Джо?
     
  • 2.19, Аноним (19), 23:38, 01/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Микроядро, драйвера в юзерспейсе. Непривилегированный пользователь может загружать свои драйвера ФС, использовать свою конфигурацию сети (можно, например, сделать VPN для отдельного приложения) и т. п.: https://archive.fosdem.org/2014/schedule/event/07_uk_dde_on_hurd/attachments/s
     
     
  • 3.34, аа (?), 10:06, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А что в молитном линуксе нельзя, fuse использовать, или в netns процесс засунуть.
     
     
  • 4.35, Аноним (35), 10:54, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > fuse

    Это про который сам Торвальдс писал, что в плане производительности это игрушка, не рассчитанная на серьёзное применение?

     
     
  • 5.36, evkogan (?), 11:36, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А производительность на Hurd кто-то мерял?
    Можно посмотреть результаты?
     
     
  • 6.40, нах (?), 12:49, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А производительность на Hurd кто-то мерял?

    а смысл?

    > Можно посмотреть результаты?

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

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

    c fuse, кстати, наоборот - рекомендую поискать тесты ntfs-3g ранних версий, в сравнении с  native ext*
    Аффтар там так скромненько "ну, вообще-то, можно еще хотя бы отладочные дефайны было выключить"... лaп[мoдерастия считает это ужасным оскорблением]ые по итогам заметались, что-то там у себя наоптимизировали, и такого позорного отношения не стало, но я бы на вашем месте не спешил делать выводы об "игрушечности" fuse.

    то есть это не целиком архитектурная проблема, это проблема отсутствия умения и желания делать хороший код.

     
     
  • 7.49, evkogan (?), 09:23, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я ntfs-3g через fuse уже более 10 лет пользую.
    И производительность там может и не супер, но вполне достаточная.
    Честно говоря я к Hurd с момента его появления в Дебиане отношусь как к поделке, которая пока just for fun. И не слежу за его развитием.
    Вот и спрашиваю вдруг с тех пор что-то поменялось и на него пора посмотреть пристальнее.
    Судя по всему нет, все по прежнему.
     
  • 4.43, Аноним (19), 14:15, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Fuse — это хак для обхода ограничений монолитного ядра в одном частном случае (файловые системы): драйвер в ядре, делегирующий работу в юзерспейс, и доступ к нему только через setuid-бинарик (то есть, в действительности, не для непривилегированного пользователя).  Netns — еще один специализированный хак.  И сетевой стек все равно в ядре, то есть пользователь не может загрузить другую его реализацию.  Hurd же решает эти задачи в общем случае.
     
     
  • 5.52, имя (?), 18:26, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > сетевой стек все равно в ядре, то есть пользователь не может загрузить другую его реализацию

    DPDK? netmap? Да и на опеннете не раз уже были новости про сетевой стек в линуксовом юзерспейсе.

     
     
  • 6.53, Аноним (19), 03:39, 04/08/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Еще раз: все это специализированные надстройки, приводящие к раздуванию и усложнению системы, вместо решения задачи в общем случае.
     

  • 1.46, Аноним (45), 17:19, 02/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Добавлена поддержка потоков ISO C (threads.h), определённых в спецификации ISO/IEC 9899:2011)

    зачем это нужно, есть же pthreads

     
     
  • 2.50, Аноним (50), 15:47, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потоки ISO C (threads.h) потенциально более переносимы, т.к. является часть стандарта на язык C11. И потенциально это более широкое распространение, чем unix-подобные ОС.
     

  • 1.55, Аноним (55), 13:26, 05/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >для полного соответствия с Unicode 9.0.0.

    а как же Unicode 12.0.0 ?

     
     
  • 2.56, Аноним (-), 17:41, 05/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>для полного соответствия с Unicode 9.0.0.
    >а как же Unicode 12.0.0 ?

    Бери выше, до 11-ти.

    "Кодировки, информация о типах символов и таблицы транслитерации обновлены для поддержки спецификации Unicode 11.0.0".

     

  • 1.57, Аноним (57), 22:47, 05/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Якутская локаль! Теперь заживем!
     

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



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

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