Программное обеспечение
Программное обеспечение
Вы должны написать программу, которая выполняла бы следующие функции:
Получить разрешение на использование адресного пространства Ввода/Вывода,
обратившись к ядру командой ioperm,
например, ioperm (BASE, range, 1);
Выполнить команду out для установки напряжения 0-5В на параллельном порту:
например outb (1, BASE);
Подождать, пока приготовится кофе. Было бы неплохо, если бы это время
вводилось в командной строке.
Выключить кофеварку: outb (0, BASE);
По окончании работы на параллельный порт должна быть подана команда:
ioperm (BASE, range, 0);
Замените BASE = 0x3bc для /dev/lp0, 0x378 для /dev/lp1, и 0x278 для /dev/lp2, range=8.
Было бы здорово, если эта программа имела setuid, чтобы кофе могли
пить все!
Драйвер для устройства
Просто прочтите kernel hacker's guide, напишите драйвер устройства (я
думаю, это можно сделать и не в ядре). Откомпилируйте его как модуль, чтобы
не нужно было пересобирать все ядро, при обновлении драйвера. Затем
напишите:
echo cappuccino >/dev/coffee
И через минуту вы будете наслаждаться чашкой кофе. Установите
соответствующие права на файл /dev/coffee - хотите ли вы, чтобы кофе
готовил только root или кто-нибудь другой.
Преимущества данного метода заключаются в том, что он поддерживает обратную
связь с кофеваркой, при помощи сигнала ACK параллельного порта.
Пусть это будет вашим домашним заданием.
Соединение с Internet
Если вы написали программу на C (см. выше), вы можете написать простенький
CGI-скрипт для включения и выключения кофеварки. Неплохо было бы написать
несколько познавательных страничек, объясняющих, как делать кофе и положить
их на сервер apache ...