тут надо разделить
1. это драйвер mac уровня, это программа между линуксом и железом. Ее пишут как пишут все драйверы линукса, встраивают в ядро или кладут внешним загружаемым модулем и так далее... как реализовано ее взаимодействие с железом мне не ведомо, API обычно не бывает, скорее адреса и протоколы связи, регистры настройки так далее, это надо описание читать самого чипа.
Но очень большой шанс если этот линукс специально для вашего СОка, то такой драйвер в нем уже есть
2. это уже взаимодействие программ пользователя с езернетом, программа между пользователем и ТСР стэком линукса. Ее пишут где вам удобнее (часто это эклипс), компилируют gcc линукса в самом линуксе, там же загружают и исполняют. Тут все делают как везде, хоть под РС компьютер, хоть под что другое. Это уже программа прикладная для операционной системы.
То есть линукс отделяет железо со всей спецификой работы с ним, от вас - пользователя, Вплоть до того что вы можете брать чужие линукс программы и они должны работать.
по последнему пункту
http://www.ibm.com/developerworks/linux/tu...sock/index.htmlну и подобные ссылки