LINUX.ORG.RU

Как научиться программировать ядро Linux


0

1

Доброго времени суток. Изучаю язык С и учусь работать в Linux. Далее планирую заняться программированием ядра Linux. Есть книги по ядру, планирую их изучать, но что делать дальше мне неясно. Пожалуйста посоветуйте направление развития для данной области, т.к. информации освещающей этот вопрос крайне мало. И какие есть специализации в этой сфере?



Последнее исправление: lyu (всего исправлений: 1)
Ответ на: комментарий от JK

кто нибудь, предложите в Л.О.Р переводить ЛОР в РО на время каникул.

Предлагаю тебя зобанить. Не мешай самообразованию школоты.

anonymous
()

Вопрос из разряда «Где в ядре линукс найти main.c?!»

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

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

pedobear
()

Платиновые треды ЛОРа.

anonymous
()

Изучай Си, лет через 7, когда (если) станешь компетентным программистом можешь задаться этим вопросом.

x4DA ★★★★★
()

Есть книги по ядру, планирую их изучать, но что делать дальше мне неясно.

Сначала изучи книги, тогда станет ясно что делать дальше. Знать путь и пройти его не одно и то же.

loz ★★★★★
()

А еще надо постоянно документацию читать. Потому что приколисты любят вносить радикальные изменения. И так соберешься ты свой модуль под новое ведро компилить, а у тебя шиш с маслом! Или вообще зависон компьютера. А все потому, что какие-нибудь структуры поизменяли или функции.

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

Copyright © 2001 Peter Jay Salzman 2007-05-18 ver 2.6.4

Свежак инфа!

И чо? Недостаточно нанотехнологий?

anonymous
()

Уроки учи, школота!

anonymous
()

Далее планирую заняться программированием ядра Linux. Есть книги по ядру, планирую их изучать, но что делать дальше мне неясно.

Ты его для начала попересобирай с разными ключами. Весёлое занятие.

но что делать дальше мне неясно.

Тут напрашивается встречный вопрос: а почему тогда тебя заинтересовало именно программирование ядра? Типа писать прикладное ПО это не круто?

ИМХО (спорное): главные проблемы применения линукса давно уже лежат отнюдь не в области ядра. Полноценный импорт/экспорт в либреофис документов проприетарных офисных пакетов, например - проблема куда более запущенная. А файловых систем, кои тут уже упоминали, давно уже хоть ухом ешь, лично меня на уютненьком десктопе ext3/4 вполне устраивают. И даже планировщик можно выбирать из уже написанных.

И какие есть специализации в этой сфере?

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

...Хотя занятие, конечно, увлекательное. Я помню, я 20+ лет назад писал продвинутый драйвер клавиатуры/экрана для своего 8-разрядного ПК, причём писал его на ассемблере, и записывать исходники можно было только на магнитофон...

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Тут напрашивается встречный вопрос: а почему тогда тебя заинтересовало именно программирование ядра? Типа писать прикладное ПО это не круто?

Интересно понять как функционирует система и соответственно влиять на неё, тестировать и находить ошибки, исследовать поведение системы. Прикладное программирование интересно в меньшей степени.

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

научится

Только вдоль.

Баг исправлен)

lyu
() автор топика

Смотря что ты хочешь программировать. Всякие ФС, драйверы и прочее наверняка пойдут легко.

anonymous
()

Совет: просто изучи как работают простые RISC RTOS-ы - начнешь понимать как работают ОС как таковые - переключения контекста, менеджер памяти и фрагментация, принципы работы кэша и так далее. И вот потом уже тогда тебе будут понятны многие концепции ядра Linux.

I-Love-Microsoft ★★★★★
()

1.

научиться программировать

2.

программировать ядро Linux

3. profit

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

Ты его для начала попересобирай с разными ключами. Весёлое занятие.

Бесполезное занятие.

И даже планировщик можно выбирать из уже написанных.

Зато есть https://bugzilla.kernel.org

mix_mix ★★★★★
()

Научиться читать без изучения алфавита еще никому не удавалось. Так что, сперва стоит изучить как функционирует ядро и его устройство.

Deleted
()

слишком толсто, попробуй еще разок

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

главные проблемы применения линукса давно уже лежат отнюдь не в области ядра

В ядре они в том числе лежат. До недавнего появления нфтаблесов нормального фаервола не было, например.

hateyoufeel ★★★★★
()

Я бы, пожалуй, полазил в багтрекере и попытался пофиксить воспроизводимые на моем железе баги. Но я так, мимокрокодил.

f1xmAn ★★★★★
()

ТС, научись сначала нормально писать в юзерспейсе. Займись системными демонами, тулзами и прочей фигней. Когда наконец поймешь что и как, сможешь лезть в ядро... только затем, чтобы осознать, что об утечках памяти, убитом стэке и засранной куче ты узнаешь лишь когда твоя система зависнет, процессор расплавится, мамка сгорит, а бабушку изнасилует стая диких волков.

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

Нормальные разрабы такого себе не позволяют

Нормальные разрабы - это рабы в корпорациях. А у нас все свободны и каждый может позволить себе всё что хочет.

anonymous
()

«Берешь такой комп с 386 SX и эльфишь Танненбаума: „Это канал про микро-ядра? Как пропатчить Minix 1.0 для MMU?“ сорцы ядра и читаешь - пофиг что ничего не поймешь... Потом подписываешься на lkml и вызубриваешь опции конфига - именно вызубриваешь, чтоб от зубов отлетало... И уже где-то к началу концу полового созревания при виде любой телки в кимоно ТП в поле фром LKMLlet the drama begin и малейшем намеке на нормальную жизнь у тебя будет вялотекущая истерикадаже Линус женат, а ты нет» (с)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 2)

Как уже советовал AF рекомендую начать с драйверов, тем более что это наиболее востребованное направление и лучше Linux Device Drivers, Third Edition (http://lwn.net/Kernel/LDD3/) трудно будет что-нибудь найти. Если с драйверами разберешься, можно начать изучать более детально работу ядра, но тут без хорошего знания теории и C мало чего можно добиться

alx777 ★★
()

книги по ядру, планирую их изучать, но что делать дальше мне неясно

Так ты их прочитай, и сразу станет ясно, что нужно делать дальше

buddhist ★★★★★
()

постепенно.

начни(продолжи) с Фрид Э. Элементарное введение в абстрактную алгебру.

qulinxao ★★☆
()

http://eudyptula-challenge.org/ - есть еще такая забавная вещь.

The Eudyptula Challenge is a series of programming exercises for the Linux kernel, that start from a very basic «Hello world» kernel module, moving on up in complexity to getting patches accepted into the main Linux kernel source tree.

aiive
()

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

Dark_SavanT ★★★★★
()

По книжкам не научишься.

Можно попробовать найти junior вакансию в этой области. Желательно, что-нибудь посложнее, чем написание драйверов.

Дальше, если будешь стараться и потянешь, то станешь программистом ядра. Года через 4-5.

Простого пути нет.

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