sábado, 8 de diciembre de 2012

ESQUEMA TEMA 3: SOFTWARE


1.          Definiciones

1.1.     Programa informático
El programa realiza una o varias funciones dentro de la computadora. Sin los programas no funcionarían las maquinas. A todos los programas juntos se les llama software y son la parte lógica del ordenador.

Ejecución
Una vez escritos los programas pueden ser ejecutados de diversas formas.
·         Con otro programa llamado interprete que hace eso, lee e interpreta el programa.
·         Con programas compiladores, que traducen el código fuente a código de máquina.

Programas que se auto modifican
En ocasiones, durante su ejecución los programas se modifican, así que son continuamente reinterpretados.

Ejecución y almacenamiento de los programas
Un programa se suele almacenar en la memoria no volátil, a la hora de ejecutarlo pasa a la memoria RAM, controlándose por el sistema operativo, que accede directamente al procesador. El programa se lee instrucción por instrucción, puede dejar de ser leído por un erro en el software o el hardware.

Programas empotrados en hardware
Los dispositivos con arquitectura de ordenador necesitas de un software para iniciarse y para la organización de archivos.

Programas cargados manualmente
 Inicialmente los programas se cargaban mediante interruptores.

Programas generados automáticamente
Estos programas están generados a partir de plantillas.

Ejecución simultanea
Los ordenadores actuales pueden utilizar varios programas a la vez a través del planificador de procesos.

Categorías funcionales
Los programas se dividen en dos categorías, de sistema y de aplicación, para un mejor aprovechamiento de ambas categorías. Si un software no es de aplicación, es de sistema.

Clasificación del software
·         Software de sistema
·         Software de aplicación
·         Software de programación

Procesos de creación de software
Dependiendo del software que se quiera crear, esto será más o menos complejo, en cualquier caso para crear un software se ha de especificar cada una de las funciones del mismo punto por punto, si falta alguno el software no funcionará

Modelos de proceso
·         Cascada: es el más habitual, los puntos de cada etapa del software se llevan a cabo por orden uno tras otro, del más general al más específico.
·         Modelo evolutivo: el software va cambiando a medida que se usa para adaptarse al usuario.
·         Modelo interactivo incremental: se lee cada punto y se separa en iniciales intermedios y finales.
·         Modelo en espiral: en este modelo nos imaginamos una espiral, la espiral se divide en diferentes apartados, los cuales representan la función que tiene el software en relación a diferentes parámetros.

Codificación de software
Esta parte de la creación del software consiste en pasar del lenguaje de creación al lenguaje del código fuente.

Pruebas (unitarias y de integración)
Las unitarias se hacen en a las pequeñas funciones del software y las de integración que se realizan tras haber realizado con éxito las unitarias y se llevan a cabo de forma generalizada sobre el software.

Instalación y paso a producción
Este paso se realiza una vez hecho el software, en el se instala y configura sobre un ordenador. Una vez instalado comienza a ser utilizado por el usuario, este se denomina paso de producción.

Mantenimiento
El software debe ser actualizado periódicamente y se debe realizar una revisión de sus funciones.

2.                     Tipos de software

2.1.              Software libre
En inglés  se le denomina “free” significa en este caso libre, aunque suele confundirse con gratuito, ya que es el otro significado de esta palabra. Este software tiene la peculiaridad que puedes acceder a su código fuente y modificarlo.

Historia
 Fue creado entre los años 70 y 80 como denuncia al software de código cerrado

Tipos de licencia
El software libre no están exentos de licencias, según la licencia del mismo, al descargarlo te comprometes a ciertas condiciones, estas licencias son:
·          GPL
·          AGPL
.          BSD
·          MPL y derivadas
·          Copileft

2.2. Software propietario
En este tipo de software, el usuario no puede modificar o redistribuir el programa en cuestión. Para hacerlo necesitaría el permiso de la compañía que lo creó, por lo que en realidad, tan solo puede ejecutarlo, siempre y cuando lo haya comprado.
Hasta 1960, nadie se había planteado este tipo de software, y en 1972 se empezó a poner en marcha.
Así, podemos decir que hay varios tipos de software no libre, que serían: el propietario, el privativo, el no libre, el de código cerrado, y el privado.
A pesar del dilema moral que presenta este tipo de software, las compañías están lejos de plantearse cambiar las tornas, ya que el beneficio que obtienen las ha hecho las empresas más ricas del mundo (como ejemplo, podemos hablar de Bill Gates, dueño de Microsoft y hombre más rico del planeta).

3. Sistemas Operativos
Es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario o el usuario mismo para utilizar un ordenador. Gestiona, coordina las actividades y lleva a cabo el intercambio de los recursos, y actúa como intermediario para las aplicaciones que se ejecutan. Es comúnmente conocido como núcleo o “Kernel” de la máquina.
Se encuentran en la mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar (teléfonos móviles, reproductores de DVD, radios, etc.).
Su origen data de 1950, en el que aún eran máquinas que ocupaban fábricas enteras y debían ser dirigidas por un profesional. Hoy en día, la máquina suele ser capaz incluso de corregir los errores o problemas que le surjan sobre la marcha ella misma.
Componentes de un sistema operativo

 - Componentes del Sistema Operativo.

·         Gestión de procesos
Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos ydispositivos de E/S.

·         Gestión de la memoria principal
La Memoria es una gran tabla de palabras o bytes en la que se referencian cada una mediante una dirección única. Este almacén de datos de rápido acceso es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema.

Gestión del almacenamiento secundario
Es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal.

·       El sistema de E/S
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos.

·         Sistema de archivos
Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas y datos tales como imágenes, textos, información de bases de datos, etc.

·         Sistemas de protección
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema.

·         Sistema de comunicaciones
Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

·         Programas de sistema
Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas.

·         Gestor de recursos

 - Características
·         Administración de tareas
Ø    Monotarea: Puede ejecutar solo un proceso en un momento dado. Una vez que empieza a ejecutarlo, continuará haciéndolo hasta su finalización y/o interrupción.
Ø    Multitarea: Ejecuta varios procesos al mismo tiempo. Asigna los recursos disponibles de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez.

·         Administración de usuarios
Ø Monousuario: Permite ejecutar solo los programas de un usuario al mismo tiempo.
Ø      Multiusuario: Permite que varios usuarios ejecuten simultáneamente sus programas. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
·         Manejo de recursos
Ø    Centralizado: Permite utilizar los recursos de un solo ordenador.
Ø    Distribuido: Permite utilizar los recursos de más de un ordenador al mismo tiempo.

4. Malware

Malware (del inglés malicious software), es un tipo de software que se infiltra o daña un ordenador sin el consentimiento de su propietario. El modo más común que tienen los criminales para infectar a los usuarios con malware es a través de Internet, sobre todo vía e-mail y Web.

·         Malware infeccioso: Virus y Gusanos
Un virus necesita de la intervención del usuario para propagarse mientras que un gusano se propaga automáticamente, dañando el sistema.
·         Malware oculto: Troyanos, Rootkits y Puertas traseras
Ø   Los troyanos: programas maliciosos disfrazados como algo inocuo o atractivo que invitan al usuario a ejecutarlo, ocultando un software malicioso. Ese software  puede tener un efecto inmediato, y puede, por ejemplo, borrar los archivos del usuario o instalar más programas indeseables o maliciosos.
Ø   Rootkits: modifican el sistema operativo de una computadora para permitir que el malware permanezca oculto al usuario.
Ø   Puertas traseras o Backdoors: método para eludir los procedimientos normales de autenticación a la hora de conectarse a una computadora. Una vez que el sistema ha sido comprometido una puerta trasera puede ser instalada para permitir un acceso remoto más fácil en el futuro.

En los inicios del Malware, sus autores tan solo buscaban provocar molestias, pero hoy día persiguen objetivos mucho más lucrativos, en los que se infectan equipos para obtener dinero.

También existen el Spyware, el Adware y el Hijackers, pero estos no son tan dañinos como los anteriores, aunque en algunos casos si violan la intimidad de los correos electrónicos y el control del usuario sobre Internet.
Por otro lado, los Keyloggers y los Stealers se encargan de robar los datos introducidos mediante un teclado o existentes en la memoria del PC, como una cuenta bancaria, para enviárselos al autor.
Los Dialers, menos extendidos hoy día, infectaban los módems y hacían llamadas internacionales que costaban mucho dinero al usuario.
Las Botnets son redes de computadoras infectadas, también llamadas "zombies", que pueden ser controladas a la vez por un individuo y realizan distintas tareas. Este tipo de redes son usadas para el envío masivo de spam o para lanzar ataques DDoS contra organizaciones como forma de extorsión o para impedir su correcto funcionamiento.
Los rogue software hacen creer al usuario que el equipo está infectado por algún virus u otro tipo de software malicioso, lo que induce al usuario a pagar por un software inútil o a instalar un software malicioso que supuestamente elimina las infecciones, pero que en realidad no necesita porque no está infectado.
Los ransomware encriptan los archivos importantes para el usuario, haciéndolos inaccesibles, y piden que se pague un "rescate" para poder recibir la contraseña que permite recuperarlos.

Existen varios factores que hacen a un sistema más vulnerable al malware: la homogeneidad, errores de software, código sin confirmar, sobre-privilegios de usuario y sobre-privilegios de código.

·         Programas anti-malware
Los programas anti-malware pueden combatir el malware de dos formas:
1. El software anti-malware escanea todos los datos procedentes de la red en busca de malware y bloquea todo lo que suponga una amenaza.
2. Detectando y eliminando malware que ya ha sido instalado en una computadora.

·         Métodos de protección
•Tener el sistema operativo y el navegador web actualizados.
•Tener instalado un antivirus y un firewall y configurarlos para que se actualicen automáticamente.
•Utilizar una cuenta de usuario con privilegios limitados.
•Tener precaución al ejecutar software procedente de Internet o de medios extraíbles como CDs o memorias USB.
•Evitar descargar software de redes P2P.
•Desactivar la interpretación de Visual Basic Script y permitir JavaScript, ActiveX y cookies sólo en páginas web de confianza.
•Utilizar contraseñas de alta seguridad.
•Hacer copias de respaldo regularmente de los documentos importantes a medios extraíbles para poderlos recuperar en caso de infección.

·         Compañías Antimalware
•Ad-Aware
•Avast
•AVG
•…

No hay comentarios:

Publicar un comentario