LINUX.ORG.RU

Вопросы по разработке ядра Линукса


1

2

У меня есть несколько вопросов по разработке ядра линукса.

1) Во-первых, посоветуйте, пожалуйста литературу, которая объяснит как писать модули для ядра линукса. (Знаю Си на уровне «читал K&R»).

2) Во-вторых, скажите пожалуйста, область применения всего этого дела ;) Т.е. каким компаниям кроме тех, кто делает драйверы для устройств требуются разработчики ядра Линукса или *BSD.

3) В-третьих, скажите пожалуйста, что происходит на рынке трудоустройства с «хакерами ядра», т.е. есть ли нехватка кадров или наоборот предложение превышает спрос на специалистов? (Как в РФ так и на Западе).

Заранее спасибо за ваше время.

Ответ на: комментарий от O02eg

Не трогай ядро, пожалуйста.

какая вам разница? вряд-ли мой манки-код попадет в гит Линусу, так что можете спать спокойно...

Rimbaud
() автор топика
Ответ на: комментарий от Rimbaud

неужели всё так плохо?

нет, просто дорого и никому нафиг не нужно.

anonymous
()

1) у роберта лава есть парочка книг: «разработка ядра линукс» и «линукс системное программирование».

2) линукс широко используется во встраиваемых системах.

3) профессионалов мало. работы много.

ymn ★★★★★
()

Во-первых, посоветуйте, пожалуйста литературу, которая объяснит как писать модули для ядра линукса.

Не модули, а ДРАЙВЕРЫ

ttnl ★★★★★
()

1) http://lwn.net/Kernel/LDD3/ (не знаю насколько актуально на сегодня)

2) Встраиваемые системы (видео, телефония, приборы учета ...). Компании: производители таких устройств.

3)Вакансии регулярно появляются на сайтах, обычно приветствуется также знание железа (ARM, микроконтроллеры ...)

capricorn20
()

capricorn20 все правильно сказал, к литературе я бы добавил еще Robert Love - Linux Kernel Development

ну и ldd3 уже остносительно устарела, но новее пока ничего нет, а основные штуки остались неизменными

metawishmaster ★★★★★
()
Ответ на: комментарий от metawishmaster

к ldd3 примеры уже обновляли пару раз, на гитхабе можно найти версии под последния вёдра.

anonymous
()
Ответ на: комментарий от anonymous

например git://github.com/martinezjavier/ldd3.git

не знаю как было раньше, но на 3-ем ядре lddbus (это к примеру, то что пробовал) некорректно завершается, нужно чуток поменять

diff --git a/lddbus/lddbus.c b/lddbus/lddbus.c
index f3101b1..b15f04c 100644
--- a/lddbus/lddbus.c
+++ b/lddbus/lddbus.c
@@ -158,8 +158,10 @@ static int __init ldd_bus_init(void)
        if (bus_create_file(&ldd_bus_type, &bus_attr_version))
                printk(KERN_NOTICE "Unable to create version attribute\n");
        ret = device_register(&ldd_bus);
-       if (ret)
+       if (ret)  {
+               bus_unregister(&ldd_bus_type);
                printk(KERN_NOTICE "Unable to register ldd0\n");
+       }
        return ret;
 }
ну и кроме того она просто не работает, device_register(&ldd_bus) возвращает -EINVAL это если придираться, не знаю как бы это было у оригинальных авторов

metawishmaster ★★★★★
()

1) Роберт Лав «Разработка ядра Linux»

2) IBM, Auriga - это первое, что пришло в голову. Например на собеседовании в IBM меня попросили спроектировать драйвер для жесткого диска (для ядра Linux).

3) Предложения есть, дерзай =)

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

Например на собеседовании в IBM

IBM в МСК занимается ядром?

ttnl ★★★★★
()

1) Бовет, Чезати «Ядро Linux», Лав Р. «Разработка ядра Linux», Родригес, Фишер, Смолски «Linux Азбука ядра».

buddhist ★★★★★
()

1) http://lwn.net/Kernel/LDD3/ 2) Из наших - Parallels, Kaspersky Lab. 3) Хороший специалист лишним не будет, но сильного спроса нет и специалист действительно должен быть хорошим.

m0rph ★★★★★
()
Ответ на: комментарий от DELIRIUM

Например на собеседовании в IBM меня попросили спроектировать драйвер для жесткого диска (для ядра Linux).

А где проходило собеседование и место работы (страна и город)

ymuv ★★★★
()

Надо отдавать себе отчёт, что тема сложная, и человек, знакомый с ней только по верхам, никому вообще нафиг не нужен. Ради собственного развития можно повтыкать в тему, но на хлеб с маслом куда проще в мейнстриме заработать (предложений тупо больше). И если втыкать в ядро, то сишечку нужно знать очень хорошо (на уровне понимания того, что генерирует компилятор, и почему он так делает), плюс понимание работы аппаратуры сильно выше среднего.

mv ★★★★★
()
Ответ на: комментарий от capricorn20

да, если жить в рф а не в москве

anonymous
()

сразу к 3) на российском рынке пристутствует нехватка кадров в девелопменте ядра, но тут достаточно специфический рынок - в основном нужно поднимать разные embedded-железяки. Очень мало системного девелопмента, и часто очень много копропрограммирования. Некоторыс удается устроиться в те еденичные конторы, которые делают интересные вещи с ядром, но их еденицы - посмотри в кернеловые списки рассылки. То есть если не рассматривать ресерч и собственные альтруистические поделки, то здесь самый верный путь заработать на умении ковыряться в ядре - эмбедчина.

Также могу сказать, что денег за это много платить не хотят, сидят на всяком разном старье, так что удовлетворения чаще всего приносить не будет. Если конечно сам не окажешься способен изменить ситуацию вокруг себя :)

Если реально сможешь окучить всю базовую систему и будешь способен разобраться в любой подсистеме своего устройства - ядро ли, юзерспейс-ли и будешь это знать очень-очень хорошо, будешь в курсе происходящего нового, и очень энергичен, то тебе будут платить много, но это в любой отрасли так.

А разобраться в ядре сможешь только когда с головой в это все окунешься и хотя бы год-два в этом покрутишься. Просто чтением книжек не отделаешься. Так что это хоть и привлекательно с точки зрения ЧСВ, но фактически очень трудозатратно.

Если же самому интересно разобраться - читай мейл-листы, фикси мелкие баги, постепенно разбирайся, а потом, глядишь и станешь что-нибудь мейнтейнить. А там и работодатели тебя сами найдут и денег предложат адекватных.

slapin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.