/dev/null z (ograniczoną) pamięcią

Celem zadania jest stworzenie modułu dla jądra Linuksa, który obsługuje
urządzenie o własnościach podobnych do /dev/null (w przypadku podrzędnego
numeru urządzenia równego 0):
- można do niego pisać dowolnie dużo danych
- czytanie z niego daje natychmiast sytuację końca strumienia.

Jednak w odróżnieniu od /dev/null, nasze nowe urządzenie ma ograniczony
bufor cykliczny ustalonego rozmiaru N bajtów, w którym przechowuje przez
cały czas ostatnie N bajtów zapisane do urządzenia. Te dane można odczytać
z tego samego urządzenia przez i-węzeł z numerem podrzędnym równym 1. Dane
będą odczytywane w kolejności, w jakiej zostały zapisane. Odczytanie znaków
z urządzenia usuwa je równocześnie z bufora.

Ponadto urządzenie to ma stworzyć w systemie plików /proc dwa pliki o
nazwach:
- null-size
- null-data-size

Do pliku null-size można pisać, przy czym zapisanie ciągu znaków
reprezentującego liczbę naturalną (w tym zero) powoduje ustawienie rozmiaru
bufora na podaną liczbę bajtów (nie przekraczającą 128KB); zapisanie
dowolnego innego ciągu znaków nie powoduje zmiany rozmiaru bufora. Zmiana
rozmiaru bufora powoduje skasowanie jego zawartości.

Z pliku null-size można też czytać, odczytany zostanie ciąg znaków (cyfr)
reprezentujący bieżący rozmiar bufora w bajtach.

Z pliku null-data-size można tylko czytać (zapis jest ignorowany), odczytany
zostanie ciąg znaków reprezentujący bieżącą liczbę znaków dostępnych do
odczytania w buforze cyklicznym.

Początkowy rozmiar bufora należy określić przy ładowaniu modułu za pomocą
parametru o nazwie bufsize (wyrażonego w kilobajtach).