На чем и как Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #053, стр. 053-056-5 Возникает дилемма: либо пыхтеть над DDK (тысячи страниц и все на программистском международном, то есть на английском), либо поручить эту работу системному программисту. Разумеется, не бесплатно. Но самостоятельное изучение режима ядра обойдется еще дороже. Эта не та область, которую можно постичь за месяц или два. В программировании драйверов есть множество неочевидных тонкостей, известных только профессионалам. Умение совмещать в себе проектирование баз данных с разработкой низкоуровневых компонентов даровано не каждому. Сосредоточься на чем-то одном - на том, что у тебя получается лучше всего. В противном случае ты впустую потратишь время, не получив ни денег, ни удовольствия. В ядре "Вычислительная" часть (она же "движок") - сердце любого приложения, основной "интеллект" сосредоточен именно здесь. "Вычисления" - это не только математические расчеты, но и любая обработка данных вообще. В частности, вычислительная часть "Тетриса" трансформирует фигуры, подсчитывает очки, убирает заполненные строки, обрабатывает наложения спрайтов и т.д. Чаще всего движок пишется на приплюснутом или классическом С, реже - на Фортране, Pascal'е и других экзотических языках. Выбор определяется личными пристрастиями программиста, с одной стороны, и возможностями языка - с другой. А язык - это не только компилятор, но еще и его окружение, то есть среда разработки, отладчик, верификаторы кода, библиотеки, системы обнаружения утечек памяти. Многие останавливаются на Visual Studio только из-за ее IDE. Интегрированный отладчик с перекомпиляцией на лету, автозавершение имен функций, удобные мастера. С непривычки все это здорово заводит и возбуждает, но, не дойдя до оргазма, эйфория угасает. Мастера тесно завязаны на MFC, а MFC использует нестандартные расширения и, вообще говоря, непереносим. Можно, конечно, писать и без мастеров, но что тогда остается от IDE? А текстовой редактор можно найти и покруче. Системы контроля и визуализаторы данных находятся в глубоко зачаточном состоянии. Основным лекарством становится отладчик, из-под которого не вылезаешь ночами, но с ошибками синхронизации потоков он все равно не справляется. В мире *niх, где в основном используется "тяжелая" многозадачность, этих проблем просто не возникает, да и ассортимент инструментальных средств там побогаче. Есть мнение, что дешевле написать вычислительную часть на Linux и затем перекомпилировать под Windows, чем писать на Visual C++. Трудности разработки с лихвой компенсируются легкостью отладки. Правда, для этого следует проникнуться идеологией GDB - самого "правильного" отладчика в мире. Он совсем не похож на Turbo Debugger и намного более продвинут, чем SoftIce (правда, совершенно непригоден для взлома, но взлом - это другое дело). |