The OpenNET Project / Index page

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

В Clang обеспечена возможность сборки Linux-ядра 2.6.36

26.10.2010 08:53

Разрабатываемый в рамках проекта LLVM компилятор Clang преодолел значительный барьер - разработчикам удалось добиться сборки Linux-ядра 2.6.36. С учетом того, что ядро корректно собирается только ограниченным числом версий GCC, это значительный шаг в развитии Clang. В настоящий момент собранное при помощи Clang ядро способно загружать систему на пятый уровень выполнения (runlevel 5, запуск графической и сетевой подсистемы), работать как в окружении QEMU, так и на реальном оборудовании (X-сервер удалось запустить на Macbook 5.1 (CPU Intel C2D), ведется подготовка тестовой системы на базе Intel Atom). В системе на базе собранного в Clang Linux-ядра успешно проведен эксперимент по пересборке и последующему запуску еще одной копии ядра (self-host).

К сожалению не все проблемы еще решены и для того чтобы добиться загрузки системы приходится использовать некоторые компоненты, собранные при помощи GCC. В частности, из-за возникновения внутренних ошибок компилятора и проблем c обработкой массивов переменной длины, пока не удается собрать код SELinux, Posix ACL, IPSec, eCrypt и других подсистем, использующих Crypto API. Разработчики Clang надеются, что код Crypto API не фундаментально завязан на специфичных GNU-расширениях GCC и решить возникшие проблемы удастся незначительными правками. Кроме того, незначительные проблемы наблюдаются при сборке кода, связанного с Xen, IPv6 и Netfilters/Router, не работает код загрузки модулей ядра.

Из успешно собранных подсистем можно отметить:

  • Базовый код ядра, файловые системы, интерфейс к шинам передачи данных, PCI, ACPI - стресс-тестирование пока не проводилось, но на первый взгляд все работает;
  • SMP, SMT, SysV, pthreads, POSIX IPC - проведено интенсивное тестирование с использованием пакетов tiobench и rt-tests, а также библиотек Boost.Process и the Boost.Thread;
  • NUMA, swap, mm, slab allocator - с целью тестирования подсистем управления памятью, ядро и связка LLVM + Clang были перекомпилированы несколько раз, используя для сборки текущей системы ядро и Clang, собранные на предыдущем этапе;
  • Сетевой стек - IPv4-стек работает без нареканий, за исключением IPSec и Netfilter;
  • Драйверы и прошивки - в общем виде драйверы собираются, если они не используют Crypto API. Из проверенных устройств отмечаются: клавиатура, DVD/CDROM, тачпад, USB-драверы, web-камера iSight, графика и звук (в системе нормально работает Flash-плагин и просмотр видео).

Clang представляет собой LLVM фронтенд для языков C, С++ и Objective-C, который можно использовать вместо GCC. Исходные тексты Clang распространяются в рамках лицензии BSD, что делает этот компилятор интересным решением для замены GCC в BSD-подобных ОС. В настоящее время активно развивается проект адаптации данного компилятора для сборки базовой системы и портов FreeBSD. В будущем Clang планируется использовать вместо GCC в качестве системного компилятора FreeBSD.

 
  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Новая версия набора компиляторов LLVM 2.8
  3. OpenNews: Linux ядро адаптировано для сборки компилятором Intel C/C++
  4. OpenNews: В состав базовой системы FreeBSD включен компилятор Clang
  5. OpenNews: Clang достиг уровня успешной пересборки комплекта C++-библиотек Boost
  6. OpenNews: Компилятор Clang преодолел барьер собственной пересборки
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/28418-Clang
Ключевые слова: Clang, llvm, compile, kernel, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (315) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, б.б. (?), 10:16, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Для компилятора это, несомненно, очень хороший показатель.

    А что это даст для ядра?

     

     ....большая нить свёрнута, показать (51)

  • 1.5, x0r (??), 10:59, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –3 +/
    В итоге корпорации с помощью BSD софта сделают не нужным GPL софт.
    Корпорации будут развивать BSD софт, а GPL будут развивать только энтузиасты.
    Вот вам и полная свобода
     

     ....большая нить свёрнута, показать (191)

  • 1.6, fidaj (ok), 11:26, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +9 +/
    Ждем коментариев прессе от Столмана...
     
     
  • 2.89, dimqua (ok), 15:57, 26/10/2010 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    Я думаю, что он будет только рад, что свободный проект стал лучше и это не предел.
     

  • 1.9, Аноним (-), 12:06, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    А относительно производительности собранного ядра что-нибудь известно?
     
  • 1.13, MarCo (?), 12:15, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –5 +/
    GPL-лицензия программы не зависит от лицензии компилятора. Да и лицензия GCC не ограничивает создание коммерческих продуктов. Поэтому компилятор Clang с BSD-лицензией больше похож на пятое колесо.
     

     ....большая нить свёрнута, показать (59)

  • 1.96, Pbl6a (?), 16:37, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Ну вот, теперь какой нибудь аля оракл сможет соптимизировать Clang что бы он собирал бинарник линукс ядра производительнее на 5%-10%, и зажав изменения в Clang-е барыжить "уникальным" продуктом. От открытых сорцов толку уже будет не много.
    :)
     
  • 1.104, MarCo (?), 18:00, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –2 +/
    Всё равно не понимаю, зачем так напрягаться, если надо бинарник на 20% производительнее есть компилятор Intel.
     
     
  • 2.142, ананим (?), 22:03, 26/10/2010 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    никто не говорил о скорости бинарника.
    речь о скорости компиляции.
    собственно для этого ллвм и создан - динамическая компиляция "на_лету".
    о скорости бинарника речи нет.
     

  • 1.140, pavlinux (ok), 22:00, 26/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –3 +/
    > В настоящий момент собранное при помощи Clang ядро способно загружаться на
    > пятый уровень выполнения (runlevel 5, запуск графической и сетевой подсистемы),

    Это что за бред? Какой уровень выполнения :)

     
     
  • 2.144, ананим (?), 22:04, 26/10/2010 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    ну это типа из-под этого полу-ядра таки иксы стартуют. может быть.
     
     
  • 3.150, pavlinux (ok), 22:11, 26/10/2010 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Таки это панятно, но какое отношение Хы, имеют к ядру?!
     
     
  • 4.219, ананим (?), 00:27, 27/10/2010 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    драйверами нокиа. :D
    которые не грузятся, т.к. загрузка/выгрузка модулей не компилится. а я не видел вкомпиляченную нвидиа в ведро даже с использованием gcc.

    аффтар новости так перевел/додумал/исправил. или сами аффтары.
    художественное отступление.

     
     
  • 5.228, pavlinux (ok), 00:46, 27/10/2010 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > драйверами нокиа. :D

    SVGA рулит.

    >  а я не видел  вкомпиляченную нвидиа в ведро даже с использованием gcc.

    О, это веселое занятие...

     

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



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

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