Hay límites para casi todo, tanto en la vida como en Linux. A veces, los límites son muy altos y no vale la pena preocuparse, y a veces son demasiado bajos, establecidos arbitrariamente por un programador perezoso, o establecidos por límites al hardware.
Los límites arbitrarios se producen cuando un programador toma una decisión, como la cantidad máxima de caracteres permitidos en un campo, como una dirección. Es mucho más fácil establecer un límite arbitrario que asignar memoria dinámicamente según sea necesario. No desea asignar toda la memoria disponible a un campo de entrada simple, pero tampoco desea permitir que la entrada sobrescriba otra memoria que pueda ser importante. Para archivos y procesos abiertos, puede haber un límite arbitrario, o puede estar limitado por la memoria disponible. Si es esto último, las cosas malas comenzarán a suceder a medida que se acerque al límite, y el sistema puede bloquearse, por lo que a menudo es bueno tener un límite que entre en juego antes de que eso suceda. A veces, los límites arbitrarios pueden determinarse al inicio dependiendo de la memoria o el espacio en disco, y generalmente son bastante inteligentes,
Luego, hay límites establecidos por hardware, como el tamaño de un entero o carácter. Si tiene un sistema de 32 bits, existen límites establecidos por el tamaño máximo de un entero (4,294,967,295 si no está firmado, o la mitad si está firmado).