Теория алгоритмов и Linux Kernel

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Meyer
Писатель
Сообщения: 54
Зарегистрирован: 22 авг 2013, 07:56
Контактная информация:

Теория алгоритмов и Linux Kernel

Непрочитанное сообщение Meyer » 27 авг 2014, 12:19

Здравствуйте, я начинающий разработчик, воссторге от ядра Linux и хотел бы для него что ни будь писать.
Но суть не в этом знаю что для нашей области математика привыши всего прочитал Д.Кнута и парочку книг по дискретной матиматике и комбинаторике, но хотел бы ваше мнение на счет того: В разработке ядра Linux какие алгоритмы вам показались очень ценными и полезными из теории алгоритмов или из таких книга как Кормен и Кнут?
Какие алгоритмы надо идеально знать при разработке ядра и на какие всегда обращать внимание. Так как у меня опыт не большой по разработке модулей и ядер, и я хотел бы спросить старших мудрых коллег, если они конечно ответят мне.

Спасибо за внимание.
Буду очень благодарен за ответы или за указание истенного пути.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Теория алгоритмов и Linux Kernel

Непрочитанное сообщение Olej » 27 авг 2014, 19:19

Meyer писал(а):Здравствуйте, я начинающий разработчик, воссторге от ядра Linux и хотел бы для него что ни будь писать.
Но суть не в этом знаю что для нашей области математика привыши всего прочитал Д.Кнута и парочку книг по дискретной матиматике и комбинаторике, но хотел бы ваше мнение на счет того: В разработке ядра Linux какие алгоритмы вам показались очень ценными и полезными из теории алгоритмов или из таких книга как Кормен и Кнут?
Какие алгоритмы надо идеально знать при разработке ядра и на какие всегда обращать внимание. Так как у меня опыт не большой по разработке модулей и ядер, и я хотел бы спросить старших мудрых коллег, если они конечно ответят мне.
То лучшее, что появляется в программистской практике, как правило, в книгах не описано :lol:
Причин для того много и разные:
- книги сильно отстают по времени
- многие книги пишут не для того ... а для того, чтобы "бабла смолотить" или саморекламу сделать (я вот считаю что в намерении Д.Кнута написать всемирную энциклопедию программирования в 7 томов - есть элемент вот такого графоманства)
- книги пишут люди из академической среды (преподаватели университетов) далёкие от практики
и др.

В ядре Linux есть и правда ряд очень остроумных решений ... но они то как-раз нигде и не описаны в книгах:

1. вместо любых связных структур (односвязных списков, двусвязных списков, очередей, деревьев, ... всего!) использовать только одну структуру struct list_head - кольцевой двухсвязный список.

2. слябовый распределитель памяти (вместо всех-всех-всех описываемых Кнутом) - это выдумано в SunSolaris в конце 90-х и нигде не описано.

и т.д.

Meyer
Писатель
Сообщения: 54
Зарегистрирован: 22 авг 2013, 07:56
Контактная информация:

Re: Теория алгоритмов и Linux Kernel

Непрочитанное сообщение Meyer » 28 авг 2014, 08:45

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

Так как я знаю что вы уже не первый день с ядром Linux, могли бы мне посоветовать исходники в которых поистини остроумные алгоритмы на ваш взгляд! я с удовольствием их изучу. ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Теория алгоритмов и Linux Kernel

Непрочитанное сообщение Olej » 28 авг 2014, 12:28

Meyer писал(а):Олег большое спасибо, как я понял лучше не читать книги, лучше читать обновленные исходники так как они естественно ближе к реальности, и чем больше читать тем больше я там пойму массу неописаных решений и алгоритмов.
Нет! :!:
В точности до наоборот: читать книги нужно обязательно!
Но только:
- читать лишь хорошие книги ;-)
- читать критически ... не всё принимать на веру.
Meyer писал(а): Так как я знаю что вы уже не первый день с ядром Linux, могли бы мне посоветовать исходники в которых поистини остроумные алгоритмы на ваш взгляд! я с удовольствием их изучу. ;-)
Если говорить о ядре Linux, возьмите почитайте: http://mylinuxprog.blogspot.com/2014/04/linux.html - там есть описание на словах, достаточно просто, "на пальцах" и о сляб-алокаторе, и о циклических списочных структурах, и простые примеры кода есть...

А исходники ядра Linux советую рассматривать (изучать их не надо - там объёма на 3 жизни хватит, и никому это не нужно) зесь:
http://lxr.free-electrons.com/source/?v=3.14
http://lxr.missinglinkelectronics.com/#linux/
Можно сравнивать в срезе различных версий ядра ... совершенно уникальные возможности.

Meyer
Писатель
Сообщения: 54
Зарегистрирован: 22 авг 2013, 07:56
Контактная информация:

Re: Теория алгоритмов и Linux Kernel

Непрочитанное сообщение Meyer » 28 авг 2014, 13:39

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Теория алгоритмов и Linux Kernel

Непрочитанное сообщение Olej » 28 авг 2014, 17:06

Meyer писал(а):А какие на ваш взгляд хорошие книги? Может быть я о них не знаю и поэтому сужу так не грамотно, но прочитав их все пойму.
Это достаточно сложный вопрос... Тут могут быть варианты мнений.

Но 1 ответ на него я знаю ... если речь идёт о UNIX и Linux: читайте книги У.Р.Стивенса! ;-)

В библиографии к тексту: http://mylinuxprog.blogspot.com/2014/06/blog-post.html я их даже нарисовал с внешним видом обложек. ;-) Можете посмотреть... Сейчас, по прошествии 15 лет, их начинают переиздавать в сильно дополненных редакциях, которые продолжают друзья и последователи Стивенса.
Там 4 книги, некоторые под 1000 или даже за 1000 стр.
Вот такую вы не найдёте где купить:
illustrated_tcp_ip.jpg
illustrated_tcp_ip.jpg (16.02 КБ) 6263 просмотра
... разве что на развалах у дедков-букинистов попадётся.
Но ничего лучше по сети TCP/IP с тех времён написано не было.
Можете вот здесь скачать ... пока есть ;-) : http://dfiles.ru/files/swr1b0e7p ... я не знаю насколько там без пропусков скан.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя