Различия между версиями 2.0 и 2.2
Различия между версиями 2.0 и 2.2
Я не знаю, что все ядро достаточно хорошо документирует все изменения. В ходе преобразования примеров (или фактически, адаптации изменений Еммануела Папиракиса) я натолкнулся на следующие различия. Я привожу их все здесь вместе, чтобы помочь программистам, особенно тем, кто обучался на предыдущих версий этой книги и наиболее знакомы с методами, которые я использую, и преобразовываю в новую версию.
Дополнительный ресурс для людей, кто желают преобразоваться в 2.2, находится по адресу: http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.2.htm.
1. asm/uaccess.h: Если Вы нуждаетесь в put_user или get_user: Вы должны #include его.
2. get_user в версии 2.2: get_user получает указатель в памяти пользователя и переменную в памяти ядра, чтобы заполнить информацией. Причина для этого в том, что get_user, может теперь читать два или четыре байта одновременно, если переменная, которую мы читаем длиной два или четыре байта.
3. file_operations: Она теперь выполняет функцию flush между функциями open and close.
4. close в file_operations: В версии 2.2, функция close возвращает целое число, так что она может вернуть код ошибки.
5. read и write в file_operations: Изменились заголовки для этих функций. Они сейчас возвращают ssize_t вместо целого числа, и их список параметра различен. Inode больше не параметр, и с другой стороны смещение в файле.
6. proc_register_dynamic: Функция больше не существует. Вместо нее Вы вызываете proc_register и помещаете ноль в поле inode структуры.
7. Сигналы: Сигналы в структуре task больше не 32 разрядные целые числа, а массив _NSIG_WORDS целых чисел.
8. queue_task_irq: Даже если Вы хотите обратиться к запланированной задаче из внутреннего обработчика прерывания, Вы используете queue_task, а не queue_task_irq.
9. Параметры модуля: Вы объявляете параметры модуля как глобальные переменные. В 2.2 Вы должны также использовать MODULE_PARM, чтобы объявить их тип. Это большое усовершенствование, потому что позволяет модулю получать параметры строкового типа, которые начинаются с цифр.
10. Симметричная многозадачность: Ядро больше не заперто внутри одного огромного spinlock, что означает что два процессора могут одновременно обрабатывать разные части ядра. Модули должны знать о SMP.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Управление версиями DLL
Управление версиями DLL При использовании DLL обычно проявляются трудности, обусловленные обновлением библиотек за счет введения новых символов и добавления новых средств. Основное преимущество DLL заключается в том, что несколько приложений могут совместно использовать
Различия между Windows и UNIX
Различия между Windows и UNIX В Windows и UNIX выбраны различные стратегии. Большинство поставщиков UNIX-систем реализуют модель LP64, в которой размер как длинного целочисленного, так и указательного типов данных составляет 64 бита. Такую модель иногда называют моделью "I32, LP64", чтобы
Различия между функциями wait и waitpid
Различия между функциями wait и waitpid Теперь мы проиллюстрируем разницу между функциями wait и waitpid, используемыми для сброса завершенных дочерних процессов. Для этого мы изменим код нашего клиента TCP так, как показано в листинге 5.7. Клиент устанавливает пять соединений с
17.8 Различия между новостями и рассылочным списком
17.8 Различия между новостями и рассылочным списком Приложения для сетевых новостей более эффективны, чем рассылочные списки. Новости хранятся на центральном сервере и доступны для многих пользователей. Несколько пользователей могут одновременно читать новости из
Управление версиями
Управление версиями Вики-узлы в службах Windows SharePoint реализованы как библиотеки документов, а значит, имеют все функции библиотеки документов, такие как журнал изменений и управление версиями. Следовательно, никакие изменения не теряются безвозвратно. При создании
Миграция между различными версиями InterBase
Миграция между различными версиями InterBase Карта миграции В этом разделе мы рассмотрим, как осуществить процесс миграции с одной версии InterBase на другую. В таблице 4.6 представлены карта возможных переходов с одной версии InterBase на другую.Под прямой миграцией понимается
4.2. Различия между внутренними и внешними оценками производственного процесса
4.2. Различия между внутренними и внешними оценками производственного процесса Несмотря на эти сходства, результаты внутренней и внешней оценки могут расходиться даже в случае успешного применения одного и того же метода. Одной из причин этого является то, что объем
Различия между управляющими объектами (drivers) и ограничениями
Различия между управляющими объектами (drivers) и ограничениями Управляющие объекты и ограничения похожи тем, что они влияют на изменение свойств пути (речь идет о параметрах анимации — прим. пер.), но в тоже время они очень разные: ограничения действуют непосредственно на
Различия между VBA и Visual Basic
Различия между VBA и Visual Basic VBA имеет очень много общего с Visual Basic, своим старшим братом, предназначенным для создания независимых приложений. А раз языки похожи, вы можете перенести большую часть своих навыков в программировании на VBA в Visual Basic. Однако вам следует помнить о
Управление версиями
Управление версиями Компоновочным блокам .NET назначается состоящий из четырех частей числовой идентификатор версии, имеющий вид ‹главный номер версии›.‹дополнительный номер версии›.‹номер компоновки›.‹номер варианта› (если вы не укажете явно идентификатор версии
Различия между приложением и сеансом
Различия между приложением и сеансом В ASP.NET состояние приложения учитывается экземпляром типа HttpApplicationState. Этот класс дает возможность сделать глобальную информацию доступной для всех пользователей (и всех страниц), зарегистрированных в вашем приложении ASP.NET. При этом
Проблемы совместимости с ранними версиями.
Проблемы совместимости с ранними версиями. Пользователи PGP показывают, что в ряде случаев наблюдается несовместимость PGP 5.0 с прежними версиями PGP при шифровании/расшифровке и подписи/проверке файлов, содержащих символы верхней половины кодовой таблицы, соответствующие
Различия между вирусами, Троянскими программами и червями
Различия между вирусами, Троянскими программами и червями Вредоносный код обычно классифицируется по типу механизма распространения. В некоторых случаях принимаются во внимание платформа, на которой он работает, и механизм запуска (например, для активизации
Различия между пленочной и цифровой фотографией
Различия между пленочной и цифровой фотографией Внешне многие зеркальные цифровые и пленочные фотокамеры очень похожи. Но разница между пленочными и цифровыми фотоаппаратами существенна — в первом случае в качестве светочувствительного элемента используется