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