La filosofía de Unix del es un sistema de normas culturales y de acercamientos filosóficos al software que se convierte basado en la experiencia de los reveladores principales del sistema operativo de Unix .

McIlroy: Un siglo cuarto de Unix

El Doug McIlroy, el inventor de las pipas de Unix y uno de los fundadores de la tradición de Unix, resumió la filosofía como sigue:

"Ésta es la filosofía de Unix: el escribe los programas que hacen una cosa y lo hacen él bien. El
escribe programas para trabajar junto. El
escribe programas a las corrientes de texto de la manija porque eso es un interface." universal;

Esto generalmente se abrevia seriamente al " Hacer una cosa, hacerla well."

De los tres principios, solamente el tercero es específico a Unix, aunque los reveladores de Unix acentúan a menudo los tres principios más que otros reveladores.

Pike: Notas sobre la programación en C

El Robo Pike ofrece el " siguiente; rules" en '' notas sobre la programación en C '' como que programa máximas de, aunque pueden ser vistas fácilmente como puntos de una filosofía de Unix:
Regla 1 del

: Usted no puede decir adónde un programa va a pasar su tiempo. Los embotellamientos ocurren en lugares asombrosamente, así que no intentan conjeturar y poner en segundo lugar en un corte de la velocidad hasta que usted haya probado que es donde está el embotellamiento.
Regla 2: Medida. No templar para la velocidad hasta que usted haya medido, e incluso después no hacer a menos que una porción del código abruma el resto.
Regla 3: Los algoritmos de lujo son lentos cuando n es pequeño, y n es generalmente pequeño. Los algoritmos de lujo tienen constantes grandes. Hasta que usted sepa que n va con frecuencia a ser grande, no conseguir la suposición. (Incluso si n consigue grande, utilizar la regla 2 primero.)
Regla 4: Los algoritmos de lujo son más buggier que los simples, y son mucho más duros de ejecutar. Utilizar los algoritmos simples así como las estructuras de datos simples
Regla 5: Los datos dominan. Si usted ha elegido las estructuras de datos correctas y las cosas organizadas bien, los algoritmos serán casi siempre evidentes en sí. Las estructuras de datos, no algoritmos, son centrales a la programación.
Regla 6: No hay regla 6.

Las reglas 1 y 2 de Pike exponen " famoso de la máxima en forma modificada de s C. Hoare el '; La optimización prematura es la raíz de todo el evil." El Ken Thompson reformuló las reglas 3 y 4 de Pike como " Cuando en duda, utilizar la fuerza bruta . " Las reglas 3 y 4 son casos del BESO de la filosofía de diseño. La regla 5 fue indicada previamente por los arroyos de Fred en el mes laboral mítico . El de Jon Bentley que programa las perlas también tiene un capítulo en el mismo principio de diseño. La regla 5 se acorta a menudo al " escribir el código estúpido que utiliza el data" elegante;, y es un caso del " de la pauta; Si sus datastructures son bastante buenos, el algoritmo para manipularlos debe ser trivial." La regla 6 es simplemente una referencia chistosa bosquejo de Bruces de s de Monty Python a el '. En secuencias de C, el octeto pasado de la secuencia es nulo, así indicando la longitud de la secuencia.

Mike Gancarz: La filosofía de UNIX

En el 1994 Mike Gancarz (miembro del equipo que diseñó el sistema de la ventana X), dibujó en su propia experiencia con Unix, así como discusiones con los programadores y la gente compañeros en otros campos que dependieron de Unix, para producir el la filosofía de UNIX que las sumas él para arriba en 9 preceptos supremos: el

pequeño es hermoso.

  • de El hace que cada programa hace una cosa bien.
  • de Estructura del un prototipo cuanto antes.
  • de El elige portabilidad sobre eficacia.
  • de Datos del almacén del en
  • plano de los archivos de texto Palancada del software del uso del a su ventaja.
  • de Shell scriptes Del del uso del para aumentar palancada y portabilidad.
  • de El evita los interfaces utilizador prisioneros.
  • de El hace cada programa un filtro.

    Los 10 pocos principios son unos que no se convienen en universal como parte de la filosofía de Unix, y en algunos casos, se discuten caliente (el núcleo monolítico contra el Microkernels ): El permite que el usuario adapte el ambiente.

  • de El hace núcleos del sistema operativo pequeños y ligeros.
  • de El uso del minúsculo y lo mantiene corto.
  • de El ahorra árboles.
  • de la palabra es plata y el silencio oro.
  • de El piensa paralelo.
  • de El la suma de las piezas es mayor que el conjunto.
  • de El busca el la solución del 90 por ciento.
  • de el peor es un mejor .
  • de El piensa jerárquico.

    Peor es mejor artículo principal del del de

    : El peor es un mejor

    El Richard P. Gabriel sugiere que una ventaja dominante de Unix fuera que incorporó una filosofía de diseño que él llamó el " Peor es el better". En el " Peor es el better" diseñar el estilo, simplicidad del del interfaz y la puesta en práctica es más importante que cualquier otra cualidad del &mdash del sistema; incluyendo la corrección, la consistencia y lo completo. Gabriel sostiene que este estilo del diseño tiene ventajas evolutivas dominantes, aunque él pregunta la calidad de algunos resultados.

    Por ejemplo, en los comienzos UNIX era un núcleo monolítico (que significa que las llamadas de sistema realizadas los procesos del núcleo del usuario todas en el apilado del usuario). ¿Si una señal fue entregada a un proceso mientras que fue bloqueada en una entrada-salida de largo plazo en el núcleo, tal como sueño (10*60), después qué debe ser hecha? ¿Se debe la señal retrasar, posiblemente durante mucho tiempo (quizá indefinidamente) mientras que la entrada-salida terminó? El tratante de la señal no podría ser ejecutado cuando el proceso estaba en modo del núcleo, con datos sensibles del núcleo sobre el apilado. ¿Debe el back-out del núcleo la llamada de sistema, y almacenarla, para la respuesta y el recomenzar más adelante, si se asume que el tratante de la señal termina con éxito?

    En el Ken Thompson de estos casos y el Dennis Ritchie favoreció simplicidad sobre la perfección. El sistema de UNIX volvería de vez en cuando temprano de una llamada de sistema con un error que indica que no había hecho nada - el " Sistema interrumpido Call" - un error número 4 (EINTR) en sistemas de hoy. Por supuesto la llamada había sido abortada para llamar al tratante de la señal. Esto podría suceder solamente para un puñado de llamadas de sistema duraderas, es decir leído (), escribir (), abierto (), selecto (), etc. En el lado más, esto hizo el sistema de la entrada-salida muchas veces más simples diseñar y entender. La gran mayoría de programas del usuario nunca era señales afectadas porque no dirigieron o de la experiencia con excepción de SIGINT/^C y moriría enseguida si uno fue levantado. Para los pocos otros programas - cosas tener gusto de las cáscaras o de los editores de textos que responden a los keypresses del control de trabajo - las pequeñas envolturas se podrían agregar a las llamadas de sistema para revisar la llamada enseguida si este error de EINTR fue levantado. Problema solucionado, de una manera simple.

    Raymond: El arte de la programación de Unix

    El Eric S. Raymond, en su del libro el arte de Unix que programa, resume la filosofía de Unix como la filosofía ampliamente utilizada de la ingeniería, " Mantenerlo simple, Stupid" (principio del BESO). Él entonces describe cómo él cree que esta filosofía total está aplicada como norma cultural de Unix, aunque unsurprisingly no sea difícil encontrar violaciones severas la mayor parte de del siguiente en la práctica real de Unix:
    Regla del

    la modularidad : Escribir las piezas simples conectadas por los interfaces limpios.
    Regla de claridad: La claridad es mejor que inteligencia.
    Regla de composición: Diseñar los programas que se conectarán con otros programas.
    Regla de separación: Política separada del mecanismo; interfaces separados de los motores.
    Regla de simplicidad: Diseño para la simplicidad; agregar la complejidad solamente donde usted debe.
    Regla de parsimonia: Escribir un programa grande solamente cuando está claro por la demostración que nada hará.
    Regla de transparencia: Diseñar para que la visibilidad haga la inspección y el depuración más fáciles.
    Regla de robustez: La robustez es el niño de la transparencia y de la simplicidad.
    Regla de representación: El conocimiento del doblez en datos así que "program logic" puede ser estúpido y robusto.
    Regla de menos sorpresa: En diseño de interfaz, hacer siempre la menos cosa asombrosamente.
    Regla de silencio: Cuando un programa no tiene nada asombrosamente decir, no debe decir nada.
    Regla de reparación: Cuando usted debe fallar, fallar ruidoso y cuanto antes.
    Regla de economía: El tiempo del programador es costoso; conservarlo preferentemente a tiempo de máquina.
    Regla de la generación : Evitar mano-cortar; escribir los programas para escribir programas cuando usted puede.
    Regla de la optimización : Prototipo antes de pulir. Conseguirlo que trabaja antes de que usted lo optimice.
    Regla de diversidad: Desconfianza todas las demandas para el " un way" verdadero;.
    Regla de extensibilidad: Diseñar para el futuro, porque estará aquí más pronto que usted piensa.

  • Muchas de estas normas se aceptan fuera del &mdash de la comunidad de Unix; si no cuando Unix primero las utilizó, entonces después. También, muchas no eran únicas u original a la comunidad de Unix. Sin embargo, los adeptos en la programación de Unix tienden a aceptar una combinación de estas ideas como la fundación del estilo de Unix.

    Controversia

    Es polémico si GNU de s de Free Software Foundation el el 'trabaja-alikes de los programas estándar de Unix (tales como diff, hallazgo, etc) sigue el " Unix Philosophy" o entenderlo mal. Ciertamente por lo menos algunos contadores de tiempo viejos de Unix demandan estes 3ultimo, puesto que las herramientas del GNU son a menudo substancialmente más grandes y más featureful que sus equivalentes de Unix.

    Ya en 1983 el Robo Pike escribió una extensión de crítica de papel de los DEB de la funcionalidad de las herramientas básicas de Unix como gato. Esta tendencia llegó a ser solamente mucho más significativa con el advenimiento del GNU y de las variantes comerciales de Unix, y no es infrecuente que un solo programa proporcione las características numerosas basadas en cómo se llama (por ejemplo, un programa que comprime y descomprime un archivo basado en qué nombre se llama cerca; un ejemplo extremo que es el encajado BusyBox del uso del linux, que consolida la línea más común funciones de comando en un solo binario).

    Cotizaciones

    " El Unix es simple. Apenas toma un genio para entender su simplicidad. " de ; - Dennis Ritchie
    " El UNIX no fue diseñado para parar a sus usuarios de hacer las cosas estúpidas, como que también las pararían de hacer cosas listas. " de ; - Doug Gwyn
    " El Unix nunca dice “por favor” . " - Robo Pike
    " El Unix es de uso fácil. Apenas no es promiscuo sobre con qué usuarios su amistoso. " de ; - rey de Steven
    " los que no entienden que UNIX está condenado para reinventarlo, mal. " de ; - chaqueta de punto de Henry

    Ver también

    Plan 9 de los laboratorios de Bell
    Pipas y filtros
    los elementos del estilo - una de las fuentes de inspiración para la filosofía de Unix.
    el manual de UNIX-HATERS
    Ingeniería de programas informáticos

    .

  • Zenithic
  • Acoustic Live
    Random links:Marina de guerra canadiense real | Caballo pío (venda) | zócalo 4 | Tracey Sketchit

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">