Чтение онлайн

на главную

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

 dev_state->byte_write = 0;

 MOD_INC_USE_COUNT;

 return 0;

}

static int device_close(struct inode *inode, struct file

 *fp) {

 struct device_state *dev_state;

 printk("My module: try to close device with minor number %d\n",

MINOR(inode->i_rdev));

 dev_state = &state[MINOR(inode->i_rdev)];

 if (!dev_state->dev_open) {

printk("Device is not open\n");

return 0;

 }

 dev_state->dev_open = 0;

 MOD_DEC_USE_COUNT;

 return 0;

}

Теперь модуль для абстрактного устройства device готов. Вы можете написать небольшую программку, которая пыталась бы выполнить операции с нашим устройством: открыть его и закрыть — других операций мы не определили. Для определения других действий используется та же структура file_operations. Листинг 28.10 показывает, как

она объявлена в файле
/usr/src/linux-2.4/include/linux/fs.h
.

Листинг 28.10. Фрагмент файла /usr/src/linux-2.4/include/linux/fs.h

struct file_operations {

 struct module *owner;

 loff_t (*llseek)(struct file*, loff_t, int);

 ssize_t (*read)(struct file*, char*, size_t, loff_t*);

 ssize_t (*write)(struct file*, const char*,

size_t, loff_t*);

 int (*readdir)(struct file*, void*, filldir_t);

 unsigned int (*poll) (struct file*,

struct poll_table_struct*);

 int (*ioctl)(struct inode*, struct file*, unsigned int,

unsigned long);

 int (*mmap)(struct file*, struct vm_area_struct*);

 int (*open)(struct inode*, struct file*);

 int (*flush)(struct file*);

 int (*release)(struct inode*, struct file*);

 int (*fsync)(struct file*, struct dentry*,

int datasync);

 int (*fasync)(int, struct file*, int);

 int (*lock)(struct file*, int, struct file_lock*);

 ssize_t (*readv)(struct file*, const struct iovec*,

unsigned long, loff_t*);

 ssize_t (*writev)(struct file*, const struct iovec*,

unsigned long, loff_t*);

 ssize_t (*sendpage)(struct file*, struct page*, int, size_t,

loff_t*, int);

 unsigned long (*get_unmapped_area)(struct file*, unsigned long,

unsigned long, unsigned long, unsigned long);

};

Как использовать структуру file_operations, думаю, ясно. Например, нам нужно описать обработчики записи и чтения устройства — функции device_write и device_read:

struct file_operations FO = {

 open: device_open,

 release: device_close,

 read: device_read,

 write: device_write

};

Обработчики чтения и записи пишутся «по образу и подобию» обработчиков открытия и закрытия устройства, то есть сначала нам нужно определить младший номер с помощью вызова MINOR, а затем произвести операцию с устройством.

Приложение

Таблицы соответствия Windows- и Linux-программ

С помощью приведенных ниже таблиц вы сможете подобрать достойный аналог для вашей Windows-программы. При заполнении таблицы я руководствовался простым правилом: чтобы Windows-программа и ее Linux-аналог были в одной весовой категории, то есть обладали примерно одинаковыми возможностями.

Работа в Интернет
Windows-программа Linux-аналог Комментарий
Internet Explorer Netscape Navigator/Mozilla Думаю, что обе эти программы в представлении и особых комментариях не нуждаются — мы их знаем еще со времен Windows
Konqueror Вряд ли Завоеватель сможет выступить в роли Internet Explorer'а. Но для походов на не очень «навороченные» (с использованием Flash, VRML, апплеты Java) сайты его возможностей вполне хватит
Galeon Данный браузер основан на движке Mozilla, поэтому он с успехом может заменить самого Mozill'у!
IE for Linux Компания Microsoft портировала программу IE на платформу Linux. Честно говоря, «ослика ИА для Линукс» я в глаза не видел, но судя по отзывам, программа линуксоидам не понравилась
Opera Opera for Linux Уже вышла восьмая версия этого популярного браузера, и она доступна пользователям Linux. Но рекомендуется воспользоваться стабильной версией 7.54 — это проверенная временем, надежная версия
Mozilla for Windows Mozilla for Linux Linux-аналог обладает всеми возможностями Windows-программы
Outlook Ximian Evolution Полный аналог знаменитой программы Outlook — программы похожи друг на друга как две капли воды
K Mail K Mail вполне справится с возложенной на него задачей — служить заменителем для Outlook. Организация учетных записей K Mail очень напоминает Outlook, что делает эти две программы несколько похожими друг на друга. Конечно, K Mail и Outlook не очень похожи внешне, но идея остается прежней. Нужно заметить, что K Mail не заменит полную версию Outlook, скорее всего, он «потянет» на роль аналога Outlook Express
Outlook (чтение новостей) Knode Программа обладает достаточно удобным интерфейсам, что позволяет ставить ее в один ряд с клиентом новостей программы Outlook
Netscape Messenger Messenger — это более зрелый, по сравнению с Knode, продукт, позволяющий читать не только почту по протоколам POP3 и IMP3, но и новости
The Bat! Sylpheed Программа The Bat! давно стала культовой, а ее разработчики видно, не спешат портировать программу на платформу Linux. К счастью, мир не без добрых людей: разработчик Hiroyuki Yamamoto (скорее всего, японец) написал Linux-аналог программы The Bat! Программа Sylpheed заслуживает отдельного разговора, поэтому о ней мы поговорим немного позже
The Bat! K Mail Программа K Mail тоже может выступать в роли аналога для программы The Bat!,
но с меньшим успехом, чем программа Sylpheed
FlashGet, Reget, Go!zilla (менеджеры закачки файлов) Downloader for X Мне очень понравилась эта программа — по своим возможностям она не уступает ни одной из перечисленных Windows-программ
Kget (или Caitoo) Довольно неплохой загрузчик файлов
Wget Данная программа работает в консоли, то есть не имеет графического интерфейса, но возможности данной программы заслуживают уважения
Teleport Pro (полная загрузка сайта) Downloader for X Программа Downloader for X может использоваться как для загрузки одного файла, так и для закачки целых сайтов
Wget То же самое можно сказать и о программе wget
FTP-клиенты (Bullet Proof FTP) 1. Gftp 2. Ifgp 3. ncftp Первые две программы более удобны, поскольку они являются графическими приложениями. Третья программа — ncftp — работает в консоли, но обладает довольно полезными функциями, например, докачка файла в случае разрыва соединения или закачка файлов по шаблону
ICQ, MSN, AIM 1. licq 2. aicq 3. micq 4. Gaim 5. Simple Instant messenger Существует много разновидностей ICQ-клиента. Вы можете выбрать один из них на свой вкус
Mirc (IRC-клиент) Xhat, Kvlrc, Ksirc С IRC-клиентами также никогда не было проблем — это только три наиболее удобные на мой взгляд IRC-клиенты
Firewall (BlackICE, ATGuard, ZoneAlarm) iptables или ipchains Обе эти программы являются стандартными и устанавливаются при установке любого дистрибутива Linux. Использовать графические оболочки для iptables или ipchains (Kmyfirewall, Firewall Builder) я не рекомендую, поскольку ни одна оболочка не позволяет гибко настроить firewall
VisualRoute, CyberKit Xtraceroute, VisualRout for Linux, traceroute, ping, tcpdump Программу VisualRoute с успехом можно заменить программой Xtraceroute или ее текстовой версией traceroute. Пакет CyberKit можно заменить набором стандартных программ — traceroute, ping, nslookup и tcpdump; полученная смесь будет мощнее, чем CyberKit
Фильтрация данных и роутинг (BlackICE, ATGuard, WinRoute, WinGate) Squid и route Обе эти программы являются стандартными и обладают значительно большими возможностями, чем их Windows-аналоги
VentaFax efax Gfax Эти программы смогут заменить знаменитую программу VentaFax
Vdialer, E-type dialer (дозвон к провайдеру) Kppp Gppp Kinternet Звонить к провайдеру Linux также умеет — не сомневайтесь, ведь Linux создан для сети, как птица для полета
Загрузка канала kpppload kisdnload Первая программа отображает график загрузки PPP-канала, а вторая — канала ISDN
Remote Administrator telnet ssh X-terminal В отличие от Windows, где для удаленного администрирования нужно устанавливать отдельную программу, в Linux есть стандартные средства, с помощью которых можно управлять удаленной машиной
HyperTerminal minicom Небольшая программа с большими возможностями
Работа с файлами
Windows-программа Linux-аналог Комментарий
Norton Commander, Volcov Commander, FAR Midnight Commander Программа Midnight Commander полностью заменяет популярную программу NC. Интерфейс программ практически одинаковый: MC, как и NC, обладает двумя панелями синего цвета и работает в текстовом режиме. Так как MC — это файловый менеджер Unix (Linux), то он обладает специфическими для этой ОС функциями: операции с правами доступа, создания символических ссылок, поддержка сети (NFS. FTP)
Windows Commander (Total Commander) Midnight Commander Программа MC обладает всеми функциями указанных Windows-программ. Правда, в отличие от Windows Commander, MC работает в текстовом режиме. Хотя имеется возможность запуска MC в терминале X: при этом программа будет реагировать на события X (например, щелчок мыши на кнопке Копировать)
LinCommader Удобный файловый менеджер. Программа доступна по адресу http://www.ussr.to/Russia/vvi/lcmd.html
Krusader Программа обладает удобным интерфейсом и предназначена для работы в KDE. Поддерживает различные форматы архивов, обладает встроенными FTP-клиентом и просмотрщиком графических файлов. Программа доступна по адресу http://krusader.sourceforge.net/
Прикладные и системные программы
Поделиться:
Популярные книги

На границе империй. Том 5

INDIGO
5. Фортуна дама переменчивая
Фантастика:
боевая фантастика
попаданцы
7.50
рейтинг книги
На границе империй. Том 5

Довлатов. Сонный лекарь 2

Голд Джон
2. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Довлатов. Сонный лекарь 2

Всадник Системы

Poul ezh
2. Пехотинец Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Всадник Системы

Фиктивная жена

Шагаева Наталья
1. Братья Вертинские
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Фиктивная жена

Тринадцатый VI

NikL
6. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VI

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Релокант. Вестник

Ascold Flow
2. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант. Вестник

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

Жена на четверых

Кожина Ксения
Любовные романы:
любовно-фантастические романы
эро литература
5.60
рейтинг книги
Жена на четверых

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Я еще граф

Дрейк Сириус
8. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще граф

Возвышение Меркурия. Книга 15

Кронос Александр
15. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 15

Мимик нового Мира 5

Северный Лис
4. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 5

Идеальный мир для Социопата 4

Сапфир Олег
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Идеальный мир для Социопата 4
Windows-программа Linux-аналог Комментарий
Блокнот kedit, gedit, xedit Любая из этих программ в состоянии заменить Блокнот
Bred, Rpad32, Aditor Kate Программа Kate поддерживает 38 различных кодировок и подсветку синтаксиса для С, С++, Java, Pascal, PHP, HTML, Bash и других языков программирования
Программы-переводчики (Prompt) Пока нет ни одного нормального переводчика
Словари (Socrat, Lingvo) Mueller, Mova, Ksocrat Любой из этик словарей способен заменить Lingvo, хотя я не обещаю, что замена будет равноценной
RAR/WinRAR RAR for Linux Версия популярного архиватора для Linux — комментарии излишни
Ark Программа входит в состав утилит KDE (пакет kdeutil) и поддерживает распространенные форматы архивов
WinZIP Ark Все тот же Ark