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
•…