Esto es solo un pensamiento y tiene más de un inconveniente, pero podría ser lo suficientemente útil de todos modos.
¿Qué tal crear un archivo de imagen y un sistema de archivos dentro de él encima de ramfs, luego montar la imagen como un dispositivo de bucle? De esa manera, podría limitar el tamaño de ramdisk simplemente limitando el tamaño del archivo de imagen. Por ejemplo:
$ mkdir -p /ram/{ram,loop}
$ mount -t ramfs none /ram/ram
$ dd if=/dev/zero of=/ram/ram/image bs=2M count=1
1+0 records in
1+0 records out
2097152 bytes (2.1 MB) copied, 0.00372456 s, 563 MB/s
$ mke2fs /ram/ram/image
mke2fs 1.42 (29-Nov-2011)
/ram/ram/image is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
256 inodes, 2048 blocks
102 blocks (4.98%) reserved for the super user
First data block=1
Maximum filesystem blocks=2097152
1 block group
8192 blocks per group, 8192 fragments per group
256 inodes per group
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$ mount -o loop /ram/ram/image /ram/loop
$ dd if=/dev/zero of=/ram/loop/test bs=1M count=5
dd: writing `/ram/loop/test': No space left on device
2+0 records in
1+0 records out
2027520 bytes (2.0 MB) copied, 0.00853692 s, 238 MB/s
$ ls -l /ram/loop
total 2001
drwx------ 2 root root 12288 Jan 27 17:12 lost+found
-rw-r--r-- 1 root root 2027520 Jan 27 17:13 test
En el ejemplo (algo demasiado largo) anterior, el archivo de imagen se crea para tener 2 megabytes y cuando se intenta escribir más de 2 megabytes en él, la escritura simplemente falla porque el sistema de archivos está lleno.
Una reducción obvia de todo esto es, por supuesto, que hay mucha complejidad adicional, pero al menos para fines académicos esto debería ser suficiente.