Acabo de comenzar a usar Ubuntu como mi sistema operativo principal y quería aprender sobre cosas que no debería hacer, y aprender sobre las cosas malas que la gente ha hecho en el pasado. Encontré estos correos electrónicos sobre historias de terror que los administradores de sistemas de UNIX y Linux habían hecho en su propio sistema cuando eran nuevos. Muchos de ellos implicaron el uso del comando mknod tanto para analizar como para solucionar un problema. Nunca he oído hablar de este comando antes y la página man en Ubuntu no es muy útil. Entonces, mi pregunta es, ¿para qué se usa este comando y cuáles son algunos ejemplos en los que es útil en el uso diario?
fuente
udev
es específico de Linux, ¿no es así? ¿Quizás otros sistemas similares a Unix todavía crean dispositivos manualmente?devfs
y / odevd
no tengo experiencia personal con ninguno de los dos. Sin embargo, sospecho que otras unidades han desarrollado sus propias formas de automatizar el proceso de creación de nodos de dispositivos./dev/snd
correspondientes a los diversos elementos de cada bit de hardware de sonido que detectó y admite. El software que usa sonido puede usar esos dispositivos para generar sonido sin tener que saber con precisión con qué tipo de tarjeta de sonido están hablando.Puede hacer una tubería con nombre con ella.
Lo uso con un programa para leerlo y otro para escribir en él.
Facilita la comunicación entre procesos.
De lo contrario, puede crear archivos de dispositivo, para dispositivos que no están presentes.
También: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm
fuente
mknod
para algo más que hacer tuberías con nombre es más que raro.Como DBA de Oracle que trabajan en dispositivos sin formato para crear grupos de discos de Oracle ASM, los usamos regularmente
mknod
para vincular dispositivos.Las respuestas anteriores fueron muy útiles para mí, ya que no somos administradores del sistema. Solo quería señalar que podría ser raro usar el punto de vista de los administradores de almacenamiento,
mknod
pero desde el punto de vista de Oracle ASM es un uso común. (¿Puede ser que alguien pueda encontrar una mejor manera para nosotros?)fuente
/dev
lamknod
, esos cambios se irán la próxima vez que se reinicie el sistema. Tendrá que escribir un script o unudev
archivo de reglas que realice los cambios / adiciones en el momento del arranque para que sean persistentes.En mi humilde opinión, incluso para hacer tuberías con nombre, el comando mkfifo es mejor que mknod. Uno, es autodescriptivo en su nombre. Segundo, permite que la opción -m anule la configuración de umask.
fuente
mknod foo p
cuando era la única manera.El comando "mknod" fue lanzado a los licenciatarios en Unix (tm) Versión 4 por AT&T. Les recomiendo a todos que valga la pena gastar el tiempo y el dinero para obtener una copia de
Bell System Technical Journal, 57: 6. julio-agosto de 1978 pp 1905-1929. El sistema de tiempo compartido UNIX. (Ritchie, DM; Thompson, K.)
Ese tema, y especialmente ese artículo, lo llevará a apreciar varios conceptos fundamentales que permiten la construcción del sistema operativo elegante, compacto, rápido, estable, seguro y versátil que era Unix (tm). Los diversos sistemas que ahora están disponibles siguen siendo bastante versátiles ;-)
Trataré de mencionar algunos de esos aquí.
1) los bits setuid y setgid y cómo el uso de dichos bits permite la separación de los usuarios en dominios de privilegio confiables y no confiables. Hop Springs eterno que los usuarios de confianza serán menos propensos a ordenar el sistema a "# cd /; rm -rf * .o ", observe tanto el uso inapropiado de privilegios como el" espacio de destrucción ". Observe también que el final de una oración con una frase entre comillas dicta el orden del punto final y las comillas de cierre. La gramática inglesa apesta (fm). dmr y ken donaron la patente semnal al público, bendícelos.
2) acceso al dispositivo a través del mismo espacio de nombres que los archivos. Aquí es donde la simple elegancia de una herramienta pequeña combinada con otras herramientas simples para realizar actividades no pensadas por los fundadores se vuelve poderosa.
3) Un archivo en el espacio de datos es una cadena. La estructura es impuesta por los programas en el espacio del programa y no está estrechamente vinculada al complicado programa Swiss-Army-Knife. Apple (R), Microsoft (R) e IBM (R) podrían haber tenido mejores productos si más de ellos leyeran BSTJ.
4) stdin, stdout, stderr.
5) shells, procesadores de comandos interpretativos, capaces de combinar fácilmente herramientas simples.
6) solo optimice el código en los bucles internos, dedique su tiempo y dinero limitados donde sea importante.
7) no incrustar la sintaxis de E / S en procesadores de traducción de idiomas.
C. <FORTRAN
8) BESO.
9) "Es más fácil diseñar e implementar una extensión de sistema ayaeem de tiempo compartido multiusuario a un buen sistema en tiempo real que al revés", yo, una extensión de tiempo compartido para RSX-11D, implementado usando pequeñas herramientas, escrito en MACRO 11 cuando era inevitable, de lo contrario, la secuencia de comandos de idiomas de nivel superior era bastante buena, 16 usuarios en un PDP-11 // 45 de 248k bytes (memoria de estado sólido de 16k el resto del núcleo). Desarrollo concurrente de programas con FOCAL, BASIC, FORTRAN IV, C, MACRO-11, edición de enlaces, ejecución de programas, lotes, interactivos y adquisición de control / datos de múltiples experimentos científicos usando un LAB-11 e interfaces creativas personalizadas para A / D, D / A, relojes de alta resolución, ...
No hay edición de retraso irritante observable con CRT de 9600 baudios o impresoras de 120 cps, 30 cps de DECwriters. Un staccato un poco desigual con una impresora de 300 lpm. UT200 y 2780 para RJE. Desarrollo de programas más rápido que RSX-11M, RSX-11M +, IAS y versiones anteriores de VMS.
Un programador de tiempo compartido realmente simple implementado como una tarea en tiempo real utilizando las características felices de un ATL vinculado prioritario implementado como una cola.
Las variedades Unix son muy rápidas hoy en día, pero solo porque las CPU pueden hacer un bucle infinito en tres segundos. TFC
fuente