Sistema operativo: software que controla la computadora y administra los servicios y sus funciones, como así también la ejecución de otros programas compatibles con éste. El más difundido a nivel mundial es Windows, pero existen otros de gran popularidad como los basados en UNIX.
Funciones del Sistema Operativo
Un sistema operativo desempeña 5 funciones básicas
en la operación de un sistema informático: suministro de interfaz
al usuario, administración de recursos, administración de archivos,
administración de tareas y servicio de soporte y utilidades.
Interfaces del usuario
Es la parte del sistema
operativo que permite comunicarse con él, de tal manera que se
puedan cargar programas, acceder archivos y realizar otras tareas.
Existen tres tipos básicos de interfaces: las que se basan en
comandos, las que utilizan menús y las interfaces gráficas de
usuario.
Administración de
recursos
Sirven para administrar
los recursos de hardware y de redes de un sistema informático, como
la CPU, memoria,
dispositivos de almacenamiento secundario y periféricos de entrada y
de salida.
Administración de
archivos
Un sistema de información
contiene programas de administración de archivos que controlan la
creación, borrado y acceso de archivos de datos y de programas.
También implica mantener el registro de la ubicación física de los
archivos en los discos magnéticos y en otros dispositivos de
almacenamiento secundarios.
Administración de
tareas
Los programas de
administración de tareas de un sistema operativo administran la
realización de las tareas informáticas de los usuarios finales. Los
programas controlan que áreas tiene acceso al CPU y por cuánto
tiempo. Las funciones de administración de tareas pueden distribuir
una parte específica del tiempo del CPU para una tarea en
particular, e interrumpir al CPU en cualquier momento para
sustituirla con una tarea de mayor prioridad.
Servicio de soporte
Los servicios de soporte
de cada sistema operativo dependerán de la implementación
particular de éste con la que estemos trabajando. Entre las más
conocidas se pueden destacar las implementaciones de Unix,
desarrolladas por diferentes empresas de software, los sistemas
operativos de Apple
Inc., como Mac OS X para las computadoras de Apple
Inc., los sistemas operativos de Microsoft,
y las implementaciones de software
libre, como GNU/Linux o BSDproducidas
por empresas, universidades, administraciones públicas,
organizaciones sin fines de lucro y/o comunidades de desarrollo.
Estos servicios de
soporte suelen consistir en:
- Actualización de
versiones.
- Mejoras de seguridad.
- Inclusión de alguna
nueva utilidad (un nuevo entorno gráfico, un asistente para
administrar alguna determinada función).
- Controladores para
manejar nuevos periféricos (este servicio debe coordinarse a veces
con el fabricante del hardware).
- Corrección de errores
de software.
- Otros.
No todas las utilidades
de administración o servicios forman parte del sistema operativo,
además de éste, hay otros tipos importantes de software de
administración de sistemas, como los sistemas de administración de
base de datos o los programas de administración de redes. El soporte
de estos productos deberá proporcionarlo el fabricante
correspondiente (que no tiene porque ser el mismo que el del sistema
operativo).
Componentes de un
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 y dispositivos de
E/S. El SO es el responsable de:
- Crear y destruir los procesos.
- Parar y reanudar los procesos.
- Ofrecer mecanismos para que se
comuniquen y sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.
Gestión de la memoria principal.
La Memoria
(informática) es una gran tabla de palabras o bytes que se
referencian cada una mediante una dirección única. Este almacén de
datos de rápido accesos es compartido por la CPU y los dispositivos
de E/S, es volátil y pierde su contenido en los fallos del sistema.
El SO es el responsable de:
- Conocer qué partes de la memoria
están utilizadas y por quién.
- Decidir qué procesos se cargarán
en memoria cuando haya espacio disponible.
- Asignar y reclamar espacio de
memoria cuando sea necesario.
Un sistema de 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 SO se
encarga de:
- Planificar los discos.
- Gestionar el espacio libre.
- Asignar el almacenamiento.
El sistema de E/S
Consiste en un sistema de
almacenamiento temporal (caché),
una interfaz de manejadores de dispositivos y otra para dispositivos
concretos. El sistema operativo debe gestionar el almacenamiento
temporal de E/S y servir las interrupciones de los dispositivos de
E/S.
Sistema de archivos
Los archivos
son colecciones de información relacionada, definidas por sus
creadores. Éstos almacenan programas (en código fuente y objeto) y
datos tales como imágenes, textos, información de bases de datos,
etc. El SO es responsable de:
- Construir y eliminar archivos y
directorios.
- Ofrecer funciones para manipular
archivos y directorios.
- Establecer la correspondencia entre
archivos y unidades de almacenamiento.
- Realizar copias de seguridad de
archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivosFAT, FAT32, EXT2, NTFS.
Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema NTFS el tamaño es considerablemente mayor.
Sistemas de protección
Mecanismo que controla el acceso de los
programas o los usuarios a los recursos del sistema. El SO se encarga
de:
- Distinguir entre uso autorizado y no
autorizado.
- Especificar los controles de
seguridad a realizar.
- Forzar el uso de estos mecanismos de
protección.
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, siendo algunas de
las tareas que realizan:
- Manipulación y modificación de
archivos.
- Información del estado del sistema.
- Soporte a lenguajes de programación.
- Comunicaciones.
Gestor de recursos
Como gestor de recursos, el Sistema
Operativo administra:
- La CPU
(Unidad Central de Proceso, donde está alojado el microprocesador).
- Los dispositivos de E/S (entrada y
salida)
- La memoria principal (o de acceso
directo).
- Los discos (o memoria secundaria).
- Los procesos (o programas en
ejecución).
y en general todos los recursos del
sistema.
Características de un Sistema
Operativo
Administración de tareas
Monotarea:
Solamente puede ejecutar un proceso (aparte de los procesos del
propio S.O.) en un momento dado. Una vez que empieza a ejecutar un
proceso, continuará haciéndolo hasta su finalización y/o
interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administración de usuarios
Monousuario:
Si sólo permite ejecutar los programas de un usuario al mismo
tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. 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:
Si permite utilizar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de una computadora al mismo tiempo.
-Sistemas Operativos
Privativos: El software propietario o software privativo
(también software no libre, software privado, software con
propietario o software de propiedad) se refiere a cualquier programa
informático en el que los usuarios tienen limitadas las
posibilidades de usarlo, modificarlo o redistribuirlo (con o sin
modificaciones), o cuyo código fuente no está disponible o el
acceso a éste se encuentra restringido.
En el software no libre una
persona física o jurídica (compañía, corporación, fundación,
etc.) posee los derechos de autor sobre un software negando o no
otorgando, al mismo tiempo, los derechos de usar el programa con
cualquier propósito; de estudiar cómo funciona el programa y
adaptarlo a las propias necesidades (donde el acceso al código
fuente es una condición previa); de distribuir copias; o de mejorar
el programa y hacer públicas las mejoras (para esto el acceso al
código fuente es un requisito previo).
De esta manera, un
software sigue siendo no libre aún si el código fuente es hecho
público, cuando se mantiene la reserva de derechos sobre el uso,
modificación o distribución (por ejemplo, la versión comercial de
SSH o el programa de licencias shared source de Microsoft).
-Sistemas Operativos
Libres: Software libre (en inglés
free software) es la denominación del software
que respeta la libertad
de los usuarios sobre su producto adquirido y, por tanto, una vez
obtenido puede ser usado, copiado, estudiado, modificado y
redistribuido libremente. Según la Free
Software Foundation, el software libre se refiere a la libertad
de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar
y mejorar el software;
de modo más preciso, se refiere a cuatro
libertades de los usuarios del software: la libertad de usar el
programa, con cualquier propósito; de estudiar el funcionamiento del
programa, y adaptarlo a las necesidades; de distribuir copias, con lo
cual se puede ayudar a otros, y de mejorar el programa y hacer
públicas las mejoras, de modo que toda la comunidad se beneficie
(para la segunda y última libertad mencionadas, el acceso al código
fuente es un requisito previo).
El software libre suele estar disponible gratuitamente, o al precio de coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial"). Análogamente, el "software gratis" o "gratuito" incluye en ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.
Tampoco debe confundirse
software libre con "software de dominio
público". Éste último es aquel software que no requiere
de licencia,
pues sus derechos de explotación son para toda la humanidad, porque
pertenece a todos por igual. Cualquiera puede hacer uso de él,
siempre con fines legales y consignando su autoría original. Este
software sería aquél cuyo autor lo dona a la humanidad o cuyos
derechos de
autor han expirado, tras un plazo contado desde la muerte de
éste, habitualmente 70 años. Si un autor
condiciona su uso bajo una licencia, por muy débil que sea, ya no es
del dominio público.
Historia
Entre los años 60 y 70 del Siglo XX, el software no era considerado un producto sino un añadido que los vendedores de las grandescomputadoras de la época (las mainframes) aportaban a sus clientes para que éstos pudieran usarlos. En dicha cultura, era común que los programadores y desarrolladores de software compartieran libremente sus programas unos con otros. Este comportamiento era particularmente habitual en algunos de los mayores grupos de usuarios de la época, como DECUS (grupo de usuarios de computadoras DEC). A finales de los 70, las compañías iniciaron el hábito de imponer restricciones a los usuarios, con el uso de acuerdos de licencia.
Allá por el 1971,
cuando la informática
todavía no había sufrido su gran boom, las personas que hacían uso
de ella, en ámbitos universitarios y empresariales, creaban y
compartían el software
sin ningún tipo de restricciones.
Con la llegada de los años 80 la situación empezó a cambiar. Lascomputadoras más modernas comenzaban a utilizar sistemas operativos privativos, forzando a los usuarios a aceptar condiciones restrictivas que impedían realizar modificaciones a dichosoftware.
En caso de que algún
usuario o programador encontrase algún error en la aplicación, lo
único que podía hacer era darlo a conocer a la empresa
desarrolladora para que esta lo solucionara. Aunque el programador
estuviese capacitado para solucionar el problema y lo desease hacer
sin pedir nada a cambio, el contrato le impedía que mejorase el
software.
El mismo Richard
Stallman cuenta que por aquellos años, en el laboratorio donde
trabajaba, habían recibido una impresora
donada por una empresa externa. El dispositivo, que era utilizado en
red por todos los trabajadores, parecía no funcionar a la
perfección, dado que cada cierto tiempo el papel se atascaba. Como
agravante, no se generaba ningún aviso que se enviase por red e
informase a los usuarios de la situación.
La pérdida de tiempo era constante, ya que en ocasiones, los trabajadores enviaban por red sus trabajos a imprimir y al ir a buscarlos se encontraban la impresora atascada y una cola enorme de trabajos pendientes. Richard Stallman decidió arreglar el problema, e implementar el envío de un aviso por red cuando la impresora se bloqueara. Para ello necesitaba tener acceso al código fuente de los controladores de la impresora. Pidió a la empresa propietaria de la impresora lo que necesitaba, comentando, sin pedir nada a cambio, qué era lo que pretendía realizar. La empresa se negó a entregarle el código fuente.
En ese preciso instante, Richard Stallman se vio en una encrucijada: debía elegir entre aceptar el nuevo software privativofirmando acuerdos de no revelación y acabar desarrollando mássoftware privativo con licencias restrictivas, que a su vez deberían ser más adelante aceptadas por sus propios colegas.
Con este antecedente, en 1984, Richard Stallman comenzó a trabajar en el proyecto GNU, y un año más tarde fundó la Free Software Foundation (FSF). Stallman introdujo la definición de free software y el concepto de "copyleft", que desarrolló para otorgar libertad a los usuarios y para restringir las posibilidades de apropiación del software.
De
acuerdo con tal definición, el software es "libre" si
garantiza las siguientes libertades:
Libertad 0: la
libertad de usar el programa, con cualquier propósito.
Libertad 1: la
libertad de estudiar cómo funciona el programa y modificarlo,
adaptándolo a tus necesidades.
Libertad 2: la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.
Libertad 3: la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.
Libertad 2: la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.
Libertad 3: la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.
Las libertades 1 y 3
requieren acceso al código
fuente porque estudiar y modificar software sin su código fuente
es muy poco viable.
Ciertos teóricos usan este cuarto punto (libertad 3) para justificar parcialmente las limitaciones impuestas por la licencia GNU GPLfrente a otras licencias de software libre (ver Licencias GPL). Sin embargo el sentido original es más libre, abierto y menos restrictivo que el que le otorga la propia situación de incompatibilidad, que podría ser resuelta en la próxima versión 3.0 de la licencia GNU GPL, causa en estos momentos graves perjuicios a la comunidad deprogramadores de software libre, que muchas veces no pueden reutilizar o mezclar códigos de dos licencias distintas, pese a que las libertades teóricamente lo deberían permitir.
El término software no libre se emplea para referirse al software distribuido bajo una licencia de software más restrictiva que no garantiza estas cuatro libertades. Las leyes de la propiedad intelectual reservan la mayoría de los derechos de modificación, duplicación y redistribución para el dueño del copyright; el software dispuesto bajo una licencia de software libre rescinde específicamente la mayoría de estos derechos reservados.
La definición de software libre no contempla el asunto del precio; un eslogan frecuentemente usado es "libre como en libertad, no como en cerveza gratis" o en inglés "Free as in freedom, not as in free beer" (aludiendo a la ambigüedad del término inglés "free"), y es habitual ver a la venta CDs de software libre como distribuciones GNU/Linux. Sin embargo, en esta situación, el comprador del CD tiene el derecho de copiarlo y redistribuirlo. El software gratis puede incluir restricciones que no se adaptan a la definición de software libre —por ejemplo, puede no incluir el código fuente, puede prohibir explícitamente a los distribuidores recibir una compensación a cambio, etc—.
Para evitar la confusión, algunas personas utilizan los términos "libre" (software libre) y "gratis" (software gratis) para evitar la ambigüedad de la palabra inglesa "free". Sin embargo, estos términos alternativos son usados únicamente dentro delmovimiento del software libre, aunque están extendiéndose lentamente hacia el resto del mundo. Otros defienden el uso del término open source software (software de código abierto, también llamado de fuentes abiertas). La principal diferencia entre los términos "open source" y "free software" es que éste último tiene en cuenta los aspectos éticos y filosóficos de la libertad, mientras que el "open source" se basa únicamente en los aspectos técnicos.
En un intento por unir los mencionados términos que se refieren a conceptos semejantes, se está extendiendo el uso de la palabra "FLOSS" con el significado de "Free - Libre - Open Source Software" e, indirectamente, también a la comunidad que lo produce y apoya.
- Aplicaciones del
usuario: son los programas que instala el usuario y que se
ejecutan en el sistema operativo. Son las herramientas que emplea el
usuario cuando usa una computadora. Pueden ser: navegadores,
editores de texto, editores gráficos, antivirus, etc.
- Firmware:
software que generalmente permanece inalterable de fábrica, y
guarda información importante de la computadora, especialmente el
BIOS. Es también considerado "hardware".
No hay comentarios:
Publicar un comentario