|
||||
|
Замечания о стиле Изменения ВведениеИтак, Вы хотите писать модули для ядра. Вы знаете C, вы написали ряд нормальных программ, выполяемых как процессы, и теперь Вы хотите добраться туда, где происходит реальное действие, туда, где один ошибочный указатель может стереть вашу файловую систему или привести к перезагрузке. Хорошо, добро пожаловать в клуб. Я однажды имел такой указатель, который стер мне важный каталог под DOS, и я не вижу, почему Linux должна быть более безопасной. Предупреждение: я написал это и проверил программу под версиями 2.0.35 и 2.2.3 ядра, запущенного на Pentium. Главным образом это должно работать на других CPU и на других версиях ядра, по крайней мере версий 2.0.x или 2.2.x, но я не могу обещать что-нибудь. Одна исключительная ситуация: глава 11, которая не должна работать на архитектуре не x86. Кто должен читать этоЭтот документ для тех, кто хочет писать модули ядра. Хотя я буду касаться в нескольких местах того, как многие задачи выполнены в ядре, это не моя цель. Имеется достаточно много хороших источников, авторы которых проделали работу лучшую чем та, которую я мог бы сделать. Этот документ также для людей, которые знают как писать модули ядра, но еще не адаптировались к версии 2.2. Если Вы такой человек, я предлагаю, Вам прочитать приложение A, чтобы увидеть все различия, с которыми я столкнулся при модифицировании примеров. Список не всесторонний, но я думаю, что он покрывает большинство базисных функциональных возможностей и его будет достаточно для начала. Ядро имеет большое количество программирования, и я полагаю, что программисты должны читать по крайней мере некоторые его исходные файлы и понимать их. Сказав это, я также верю в значение игры с системой сначала и выяснением вопросов позже. Когда я узнаю новый язык программирования, я не начинаюсь с чтения библиотечного кода, а пишу маленькую программу `hello, world'. Я не вижу, почему начинающий разбираться с ядром должен быть действовать иначе. Замечания о стиле Я нахожу приятным поместить так много шуток в мою документацию, насколько возможно. Я пишу это, потому что я наслаждаюсь этим, и я считаю, что Вы читаете это по той же самой причине. Если Вы хотите получить только суть, игнорируйте весь нормальный текст и читайте исходники. Я обещаю помещать все важные детали в замечаниях. Изменения Новое в версии 1.0.11. Раздел изменений, 0.3. 2. Как найти младший номер устройства, 2. 3. Введено объяснение различия между символом и файлами устройства, 2 4. Makefile'ы для модулей ядра, 1.1. 5. Симметричная многопроцессорность, 12. 6. Глава `Плохие идеи', 13. Новое в версии 1.1.01. Поддержка версии 2.2 ядра во всех главах. 2. Исходный код примеров для разных версий ядра, 2.1. 3. Разница между версиями 2.0 и 2.2, A. 4. Модули ядра в нескольких файлах исходников, 1.2. 5. Предложение, как избежать беспорядка с системными вызовами при выдаче команды rmmod, 7. БлагодарностиЯ хотел бы благодарить Weiss за многие полезные идеи и обсуждения, также как и за поиск ошибок внутри этого документа перед публикацией. Конечно, любые оставшиеся ошибки только моя вина. TEX скелет для этой книги был бесстыдно захвачен из руководства `Linux Installation and Getting Started', где работа в TEX была выполнена Matt Welsh. Моя благодарность Linus Torvalds, Richard Stallman и всем другим людям, кто сделали возможным для меня выполнить операционную систему высокого качества на моем компьютере и получить ее исходный текст, как нечто само собой разумеющееся (да, право, зачем я говорю это?). Благодарности к версии 1.0.1Я не могу внести в список каждого, кто послал по e-mail мне сообщение, и если я не вписал именно Вас, я приношу извинения заранее. Следующие люди были особенно полезны: • Frodo Looijaard из Нидерландов За сервер с кучей информации и полезных советов по ядрам версий 2.1.x. • Stephen Judd из Новой Зеландии За правку орфографии. • Magnus Ahltorp из Швеции За исправления, касательно разницы между символьными и блочными устройствами. Благодарности к версии 1.1.0• Emmanuel Papirakis из Квебека, Канада за перенос всех примеров в версию 2.2 ядра. • Frodo Looijaard из Нидерландов за сообщение как создать многофайловый модуль ядра (1.2). Конечно, любые оставшиеся ошибки мои собственные, и если Вы думаете, что они делают книгу непригодной, требуйте полного возврата денег, которые Вы заплатили за книгу. |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх | ||||
|