Äèñêóññèÿ îá èñïîëüçîâàíèè ÿçûêà C++ äëÿ ðàçðàáîòêè ÿäðà Linux |
 ñïèñêå ðàññûëêè ðàçðàáîò÷èêîâ ÿäðà Linux âîçîáíîâèëîñü íà÷àòîå øåñòü ëåò íàçàä îáñóæäåíèå ïåðñïåêòèâ èñïîëüçîâàíèÿ ñîâðåìåííîãî êîäà íà C++ â ÿäðå Linux, ïîìèìî íûíåøíåãî ïðèìåíåíèÿ ÿçûêà Ñè ñ àññåìáëåðíûìè âñòàâêàìè è ïðîäâèæåíèÿ ÿçûêà Rust. Èçíà÷àëüíî òåìà ðàçðàáîòêè ÿäðà íà C++ áûëà ïîäíÿòà â 2018 ãîäó èíæåíåðîì èç Red Hat, êîòîðûé ïåðâîãî àïðåëÿ â êà÷åñòâå øóòêè îïóáëèêîâàë íàáîð èç 45 ïàò÷åé äëÿ èñïîëüçîâàíèÿ øàáëîíîâ, íàñëåäóåìûõ êëàññîâ è ïåðåãðóçêè ôóíêöèé C++ â êîäå ÿäðà.
Ñ èíèöèàòèâîé ïðîäîëæåíèÿ îáñóæäåíèÿ âûñòóïèë Ãàíñ Ïèòåð Àíâèí (Hans Peter Anvin), îäèí èç êëþ÷åâûõ ðàçðàáîò÷èêîâ ÿäðà â êîìïàíèè Intel è ñîçäàòåëü òàêèõ ïðîåêòîâ êàê syslinux, klibc è LANANA, ðàçðàáîòàâøèé äëÿ ÿäðà Linux ñèñòåìó àâòîìîíòèðîâàíèÿ, ðåàëèçàöèþ RAID 6, äðàéâåð CPUID è x32 ABI. Ïî ìíåíèþ Àíâèíà, êîòîðûé ÿâëÿåòñÿ àâòîðîì ìíîãî÷èñëåííûõ ìàêðîñîâ è àññåìáëåðíûõ âñòàâîê â ÿäðå, ñ 1999 ãîäà ÿçûêè C è C++ çíà÷èòåëüíî ïðîäâèíóëèñü âïåð¸ä â ñâî¸ì ðàçâèòèè è ÿçûê C++ ñòàë ëó÷øå, ÷åì Ñ, ïîäõîäèòü äëÿ ðàçðàáîòêè ÿäðà îïåðàöèîííûõ ñèñòåì.
Âîçìîæíîñòè, äëÿ êîòîðûõ åù¸ íåäàâíî ïðèõîäèëîñü ïðèâëåêàòü ñïåöèôè÷íûå GCC-ðàñøèðåíèÿ, òåïåðü ëåãêî ðåàëèçîâàòü íà ñòàíäàðòíîì C++, è âî ìíîãèõ ñëó÷àÿõ èñïîëüçîâàíèå C++ ïîçâîëèò óëó÷øèòü èíôðàñòðóêòóðó áåç ãëîáàëüíîãî èçìåíåíèÿ êîäà.  êà÷åñòâå ìèíèìàëüíîé óïîìèíàåòñÿ èñïîëüçîâàíèå ñïåöèôèêàöèè C++14, êîòîðàÿ âêëþ÷àåò íåîáõîäèìûå ñðåäñòâà ìåòàïðîãðàììèðîâàíèÿ, à â êà÷åñòâå æåëàåìîé - èñïîëüçîâàíèå ñïåöèôèêàöèè C++20, â êîòîðîé ïîÿâèëàñü ïîääåðæêà êîíöåïöèé, ñïîñîáíûõ èñêëþ÷èòü ïîÿâëåíèå ìíîãèõ îøèáîê.
Àíâèí ñ÷èòàåò, ÷òî C++ áîëåå ïðåäïî÷òèòåëåí, ÷åì Rust, òàê êàê ïîñëåäíèé ñóùåñòâåííî îòëè÷àåòñÿ îò ÿçûêà Ñ ïî ñèíòàêñèñó, íåïðèâû÷åí äëÿ òåêóùèõ ðàçðàáîò÷èêîâ ÿäðà è íå ïîçâîëÿåò ïîñòåïåííî ïåðåïèñûâàòü êîä (â ñëó÷àå ÿçûêà Ñ++ ìîæíî ïî ÷àñòÿì ïåðåâîäèòü êîä ñ ÿçûêà C, òàê êàê Ñ-êîä ìîæíî êîìïèëèðîâàòü êàê C++).  ïîääåðæêó èñïîëüçîâàíèÿ Ñ++ â ÿäðå òàêæå âûñòóïèëè Èðæè Ñëàáè (Jiri Slaby) èç êîìïàíèè SUSE è Äýâèä Õàóýëëñ (David Howells) èç Red Hat.
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |