stringtranslate.com

Accidente (informática)

Se muestra un pánico en el kernel en un iMac . Esta es la forma más común de falla del sistema operativo en sistemas tipo Unix.

En informática , una falla o falla del sistema ocurre cuando un programa de computadora, como una aplicación de software o un sistema operativo , deja de funcionar correctamente y se cierra . En algunos sistemas operativos o aplicaciones individuales, un servicio de informes de fallas informará la falla y cualquier detalle relacionado con ella (o le dará al usuario la opción de hacerlo), generalmente a los desarrolladores de la aplicación. Si el programa es una parte crítica del sistema operativo, todo el sistema puede fallar o bloquearse, lo que a menudo resulta en un pánico del kernel o un error fatal del sistema .

La mayoría de los fallos son el resultado de un error de software . Las causas típicas incluyen el acceso a direcciones de memoria no válidas, [a] valores de dirección incorrectos en el contador del programa , desbordamiento del búfer , sobrescritura de una parte del código del programa afectado debido a un error anterior, ejecución de instrucciones de la máquina no válidas (un código de operación ilegal o no autorizado ) o activación una excepción no controlada . Generalmente se considera que el error de software original que inició esta cadena de eventos es la causa del bloqueo, que se descubre mediante el proceso de depuración . El error original puede estar muy alejado del código que realmente provocó el bloqueo.

En las primeras computadoras personales, intentar escribir datos en direcciones de hardware fuera de la memoria principal del sistema podía causar daños al hardware. Algunas fallas son explotables y permiten que un programa malicioso o un hacker ejecute código arbitrario , permitiendo la replicación de virus o la adquisición de datos que normalmente serían inaccesibles.

La aplicación falla

Una pantalla en el aeropuerto de Frankfurt ejecuta un programa en Windows XP que falló debido a una infracción de acceso de lectura a la memoria

Una aplicación normalmente falla cuando realiza una operación que no está permitida por el sistema operativo. Luego, el sistema operativo activa una excepción o señal en la aplicación. Las aplicaciones Unix tradicionalmente respondían a la señal deshaciéndose del núcleo . La mayoría de las aplicaciones GUI de Windows y Unix responden mostrando un cuadro de diálogo (como el que se muestra a la derecha) con la opción de adjuntar un depurador si hay uno instalado. Algunas aplicaciones intentan recuperarse del error y continúan ejecutándose en lugar de salir .

Una aplicación también puede contener código para bloquearse [b] después de detectar un error grave.

Los errores típicos que provocan fallos de la aplicación incluyen:

Accidente en el escritorio

Se dice que una "caída del escritorio" ocurre cuando un programa (comúnmente un videojuego ) se cierra inesperadamente, llevando abruptamente al usuario de regreso al escritorio . Por lo general, el término se aplica sólo a fallos en los que no se muestra ningún error, por lo que todo lo que el usuario ve como resultado del fallo es el escritorio. Muchas veces no hay ninguna acción aparente que provoque un bloqueo en el escritorio. Durante el funcionamiento normal, el programa puede congelarse por un período de tiempo más corto y luego cerrarse solo. Además, durante el funcionamiento normal, el programa puede convertirse en una pantalla negra y reproducir repetidamente los últimos segundos de sonido (dependiendo del tamaño del búfer de audio ) que se estaba reproduciendo antes de que fallara en el escritorio. Otras veces puede parecer que se activa por una determinada acción, como cargar un área.

Los errores de bloqueo del escritorio se consideran particularmente problemáticos para los usuarios. Dado que con frecuencia no muestran ningún mensaje de error, puede resultar muy difícil localizar el origen del problema, especialmente si las veces que ocurren y las acciones que se llevan a cabo justo antes del accidente no parecen tener ningún patrón o punto en común. Una forma de localizar el origen del problema de los juegos es ejecutarlos en modo ventana. Windows Vista tiene una función que puede ayudar a localizar la causa de un problema CTD cuando ocurre en cualquier programa. [ se necesita aclaración ] Windows XP también incluía una característica similar. [ se necesita aclaración ]

Algunos programas informáticos, como StepMania y Bamzooki de la BBC , también fallan en el escritorio si están en pantalla completa, pero muestran el error en una ventana separada cuando el usuario regresa al escritorio.

El servidor web falla

El software que ejecuta el servidor web detrás de un sitio web puede fallar, haciéndolo completamente inaccesible o proporcionando solo un mensaje de error en lugar del contenido normal.

Por ejemplo: si un sitio utiliza una base de datos SQL (como MySQL ) para un script (como PHP ) y el servidor de la base de datos SQL falla, PHP mostrará un error de conexión.

El sistema operativo falla

Una pantalla azul de la muerte como se muestra en Windows XP, Vista y 7
Un pánico en el kernel como se muestra en OS X Mountain Lion

Un fallo del sistema operativo suele producirse cuando se produce una excepción de hardware que no se puede gestionar . Los fallos del sistema operativo también pueden ocurrir cuando la lógica interna de verificación de integridad dentro del sistema operativo detecta que el sistema operativo ha perdido su coherencia interna.

Los sistemas operativos multitarea modernos, como Linux y macOS , normalmente no sufren daños cuando un programa de aplicación falla.

Algunos sistemas operativos, por ejemplo, z/OS , tienen funciones de confiabilidad, disponibilidad y capacidad de servicio (RAS) y el sistema operativo puede recuperarse del fallo de un componente crítico, ya sea debido a una falla de hardware, por ejemplo, un error ECC incorregible, o a una falla de software. , por ejemplo, una referencia a una página no asignada.

final anormal

Un final anormal o ABEND es una terminación anormal del software o una falla del programa. Los errores o fallas en el sistema operativo de red Novell NetWare generalmente se denominan ABEND. Surgieron comunidades de administradores de NetWare en Internet, como abend.org.

Este uso se deriva de la macro ABEND en los sistemas operativos IBM OS/360 , ..., z/OS . Generalmente se escribe con mayúscula, pero puede aparecer como "abend". Algunos códigos ABEND comunes son System ABEND 0C7 (excepción de datos) y System ABEND 0CB ( división por cero ). [1] [2] [3] Las terminaciones anormales pueden ser "suaves" (permitiendo la recuperación automática) o "duras" (finalizando la actividad). [4] Se afirma jocosamente que el término deriva de la palabra alemana "abend" que significa "tarde". [5]

Implicaciones de seguridad y privacidad de las fallas

Dependiendo de la aplicación, el fallo puede contener información confidencial y privada del usuario . [6] Además, muchos errores de software que provocan fallos también se pueden explotar para la ejecución de código arbitrario y otros tipos de escalada de privilegios . [7] [8] Por ejemplo, un desbordamiento del búfer de pila puede sobrescribir la dirección de retorno de una subrutina con un valor no válido, lo que provocará, por ejemplo, un error de segmentación cuando la subrutina regrese. Sin embargo, si un exploit sobrescribe la dirección de retorno con un valor válido, se ejecutará el código de esa dirección.

Reproducción de accidentes

Cuando los fallos se recopilan en el campo utilizando un reportero de fallos , el siguiente paso para los desarrolladores es poder reproducirlos localmente. Para ello existen varias técnicas: STAR utiliza la ejecución simbólica, [9] EvoCrash realiza una búsqueda evolutiva. [10]

Ver también

Notas

  1. ^ Los tipos de direcciones no válidas incluyen:
  2. ^ En OS/360 y sus sucesores, la aplicación normalmente utiliza una macro ABEND con un código de finalización del usuario.

Referencias

  1. ^ "ABENDAR" (PDF) . Versión OS 21 - Sistema operativo System/360 - Servicios de supervisor e instrucciones macro (PDF) (Octava ed.). IBM . Septiembre de 1974. págs. 97–99. GC28-6646-7 . Consultado el 8 de julio de 2023 .
  2. ^ "0Cx - Códigos del sistema z/OS MVS". IBM.
  3. ^ Lista de códigos ABEND Archivado el 16 de septiembre de 2018 en Wayback Machine en madisoncollege.edu
  4. ^ Parziale, Lydia (2008). Operaciones de z/VM y Linux para programadores de sistemas z/OS. Libros rojos de IBM. ISBN 9780738431598.página 352
  5. ^ "Abend" Archivado el 29 de septiembre de 2011 en Wayback Machine en diccionario.die.net
  6. ^ Satvat, Kiavash; Saxena, Nitesh (2018). "Privacidad caída: una autopsia de los informes de fallas filtrados de un navegador web". arXiv : 1808.01718 [cs.CR].
  7. ^ "Analice fallas para encontrar vulnerabilidades de seguridad en sus aplicaciones". msdn.microsoft.com. 26 de abril de 2007. Archivado desde el original el 11 de diciembre de 2011 . Consultado el 26 de junio de 2014 .
  8. ^ "Jesse Ruderman» Errores de seguridad de la memoria en código C++ ". Squarefree.com. 1 de noviembre de 2006. Archivado desde el original el 11 de diciembre de 2013 . Consultado el 26 de junio de 2014 .
  9. ^ Chen, Ning; Kim, Sunghun (2015). "STAR: Reproducción automática de fallos basada en seguimiento de pila mediante ejecución simbólica". Transacciones IEEE sobre ingeniería de software . 41 (2): 198–220. doi :10.1109/TSE.2014.2363469. ISSN  0098-5589. S2CID  6299263.
  10. ^ Soltani, Mozhan; Panichella, Annibale; van Deursen, Arie (2017). "Un algoritmo genético guiado para la reproducción automatizada de accidentes". 2017 IEEE/ACM 39ª Conferencia Internacional sobre Ingeniería de Software (ICSE). págs. 209-220. doi :10.1109/ICSE.2017.27. ISBN 978-1-5386-3868-2. S2CID  199514177. Archivado desde el original el 25 de enero de 2022 . Consultado el 21 de diciembre de 2020 .

enlaces externos