이것이 작동하도록 하기 위해 다음의 실행을 가능하게 해야 한다.:
커널을 호출하여 ioperm 명령을 통해 I/O 주소 공간의 퍼미션을 얻는다. : eg ioperm( BASE, range ,1);
지시대로 일을 끝냈다면, 병렬 포트를 0-5V 로 맞춘다. eg outb( 1, BASE );
커피가 끓을 때 까지 충분한 시간을 기다린다. 명령행을 바라보는 동안이라면 가장 좋을 것이다.
그리고 나면 커피머신은 꺼져야 한다. : outb( 0 , BASE );
모든 것이 끝나기 전에 병렬 포트에 ioperm( BASE, range, 0); 명령으로 사용 포기 신호를 보낸다.
setuid 프로그램으로 만들면 모든 사람들이 커피를 마실 수 있게 되므로 더 유용하다!
커널 해커 가이드를 참고하여 디바이스 드라이버에 손대자. (내 생각으로는 사용자 공간이 필요한 것이다.) 이것을 모듈로 만들면 커널을 새로 업할 때 마다 매번 컴파일할 필요도 없어진다. 그리고 아래와 같이 입력하자.:
echo cappuccino >/dev/coffee
그리고 당신이 뜨거운 커피를 순식간에 만들어내기를 원한다면, /dev/coffee가 루트만이 손댈 수 있는지 아니면 여타의 사용자도 손댈 수 있는지에 대해 정확히 권한을 주어야 한다.
이 방식의 뛰어난 점은 병렬 포트의 ACK를 통해 커피 머신과 소통하는 것을 지원한다는 것이다. 우수한 커피 머신은 인터럽트를 만들어 낼 수도 있을 것이다.
숙제로 해 보시길!!!
만약 당신이 C 프로그램을 할 수 있다면, 당신은 간단한 CGI고 커피 머신을 켜고 끄는 것을 제어할 수도 있다. 쓸만한 웹페이지를 만들어서 어떻게 커피를 만드는지에 대해 떠들고는 아파치 웹 서버 상에 올려 버려도 좋을 것이다.