sábado, 23 de octubre de 2010

Sistemas Operativos

Muchas veces nos encontramos con preguntas que se no han hecho reiterativas en el área de Desarrollo de Software, algunas de estas son las siguientes
  • Que es un Sistema Operativo
  • Clarificación de los Sistemas Operativos
Aquí encontraras algunas respuestas ya dadas, para estas y otras preguntas, que se deben saber en esta área
  • Primero empezamos por definir que es un Sistema Operativo
Un Sistema Operativo (SO) es sencilla mente el software básico de una computadora o PC que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario. Las funciones básicas de este son administrar los recursos de la máquina, coordinar el hardware (parte tangible) y organizar archivos y directorios en dispositivos de almacenamiento (parte intangible),es decir el sistema operativo es el programa (o software) más importante de un ordenador.
 Ahora veamos la clasificación de los Sistemas Operativos







  • Ejemplos de Sistema Operativo

A continuación detallamos algunos ejemplos de sistemas operativos:

Familia Windows

·   
          Windows 95
·         Windows 98
·         Windows ME
·         Windows NT
·         Windows 2000
·         Windows 2000 server
·         Windows XP
·         Windows Server 2003
·         Windows CE
·         Windows Mobile
·         Windows XP 64 bits
·         Windows Vista (Longhorn)

Familia Macintosh
·   
           Mac OS 7
·         Mac OS 8
·         Mac OS 9
·         Mac OS X

Familia UNIX
·    
           AIX
·         AMIX
·         GNU/Linux
·         GNU / Hurd
·         HP-UX
·         Irix
·         Minix
·         System V
·         Solaris
·         UnixWare

  • Los sistemas operativos pueden ser clasificados de la siguiente forma:


  •   Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.






  •   Multiprocesador: soporta el abrir un mismo programa en más de una CPU
.


  •   Multitarea: Permite que varios programas se ejecuten al mismo tiempo.





·
  •   Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.


  • Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real

  • Tambien pueden ser clasificados por : sistemas operativos por su estructura (visión interna), sistemas operativos por los servicios que ofrecen y, sistemas operativos por la forma en que ofrecen sus servicios (visión externa).

  • Ahora veamos los Sistemas operativos actuales
Los sistemas operativos para microcomputadoras más comunes actualmente son Windows, Macintosh OS, OS/2, UNIX y GNU/Linux.
Windows 2000, y el nuevo Windows 2003 (basado en la plataforma .NET), son productos enfocados al área de servidores. Windows XP es el sistema operativo enfocado a los usuarios. Cada uno de estos productos cuentan con, por lo menos, 4 versiones con diferentes especificaciones, desde las más sencillas hasta las más avanzadas o profesionales. Windows CE ofrece características de los sistemas mayores, pero se miniaturiza para correr en plataformas pequeñas, como las PC de bolsillo y otros dispositivos de electrónica de consumo.
OS/2: OS/2 significa operating system/2 (sistema operativo/2). Fue desarrollado originalmente por IBM y Microsoft en forma conjunta como sistema operativo para computadoras personales. Fue evolucionando, pasando por incluir el Presentation Manager (gestor de ventanas de OS/2), el Work Place Shell (un escritorio completamente orientado a objetos).
UNIX: Es un sistema operativo antiguo, que se ha diversificado y extendido en múltiples versiones a lo largo del tiempo. Su principal ventaja es ser muy robusto, es decir, puede seguir funcionando sin congelarse aunque algún programa presente errores de funcionamiento. Por ésta razón es muy popular en grandes computadoras y servidores de redes. Unix puede ejecutarse en diversas computadoras (es "exportable"), desempeñar impecablemente tareas múltiples (múltitarea), ser compartido por varios usuarios a la vez y enlazarse de forma confiable y excelente rendimiento en redes de cómputo
Linux: Es un sistema operativo tipo UNIX, que esta basado en la filosofía de software libre. Por ser distribuido bajo la GNU Public license, tiene dos características que le distinguen del resto de los sistemas operativos del mercado. En primer lugar no se tiene que pagar por su uso ningún tipo de licencia a una empresa desarrolladora de software, en segundo lugar, viene acompañado de su código fuente, que debe estar siempre accesible.
  • Ahora veamos los Sistemas operativos Linux y Windows
·      
   El núcleo Linux es un sistema operativo libre tipo Unix. Es uno de los principales ejemplos de software libre y código abierto. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List.El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finés, Linus Torvalds, en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para su uso en el nuevo sistema operativo. El núcleo Linux ha recibido contribuciones de miles de programadoresActualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico.
·         Windows: En sus inicios Windows era un entorno operativo de interfaz gráfica, es decir, era un programa que se ejecutaba con el sistema operativo DOS. En la actualidad es un potente sistema operativo, que se ha desarrollado y diversificado en múltiples versiones para toda clase de computadoras: servidores de redes, computadoras personales y agendas digitales portátiles. La familia de sistemas operativos Windows busca cubrir la gama de necesidades de los usuarios mediante sus productos: Windows 2000, Windows XP, Windows .NET y Windows CE. Cada uno de estos productos esta orientado a entornos específicos.
  •  Veamos las versiones mas populares de Linux
Cabe destacar que Muchas de las distribuciones de GNU/Linux son variantes o adaptaciones de otras. Por ejemplo Debian se ha consolidado como la distribución más popular, gracias al avance de sus derivadas (por ejemplo Ubuntu, creada en el 2004).
SUSE casi ha duplicado su popularidad. Esto quizás se deba a la política de apertura que esta distribución exhibió 
 
Ubuntu
Basada en Debian, gratuita, y con versiones para escritorio, servidores y netbooks, se trata de un proyecto patrocinado por Canonical, la empresa de Mark Shuttleworth. Su nombre significa, en zulú, “Humanidad hacia otros”. 
Fedora
Esponsorizada por la histórica Red Hat, que la utiliza como base y banco de pruebas de su distribución comercial, Red Hat Enterprise Linux. Se trata de la distro que Linus Torvalds utiliza en la mayor parte de sus máquinas, lo que da una idea de su calidad

openSUSE
Esta distro de origen alemán nació en 2005 después de que Novell decidiera “liberar” la antigua SUSE, aunque no se comenzó a utilizar este nombre hasta 2006. En ella se basan la distribución comercial de Novell Novell Linux Desktop, también conocida como SUSE Linux Enterprise Desktop, y su versión para servidores, SUSE Linux Enterprise Server.

Mint
Esta distro de origen irlandés, que curiosamente es una de las más jóvenes del mercado, y la más joven de esta recopilación, está ganando popularidad a pasos agigantados. Se trata de una distro basada en Ubuntu, con la que es totalmente compatible, pero que intenta facilitar aún más la vida a los usuarios, por ejemplo, instalando por defecto diversos códecs propietarios, el plugin de Java o el plugin de Flash. También han desarrollado algunas herramientas bastante interesantes.

Debian
Una distro clásica, y la más longeva de entra las que aparecen en esta recopilación, con 16 años a sus espaldas. Es la distro en la que se basa Ubuntu, y está considerada por muchos como una de las más robustas y estables del mercado. También es, probablemente, la más comprometida con el software libre, motivo que causa que algunas personas consideren su comunidad, y todo lo relacionado, como un poco “talibán”.
Tiene fama de ser complicada de instalar, aunque eso quedó atrás hace mucho tiempo.

Mandriva
Nacida de la fusión de la francesa Mandrake y la brasileña Conectiva, cambió su nombre en 2005 para evitar problemas legales. En el pasado estaba considerada como una de las distros más sencillas de instalar y utilizar, aunque tenía una cierta fama de inestabilidad.

PCLinuxOS
PCLinuxOS estaba basada originalmente en Mandrake, con la que sigue compartiendo algunas características.

Puppy Linux
Puppy Linux se distingue de todas las demás distros de la recopilación en que está pensada para ser lo más pequeña posible, hasta el punto de que se puede cargar completamente en la memoria RAM de un PC bastante antiguo (su versión más simple, Barebones, ocupa sólo 40MB).
  •  Arquitectura de un PC 
La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria.
También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo.
El ordenador recibe y envía la información a través de los periféricos por medio de los canales. La UCP es la encargada de procesar la información que le llega al ordenador. El intercambio de información se tiene que hacer con los periféricos y la UCP. Todas aquellas unidades de un sistema exceptuando la UCP se denomina periférico, por lo que el ordenador tiene dos partes bien diferenciadas, que son: la UCP (encargada de ejecutar programas y que esta compuesta por la memoria principal, la UAL y la UC) y los periféricos (que pueden ser de entrada, salida, entrada-salida y comunicaciones).

  •  Arquitectura de un S.O
Con el paso de los años se ha producido una evolución gradual de la estructura y capacidades de los SistemasOperativos. Sin embargo, recientemente se ha introducido un cierto número de nuevos elementos de diseño en los nuevos Sistemas Operativos y en las nuevas versiones de los Sistemas Operativos existentes. Estos Sistemas Operativos modernos responden a nuevos desarrollos del hardwarey nuevas aplicaciones. Entre estos dispositivos de hardware están las máquinas multiprocesador, incrementos enormes de la velocidadde la máquina, alta velocidad en los enlaces de las redes de comunicación e incremento en el tamaño y variedad de los dispositivos de almacenamiento de memoria. En los campos de aplicación que han influido en el diseño de los Sistema Operativos están las aplicaciones multimedia, el acceso a Internety páginas Web y la ejecución cliente/servidor.
El porcentaje de cambios en las demandas de los Sistemas Operativos, requiere no solamente las modificaciones y mejoras en las arquitecturas ya existentes, sino nuevas formas de organización del Sistema Operativo. Muchos de los diferentes enfoques y elementos de diseño se han probado tanto en Sistemas Operativos experimentales como comerciales, y muchos de ellos encajan dentro de las siguientes categorías
  • Arquitectura Micronúcleo.
  • Multihilos.
  • Multiproceso Simétrico.
  • Sistemas Operativos Distribuidos.
  • Diseño Orientado a Objeto.
La mayor parte de los Sistemas Operativos hasta hace poco tiempose caracterizaban por un gran núcleo monolítico. Gran parte de la funcionalidad que se pensaba debía tener un Sistema Operativo la proporcionaba este gran núcleo, incluyendo planificación, sistema de archivos, redes, controladores de dispositivos, gestiónde memoria y muchas cosas más. Normalmente un núcleo monolítico está implementado como un único proceso, con todos sus componentes compartiendo el mismo espacio de direcciones.La arquitectura micronúcleo asigna solamente unas pocas funcionesesenciales al núcleo, incluyendo espacios de direcciones, comunicación entre procesos (IPC) y planificación básica. Otros servicios del Sistema Operativo los proporciona procesos, algunas veces llamados servidores, que se ejecutan en modo usuario y que el micronúcleo trata como a cualquier otra aplicación. Este enfoque desconecta el núcleo y el desarrollode servidores. Los servidores pueden estar diseñados para aplicaciones específicas o necesidades del entorno. El enfoque del micronúcleo simplifica la implementación, proporciona flexibilidad y se adapta bien para entornos distribuidos. En esencia, un micronúcleo interactúa de la misma forma con procesos servidores locales y remotos, facilitando la construcción de sistemas distribuidos.Este trabajo intenta abordar la arquitectura del Sistema Operativo Windowsy los servicios que cada uno de sus componentes brinda para llevar a cabo cada una de las categorías antes expuestas.
  •  Paralelo entre la arquitectura de un PC y la arquitectura de un S.O
Mientras que la arquitectura de un Sistemas Operativo modernos responden a nuevos desarrollos del hardwarey nuevas aplicaciones. Entre estos dispositivos de hardware están las máquinas multiprocesador, incrementos enormes de la velocidadde la máquina, alta velocidad en los enlaces de las redes de comunicación e incremento en el tamaño y variedad de los dispositivos de almacenamiento de memoria. En los campos de aplicación que han influido en el diseño de los Sistema Operativos están las aplicaciones multimedia, el acceso a Internety páginas Web y la ejecución cliente/servidor, la arqutectura de un PC es simplemente el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria.

  •  Algunos trucos de un S.O
Navegar mas rápido en Internet

Para aumentar la velocidad de acceso a servidores HTTP, y visualizar las páginas Webs mas rápdio, sigue estos pasos:
Haz clic en el botón Inicio y luego sobre Ejecutar, escribe Regedit y pulsa el botón Aceptar.
Una vez estás en el editor del registro busca la siguiente cadena:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSetting

En la ventana de la derecha, crear o modificar los valores DWORD siguientes:

MaxConnectionsPerServer: doble clic sobre ese valor y escribir 4 decimal (para ADSL escribir 20)
MaxConnectionsPer1_0Server : doble clic sobre ese valor y escribir 8 en decimal (para ADSL escribir 20)
Esos valores corresponden al número de demandas simultáneas de acceso a un servidor de tipo 1 o 1.1. Cerrar Regedit y reiniciar Windows.


Liberar memoria RAM

Liberar memoria RAM. Tras haber ejecutado una o múltiples aplicaciones o juegos que hagan uso intensivo de los recursos del sistema, habremos detectado que Windows queda algo "tocado", mucho mas lento. Esto es debido a que los restos de las aplicaciones bloquean parte de la RAM que han utilizado, ocasionando lo que se llama "fragmentación de memoria". Mediante un pequeño script podemos liberar esa memoria , forzando al ordenador a descargar el contenido de la memoria al archivo de intercambio de forma que recargue de nuevo toda la información activa en la memoria y deseche la información no útil, esto lo haremos de la siguiente forma:
Abrimos el bloc de notas de Windows y dependiendo de la memoria de nuestro ordenador escribiremos los siguientes valores:
Si tienes menos de 128 Mb de memoria RAM, escribes Mystring=(16000000)
Si tienes 128 Mb de memoria RAM o más escribes Mystring=(80000000)
Ahora guarda este archivo en el lugar que quieras, con el nombre "liberar.vbe" (no te olvides poner la extensión .vbe ya que el nombre no importa puedes poner el que quieras).
Ahora hacemos doble clic sobre el archivo que acabamos de crear y windows refrescará la memoria RAM.


Mayor velocidad de acceso a los programas

Aunque tu equipo disponga de suficiente memoria RAM y puedas trabajar con varios programas sin problemas el sistema siempre utiliza el Kernel para enviar y recibir archivos del archivo de paginación del disco duro, por este motivo la velocidad del ordenador se frena, si ya dispones de memoria RAM suficiente sigue estos pasos:
Haz clic sobre el botón Inicio y a continuación sobre Ejecutar, escribe regedit y pulsa el botón Aceptar

Ahora te desplazas por la siguiente cadena:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Memory Management
Busca en el panel derecho la entrada DisablePagingExecutive y haz doble clic sobre ella.
En la ventana que aparece cambia el valor de 0 y pones 1 luego pulsa el botón Aceptar y reinicia tu ordenador, ahora conseguirás mas velocidad de acceso a los programas porque utilizará menos el disco duro.


Eliminar archivos que no se dejan borrar

Con frecuencia nos encontramos que al intentar borrar un archivo, XP nos contesta que no se puede eliminar porque el archivo está siendo usado por otro programa, este problema suele ocurrir cuando intentamos borrar archivos en formato *.avi. Normalmente el problema suele estar producido porque algún avi está dañado y el codec correspondiente (el cual se invoca siempre en vista previa) se cuelga y no lo suelta. Recordad que AVI no es un tipo de fichero, sino que es un "contenedor" de formato de video, y que en la cabecera interna, lleva realmente grabado el tipo de video que es y por tanto el sistema sabe a que codec debe llamar.

Para solucionar este problema abriremos una ventana de comandos
Hacemos clic en el botón inicio y luego sobre Ejecutar
A continuación escribimos cmd y pulsamos el botón Aceptar
Cerramos todos los programas que tengamos abiertos menos la pantalla de MS-DOS que acabamos de abrir.
Volvemos ha hacer clic en el botón Inicio y luego sobre Ejecutar
Escribimos Taskmgr.exe y pulsamos el botón Aceptar
Volvemos a pulsar el botón Inicio y luego sobre Ejecutar
Escribimos explorer.exe y pulsamos el botón Aceptar.

Volvemos a la ventana de comandos e iremos a la carpeta donde tengamos el archivo que queremos eliminar y escribiremos: del dejamos un espacio y escribimos el nombre_archivo
Volvemos de nuevo al administrador de tareas, Archivo > Nueva tarea y escribimos "explorer.exe" (sin comillas) para reestablecer el escritorio. Ya podemos cerrar el administrador de tareas y la ventana de comandos.


Bibliografia