> man operating_systems
C++ в ядре Linux?
У компании есть патч, позволяющий использовать C++ в ядре Linux. Патч позволяет использовать всю мощь исключений C++, глобальные конструкторы и деструкторы, динамическую проверку типов.

Патч можно применить к коду ядра (есть версии для ядер 2.6.6 и 2.6.9) и далее использовать все воможности C++ с компилятором GNU g++. Как говорит сама компания, этот патч может помочь, в частности, разработчикам драйверов, которым ранее приходилось использовать лишние "обертки". Данная реализация C++ ABI основана на исходниках GNU g++, но обеспечена работа в режиме ядра и сделано немалое количество оптимизаций.

Но Линус Торвальдс (Linus Torvalds) еще в начале этого года недвусмысленно высказался в отношении использования C++ в ядре. В Linux пытались применить C++ еще в далеком 1992 году, но, по заверениям Линуса, ничего хорошего из этой затеи и не могло выйти.

написал(а) ...
Факт в том, что компиляторы C++ ненадежны. С этим было еще хуже в 1992, но некоторые основополагающие факты не изменились:

  • вся концепция обработки исключений в C++ не работает. Она особенно не работает для ядер
  • любой компилятор или язык, который пытается скрыть от ваших глаз такие вещи как выделение памяти, не есть хороший выбор для ядра
  • вполне можно писать объектно-ориентированный код (полезно для файловых систем и т. д.) на C без того мусора, каким является C++
В целом, я бы сказал, что любой, кто проектирует свои модули для ядра на C++ или
(a) ищет проблем
(b) фанатик C++, который просто не видит, что то, что он пишет, на самом деле все равно C
(c) такое у него задание в школе.

Вы свободны это сделать (d)


И самое интересное, кажется, в том, что все-таки сделали. Найдет ли этот патч себе место в "официальном" ядре - большой вопрос, количество различных патчей для ядра Linux весьма велико, однако, в "официальное" ядро входят далеко не все и не сразу.

Roman I Khimov  в  Пятница, 29 Октябрь 2004, 14:27  |   Комментарии: 74  |  для печати

Наши новости доступны в формате RSS.

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.