Differences

This shows you the differences between two versions of the page.

linux-kernel-internals:task-2014 [2014/04/06 13:38]
segoon old revision restored
linux-kernel-internals:task-2014 [2014/05/07 08:39] (current)
segoon
Line 42: Line 42:
  * Для упрощения отладки используйте pr_info(), печатающую отладочную информацию в системный лог (либо другие функции из семейства printk).  Лог можно прочитать с помощью консольной команды dmesg.   * Для упрощения отладки используйте pr_info(), печатающую отладочную информацию в системный лог (либо другие функции из семейства printk).  Лог можно прочитать с помощью консольной команды dmesg.
-  * Для работы с символьным устройством используйте функции [[https://github.com/torvalds/linux/blob/v3.8/include/linux/fs.h#L2122|register_chrdev()]] и [[https://github.com/torvalds/linux/blob/v3.8/include/linux/fs.h#L2128|unregister_chrdev()]].  Из файловых операций структуры [[https://github.com/torvalds/linux/blob/v3.8/include/linux/fs.h#L1515|file_operations]] необходимо реализовать лишь методы open (вызывается при попытке открытия файла), release (вызывается при закрытии файлового дескриптора), unlocked_ioctl (вызывается при соответствующем системном вызове ioctl(2)).  Остальные поля структуры file_operations для задания не важны.+  * Для работы с символьным устройством используйте функции [[https://github.com/torvalds/linux/blob/v3.8/include/linux/fs.h#L2122|register_chrdev()]] и [[https://github.com/torvalds/linux/blob/v3.8/include/linux/fs.h#L2128|unregister_chrdev()]].  Из файловых операций структуры [[https://github.com/torvalds/linux/blob/v3.8/include/linux/fs.h#L1515|file_operations]] необходимо реализовать лишь методы open (вызывается при попытке открытия файла), release (вызывается при закрытии файлового дескриптора), unlocked_ioctl (вызывается при соответствующем системном вызове ioctl(2)).
  * Для ограничения числа пользователей рекомендуется использовать атомарные переменные.   * Для ограничения числа пользователей рекомендуется использовать атомарные переменные.
  * Для сборки модуля требуются заголовочные файлы ядра.  В дистрибутивах линукс семейства Debian (Debian, Ubuntu, Mint, ...) для их установки требуется пакет linux-headers-generic.  В дистрибутивах семейства Fedora требуется пакет kernel-devel.   * Для сборки модуля требуются заголовочные файлы ядра.  В дистрибутивах линукс семейства Debian (Debian, Ubuntu, Mint, ...) для их установки требуется пакет linux-headers-generic.  В дистрибутивах семейства Fedora требуется пакет kernel-devel.
 
linux-kernel-internals/task-2014.txt · Last modified: 2014/05/07 08:39 by segoon
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki