LINUX.ORG.RU

Пособие по сиспрогу на растерзание


0

0

Вниманию злобных анонимусов и доброжелательных регистратов предлагается черновик скромного маленького пособия по теме Kernel Hacking for dummies.

http://mstu.sevik.ru/docs/sys_linux.pdf

В ремарках написано, почему оно нужно (когда есть столько книжек) и почему так получилось. Пособие постоянно правится, просьба за это не пинать.

Пособие предполагается ко внутренней печати (1 п.л.), но в основном для электронного распространения среди нуждающихся в ликбезе, прежде всего в моём вузе.

В надежде получить конструктивную и не очень критику, автор. ЗЫ Хочу раздел education/science.

★★★★★

не читал, но одобряю!

beastie ★★★★★
()

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

На 9-й странице сказано что табы состоят из двух пробелов, но на самом деле табы 4 пробела.

А так, для начала нормально.

true_admin ★★★★★
()

> Примеры проверены для версии ядра Linux 2.6.26 и версии дистрибутива Debian GNU/Linux _5.0_.

0_0

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

> Примеры проверены для версии ядра Linux 2.6.26 и версии дистрибутива Debian GNU/Linux _5.0_.

Пособие выходит из печати через год-полтора, использоваться интенсивно начнёт весной -- приходится ориентироваться на будущий релиз.

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

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

Сейчас попробую latex2html, правда вряд ли что хорошее получится :)

> На 9-й странице сказано что табы состоят из двух пробелов, но на самом деле табы 4 пробела.

Спасибо.

sv75 ★★★★★
() автор топика

Вроде не упомянут цикл статей на lwn.net, описывающий изменения ядерного API в новых релизах, почему? В начале раздела 2.1 имелась в виду утилита checkpatch.pl (а не checkinstall.pl)?

Про семафоры вообще лучше не писать, ИМХО. Они мешают -rt и их лучше избегать %)

P.S. а перевод "thread" как "поток" - низабудем, нипрастим.

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

> Вроде не упомянут цикл статей на lwn.net, описывающий изменения ядерного API в новых релизах, почему?

Не особо нужен работающим с одной версией в ходе курсача. Упомяну ресурс. И kernelnewbies.org. И допишу в требования чтение технического английского, а то забыл.

> В начале раздела 2.1 имелась в виду утилита checkpatch.pl (а не checkinstall.pl)?

Исправлю.

> Про семафоры вообще лучше не писать, ИМХО. Они мешают -rt и их лучше избегать %)

Там написано про проблемы. расширю. добавлю про rt_mutex, может быть. Перепишу пример на rw_spinlock.

> P.S. а перевод "thread" как "поток" - низабудем, нипрастим.

"Нить"? Ни за что. И вообще у меня прекрасная русификация. По сравнению с фразой из руссково Р. Лава "Отладчик kgdb -- это заплата ядра" (то есть вроде костыля, что конечно верно, но автор не это хотел сказать).

sv75 ★★★★★
() автор топика

В 1.4 говорится что для загрузки ядра требуется initrd - создается впечатление что это всегда требуется а не в вашем конкретном случае.

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

Спасибо, верно. Исправлю на "обычно используется".

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

> На 9-й странице сказано что табы состоят из двух пробелов, но на самом деле табы 4 пробела.

что за ересь?? табы 8 позиций

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

> что за ересь?? табы 8 позиций

Ограничение типографии: на А5 больше 55 символов по ширине не влезает, разбрасываться не приходится. Читайте пособие, там есть пояснения.

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

Отступ в сурсах ядра === таб.

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

>> Про семафоры вообще лучше не писать, ИМХО. Они мешают -rt и их лучше избегать %)

> Там написано про проблемы.

"Проблема" - то, что его нельзя использовать в прерывании? Я не об этом. У семафоров нет владельца, это сильно мешает PI. Впрочем, это узкоспециальное знание.

> Перепишу пример на rw_spinlock

У всех rw* генетические проблемы на -rt %)

<flame>

>> P.S. а перевод "thread" как "поток" - низабудем, нипрастим.

> "Нить"? Ни за что.

Ну я же говорю - нипрастим. А того, кто придумал переводить термин "нить" как "поток" (выбрал же самый перегруженный термин в SE), я надеюсь, когда-нибудь прибьют к забору.

> И вообще у меня прекрасная русификация.

Мне особенно нравится термин "нотификация" :) Прекрасный русский б/п :D

> По сравнению с фразой из руссково Р. Лава "Отладчик kgdb -- это заплата ядра"

Ну вы-то знаете, о чем пишите :)

</flame>

А вообще пособие полезное - жаль, что не было такого пару лет назад, дал бы почитать молодым.

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

> "Проблема" - то, что его нельзя использовать в прерывании?

В переключении контекста и затратах на это.

> Я не об этом. У семафоров нет владельца, это сильно мешает PI. Впрочем, это узкоспециальное знание.

Так-c, PI - это тоже самое что Pi (period of task), или я в танке?

> У всех rw* генетические проблемы на -rt %)

Добавляю в курс ОС, тут перебъёмся.

> Ну я же говорю - нипрастим. А того, кто придумал переводить термин "нить" как "поток" (выбрал же самый перегруженный термин в SE), я надеюсь, когда-нибудь прибьют к забору.

Термин запредельно перегружен, но "нить" -- это вообще ужасненько. (он тонкий и часто рвётся?)

>> И вообще у меня прекрасная русификация. > Мне особенно нравится термин "нотификация" :) Прекрасный русский б/п :D

Исправлю на уведомления, это точно.

> Ну вы-то знаете, о чем пишите :)

Тот переводчик -- тоже знал. Там описано, что такое заплата. :)

> А вообще пособие полезное - жаль, что не было такого пару лет назад, дал бы почитать молодым.

Пару лет назад я сам сидел под виндой и писал пособие про .NET, увы (http://www.intuit.ru/department/se/msfdev/). Впрочем, тоже не зря, сейчас это пособие используется в другом моём курсе как превосходный пример фатальных ошибок и заблуждений :)

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

>> "Проблема" - то, что его нельзя использовать в прерывании?

> В переключении контекста и затратах на это.

Ну, если учесть, что оно происходит только при реальной необходимости...

> PI - это тоже самое что Pi (period of task), или я в танке?

Priority Inheritance, главная техника обеспечения RT-отклика в -rt.

>> Мне особенно нравится термин "нотификация" :) Прекрасный русский б/п :D

>Исправлю на уведомления

Ы... ну хоть в скобка напишите, что имеется в виду "notification".

> "нить" -- это вообще ужасненько. (он тонкий и часто рвётся?)

"Не знаешь, как переводить - переводи буквально" (c) Кстати, нить и правда тонкая по сравнению с процессом :) И как перевести термин fiber после перевода "нить" как "поток"? Всё взаимосвязано...

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

> Priority Inheritance, главная техника обеспечения RT-отклика в -rt.

Ага, так я всё же в танке. Спасибо.

> И как перевести термин fiber после перевода "нить" как "поток"? Всё взаимосвязано...

Ладно, заменяю на "нить", понял свою ошибку.

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

> А вообще пособие полезное - жаль, что не было такого пару лет назад, дал бы почитать молодым.

А это вы, простите, в Приозёрске кодите? O_o

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

> вы, простите, в Приозёрске кодите? O_o

Да, бывает. Но это скорее метка "для своих" (вдруг здесь есть такие?), типа "срок в КарЛАГе 19xx-19xx" или там "пионерлагерь 'Артек' 19xx" %)

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

> Давай не очень хорошее, лишь бы читабельно было.

На мой вгляд, получилось полное г-но:

http://sevik.ru/syslinux/

Преобразование eps -> png оно делает особенно чудовищно, видимо надо руками даргать как-то imagemagick. Добавлю в makefile процедуру.

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

Благодарю! Страницы можно не указвывать. pdf-версия исправлена. Я еще сам вычитаю ближе к походу в типографию.

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

Готовлю. Там в make пара (страшных) самодельных скриптов дёргается, а выкладывать хотелось бы именно с ними, чтобы познакомить читателей с Makefiles.

sv75 ★★★★★
() автор топика

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

14ая страница

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

> PS. маловато

Если я напишу все примеры, что буду делать на курсовых студенты? Вообще это под 1 п.л., и с ограниченной целью.

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

> кстати, неплохо бы описать sysfs и debugfs в дополнение к procfs

Полагаю, в будущем (возможно, в самом ближайшем) procfs стоит здесь скорее заменить на sysfs, поскольку использовать procfs для таких целей неверно, но про неё слишком много написано, и это удобно студенту. Подумаю.

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

Спасибо за замечание.

sv75 ★★★★★
() автор топика

А какие главы написала Рязанова Н.Ю.?

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

>что буду делать на курсовых студенты?

кстати мне тоже интересно - что можно накодать к ядру (я не могу придумать) =) можно списочек посмотреть? (обязуюсь никому не помогать и только для ознакомления)

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

> кстати мне тоже интересно - что можно накодать к ядру

В основном всякую мелочь: главное -- освоить концепцию и понять как это работает. Это курсовой индивидуально, у меня не более 4-х человек в сезон, поэтому списка нет.

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

Вот мне бы хотелось модуль, который запускался бы с параметрами:

port_number major minor

и создавал символьное устройство с major minor, которое бы позволяло читать-писать байты в port_number.

А может это уже сделали?

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

> port_number major minor и создавал символьное устройство с major minor, которое бы позволяло читать-писать байты в port_number.

Берём пример из LDD на символьные устройства, допиливаем. Моё скромное мнение.

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

> Вот мне бы хотелось модуль, который запускался бы с параметрами:

> port_number major minor

Ручное назначение major и minor - это прошлый век.

> А может это уже сделали?

Сделали netcat.

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

>> Сделали netcat.

> Чую, речь шла про порты ввода-вывода в x86 :)

для этого сделали /dev/port

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

> Ручное назначение major и minor - это прошлый век.

А как положено в нынешнем веке? (ЕМНИП специальная область major-ов оставлена неприкосновенной под эти цели)

/dev/port не позволяет задать права на отдельные порты, в моем случае можно было бы раздать любые права чтения/записи на отдельные устройства в /dev, т.е. порты.

netcat знаю давно, но он не из этой оперы :-)

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

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

>> Ручное назначение major и minor - это прошлый век.

> А как положено в нынешнем веке?

major обычно оставляют == 0, и система выделяет незанятый. minor'ы я лично выделяю сам, но это тоже необязательно, AFAIK - нужно просто сказать "хочу N миноров". По-любому, эти числа для userspace-проги не важны - ей достаточно имен устройств.

> netcat знаю давно, но он не из этой оперы :-)

Ты не сказал, что "порт" - это порт В/В, а не UDP или TCP порт.

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

> Ты не сказал, что "порт" - это порт В/В, а не UDP или TCP порт.

Тогда бы не родилась идея с аналогом netcat-а для ограничения доступа к портам В/В.

www_linux_org_ru ★★★★★
()

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

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

offtopic: а почему-бы не написать подобную методичку сразу на английском?

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