Está en la página 1de 140

Unidad 1 Introduccin

2 curso 1er cuatrimestre Curso 2013/14

Qu es la Informtica?
Conjunto de disciplina y tecnologas que trata de la adquisicin, representacin, almacenamiento, tratamiento y transmisin de la informacin.
Estas operaciones se pueden realizar automticamente utilizando mquinas (sistemas) denominadas computadoras.

Segn la RAE
Conjunto de conocimientos cientficos y tcnicas que hacen posible el tratamiento automtico de la informacin por medio de ordenadores.
La informtica no es arreglar ordenadores!

Qu es la Informtica?
mbitos de aplicacin
Procesamiento de datos administrativos Ciencias fsicas e ingeniera Ciencias de la vida y tcnicas Ciencias sociales y del comportamiento Arte y humanidades Ingeniera con ayuda de computadora

Qu es un ordenador?
RAE:
Mquina electrnica dotada de una memoria de gran capacidad y de mtodos de tratamiento de la informacin, capaz de resolver problemas aritmticos y lgicos gracias a la utilizacin automtica de programas registrados en ella.

Wikipedia:
Es una mquina electrnica que recibe y procesa datos para convertirlos en informacin til.

Qu es un ordenador?
Otra definicin:
Mquina capaz de aceptar datos a travs de un medio de entrada, procesarlos automticamente bajo el control de un programa previamente almacenado y proporcionar la informacin resultante a travs de un medio de salida.

Qu es un ordenador?
Elementos
Mquina electrnica Tratamiento de la informacin Operaciones sencillas (aritmticas y lgicas) Programas Entrada / Salida

Ordenador = Mquina tonta pero potente

Tipos de ordenadores
Ordenador personal (PC) Ordenador porttil Mainframe Smartphone Tablet Micro-controlador

Cmo funciona un ordenador?


Funcionamiento guiado por cdigo mquina
Instrucciones simples y mecnicas Se ejecutan de manera secuencial
Ordenador instr1 : n = 0 instr2: n < 10 instr3 : iffalse-goto instr8 instr4 : v = n* 2 instr5 : print v instr6 : n = n + 1 instr7 : goto instr2 instr8 : print Terminado

Cmo funciona el ordenador?


Dos partes bien diferenciadas
Hardware Software
Ordenador
instr1 : n = 0 instr2: n < 10 instr3 : iftrue-goto instr8 instr5 : v = n* 2 instr6 : print v instr4 : n = n + 1 instr7 : goto instr2 instr8 : print Terminado

Aplicacin (ej., Photoshop)

Parte 1

BREVE HISTORIA DE LA INFORMTICA

Antecedentes Era mecnica


El objetivo era la mecanizacin de algoritmos
Qu es un algoritmo?

Ejemplos.
baco Regla de clculo
Operandos y resultados se representan por longitudes ln(ab) = ln(a) + ln(b)

Antecedentes Era mecnica


Telar de Jacquard
Programable con fichas perforadas Diferente tratamiento de las hebras del telar (elevndose o desplazndose) controlado por varillas y tarjetas perforadas (las varillas alineadas con perforacin se elevan)

Antecedentes Era mecnica


Mquina analtica de Babbage
1832, en colaboracin con Ada Lovelace Adicin de elementos de ordenadores modernos (entrada/salida, elementos de operaciones aritmticas, memoria) Era programable
Los datos e instrucciones se introducen mediante tarjetas perforadas

No se construy debido a su complejidad mecnica

Antecedentes Era mecnica


Tabuladora
Creada en 1890 por Hermann Hollerith Usa tarjetas perforadas sobre un conductor:
Los agujeros permiten el cierre de circuitos elctricos por varillas metlicas telescpicas Las perforaciones tienen significado que permiten su clasificacin y contabilidad

Posibilit el censo de EE.UU. (1890-1900) (de 12 aos se pas a 3)

Antecedentes Era Electromecnica


Jugador automtico de ajedrez
Leonardo Torres Quevedo (1914)

Grandes compaas (mquinas registradoras)


IBM (International Business Machines), 1924 BULL, 1931

Primeros ordenadores: Clculo cientfico


ABC, 1935 Uso de lgebra de Boole y sistema binario Slo diseo, antecesor de ENIAC

Ordenadores electrnicos
COLOSSUS (1943)
Debido a una reciente desclasificacin de documentos britnicos de la Segunda Guerra Mundial se ha descubierto que la primera computadora electrnica fue el Colossus Construccin secreta con el objetivo de descifrar los mensajes militares secretos del ejrcito alemn, codificados con la mquina Enigma Con 1500 vlvulas Alan Turing particip en su construccin

Ordenadores electrnicos
1946: primera generacin vlvulas electrnicas de vaco 1959: segunda generacin transistores (IBM 1401) 1965: tercera generacin circuitos integrados, multiproceso (IBM S/360) 1970: cuarta generacin microminiaturizacin de los circuitos electrnico

Primera generacin
ENIAC
Construccin secreta (uso militar: construccin de tablas matemticas para balstica) Programable en hardware (por cambio de conmutadores y conexiones) Utiliza aritmtica decimal Con sus 18000 vlvulas de vaco y 1500 rels pes 30 toneladas y ocup 140 metros cuadrados, 5000 clculos por segundo

Primera generacin
ENIAC: programacin

Primera generacin
ENIAC: reemplazo de un tubo estropeado

Primera generacin
EDVAC (John von Neumann: 1950)
Evolucin de ENIAC. Implementacin de arquitectura von Neumann de los ordenadores actuales:
Estructura de mquina de Babbage (E/S, ALU, Unidad de control y memoria). Aritmtica binaria. Programa almacenado en memoria.

Primera generacin
UNIVAC I (UNIVersal Automatic Computer I) (1951)
Primer ordenador fabricado en serie El primero funcion durante 12 aos ininterrumpidamente (24 horas al da)

Segunda generacin
Uso del transistor
Dispositivo similar a la vlvula de vacio pero
Slido Ms fcil de fabricar Menor consumo y calor disipado Ms pequeo Ms duradero

Tercera generacin
Circuitos integrados
En una placa de silicio se construye un circuito con una funcin electrnica compleja: Circuitos mejores (coste, complejidad y fiabilidad) Aumento de velocidad (reduccin de espacio) Reduccin de consumo Uso de circuitos integrados tambin en las memorias

Tercera generacin
Ley de Moore
El nmero de transistores por unidad de superficie en circuitos integrados se duplicaba cada ao.
Ahora cada 18 meses, hasta 2017

Tercera generacin
Grandes computadores y pequeos terminales
Un ordenador central da servicio a terminales locales o remotos Tcnicas de comparticin de recursos y procesamiento concurrente Tcnica de memoria virtual, el usuario cree que hay ms memoria

IBM 360: (desde 1965) familias de ordenadores


Con diferente capacidad y prestaciones Ejemplo: IBM 360

PDP: (desde 1963) miniordenadores


Bajo precio, reducido tamao y buenas prestaciones, por aprovechamiento de circuitos integrados

Cuarta generacin
Se desarrolla el microprocesador Se colocan ms circuitos dentro de un "chip"
LSI - Large Scale Integration circuit VLSI - Very Large Scale Integration circuit

Cada "chip" puede hacer diferentes tareas


Un "chip" sencillo actualmente contiene la unidad de control y la unidad aritmtica/lgica. La memoria primaria, es operada por otros "chips"

Se desarrollan las microcomputadoras: computadoras personales o PC Se desarrollan las supercomputadoras

Cuarta generacin
Primer ordenador personal.
Lisa: Primer ordenador personal, con ratn e interfaz grfica, fabricado por Apple

Parte 2

HARDWARE

Hardware
La palabra hardware se refiere a las partes fsicas del ordenador.
En castellano, soporte fsico

Definicin:
Conjunto de circuitos electrnicos, cables, armarios, dispositivos electromagnticos, y otros elementos fsicos que forman la computadora.

Partes de un ordenador personal (PC)


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Monitor Placa base Procesador (CPU) Puertos ATA Memoria principal (RAM) Placas de expansin Fuente de alimentacin DVD Disco duro, Unidad SSD Teclado Ratn

Estructura funcional del ordenador


Arquitectura Von Neumann
Memoria (RAM)
rea de datos
10010100100101010 10010010001000001 10010100100101010 10010010001000001

CPU

Registros

Memoria cache

rea de cdigo
10010100100101010 10010010001000001 1001010010010

ALU

Unidad de control

Sistemas de Entrada / Salida

Estructura funcional del ordenador


ALU (Unidad Aritmtico-Lgica)
Lleva a cabo las operaciones elementales.
Operaciones aritmticas (suma, resta, ...) Operaciones lgicas (Y, O, NO) Operaciones de comparacin o relacionales.

Unidad de control
Lee la instruccin siguiente y la decodifica Lee los valores de la memoria o de los registros Pide a la ALU que realice la operacin con los datos Guarda los valores en memoria o en los registros Vuelve a empezar

Estructura funcional de un ordenador


El cdigo mquina es el conjunto de instrucciones que es capaz de ejecutar una CPU.
Cada familia de CPUs tiene un juego de instrucciones diferentes, y por ello no suelen ser compatibles

Estructura funcional del ordenador


Memoria RAM
Secuencia de celdas que almacenan una unidad de informacin (1 bit) Se organiza en celdas de n bits (tamao de palabra) Almacenan tanto los datos como las instrucciones durante la ejecucin de un programa Para que un programa se ejecute debe estar cargado en la memoria RAM No es persistente (al apagar se borra)

Estructura funcional
Tamao de palabra
Conjunto de bits que el procesador utiliza como unidad Elementos que dependen
Tamao de los registros Tamao de las instrucciones Tamao mximo de la memoria RAM

Estructura funcional del ordenador


Memoria auxiliar o masiva (normalmente disco duro):
La memoria principal es muy rpida, pero no tiene gran capacidad de almacenamiento Para guardar informacin masivamente se utilizan otros dispositivos: discos duros, DVDs, discos SSD Son lentos, pero con una gran capacidad de almacenamiento
Aunque los discos SSD son bastante rpidos

Estructura funcional de un ordenador


Unidad de entrada:
Dispositivo por donde se introducen en el ordenador los datos e instrucciones
Ejemplos: Teclado, ratn, escner, lectora de tarjetas de crdito ...

Unidad de salida:
Dispositivo por donde se obtienen los resultados de los programas ejecutados en la computadora
Ejemplos: Pantalla, impresora, altavoz ...

Funcionamiento del ordenador


1. Programa escrito en lenguaje de mquina 2. Ejecutar un programa en lenguaje de mquina:
2.1. Introducir el programa en memoria 2.2. Sistema operativo pide al ordenador pasar el control a la posicin i-esima de memoria

3. Unidad de control repite sucesivamente:


Decodificar siguiente instruccin Leer datos de la instruccin Ejecutar instruccin

Funcionamiento del ordenador


El reloj de la CPU
La CPU est dirigida por un reloj Cada pulso del reloj es un ciclo En cada ciclo la CPU hace una operacin

Una instruccin puede tardar uno o ms ciclos La velocidad de la CPU se puede medir en trminos de la frecuencia del reloj, en Herzios
Ej., 2.3 Ghz

Caractersticas avanzadas en CPUs


Pipelining
Tcnica para aumentar el rendimiento Empezar a ejecutar una instruccin tan pronto como sea posible Funciona porque una instruccin normalmente requiere ms de un ciclo

Caractersticas avanzadas en CPUs


Multi-threading
Tcnica para aumentar el rendimiento Ejecutar varios hilos* a la vez con un sola CPU Mientras una instruccin est esperando para recibir un dato, se inicia la ejecucin de otra.
Esto sucede normalmente cuando el dato no est en la memoria cache y hay que buscarlo en la memoria RAM

No siempre mejor el rendimiento, a veces depende de la aplicacin concreta


* Un hilo puede verse como un programa (o parte de un programa) que se ejecuta al mismo tiempo que otros programas (o partes del mismo programa)

Caractersticas avanzadas en CPUs


Procesador multi-core
Tcnica para aumentar el rendimiento El procesador tiene ms de una CPU Se trata de explotar el paralelismo Idealmente multiplica el rendimiento por el nmero de procesadores
En la prctica no es as, depende de la aplicacin concreta

Familias de procesadores
Intel
8086, 80286: 16bits 80386, 80486: 32bits Pentium I, Pentium II, Pentium III: 32bits i3, i5, i7: 64bits

ARM
Muy usados en los dispositivos mviles Poco consumo energtico

Potencia de un ordenador
Factores importantes para determinar la potencia de un ordenador:
Tamao de palabra Capacidad de la memoria Frecuencia de reloj Ancho de banda

Potencia de un ordenador
Tamao de palabra
Unidad mnima con la que opera el ordenador Puede permitir operaciones ms complejas en un solo ciclo

Capacidad de la memoria
Memoria cache
Permite acceder ms rpido a los datos ms frecuentes

Memoria RAM
Ms memoria RAM evita paginacin

Potencia de un ordenador
Frecuencia de reloj
Si la frecuencia es alta, indica que la CPU puede ejecutar ms ciclos (operaciones) por segundo Se mide en Ghz (gigaherzios)

Ancho de banda
Indica la cantidad de informacin que se puede transferir por segundo entre una unidad y otra. Por ejemplo, decir que el ancho de banda entre la memoria y el procesador es de 133 MB/s, quiere decir que en 1 segundo se pueden transferir 133 MB.

Potencia de un ordenador
Comparar caractersticas
Ej., http://cpuboss.com/cpus/Intel-Pentium2020M-vs-Intel-Core-i3-3120M Benchmarks

Parte 3

BITS & BYTES

Bits & Bytes Introduccin


Los ordenadores slo comprenden el lenguaje mquina:
Cdigo binario: secuencias de 0s y 1s (bits) codifican toda la informacin Fcil de implementar con dispositivos electrnicos:
Tensin alta significa un 1 Tensin baja significa un 0

Toda la informacin (datos y programas) codificada en forma de bits Aritmtica en base 2

Bits & Bytes Introduccin


Bit: Unidad mnima de informacin
Se agrupan en paquetes

Byte: Grupo de 8 bits


Ej., 0 1 0 1 0 0 1 0
Nmero de bits Posibles valores

1 2 3

0 1 00 01 10 11 000 001 010 011 100 101 110 111

Pregunta
Cuntos valores puede almacenar un byte?

Acceso: 568056

Contar en binario
Conteo en base 10
09 10 19 20 29 90 ... 99 100 ... 109

Conteo en binario
01 10 11 100 ... 101 110 111

Contar en binario
Aadir un bit dobla el nmero de patrones
Bits 1 2 3 4 5 6 Valores 2 4 8 16 32 64

7
8

128
256

Matemticamente:
n bits permiten representar 2 valores

Contar en binario
Estrategia
Cada dgito tiene un peso
En base 10, cada dgito tiene 10 veces ms peso que su vecino de la derecha En base 2, cada dgito tiene 2 veces ms peso que su vecino de la derecha

Multiplicar cada dgito por su peso, e ir sumando los valores obtenidos para cada dgito

Digito1 Base0 + Digito2 Base1 + .. + Digiton Basen-1

Contar en binario
Binario Decimal

Pregunta
Qu nmero decimal corresponde al nmero binario 110010100? Bits Valores
1 2 3 4 5 2 4 8 16 32

6
Digito1 Base0 + Digito2 Base1 + .. + Digiton Basen-1 7 8

64
128 256

Acceso: 568056

Pregunta
Qu nmero decimal corresponde al nmero binario 110010100?

Pregunta
Dados 7 bits, cul es el nmero mximo de valores que se pueden representar?

Acceso: 568056

Pregunta
Cul es el nmero natural ms grande que se puede representar con un byte?

Acceso: 568056

Operaciones con bits


Suma
Igual que la suma decimal, pero el mximo es 1

Operaciones con bits


Operaciones lgicas
NOT
Corresponde a la negacin lgica Invierte el valor del bit

AND
Corresponde a la conjuncin lgica Dados dos bits, B1 y B2 Tiene como resultado 1 si ambos son 1

OR
Corresponde a la disyuncin lgica Dados dos bits, B1 y B2 Tiene como resultado 1 si al menos uno de ellos es 1

Operaciones con bits


NOT Bit1
Bit1 1 0 Resultado 0 1

Bit1 AND Bit2 Bit1 1 1 Bit2 1 0 Resultado 1 0

Bit1 OR Bit2 Bit1 1 1 Bit2 1 0 Resultado 1 1

0 0

1 0

0 0

0 0

1 0

1 0

Pregunta
Si Bit1 = 1 y Bit2 = 1, cul es el resultado de la operacin: Bit1 AND (NOT Bit2) ?

Acceso: 568056

Pregunta
Si Bit1 = 1 y Bit2 = 0, cul es el resultado de la operacin: Bit2 OR (Bit1 AND (NOT Bit2)) ?

Acceso: 568056

Codificacin de la informacin
Codificacin de caracteres
Permite convertir un carcter de un lenguaje natural en un smbolo de otro sistema de representacin (ej., bits) Necesaria para manejar datos alfanumricos

Normas de codificacin
ASCII UTF-8 ISO 8859-1

Pregunta
En la codificacin ASCII el nmero 9 se representa con 1001 porque ese es su valor en binario.
Verdadero Falso

Mltiplos
1 Kilobyte (o KB) = 210 Bytes = 1024 Bytes 1 Megabyte (o MB) = 220 Bytes = 1.048.576 Bytes 1 Gigabyte (o GB) = 230 Bytes = 1.073.741.824 Bytes 1 Terabyte (o TB) = 240 Bytes 1 Petabyte (o PB) = 250 Bytes 1 Exabyte (o EB) = 260 Bytes

Mltiplos
Kilobyte
Texto, un byte por letra (ms o menos) E-mail de una pgina: 2 KB

Megabyte
Audio en MP3: 1 MB por minuto CD de audio: 700 MB
Por qu caben pocas canciones?

Imagen digital de alta calidad: 5 MB

Mltiplos
Megabyte
Memoria RAM: 4 GB, 8 GB, etc. Disco duro: 750 GB Flash drive: 16 GB

Terabyte
Disco duro: 2 TB

Parte 4

SOFTWARE

Software
Conjunto de programas (del sistema operativo, de utilidades y de los usuarios) ejecutables por el ordenador.

Lenguajes de programacin
La CPU ejecuta instrucciones muy simples codificadas como 0s y 1s
Estas instrucciones son el cdigo mquina

Los programadores escriben en cdigo mquina utilizando lenguaje ensamblador


El ensamblador es un lenguaje de bajo nivel
Significa que tiene construcciones abstractas

Es complicado escribir cdigo ensamblador


Requiere conocimientos profundos de la CPU

Lenguajes de programacin
Lenguajes de alto nivel
Permite expresar soluciones con una sintaxis ms cercana al programador
Ofrece construcciones que abstraen de los detalles de la mquina

Construcciones tpicas
Condicionales: if valor-verdadero then accin Bucle: while (valor-verdadero) do accin Llamadas a funciones: enviar_mensaje(hola)

Lenguajes de programacin
Ejemplos
C / C++ Java Javascript Ruby

Lenguajes de programacin
Pero si el ordenador slo entiende lenguaje mquina
Compiladores Intrpretes

Lenguajes de programacin
Compilador
Programa que traduce un lenguaje de alto nivel a lenguaje mquina
Ejemplo. C/C++
n=0 while ( n < 10 ) print n * 2 n = n +1 end print Terminado instr1 : n = 0 instr2: n < 10 instr3 : iffalse-goto instr8 instr4 : v = n* 2 instr5 : print v instr6 : n = n + 1 instr7 : goto instr2 instr8 : print Terminado

Compilador

Lenguajes de programacin
Compiladores.
Ventajas.
Produce cdigo optimizado para un determinado tipo de CPU (arquitectura de la CPU, ej., x86-64bits)

Desventajas
Cada vez que se hace un cambio en el programa hay que volver a compilar Hay que crear tantos ejecutables como arquitecturas de CPU se quieran soportar

Lenguajes de programacin
Intrpretes
Es un programa que se encarga de ejecutar otros programas escritos en cierto lenguaje
Ejemplo. Javascript en el navegador

Ventajas
Es suficiente un intrprete para cada arquitectura
El interprete emula el trabajo de la CPU

No hace falta recompilar, con el cdigo fuente es suficiente

Desventajas
Es menos eficiente No todo el mundo quiere mostrar el cdigo fuente

Lenguaje de programacin
Ejemplo de cdigo
Lenguaje de programacin Java Lenguaje de programacin Ruby Elementos bsicos
Asignaciones Operaciones Sentencias de control: condicional y bucle

Probar lenguajes
Ruby: http://tryruby.org Varios: http://repl.it Tutorial interactivo: http://www.codecademy.com/

Tipos de Software
Software de sistema
Sistemas operativos Controladores de dispositivo Utilidades

Software de programacin
Compiladores, interpretes Entornos de programacin

Software de aplicacin
Aplicaciones ofimticas Juegos Diseo asistido, etc.

Parte 5

SISTEMA OPERATIVOS

Por qu surgen los SO?


En un principio slo exista el hardware del computador Primeros computadores: Grandes mquinas que se operaban desde una consola
El programador escriba un programa y lo controlaba directamente El programa se cargaba manualmente en la memoria Se pulsaban los botones adecuados para establecer la direccin de inicio y comenzar la ejecucin del programa El programador-operador poda supervisar la ejecucin y corregir errores

Por qu surgen los SO?


Con el tiempo:
Se desarrollaron software y hardware adicionales
Lectores de tarjetas, impresoras de lneas y cintas magnticas

Se disearon ensambladores para facilitar las tareas de programacin, y se crearon bibliotecas de funciones comunes

Se poda necesitar un considerable tiempo de operacin para realizar un trabajo

Sistema Operativo
Concepto de Sistema Operativo (SO):
Programa que acta como intermediario entre el usuario y el hardware de un computador

Propsito
Proporcionar un entorno en el cual el usuario pueda ejecutar programas Crea una capa de abstraccin (para el programador) sobre el hardware. El SO trata de administrar el hardware de manera eficiente. Gestionar el sistema de archivos

Sistemas Operativo
Definicin
Programa o conjunto de programas que facilitan el uso de los recursos hardware a usuarios y programas y gestionan los recursos para que se usen de una manera eficiente.

Los sistemas operativos y la arquitectura del computador tienen una gran influencia mutua
Los sistemas operativos se desarrollan para facilitar el uso del hardware

Sistema Operativo
Esquema de funcionamiento
El usuario se comunica con las aplicaciones
El SO proporciona comandos e interfaz de usuario (servicios para usuarios)

Las aplicaciones usan los servicios del SO (ej., leer fichero) El SO gestiona el hardware

Servicios bsicos
Gestin de los recursos hardware bsicos (memoria, tiempo de CPU, etc.) Interfaz de usuario Interfaz del programador Sistema de ficheros Gestin de perifricos de entrada/salida Arranque del ordenador (boot) Servicios de red (ej., soporte TCP/IP) Sistemas de seguridad Programas de utilidad

Conceptos bsicos Procesos


Un proceso es un programa en ejecucin.
Sin embargo, un programa (ej., firefox.exe) puede requerir la ejecucin de varios procesos.

El SO gestiona procesos, asignndoles recursos de manera equitativa


Al iniciar carga el proceso en memoria, y le asigna una cantidad. Asigna tiempo de CPU equitativamente (multitarea)

Administrador de procesos
Windows: Taskmgr.exe Linux: top

Conceptos bsicos Fichero


Un fichero es una coleccin de informacin relacionada
Es una unidad lgica de almacenamiento

Los bytes de un fichero pueden corresponder un programa, una imagen, un texto, etc. El sistema de ficheros proporciona una correspondencia entre la localizacin fsica del fichero y el nombre que se utiliza para referirse a l.

Conceptos bsicos Memoria


El SO se encarga de asignar memoria a los procesos al empezar su ejecucin
Si el proceso requiere ms memoria (ej., para cargar una imagen) se la asigna Qu ocurre si se excede la RAM disponible?

Memoria virtual (paginada)


Tcnica que permite utilizar ms memoria de la disponible, usando el disco duro para intercambiar procesos entre RAM y disco duro

Conceptos bsicos Ncleo


El ncleo o kernel, es la parte central del SO, que se encarga de la gestin del hardware y la asignacin de recursos. Ofrece servicios al programador para poder construir aplicaciones.

Interfaces de usuario
Interfaces de ventanas
Windows GNOME KDE XFCE

Interfaces de comandos
MS-DOS Bash

Sistema de ficheros
Tipos de sistemas de ficheros
FAT 16 y FAT 32
Desarrollado para MS-DOS Tamao mximo de archivo: 2 GB y 4 GB Tamao mximo de un disco: 2 GB y 2 TB

NTFS
Disponible en Windows XP y posteriores

Ext 3 y Ext 4
Usados normalmente en Linux

Sistema de ficheros
Estructura de directorios
Organizacin jerrquica de ficheros Un directorio puede contener
Ficheros Otros directorios

Un fichero es un elemento terminal

El sistema de ficheros trata ficheros y directorios de manera homognea (en muchas ocasiones)

Sistema de ficheros

Sistema de ficheros
Propiedades de un fichero (o directorio)
Nombre y extensin Tamao Fecha de creacin Fecha de modificacin Fecha del ltimo uso Permisos del fichero
Quin puede hacer qu con el fichero?

Sistema de ficheros Diferencias Linux y Windows


Linux
Raz comn (siempre /) Separador / Sensible a maysculas y minsculas Sistema de permisos avanzado

Windows
Cada unidad una raz (ej., C: ) Separador \ Insensible a maysculas y minsculas Por defecto, no sistema de permisos

Sistema de ficheros Rutas


Una ruta es una secuencia de etapas (directorios) que hay que recorrer para alcanzar determinado fichero
Directorio actual Directorio anterior Directorio raz Segmento . .. / (\ en Windows) dir/dir-o-fichero

Sistema de ficheros - Rutas


Ejemplo Ruta absoluta
C:\Archivos de programa\Emule C:\Archivos de programa\Emule\emule.exe /home/jesus/Documentos/transparencias.pdf

Ejemplo Ruta relativa


..\Documentos\transparencias.pdf ../Documentos/transparencias.pdf

Mquinas Virtuales (VM)


Software que simula a una computadora y puede ejecutar programas como si fuese una computadora real.
Los programas que se ejecutan estn limitados por los recursos y abstracciones proporcionados por la VM. Estos procesos no pueden escaparse de esta "computadora virtual".

Usos
Probar sistemas operativos (ej., Linux) Dividir un ordenador en otros ms limitados

Mquinas Virtuales
VMWare
De pago

Virtual Box
https://www.virtualbox.org/ Libre y gratuita

Distribuciones Linux
Ubuntu
http://www.ubuntu.com/desktop

Fedora
http://fedoraproject.org/es/

Damn Small Linux


Versin reducida para dispositivos con poca capacidad

Backtrack
Especializada en anlisis de redes

Parte 6

SOFTWARE LIBRE

Software libre
Software que respeta la libertad del usuario Breve historia
En los 60-70 era comn compartir el software En los aos 80 comenz el boom del software priv. Problema con una impresora Xerox sin cdigo fuente 1984, proyecto GNU

Software libre
Libertad 0
Usar

Libertad 1
Adaptar

Libertad 2
Distribuir

Libertad 3
Publicar mejoras

Software libre

Software libre
Licencias libres
Copyright es implcito Explicitan qu esta permitido Copyleft

Tipos de licencias
Licencias permisivas
Derechos de la persona que recibe el programa

Licencias fuertes
Derechos de la persona que recibe la redistribucin

Software libre
GNU GPL
Creada por la FSF Licencia ms usada (ej., Linux kernel) copyleft, all rights reversed Permite
Redistribucin en forma binaria, pero dar acceso al cdigo fuente es obligatorio Solo es posible integrar con cdigo con licencia compatible (ej., BSD, que no contradice ninguna libertad) Viral effect

Un programa bajo GPL nunca ser privativo

Software libre
GNU GPL
El propietario es ahora el poseedor del software Si el cdigo tiene elementos patentados
Hace falta un licencia de uso gratuita

GPL v3
Prohibe el bloqueo hardware de cdigo modificado Ej. TiVo Seguridad vs. libertad

Software libre
Licencia BSD
Surge en Berkeley (Software Distribution) El contribuyente ya ha pagado por el software Problema
No garantiza el mantenimiento de libertades de las posibles redistribuciones

Incluye un disclaimer

Software libre
Licencia BSD
Licencia permisiva Obligacin de dar crdito a los autores Permite redistribucin binaria con/sin cdigo fuente Cambios en el original permitidos Integracin sin restricciones Licencias parecidas
X-Window, Tcl/Tk, Apache

Software libre
GNU LGPL
Permite que los programas libres se usen con programas privativos Pensado para libreras

Affero GPL
Considera servicios via web, que no se considera redistribucin

Licencias duales
Ej., KDE y Trolltech/QT

Pregunta
El software libre siempre es gratuito,
VERDADERO FALSO

Creative Commons
Organizacin sin nimo de lucro
Fundada por Lawrence Lessig Profesor de derecho de Stanford Desarrolla planes para ayudar a reducir las barreras legales de la creatividad por medio de nueva legislacin y de las nuevas tecnologas.

Creative Commons
4 condiciones
Combinacin 6 licencias

Creative Commons
Reconocimiento (BY)
Copiar, distribuir, exhibir y obras derivadas Requiere reconocer y citar la obra original

No comercial (NC)
Permite fines no comerciales

Sin obras derivadas (ND) Compartir bajo la misma licencia (SA)

Creative Commons
Reconocimiento (CC-BY) Reconocimiento Compartir bajo la misma licencia (CC-BYSA) Reconocimiento Sin Obras Derivadas (CC-BY-ND) Reconocimiento No Comercial (CC-BY-NC) Reconocimiento No Comercial- Compartir bajo la misma licencia (CC-BY-NC-SA) Reconocimiento No Comercial- Sin Obras Derivadas (CCBY-NC-ND) Todas exigen la condicin de reconocimiento. Condicin de compartir bajo la misma licencia y la de sin obras derivadas son incompatibles entre s, y se permite no incluir a ninguna de las dos.

Creative Commons Demo


Generar tu propia licencia
http://es.creativecommons.org/

Ejemplos de obras con Creative Commons


http://search.creativecommons.org

Stone Soup

Parte 6

TECNOLOGAS DE INTERNET

Internet
Internet es una red mundial que interconecta millones de dispositivos de diferente naturaleza, como son servidores, ordenadores personales, mviles, y en general cualquier dispositivo con capacidades de gestin de red. Red de redes
La arquitectura de Internet est pensado para conectar redes heterogneas Los dispositivos se conectan a una red, y a partir de ah pueden comunicarse con el resto

Internet
Acuerdo en los protocolos de comunicacin
Diferentes protocolos para diferentes tipos de tareas a la hora de realizar la comunicacin

Protocolo
Define el formato y el orden de los mensajes intercambiados entre dos o ms entidades que se estn comunicado, y las acciones que se llevan a cabo al enviar y recibir los mensajes.

Internet
Organizacin de los protocolos
Nivel superior hace uso del inmediatamente inferior
Capa de aplicacin

HTTP FTP SMTP SSH

DNS POP3

Capa de transporte Capa de red


Capa fsica

TCP
IP

UDP

ICMP DHCP

Depende del tipo de red (ej., Ethernet, WiFi)

Internet
Parte pblica
Red global que conecta otras redes, bien pblicas o privadas

Parte privada
Intranet Redes no accesibles sin autorizacin

The World Wide Web (WWW)


Es un sistema de documentos enlazados mediante hipertexto a travs de Internet
Es un tipo particular de aplicacin construida sobre Internet

Elementos clave
Arquitectura:
Cliente Servidor Recursos

Protocolo de aplicacin: HTTP Formato de documentos: HTML

WWW Arquitectura
Arquitectura cliente servidor
Cliente es un programa que realiza una peticin para obtener un recurso Servidor es un programa que responde a las peticiones de los clientes Cliente y servidor posiblemente residen en mquinas distintas

WWW Arquitectura
Los recursos estn identificados por una URL
URL: Uniform Resource Locator
Ej., http nmero opcional

protocolo://host:puerto/ruta
Dominio o IP (ej., www.google.com, 173.194.41.216)

Ejemplos
http://en.wikipedia.org/wiki/Computing http://62.34.42.23:8080/foto.jpg

WWW Protocolo HTTP


Hypertext Transfer Protocol (HTTP)
Protocolo cliente-servidor a nivel de aplicacin
Define cmo los clientes web (ej., navegador web) piden recursos (ej., pgina web) a un servidor web y cmo los servidores transfieren esos recursos al cliente.

Tiene un formato de mensajes Tiene varios tipos de peticiones

WWW HTTP
Formato de mensajes
GET /imagenes/spiderman HTTP/1.1 User-agent: Mozilla/4.0 Accept: image/jpeg Accept-language:es

Peticin

HTTP/1.1 200 OK Server: Apache/1.3.0 (Unix) Last-Modified: 22 Jun 2013 09:23 Content-Length: 6821 Content-Type: text/html datos datos datos

Respuesta

WWW HTTP
Tipos de peticiones (las ms importantes)
GET : Pide un recurso POST : Incluye datos en la peticin

User agent
Quin hace la peticin (ej., un navegador) Sirve para ajustar el contenido

WWW HTTP
Status
200 OK 404 Not Found
El recurso no est disponible

403 Forbidden
No se tienen permisos suficientes para acceder al recurso

400 Bad Request


La peticin no est bien formada

WWW HTTP
Cookies
HTTP es un protocolo sin estado
Un servidor no puede recordar sus clientes Dificulta recordar claves, guardar preferencias, etc.

Una cookie es una pequea cantidad de datos que el servidor almacena en el cliente.
El cliente tiene la responsabilidad de almacenar la cookie y devolver sin modificar en cada peticin Tienen una fecha de expiracin

WWW HTTP
Cookies
1. El cliente hace una peticin a un servidor 2. El servidor responde con el recurso y la cookie 3. El cliente devuelve la cookie al servidor en cada nueva peticin
1. Peticin

2. 3.

Respuesta

+ Cookie Peticin + Cookie

WWW DNS
Motivacin
Identificar un host mediante su direccin IP no es sencillo para un humano Sera mejor asignar nombres legibles los host

DNS (Domain Name Server) es un servicio que asocia nombres a IPs


Es una base de datos distribuida, organizada de forma jerarquica

WWW DNS
Ejemplo de resolucin
1. 2. 3. 4. Buscar en DNS del ISP Buscar en DNS superior Redirigir a otro DNS Devolver el resultado (4, 5 y 6)

Servidor de nombres raz

5.

2.

3.

4.

Servidor de nombres local 1. 6.

Servidor de nombres autorizado

Host que invoca al servicio

Protocolos TCP/IP
Protocolo TCP
Es un protocolo de transporte Asegura la recepcin de mensajes entre dos entidades
La capa de aplicacin hace uso de TCP para enviar mensajes

Hace uso del protocolo IP para encontrar el camino entre las dos entidades

Protocolos TCP/IP
Protocolo IP
Protocolo de red Se encarga de enrutar mensajes entre mquinas Hace uso de paquetes Capaz de trabajar sobre diferentes tipos de redes Direccin IP para identificar un host

Utilidades
Comprobar que una mquina es alcanzable
ping

Comprobar IP en Windows
ipconfig

Comprobar IP en Linux
ifconfig

Otros protocolos
SMTP
Envo de correo electrnico

POP3 e IMAP
Recepcin de correo electrnico

DHCP
Asignacin de IPs a equipos

HTML
HyperText Markup Language
Lenguaje utilizado para crear pginas web Lenguaje de marcado: basado en etiquetas
Las etiquetas se anidan
<body> <h1>Mi pgina</h1> <p>Un prrafo</p> <body/>

Hay algunas etiquetas que no tienen contenido


<img src=http://miweb/imagen.jpg />

También podría gustarte