Стек
19-09-2011 11:45
к комментариям - к полной версии
- понравилось!
В ядре для микроволновки ни о каких 4KB стека и речи быть не может: будет там 128 байт — уже хорошо, а то и вообще окажется процессор Гарвардской архитектуры без стека. А вот как раз на x86 Linux использует 4KB стек. Просто потому что это позволяет экономить память: для каждой нити вам нужен отдельный стек, а нитей этих могут быть десятки тысяч если вы какое-нибудь сильно многопоточное Java-приложение гоняете. Да, можно изобрести какую-нибудь хитрую архитектуру, которая будет динамически распределять память или позволять вам эти стеки отправлять в swap или использовать N:M модель и кучу хитрых правил… а можно просто аккуратно программировать и использоваться адекватные задаче языки программирования. То есть, как минимум, не использовать C++ для ядра. Вот GUI на C++ писать — самое оно, а для ядра Linux оно не годится. Если вы разрабатываете ядро под жёстким руководством кого-нибудь в обычной «вертикальной» фирме — вы можете обкарнать C++ «до вменяемости» и жестоко карать за нарушения, тогда есть ещё какие-то шансы, но когда писать модули может кто угодно — лучше задавить соблазны в зародыше.
вверх^
к полной версии
понравилось!
в evernote