Un lugar donde compartir es nuestra pasión
Datos TécnicosPrácticas de Sistemas Operativos De La Base Al Diseño
Español - Winrar -PDF -24 Mb Aprox - 628 páginas
DescripciónEste libro está pensado como un texto general de prácticas de las asignaturas Sistemas Operativos y Diseño de Sistemas Operativos, pudiendo cubrir tanto la parte introductoria de los aspectos de programación de sistemas, como aspectos avanzados de programación y diseño de Sistemas Operativos (programación de shell scripts, programación con llamadas al sistema, programación de módulos del sistema operativo, etc.). Obviamente, este libro resulta un complemento natural al libro Sistemas Operativos: una visión aplicada, escrito por algunos de los autores de esta propuesta y ya publicado por McGraw-Hill. Si bien se puede usar de forma autónoma, complementándolo con cualquier otro libro de teoría de Sistemas Operativos. Este libro incluye básicamente tres aspectos novedosos frente a los libros clásicos de sistemas operativos:
* Una panoplia de prácticas que cubren todos los temas clásicos de la teoría. Se proponen varias prácticas por tema, lo que permitirá a los profesores cambiar o elegir las prácticas de forma cíclica. Las prácticas se han clasificado en tres niveles: INTRODUCCION, INTERMEDIO y DISEÑO. Cada uno de estos niveles se ajusta bien a los requisitos necesarios para los distintos cursos de Sistemas Operativos.
* Proyectos completos de prácticas, incluyendo enunciados, soluciones, etc. Las soluciones solamente estarán disponibles para los profesores a través de la página web del libro.
* Descripciones de las herramientas a usar para resolver las prácticas y enlaces web a los orígenes de las mismas.
EnlacesDescargar de Rapidshare Descargar de MegauploadDescargar de Filefactory
Colaborador - UploaderNuxbaster
Web del Autorhttp://latinuxsoft.blogspot.com/
Datos TécnicosSistemas Operativos -Una Visión Aplicada-
Español - Winrar - PDF - 24 MB Aprox.
DescripciónTabla de ContenidosPrólogo1 Conceptos arquitectónicos de la computadora1.1 Estructura y funcionamiento de la computadora1.2 Modelo de comparación de la computadora1.2.1 Niveles de ejecución1.2.2 Secuencia de funcionamiento de la computadora1.2.3 Registro de control y estado1.3 Interrupciones1.4 El reloj1.5 Jerarquía de memoria1.5.1 Migración de la información1.5.2 Parámetros característicos de la jerarquía de memoria1.5.3 Coherencia1.5.4 Direccionamiento1.5.5 La proximidad referencial1.6 La memoria virtual1.6.1 Concepto de memoria virtual1.6.2 La tabla de páginas1.6.3 Caso de varios programas activos1.6.4 Asignación de memoria principal y memoria virtual1.7 Entrada-salida1.7.1 Periféricos1.7.2 E/S y concurrencia1.7.3 E/S y memoria virtual1.8 Protección1.8.1 Mecanismos de protección del procesador1.8.2 Mecanismos de protección de memoria1.9 Multiprocesador y multicomputadora1.10 Puntos a recordar1.11 Lecturas recomendadas1.12 Ejercicios2 Introducción a los sistemas operativos2.1 ¿Qué es un sistema operativo?2.1.1 Máquina desnuda2.1.2 Funciones del sistema operativo2.1.3 Concepto de usuario y de grupo de usuarios2.2 Arranque de una computadora2.3 Componentes y estructura del sistema operativo2.3.1 Componentes del sistema operativo2.3.2 Estructura del sistema operativo2.4 Gestión de procesos2.4.1 Servicios de procesos2.5 Gestión de memoria2.5.1 Servicios2.6 Comunicación y sincronización entre procesos2.6.1 Servicios de comunicación y sincronización2.7 Gestión de la E/S2.8 Gestión de archivos y directorios2.8.1 Servicio de archivos2.8.2 Servicio de directorios2.8.3 Sistema de archivos2.9 Seguridad y protección2.10 Activación del sistema operativo2.11 Interfaz del programador2.11.1 Posix2.11.2 Win 322.12 Interfaz de usuario del sistema operativo2.12.1 Funciones de la interfaz de usuario2.12.2 Interfaces alfanuméricas2.12.3 Interfaces gráficas2.13 Historia de los sistemas operativos2.14 Puntos a recordar2.15 Lecturas recomendadas2.16 Ejercicios3 Procesos3.1 Concepto de proceso3.2 Multitarea3.2.1 Base de la multitarea3.2.2 Ventajas de la multitarea3.2.3 Grado de multiprogramación y necesidades de memoria principal3.3 Información del proceso3.3.1 Estado del procesador3.3.2 Imagen de memoria del proceso3.3.3 Información del BCP3.3.4 Tablas del sistema operativo3.4 Formación de un proceso3.5 Estados del proceso3.5.1 Cambio de contexto3.6 Procesos ligeros3.6.1 Estados del proceso ligero3.6.2 Paralelismo3.6.3 Diseño con procesos ligeros3.7 Planificación3.7.1 Algoritmos de planificación3.7.2 Planificación en POSIX3.7.3 Planificación en Windows NT/20003.8 Señales y excepciones3.8.1 Señales3.8.2 Excepciones3.9 Temporizadores3.10 Servidores y demonios3.11 Servicios POSIX3.11.1 Servicios POSIX para la gestión de procesos3.11.2 Servicios POSIX de gestión de procesos ligeros3.11.3 Servicios POSIX para la planificación de procesos3.11.4 Servicios POSIX para gestión de señales y temporizadores3.12 Servicios de WIN323.12.1 Servicios de WIN32 para la gestión de procesos3.12.2 Servicios de WIN32 para la gestión de procesos ligeros3.12.3 Servicios de planificación en WIN323.12.4 Servicios de WIN32 para el manejo de excepciones3.12.5 Servicios de temporizadores3.13 Puntos a recordar3.14 Lecturas recomendadas3.15 Ejercicios4 Gestión de memoria4.1 Objetivos del sistema de gestión de memoria4.2 Modelo de memoria de un proceso4.2.1 Fases en la generación de un ejecutable4.2.2 Mapa de memoria de un proceso4.2.3 Operaciones sobre regiones4.3 Esquemas de memoria basados en asignación contigua4.4 Intercambio4.5 Memoria virtual4.5.1 Paginación4.5.2 Segmentación4.5.3 Segmentación paginada4.5.4 Paginación por demanda4.5.5 Políticas de reemplazo4.5.6 Políticas de asignación de marcos de página4.5.7 Hiperpaginación4.5.8 Gestión del espacio de swap4.5.9 Operaciones sobre las regiones de un proceso4.6 Archivos proyectados en memoria4.7 Servicios de gestión de memoria4.7.1 Servicios genéricos de memoria4.7.2 Servicios de memoria de POSIX4.7.3 Servicios de memoria de Win324.8 Puntos a recordar4.9 Lecturas recomendadas4.10 Ejercicios5 Comunicación y sincronización de procesos5.1 Procesos concurrentes5.1.1 Tipos de procesos concurrentes5.2 Problemas clásicos de comunicación y sincronización5.2.1 El problema de la sección crítica5.2.2 Problema del productor-consumidor5.2.3 El problema de los lectores-escritores5.2.4 Comunicación cliente-servidor5.3 Mecanismos de comunicación y sincronización5.3.1 Comunicación mediante archivos5.3.2 Tuberías5.3.3 Sincronización mediante señales5.3.4 Semáforos5.3.5 Memoria compartida5.3.6 Mutex y variables condicionales5.4 Paso de mensajes5.5 Aspectos de implementación de los mecanismos de sincronización5.5.1 Implementación de la espera pasiva5.6 Interbloqueos5.7 Servicios POSIX5.7.1 Tuberías5.7.2 Semáforos POSIX5.7.3 Mutex y variables condicionales en POSIX5.7.4 Colas de mensajes en POSIX5.8 Servicios Win325.8.1 Tuberías5.8.2 Secciones críticas5.8.3 Semáforos5.8.4 Mutex y eventos5.9 Puntos a recordar5.10 Lecturas recomendadas5.11 Ejercicios6 Interbloqueos6.1 Los interbloqueos: una historia basada en hechos reales6.2 Los interbloqueos en un sistema informático6.2.1 Tipos de recursos6.3 Un modelo del sistema6.3.1 Representación mediante un gráfico de asignación de recursos6.3.2 Representación matricial6.4 Definición y caracterización del interbloqueo6.4.1 Condición necesaria y suficiente para el interbloqueo6.5 Tratamiento del interbloqueo6.6 Detección y recuperación del interbloqueo6.6.1 Detección del interbloqueo6.6.2 Recuperación del interbloqueo6.7 Prevención del interbloqueo6.7.1 Exclusión mutua6.7.2 Retención y espera6.7.3 Sin expropiación6.7.4 Espera circular6.8 Predicción del interbloqueo6.8.1 Concepto del estado seguro6.8.2 Algoritmos de predicción6.9 Tratamiento del interbloqueo en los sistemas operativos6.10 Puntos a recordar6.11 Lecturas recomendadas6.12 Ejercicios7 Entrada/Salida7.1 Introducción7.2 Caracterización de los dispositivos E/S7.2.1 Conexión de un dispositivo E/S a una computadora7.2.2 Dispositivos conectados por puertos o proyectados en memoria7.2.3 Dispositivos de bloques y de caracteres7.2.4 E/S programada o por interrupciones7.2.5 Mecanismos de incremento de prestaciones7.3 Arquitectura del sistema de entrada/salida7.3.1 Estructura y componentes del sistema E/S7.3.2 Software de E/S7.4 Interfaz de aplicaciones7.5 Almacenamiento secundario7.5.1 Discos7.5.2 El manejador de disco7.5.3 Discos en memoria7.5.4 Fiabilidad y tolerancia a fallos7.6 Almacenamiento terciario7.6.1 Tecnología para el almacenamiento terciario7.6.2 Estructura y componentes de un sistema de almacenamiento terciario7.6.3 Estudio de caso: sistema de almacenamiento de altas prestaciones (HPSS)7.7 El reloj7.7.1 El hardware del reloj7.7.2 El sofware del reloj7.8 El terminal7.8.1 Mmodo de operación del terminal7.8.2 El hardware del terminal7.8.3 El software del terminal7.9 La red7.10 Servicios de entrada/salida7.10.1 Servicios genéricos de entrada/salida7.10.2 Servicios de entrada/salida en POSIX7.10.3 Servicios de entrada/salida en Win327.11 Puntos a recordar7.12 Lecturas recomendadas7.13 Ejercicios8 Gestión de archivos y directorios8.1 Visión de usuario del sistema de archivos8.2 Archivos8.2.1 Concepto de archivo8.2.2 Nombres de archivos8.2.3 Estructura de un archivo8.2.4 Métodos de acceso8.2.5 Semánticas de coutilización8.3 Directorios8.3.1 Concepto de directorio8.3.2 Estructuras de un directorio8.3.3 Nombres jerárquicos8.3.4 Construcción de la jerarquía de directorios8.4 Servicios de archivos y directorios8.4.1 Servicios genéricos para archivos8.4.2 Servicios POSIX para archivos8.4.3 Ejemplo de uso de servicios POSIX para archivos8.4.4 Servicios Win32 para archivos8.4.5 Ejemplo de uso de servicios Win32 para archivos8.4.6 Servicios genéricos de directorios8.4.7 Servicios POSIX de directorios8.4.8 Ejemplo de uso de servicios POSIX para directorios8.4.9 Servicios Win32 para directorios8.4.10 Ejemplo de uso de servicios Win32 para directorios8.5 Sistemas de archivos8.5.1 Estructura del sistema de archivos8.5.2 Otros tipos de sistemas de archivos8.6 El servidor de archivos8.6.1 Estructura del servidor de archivos8.6.2 Estructuras de datos asociadas con la gestión de archivos8.6.3 Mecanismos de asignación y correspondencia de bloques a archivos8.6.4 Mecanismos de gestión de espacio libre8.6.5 Mecanismos de incremento de prestaciones8.6.6 Montado de sistemas de archivos e interpretación de nombres8.6.7 Fiabilidad y recuperación8.6.8 Otros servicios8.7 Puntos a recordar8.8 Lecturas recomendadas8.9 Ejercicios9 Seguridad y protección9.1 Concepto de seguridad y protección9.2 Problemas de seguridad9.2.1 Uso indebido o malicioso de programas9.2.2 Usuarios inexpertos o descuidados9.2.3 Usuarios no autorizados9.2.4 Virus9.2.5 Gusanos9.2.6 Rompedores de sistemas de protección9.2.7 Bombardeo9.3 Políticas de seguridad9.3.1 Política militar9.3.2 Políticas comerciales9.3.3 Modelos de seguridad9.4 Diseño de sistemas operativos seguros9.4.1 Principios de diseño y aspectos de seguridad9.4.2 Técnicas de diseño de sistemas seguros9.4.3 Controles de seguridad externos al sistema operativo9.4.4 Controles de seguridad del sistema operativo9.5 Criptografía9.5.1 Conceptos básicos9.5.2 Sistemas de clave privada y sistemas de clave pública9.6 Clasificaciones de seguridad9.6.1 Clasificación del Departamento de Defensa (DoD) de Estados Unidos9.7 Seguridad y protección en sistemas operativos de propósito general9.7.1 Autenticación de usuarios9.7.2 Palabras clave o contraseñas9.7.3 Dominios de protección9.7.4 Matrices de protección9.7.5 Listas de control de accesos9.7.6 Capacidades9.8 Servicios de protección y seguridad9.8.1 Servicios genéricos9.8.2 Servicios POSIX9.8.3 Ejemplo de uso de los servicios de protección de POSIX9.8.4 Servicios de Win329.8.5 Ejemplo de uso de los servicios de protección de Win329.9 El sistema de seguridad de Windows NT9.10 Kerberos9.11 Puntos a recordar9.12 Lecturas recomendadas9.13 Ejercicios10 Introducción a los sistemas distribuidos10.1 Sistemas distribuidos10.1.1 Características de un sistema distribuido10.1.2 Redes e interconexión10.1.3 Protocolos de comunicación10.2 Sistemas operativos distribuidos10.3 Comunicación de procesos en sistemas distribuidos10.3.1 Sockets10.3.2 Llamadas a procedimientos remotos10.3.3 Comunicación de grupos10.4 Sincronización de procesos en sistemas distribuidos10.4.1 Ordenación de eventos en sistemas distribuidos10.4.2 Exclusión mutua en sistemas distribuidos10.5 Gestión de procesos10.5.1 Asignación de procesos a procesadores10.5.2 Algoritmos de distribución de la carga10.5.3 Planificación de procesos en sistemas distribuidos10.6 Sistemas de archivos distribuidos10.6.1 Nombrado10.6.2 Métodos de acceso remotos10.6.3 Utilización de caché en sistemas de archivos distribuidos10.7 Gestión de memoria en sistemas distribuidos10.8 Puntos a recordar10.9 Lecturas recomendadas10.10 Ejercicios11 Estudio de casos: LINUX11.1 Historia de LINUX11.2 Características y estructura de LINUX11.3 Gestión de procesos11.4 Gestión de memoria11.5 Entrada/salida11.6 Sistema de archivos11.7 Puntos a recordar11.8 Lecturas recomendadas12 Estudio de casos: Windows NT12.1 Introducción12.2 Principios de diseño de Windows NT12.3 Arquitectura de Windows NT12.4 El núcleo de Windows NT12.5 El ejecutivo de Windows NT12.5.1 Gestor de objetos12.5.2 Gestor de procesos12.5.3 Gestor de memoria virtual12.5.4 Llamada a procedimiento local12.5.5 Gestor de entrada/salida12.6 Subsistemas de entorno de ejecución12.7 Sistemas de archivos de Windows NT12.7.1 Sistemas de archivos tipo FAT12.7.2 Sistemas de archivos de alto rendimiento12.7.3 NTFS12.7.4 Comparación de los sistemas de archivos FAT, HPFS y NTFS12.8 El subsistema de seguridad12.8.1 Autenticación de usuarios12.8.2 Listas de control de acceso en Windows NT12.9 Mecanismos para tolerancia a fallos en Windows NT12.10 Puntos a recordar12.11 Lecturas recomendadasA) Comparación de los servicios POSIX y Win32B) Entorno de programación de sistemas operativosC) Trabajos prácticos de sistemas operativosBibliografíaÍndice
Datos TécnicosFirewalls Linux: Guía Avanzada Autor Robert Ziegler
Español - PDF- 18MB -Winrar - 456 Paginas
DescripciónComo usuario de Linux, sabe que asegurar el sistema es algo realmente importante, pero quizá no disponga del tiempo, interés o paciencia para aprender todas las facetas de la seguridad de Linux. Con este libro, no es necesario que sea un experto en seguridad para proteger, de forma eficaz y rápida, la red contra intrusos, ya que ofrece la ayuda de uno de tales expertos.
Además de guiarle a través de los pasos fundamentales del diseño e implementación de un paquete de filtrado de firewall, el autor Bob Zigler, explica cómo deshabilitar los servicios no necesarios, seleccionar servicios que se quieren hacer públicos, así como identificar los servicios locales peligrosos que es necesario proteger detrás de firewall. Ofrece información sobre formas de control de acceso de alto nivel, cuestiones habituales relacionadas con la configuración del servidor y supervisión de la integridad y seguridad del sistema, para detectar sondeos preliminares e intentos de acceso no autorizados antes de que tenga lugar la fatal intrusión.
Datos TécnicosCracking Sin Secretos: Ataque Y Defensa De Software
Español-PDF-52Mb-Alfaomega&Rama
Descripción-Métodos de protección y sus puntos débiles
- Protección contra los programas de depuración
- Protección contra los desensambladores
- Protección contra frogsice
- Protección contra procdump
- Edición del código del programa
- El formato PE y sus herramientas
- Otros programas utilizados por los crackers
- Cracking de entrenamiento
- Información complementaria sobre el cracking
- Sección de referencia
- Conclusión.
Datos técnicosEl Lenguaje de programación C (Kernighan & Ritchie)
Español-PDF-34 Mb
Descripción¿Para qué vale C? ¿No es más útil aprender otros lenguajes propietarios como Visual Basic? ¿No está de moda la orientación a objetos? ... C es sin duda, el lenguaje sobre el que se basan la mayoría de las aplicaciones industriales. Si deseas dedicarte a la informática "en serio", no estaría de más plantearte aprender este fantástico lenguaje de desarrollo. Además, si piensas dedicarte a la programación sobre plataformas Unix (en todas sus variantes; Linux, FreeBSD, Solaris, HPUnix...), es imprescindible que conozcas el lenguaje sobre el que está implementado el núcleo.
Hay multitud de librerías con soporte para ventanas y entornos visuales que están desarrolladas en ANSI C. Resulta mucho más adecuado aprender un lenguaje de programación potente como C y, si hay necesidad de desarrollar alguna vez en otros lenguajes como Visual Basic, será sencillo hacer el cambio en este sentido, pero costará mucho más a la inversa.
No hay que olvidar que muchos lenguajes heredan la sintaxis C. Por ejemplo PHP. Además, el lenguaje de programación orientado a objetos por excelencia (C++), toma de ANSI C todas las características de su sintaxis, utilización de punteros, parámetros de funciones (métodos)...
¿Por qué descargar este libro en concreto? 3 razones de peso:
1. El libro fue escrito por los dos padres de C: Brian W. Kernighan y Dennis M. Ritchie. Deben ser los que mejor conocen el lenguaje, verdad?
2. Trata todos los aspectos del lenguaje ANSI C. La segunda versión del libro se centra en las modificaciones que se hicieron, aprobadas por ANSI.
3. Es conciso. Personalmente estoy cansado de libros enormes, con un montón de páginas donde te ponen millones de ejemplos y hablan de cosas que no vienen a cuento. Este libro es el "Nirvana" de toda publicación técnica. Habla de lo que tiene que hablar, nada más. Sin hacer perder tiempo al lector. En menos de 300 páginas te cuenta absolutamente todo sobre C con el nivel de detalle máximo.
Desde una introducción general, hablando de tipos de datos, expresiones, control de flujo... hasta temas un poco más peliagudos para el programador novel (punteros, punteros a funciones, estructuras, matrices...) se tratan con una claridad asombrosa todos los aspectos de este sorprendente lenguaje. Me parece especialmente acertado el tema de punteros; en menos de 30 páginas se expone con una claridad absoluta el concepto y uso de punteros. También es destacable el acertado resumen de la biblioteca estándar de C y el interfaz con sistemas UNIX.
Como único aspecto negativo del libro es que no lo veo aconsejable para novatos en el mundillo de la programación. Es aconsejable tener conocimientos previos en algún otro lenguaje estructurado (como Pascal, por ejemplo) o mejor todavía, tener unos buenos fundamentos de algoritmia.