Mac OS X
Jueves, Noviembre 27th, 2008Mac OS XEs el actual sistema operativo de la familia de ordenadores Macintosh. Es un sistema operativo basado en UNIX; contiene un núcleo de bajo nivel que se llama Darwin y esta basado en la licencia APSL (Apple Public Source License). Incorpora 3 tecnologías: Quartz Extreme, OpenGL, QuickTime.Capas del Sistema Mac OS XNúcleo del Sistema Operativo: El núcleo se refiere a la base fundamental de Mac OS X, conocido como Darwin. Esta capa es responsable para el manejo de todas las operaciones de E/S (entrada y salida). También maneja la memoria y el uso del procesador.Servicios del Núcleo: Implementan los servicios del sistema operativo, los cuales son usados por las aplicaciones. Entre estos servicios tenemos: QuickTime (Reproducir Videos), Quartz (Dibujos en 2D), Core Audio, Video (Efectos especiales).Framework para Desarrolladores: Permite la ejecución de varias aplicaciones en Mac OS X.Un Framework es una estructura de soporte definida, puede incluir soporte de programas, librerías y un lenguaje común para ayudar a desarrollar y unir los diferentes componentes de un proyecto.Interfáz del Usuario y Aplicaciones: Las aplicaciones son los programas que tú ejecutas.La capa de aplicación es donde el usuario interactúa con su Macintosh. Además de las aplicaciones diseñadas para Apple, Mac OS X incluye soporte para ejecutar aplicaciones basadas en: Java, UNIX y aplicaciones clásicas del sistema Mac OS 9.ADMINISTRACIÓN DE PROCESOS Un proceso es un programa en ejecución o un conjunto de hilos (tareas). Los procesos pueden ejecutarse sin tener una interfaz gráfica (Daemons). El Monitor de Actividad es la utilidad que se utiliza para la Administración de los Procesos. Esta aplicación muestra información de procesos relacionada con: ID del proceso (PID) - Nombre del proceso – Usuario - % de uso de CPU - Memoria utilizadaADMINISTRACIÓN DE RECURSOS Y FIABILIDAD Con la multitarea cooperativa del sistema operativo actual, se supone que el Finder y los programas no deberían cruzarse uno en los caminos de los otros . ( En el cuadro de diálogo ” Obtener Info ” de una aplicación se puede establecer la cantidad de memoria que la aplicación se reserva para ella; la petición de ciclos de CPU es invisible al usuario, pero es algo que los programadores deben decidir al desarrollar las aplicaciones . ) En la práctica, los programas, incluyendo los componentes del sistema operativo, como el Monitor de Impresión, con frecuencia no cooperan, robándose unos a otros memoria y ciclos de CPU, y a veces causando bloqueos. ADMINISTRACIÓN DE ARCHIVOS La multitarea no cooperativa, en la cual el Mac OS cambia automáticamente de una a otra tarea activa a intervalos de tiempo fijos, para asegurar que las operaciones que son más sensibles al tiempo (como la entrada/salida de archivos o las comunicaciones) obtienen una cantidad suficiente de éste . (El sistema operativo actual confía que cada aplicación ceda el acceso al tiempo de CPU, los servicios de archivos, puertos, y otros recursos del sistema) El método ” no cooperativo ” aísla cada programa de modo que no pueda causar problemas a los otros. La multitarea no cooperativa se implementa sólo en servicios de red, y en los threads (mini programas que un programa o el propio Finder pueden generar para ejecutar una tarea, como un mandato de buscar y reemplazar, o una rutina de impresión). Los programas y el Finder aún deben compartir los recursos de manera cooperativa para la mayoría de sus funciones. La no cooperación parcial aumentará la estabilidad del Mac y su capacidad para manejar múltiples servicios, como E/S y gestión de redes, pero los programas todavía colisionarán entre ellos y con el Finder.PROTECCIÓN DE MEMORIA Con el sistema operativo Macintosh actual, las tareas se limitan a su propia área de la memoria sólo si se comportan correctamente, de manera que, cuando una aplicación falla, puede pisar los datos en la memoria de otra aplicación, e incluso los datos del propio sistema operativo .
Interprete de Comandos Mac OS X
Arranque
Pulsar X durante el arranque. Fuerza al Mac OS X a arrancar
Pulsar Opción-Comando-Mayúsculas- Borrar durante el arranque ..
Pulsar C durante el arranque… Arranca desde un CD con carpeta del sistema
Ventana del Finder
Comando-W … Cierra la ventana
Opción-Comando-W… Cierra todas las ventanas
Opción + click botón cerrar … Cierra todas las ventanas abiertas
Comando + arrastrar ventana… Mueve una ventana sin activarla
Comando + pulsar título ventana… Opta a una carpeta que contiene la carpeta en uso
Comando-Flecha Derecha… Descubre la carpeta (vista lista)
Opción-Comando-Flecha Derecha… Descubre la carpeta y subcarpetas (vista lista)
Comando-Flecha Izquierda… Contrae la carpeta (vista lista)
Opción-Comando-Flecha Arriba… Abre la carpeta origen y cierra la actual en uso
Comandos de Menú
Menú Apple
Mayúsculas-Comando-Q… Cierra la sesión
Mayúsculas-Opción-Comando-Q … Cierra la sesión inmediatamente
Menú Finder
Mayúsculas-Comando-Borrar… Vacia la Papelera
Opción-Mayúsculas-Comando-Borrar … Vacia la Papelera sin diálogo
Comando-H Oculta el Finder
Opción-Comando-H… Oculta otras aplicaciones
Menú Archivo
Comando-N… Nueva ventana Finder
Mayúsculas-Comando-N … Nueva carpeta
Comando-O … Abre
Comando-S … Guarda
Mayúsculas-Comando-S… Guarda como
Comando-P… Imprime
Comando-W… Cierra la ventana
Menú Edición
Comando-Z… Deshace
Comando-X … Corta
Comando-A… Selecciona todo
Menú Ver
Comando-1… Vista como Iconos
Comando-2… Viista como Lista
Menú Ir
Comando - [… Vuelve
Comando - ] … Adelanta
Mayúsculas-Comando-C… Ordenador
Mayúsculas-Comando-H… Inicio
Mayúsculas-Comando-G… Ir a la carpeta
Comando-K… Conecta al Servidor
Menú Ventana
Comando-M… Minimiza la ventana
Opción-Comando-M… Minimiza todas las ventanas
Menú Ayuda
Comando-?… Abre la Ayuda Mac
Acceso Universal
Opción-Comando- * (asterisco) … Habilita el Zoom
Opción-Comando- + (más) … Acerca la vista
Opción-Comando- - (menos) … Aleja la vista
Acceso Total de Teclado
Control-F2… Realza el Menú Apple
Control-F3 … Realza el Dock
Control-F4… Realza la ventana (activa) o la ventana colocada inmediatamente detrás
Control-F5… Realza la Barra de Herramientas
Control-F6… Realza una paleta de herramientas y las paletas subyacentes por orden de activación
Teclas de Ratón
8… Mueve Arriba
2… Mueve Abajo
4… Mueve a la Izquierda
6… Mueve a la Derecha
Otros Comandos:
Comando-Mayúsculas-3… Toma una imagen de la pantalla
Comando-Mayúsculas-4 … Toma una imagen de la selección
Comando-Mayúsculast-4, entonces barra Espaciadora … Toma una imagen de la ventana seleccionada
Control-Comando-Mayúsculas-3… Copia la pantalla capturada al Portapapeles en vez de salvarla como un archivo.
SISTEMAS DE PROTECCION. Introducción a los permisos y resolución de problemas. Para incrementar la seguridad en el sistema, Mac OS X utiliza los permisos para limitar el acceso a los usuarios. Se puede definir 3 tipos de permisos: lectura y escritura (Propietario), sólo lectura (Grupo e invitados), sin acceso (Otros). Modelo de Acceso Basado en Usuarios. Por seguridad y facilidad de uso, Mac OS X crea una carpeta personal para cada usuario en la cual únicamente el propietario y el Administrador del Sistema pueden modificar los contenidos de las carpetas, existen dos excepciones para los permisos en la carpeta personal de los usuarios: Las carpetas Web y Pública.Secuencia de ArranqueBootROM. Es importante que los usuarios y administradores Mac OS X conozcan que sucede al momento encender su computador hasta que aparece la ventana de login, al iniciar Mac OS X, éste ejecuta una serie de tareas para preparar el sistema, el BootROM es un componente de hardware que contiene los programas de inicio (boot):POST (Power-On Self Test), Open Firmware. POST. El Power-On Self Test revisa los componentes básicos del hardware (Procesador, RAM, interfaces de hardware importante). Si el POST falla, los errores se manifiestan con un sonido (“beep”): Beep - Memoria RAM no instalada, Beeps - Memoria RAM incompatible, Beeps - Memoria defectuosa, Beeps - Imagen de inicio defectuosa en BootROM, Beeps - El procesador es inutilizable. Open Firmware. El Open Firmware inicializa el resto de hardware, construye el árbol inicial de dispositivos y se selecciona el sistema operativo a utilizar. también verifica si el usuario presiona alguna combinación de teclas para alterar el proceso de inicio.Comando AcciónComando + Opción + O + F… (Iniciar en modo Open FirmWare)Comando + Opción + P + R… (Reiniciar parametros de RAM)Comando + Opción + Shift + Delete… (Saltar el disco de inicio)Opción… Abrir el Gestor de ArranqueX… Forzar el inicio de Mac OS XC… Iniciar desde un disco opticoClic Mouse… Expulsar disco opticoN… Iniciar desde un servidor de RedR… Reiniciar la PantallaT… Iniciar en modo Disco DestinoShift… Iniciar en modo SeguroComando + V… Iniciar en modo VerboseComando + S… Iniciar en modo Usuario SimpleLaunchd. Proceso que maneja los demonios del sistema y de los usuarios, los demonios son programas que se ejecutan constantemente y generalmente manejan las peticiones a los servicios que el sistema tiene activados. Launchd revisa los archivos .plist que se encuentran en las carpetas LaunchDaemons y LaunchAgentsSiguiendo un Orden Metódico de Eliminación. Existe un orden para el diagnóstico de un problema: relacionados con el usuario, relacionados con el software, relacionados con el SO, relacionados con el hardware.Resolución de Problemas Sistemáticamente. La resolución de problemas es un proceso, cuya meta es la siguiente: resolver el problema apropiadamente, resolverlo rápidamente. Ejecutando Diagnósticos. Paquetes de software que permiten determinar el desempeño del sistema: utilidad de discos, perfiles del sistema, utilidad de red, software de otros proveedores, utilizando el modo usuario simple – /sbin/fsck –y – /sbin/mount –uw /. Investigar el Problema. Recurrir a documentación o recursos para investigar el origen del problema. Existen muchas fuentes: Archivos Read Me, Ayuda de Mac, Manuales de Usuario, Utilidad de red, Consola, Sitio Web de Apple, Base de Conocimientos, Listas de Correo y Foros de Discusión.SERVICIOS Mac OS X incluye diversos servicios de red, Internet y distribución basados en tecnologías de código abierto que respetan los estándares. Estos servicios son fáciles de configurar y utilizar, e incluyen los siguientes: · Compartir Archivos usando AFP. · Compartir Windows usando SMB/CIFS (Samba). · Protocolo de transferencia de archivos FTP. · Compartir Web usando el servidor web de código libre Apache. · Compartir Impresora. · Bonjour (configuración cero). · Compartir Internet. · Protección mediante Firewall. · Conexión remota basada en una interfaz shell segura (SSH). · Eventos Apple Remotos. Puede usar estos servicios para compartir archivos y recursos, proteger el ordenador y permitir eventos remotos. Principales peculiaridades de Mac OSX El conocer las peculiaridades de un sistema operativo es útil durante el análisis de programas, entre ello de los programas nocivos. Muchas de las peculiaridades de Mac OS X están relacionadas con su origen: Mac OS X fue creada basándose en sistemas Unix, lo que se reflejó en el diseño y los principios del sistema en general. Del sistema operativo Mach heredó las interrelaciones entre procesadores; de BSD, la pila de red.Soporte de las llamadas del sistema de Mach y BSD El núcleo de Mac OS X (xnu) está basado en los núcleos de los sistemas operativos Mach y FreeBSD, pero también incluye parte de MkLinux, NetBSD, OpenBSD y otras tecnologías de Mach. Mac OS X Admite las llamadas del sistema de Mach y BSD Como el núcleo de OS X está basado tanto en Mach cómo en FreeBSD, xnu contiene dos tablas de llamadas del sistema, de Mach y BSD y admite los API de los sistemas BSD y Mach.El medio del tiempo de ejecución Para poder admitir por lo menos parte de la herencia de los sistemas operativos anteriores, Mac OS X consta de un medio de tiempo de ejecución de tres componentes:
- Dyld Runtime Environment. El medio de tiempo de ejecución basado en el cargador dinámico de dyld.
- CFM Runtime Environment. La herencia de OS 9 sirve para el soporte de las aplicaciones que dyld no puede ejecutar, pero que usan las posibilidades brindadas por Mac OS X. Esta parte está realizada en la biblioteca Carbon.
- Classic Runtime Environment. Sirve para ejecutar las aplicaciones de OS en OS X.
De esta manera, en Mac OS X existe la posibilidad de ejecutar diferentes tipos de aplicaciones, incluso para versiones anteriores de Mac OS.El formado de ficheros ejecutables macho En Mac OS X casi todos los ficheros que contienen código ejecutable, como las aplicaciones, bibliotecas y módulos del núcleo se realizan en forma de ficheros en formato macho. El formato macho no es un programa desarrollado originalmente por Apple. Fue desarrollado por Open Source Foundation para su sistema operativo OSF/1 y luego adaptado por Apple para la arquitectura x86 en el marco del proyecto OpenStep. El formato de ficheros macho y la especificación ABI (Application Binary Interface) describe la manera en que el núcleo debe cargar y lanzar el fichero ejecutable. Ambos le comunican al sistema operativo:· cómo funciona el cargador dinámico, · cómo cargar las bibliotecas compartidas, · cómo organizar el espacio de direcciones del proceso, · dónde buscar el punto de entrada, Como macho es el principal formato de los ficheros ejecutables en Mac OS X, analizaremos con más detalle su organización.Cómo está organizado macho A grandes rasgos, macho se puede dividir en tres partes: título, instrucciones de carga y segmentos, que pueden constar de varias secciones. El título y las instrucciones de carga describe las principales características del fichero, mientras que el segmento de datos contiene un conjunto de bytes a los cuales se remiten las instrucciones de carga. Título. Los primeros cuatro bytes del título determinan el así llamdo “magic number”, que identifica el fichero como de 32 o 64 bytes. Además, permiten al procesador determinar el orden de los bytes. El título define la arquitectura para la cual se ha compilado el fichero. Esto permite al núcleo garantizar el lanzamiento de los ficheros sólo en aquella plataforma para la que fueron compilados. A veces, el fichero binario puede contener código para más de una arquitectura. Este formato se conoce como Universal Binaries. En este caso el fichero empieza por un título fat. Instrucciones de carga. El campo de instrucciones de carga contiene una lista de instrucciones que comunican al núcleo de qué manera debe cargar los diferentes segmentos del fichero. Estas instrucciones describen cómo cada segmento está alineado en la memoria, qué derechos de acceso tiene y dónde está ubicado en la memoria.Segmentos y secciones. El fichero ejecutable macho suele tener 5 segmentos: __PAGEZERO. Ubicado en la dirección virtual cero, no tiene ninguna protección. Este segmento no tiene ningún campo en el fichero en el disco.
__TEXT. Contiene datos con acceso sólo de lectura y ejecución.
__DATA. Contiene datos con acceso de escritura. Esta sección está marcada como copy-on-write.
__OBJC. Contiene datos usados por el medio de ejecución Ojective-C.
__LINKEDIT. Contiene datos que se usan para establecer relaciones dinámicas.Los segmento __TEXT y __DATA contienen cero o más secciones. Cada sección contiene un determinado tipo de datos, por ejemplo: el código usado, las constantes, líneas de texto, etc. Así, el código ejecutable y no ejecutable se guardan en un segmento separado.Utilidades para el análisis de programas Existen dos formas principales de encarar el análisis de programas: el análisis dinámico y el estático. El análisis dinámico presupone el lanzamiento del código del programa en un depurador o un medio virtual y el análisis de su comportamiento. El análisis estático de los programas es el estudio del código con la ayuda de un desensamblador, sin ejecutar el código.Cada situación dicta que tipo de análisis es mejor usar. Ambos enfoques no se excluyen el uno al otro, sino que con frecuencia se complementan.Utilidades para el análisis dinámico de programas Al igual que la mayoría de los sistemas Unix, Mac OS X ofrece muchas utilidades que pueden ser de gran provecho durante el análisis dinámico de aplicaciones y el diagnóstico del sistema. Muchas de ellas llegaron a Mac desde Unix, pero también hay programas que existen sólo para Mac OS X. Analizaremos varias utilidades que pueden instalarse desde la distribución de Mac OS X.
Utilidades para el análisis estático Con mucha frecuencia, durante el análisis de programas nocivos no hay la posibilidad de ejecutar el programa analizado, o la ejecución del código no es deseable por criterios de seguridad. En estos casos es necesario recurrir al desensamblaje de ficheros. Debido a que Mac OS X usa ficheros ejecutables en formato macho, el análisis estadístico en este sistema operativo tiene determinadas particularidades. Así, la principal utilidad para analizar ficheros en formato macho es el programa otool. Con su ayuda se puede obtener información como: título del fichero, instrucciones de carga, punto de entrada y hasta se puede desensamblar el contenido de la sección que contiene el código ejecutable.
xxd permite realizar la conversión del fichero binario en hexadecimal y viceversa; IDAPro es un desensamblador.A la par del crecimiento de la popularidad de Mac OS X en la plataforma Intel, muchos fabricantes de software han lanzado versiones de sus programas para esta plataforma. En la nueva versión 5.1 de Mac OS X se incluye. Esto les facilitará la vida a los usuarios que “inmigran” desde Windows. Además, a veces el uso de IDAPro permite ejecutar algunas tareas de forma más rápida y simple que usando los medios estándar de Mac OS X.
BIBLIOGRAFIA:MAC SOLUCIONES, Soporte Técnico Certificado, Bob Le Vitus, Shelly Brisbin.http://www.viruslist.com/sp/analysis?pubid=207270926
INTERANTES:Carlos Sigüenza, Evelin Alvarado, Dayanna Montalvo, Robert Chuquimarca, Pablo Cruz, Ma. Fernanda Cún, Andrés Gutiérrez y Nadia Jaramillo