Как все сказали выше, они не совпадают. Большинство ответов указывают на typedef
более выгодным, чем #define
. Но позвольте мне добавить плюс #define
: когда ваш код очень большой, разбросанный по многим файлам, лучше использовать #define
; это помогает в удобочитаемости - вы можете просто предварительно обработать весь код, чтобы увидеть фактическое определение типа переменной в месте самого объявления.
Если бы Вы абсолютно плохо знакомы с разработкой ядра, я предложил бы не запуститься с аппаратной разработки и идти в некоторые модули ядра "только для программного обеспечения" как proc файл / sysfs или для более сложной файловой системы в качестве примера / развитие сети, разработав на uml/vmware/virtualbox/..., машина, настолько отказывающая Вашу машину, не причинит боль так:) Для встроенной разработки Вы могли пойти для небольшого Комплекта разработчика ARM или маленького Через машину C3/C4 или любой старый ПК, который можно записать с доморощенным USB / PCI / безотносительно устройства.
А хорошее место для запуска, вероятно Kernelnewbies.org - который имеет много ссылок и полезной информации для разработчиков ядра, и также показывает список легких для реализации задач заняться для новичков.
Некоторые книги для чтения:
Понимание Ядра Linux - очень хорошей ссылки, детализирующей дизайн подсистем ядра
Драйверы устройств Linux - записано больше как учебное руководство с большим количеством примера кода, фокусирующегося на получении Вас движение и объяснение ключевых аспектов ядра Linux. Это представляет процесс сборки и основы модулей ядра.
Руководство по программированию Модуля Ядра Linux - еще Некоторый вводный материал
, Как предложено ранее, смотря на код Linux является всегда хорошей идеей, тем более, что API Ядра Linux имеет тенденцию изменяться довольно часто... LXR помогает много с очень хорошим интерфейсом просмотра - lxr.linux.no
понять Процесс сборки Ядра, эта ссылка могла бы быть полезной:
Make-файлы Ядра Linux (kbuild)
Наконец, что не менее важно, просмотрите каталог Documentation Исходного распределения Ядра!
Вот некоторые интересные упражнения, нагло украденные от класса разработки ядра:
Абсолют должен быть этот книга Rubini. (доступный оба как бумажная копия или бесплатная электронная копия)
Он дает реализации нескольких фиктивных драйверов, которые не требуют, чтобы у Вас были любые аппаратные средства кроме Вашего ПК. Таким образом для начала работы в разработке ядра это - самый легкий способ пойти.
Что касается выполнения встроенной работы я рекомендовал бы покупать один из многочисленных SBC (одноплатные компьютеры), которые являются там. Существуют много они, которые основаны на x86 процессорах, обычно с интерфейсами ПК/104 (электрически, ПК/104 идентичен стандарту шины ISA, но на основе наращиваемых коннекторов, а не торцевых разъемов - очень легкий соединить интерфейсом со специальным оборудованием к)
у Них обычно есть разъемы VGA, которые облегчают делать отладку.
Для встроенного взламывания Linux простой маршрутизатор Linksys WRT54G, который можно купить везде, является платформой разработки на своем собственном http://en.wikipedia.org/wiki/Linksys_WRT54G_series :
WRT54G известен тому, что был первым сетевым устройством потребительского уровня, которому выпустили его микропрограммный исходный код для удовлетворения обязательств GNU GPL. Это позволяет программистам изменять встроенное микропрограммное обеспечение, чтобы изменить или добавить функциональность к устройству. Несколько сторонних микропрограммных проектов предоставляют общественности расширенное встроенное микропрограммное обеспечение для WRT54G.
я попытался установить OpenWrt и DD-WRT встроенное микропрограммное обеспечение на нем. Можно проверить тех как начальную точку для взламывания на недорогой платформе.
Для начала, лучший способ состоит в том, чтобы считать много кода. Так как Linux является Открытым исходным кодом, Вы найдете десятки драйверов. Найдите тот, который работает до некоторой степени как то, что Вы хотите записать. Вы найдете некоторый достойный и относительно легкий для понимания код (устройство закольцовывания, фс ROM, и т.д.)
можно также использовать lxr.linux.no, который является кодом Linux, на который перекрестно ссылаются. Если необходимо узнать, как что-то работает, и потребность изучить код, это - хороший и простой способ.
существует также книга O'Reilly (Понимающий Ядро Linux, 3-й выпуск об этих 2,6 ядрах), или если Вы хотите что-то бесплатно, можно использовать Усовершенствованный Linux, Программирующий книгу ( http://www.advancedlinuxprogramming.com/ ). Существует также много определенной документации о файловых системах, сетях, и т.д.
Некоторые вещи, которые будут подготовлены к:
Linksys NSLU2 является недорогим способом заставить реальную встроенную систему работать с и имеет USB-порт для добавления периферийных устройств. Любая из многих точек беспроводного доступа может также использоваться, видеть страница совместимости OpenWrt. знать то, что текущие модели Linksys WRT54G Вы найдете в хранилищах, больше не может использоваться с Linux: у них есть меньше RAM и Flash для сокращения стоимости. Cisco/Linksys теперь использует vxWorks на WRT54G с меньшим объемом потребляемой памяти.
, Если Вы действительно хотите войти в него, оценочные комплекты для встроенных центральных процессоров запускаются на уровне пары сотни долларов США. Я рекомендовал бы не тратить деньги на них, если Вам не нужны они профессионально для задания или консультирующийся с контрактом.
Я совсем новичок во взломе ядра :) Решил купить две книги "Разработка программ для Linux: руководство с упражнениями" и "Написание драйверов устройств Linux: руководство с упражнениями" Они очень четко написаны и обеспечивают хорошую основу для дальнейшего обучения.