LINUX.ORG.RU

Как стать разработчиком ядра Линукс: шаги?


1

0

добрый день!

Могу я попросить совет, что освоить и на чем попрактиковаться, какие книги и проекты изучить, чтобы расти в сторону системного программиста под Линукс?

Посмотрел вакансии и выяснил, что требования примерно такие:

XXX приглашает на работу Linux Kernel Developer Требования: хорошие знания ANSI C; опыт программирования на уровне ядра Linux ; знание архитектуры Linux и умение ориентироваться в исходных текстах ядра; владение базовыми средствами разработки под Linux (gcc, binutils, gnumake, инструментарий отладки системного ПО); опыт написания драйверов или программных компонентов DSP;

Примерно для себя наметил:

1. Прочесть книгу по Линуксу. 2. Прочитать книгу по архитектуре компов и устройству ОС 3. Прочитать книгу по ядру Линукс 4. Выучить С по Кернигану 5. Осилить основы электроники и схемотехники. 6. Писать свои проекты и изучать чужой код - пока еще четко не выбрал, что именно. ???

Есть опыт только в написании сайтиков. Спасибо за советы!

>Есть опыт только в написании сайтиков

ничего не нужно учить и читать! ты со своими знаниями принесёшь тонны пользы Линуксу! сообщество поставит тебе прижизненный памятник за вставки на html!

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

Мне будет достаточно поздравительной открытки от Торвальдса и Столлмана :)

podelkin
() автор топика
Ответ на: комментарий от Be-LucK

Спасибо, это само собой. Честно говоря, интересно узнать, что почитать и поковырять, дабы научиться писать к примеру дрова. Копать от схемотехники?

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

Одновременно копай книжки по программированию(только не сайтиков) + оттачивай скилы.

Be-LucK
()

все когда то так начинали..
для начала пиши все на html с небольшими вставками на С юзай тег <code>

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

Я чуть карамелькой не поперхнулся (=

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

> А можно поинтересоваться у ТС наличием высшего образования?

Настоящим linux какерам 14 лет, и они ходят в 9 класс.

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

Ты всё-таки поясни, электроника то тебе куда упёрлась для программирования ядра линупса?

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

Чтобы научиться писать драйвера, надо прочитать книгу Linux Device Drivers. Она доступна в виде pdf. Третье издание - про драйвера для 2.6, второе - 2.4, 2.2 и т.д. Можно читать сразу третье. Само собой, надо ещё хорошо знать линукс, интерфейс POSIX и язык C.

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

Вы знаете, я хотел бы вернуть те 14 лет, чтобы более правильно расставить приоритеты и осознанно выбрать, куда пойти учиться.

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

> Я думаю, они необходимы прои написании дров

Совершенно не понадобятся, я это гарантирую. Для написания дров тебе достаточно знать интерфейс железки.

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

Плюсую, для каждой новой железки придется изучить мануал по ней с описанием регистров, памяти, способов инициализации и т.д. Электронику знать не нужно, если не собираешься сам устройство паять.

tim239 ★★
()

А город какой кстати?

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

Есть, но не программирование и не электроника, поэтому и хочу получить необходимый базис.

Тогда можно начать с книжки по теории операционных систем, рискну посоветовать «Введение в операционные системы» Иртегова. Если по сети пошариться - должно быть в электронном виде. Я так понимаю, что будет достаточно тяжело читаться (хотя там подробно и с юмором), но стоит осилить. Расширит кругозор, что в дальнейшем очень пригодится.

Ну и в процессе чтения если какие-то моменты совсем не понятны - тогда пошариться в интернете, посмотреть доп. литературу и т.п. После, как время будет - можно посмотреть «Современные операционные системы» Таненбаума, должно довольно легко пойти, так как базис уже будет.

Параллельно стоит почитать какую-нибудь книгу по С.

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

По поводу практики, до того, как лезть в ядро - стоит пописать просто системные приложения под линукс. Как вариант - посмотреть здесь. Там есть ссылка на задачки, которые можно порешать и на рекомендуемую литературу. Некоторого базового опыта набраться поможет.

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

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

Ну и наконец, что касается «электроники». Вообще как выяснилось - это довольно полезно, но действительно можно спокойно прожить и без этих знаний. Полезно «пощупать» какой-нибудь ПЛИС (тот же Spartan3e, к примеру), но это уже если есть время и деньги на соотв технику. В эмуляторе не так интересно :)

gizzka ★★
()

>podelkin (25.05.2010 15:25:21)

С таким ником можно без проблем стать разработчиком линукса. Ядро как раз подходит.

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

>>основы электроники и схемотехники

Совершенно не понадобятся, я это гарантирую

смотря какие дрова...
из опыта - очень даже надо.

xydo ★★
()

> Как стать разработчиком ядра Линукс: шаги?

Есть опыт только в написании сайтиков. Спасибо за советы!

всяко :)

mobile
()

1. Прочесть книгу по Линуксу. 2. Прочитать книгу по архитектуре компов и устройству ОС 3. Прочитать книгу по ядру Линукс 4. Выучить С по Кернигану 5. Осилить основы электроники и схемотехники. 6. Писать свои проекты и изучать чужой код - пока еще четко не выбрал, что именно. ???

2. 4. 1. 3.

5 особо не нужно (ну, разве, если совсем ноль), 6 - всё время.

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

без параллельного изучения внутренностей системы.

вот на это делай большой упор

Boy_from_Jungle ★★★★
()

Еще можно сначала стать анестезиологом.

urxvt ★★★★★
()

0. Успешно закончить 5-ый класс общеобразовательной школы.

Led ★★★☆☆
()

Хотябы прочитать и сделать половину примеров из Ричарда и Стивенса «Профессиональное программирование UNIX»)))Там и POSIX и ANSI стандарты.

Dikar ★★
()

> шаги?

Прочитать про stable api nonsense.

Забить.

?????

PROFIT!

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

старо =\

там вроде 2.6.8, хотя книжка да, хорошая.

Ну и что там радикально изменилось, что знания фундаментальных основ так стремительно устарели? Ничего. Ставь в виртуалке 2.6.8, копайся. На более современное ядро потом перейти - дело техники.

mv ★★★★★
()

Если ты ещё не учился в институте, то можешь попробовать поступить
на факультет радиотехники физтеха, там есть кафедры, которые
занимаются ОС. Наверняка такие кафедры есть и на ВМиК МГУ.

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

>Например, для драйверов каких устройств?

например для правильного конфигурирования вводов/выводов микроконтроллера и последующего управления какой-нибудь железкой через них. Полезно знать, что такое логический буфер с тремя состояниями, выход с открытым стоком, чем регистр переключающийся по фронту отличается от защелки и т.п. Самые основы. Можно наверное и без этого, но так проще и времени ознакомление со всем этим займет не так уж много. Топикстартеру посоветую почитать «Проектирование цифровых устройств» Уэйкерли (можно нагуглить).

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

>Нах учиться сейчас?!

В большинстве случаев высшее образование полезно.

Это пустая трата времени и денег


Это смотря где учиться :)

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

> В большинстве случаев высшее образование полезно.

На кой хер?

Сейчас вообще каждый дворник, админчик или продавчишка с «вышкой». Все давно понимают, что вышка ничего не стоит.

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

>На кой хер?

Во-первых, в нормальном институте могут многому научить и мозг натренировать.
Ты в курсе, что по статистике, наиболее эффективно мозг работает в 22-23
года? Т.е. как раз после окончания института.

Во-вторых, зайди на hh.ru. Во многих интересных вакансиях есть требование:
выпускник МГУ, МФТИ, МИФИ, МВТУ. Во многих вакансиях есть требование просто «В/О».
Т.е., конечно, можно сразу после школы пойти быдлокодером и писать километры
кода, но эта работа хуже дворницкой.

Понятное дело, лучше учиться в престижном заведении, но стать клевым
специалистом можно и в обычном ВУЗе. У меня одноклассник закончил
МАДИ. Институт ещё тот - его называют самым дорогим из бесплатных.
Чувак нормально учился, не ради оценок, что называется, потом пошел
работать проектировщиком дорог. Сейчас, через 2 года получает 80K.
Нормальная ЗП. Сложно представить неквалифицированного специалиста,
который за 2 года дойдет до такой суммы.

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

Спасибо, я уже свое отучился, правда не по специальности. Подумываю пойти на заочку через год, но так как я из Минска, то выберу какой-нить из местных университетов. Хотя заочка это скорее для корочки.

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

Можешь попробовать попасть на бесплатные ядерные курсы Ауриги.
Но для этого нужно очень хорошо программировать.

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