У компании есть патч, позволяющий использовать 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 весьма велико, однако, в "официальное" ядро входят далеко не все и не сразу.
|