lunes, 23 de septiembre de 2013

Buenas tardes, si esperaban que la publicación de hoy tuviera relación alguna con los primeros temas del hilo de "El Arte de Programar" pues no tuvieron mucha suerte, ni si esperaban una continuidad de los hilos previamente abiertos, tendrán que esperar hasta  la próxima publicación.
Hoy doy por iniciado el hilo de "El mundo de los Sistemas Operativos", con una introducción razonablemente sencilla.
Hablaremos sobre la razón por la cual un programador debe tener conocimientos en éste área, daremos respuesta también a las siguientes preguntas: ¿Qué es un sistema operativo? y hablaremos en general de los sistemas operativos.

Pero antes, y como de costumbre quiero comentarles que...


ADVERTENCIAprobablemente mucha gente esté en desacuerdo con lo que expreso en las entradas de mi blog, la idea del blog siempre fue, como todo blog, la de presentar textos que muestren un poco de mi "día a día", en mi caso en el mundo de la programación y la informática.
No obstante, todos mis textos están basados en la normativa vigente, y en toda mi experiencia hasta el momento, aquellos que estén en desacuerdo, probablemente sea por ignorancia o desconocimiento, y también podríamos mencionar engreimiento, creer que saben todo, pero tampoco podemos dejar de lado que quizá esté equivocado en algunas cosas, pero con el tiempo me daré cuenta y lo aclararé en nuevas entradas al blog.

Vamos entonces al tema en cuestión.-

Empiezo esta serie de publicaciones o "hilo" sobre el tema de los sistemas operativos por la simple razón de que es necesario que un programador conozca la plataforma en la que realiza su trabajo, y pueda en base a éste tipo de conocimientos elegir distintas cosas a tener en cuenta a la hora de elegir qué función usar, o como realizar x tarea.
Para un programador, el sistema operativo es como los cimientos para un arquitecto, en ambos casos, el sistema operativo y los cimientos son la base que sostienen el resto de la estructura que se desea construir.

Entonces llegados a este punto definiremos sistema operativo, pero para poder hacerlo, primero incursionaremos en conceptos más básicos tales como el de Sistema y el de Operativo. Podemos decir que un sistema es un conjunto de personas, máquinas y cosas que, ordenadamente relacionadas entre sí, contribuyen a lograr un determinado objetivo. Y que operativo es un conjunto de personas, máquinas y cosas que trabajan para conseguir el objetivo deseado.

El concepto de Sistema Operativo resulta un tanto complejo, y no es posible definirlo desde un solo punto de vista, por lo que se requiere de al menos tres puntos de vista, y cada uno de ellos claramente dará como resultado una definición diferente.
En primer lugar tomaremos el concepto de sistema operativo desde una visión de hace unos años cuando resultaba simple definirlo, "Un Sistema Operativo es el soporte lógico que controla el funcionamiento del equipo físico" como se puede apreciar, es una definicion objetiva, comenta básicamente que el sistema operativo es un software o conjunto de ellos que permitiría controlar el comportamiento del hardware.
Claramente nos queda de lado una gran parte de la definición, no solo controla el funcionamiento del hardware, sino que también provee mecanismos de gestión para poder distribuir el hardware entre los distintos programas que se ejecutan, a lo largo del tiempo se llegó a la conclusión que el hardware era muy limitado y que para poder complacer la demanda de cada programa en ejecución se deberían utilizar distintos métodos y estrategias, que brindarían una gestión mejor del hardware, por lo que surgió la definición desde el punto de vista de Gestor de Recursos "Un Sistema Operativo es el administrador de recursos ofrecidos por el hardware para alcanzar un eficaz rendimiento de los mismos".
La historia no quedó acá, y aún nos falta otro punto de vista importante, el Concepto de Máquina Ampliada se cree y con cierta verdad, que el sistema operativo no solo hace lo dicho antes, si no que también le oculta detalles técnicos del hardware a los usuarios, y a todos aquellos que no necesiten realmente saber los detalles del funcionamiento y existencia del mismo, de ésta forma le simplifica las cosas al usuario.

Tengamos en cuenta que la computadora es un invento del a industria, y toda industria trata de vender, no era posible vender una computadora a gente inexperta sin quitarle detalles y complejidad, evitándole así, la necesidad de conocer a fondo el sistema.

Entonces surgió la siguiente definición: "Un sistema operativo es un conjunto de programas y funciones que ocultan los detalles del hardware, ofreciendo al usuario una vía sencilla y flexible de acceso al mismo", entonces hasta ahora ya dimos 3 definiciones de sistemas operativos, es importante aclarar que cada definición es desde un punto de vista totalmente diferente, y ninguna de ellas concluye la definición completa de un sistema operativo, como ya dije, los sistemas operativos son realmente complejos.

Si prestan atención a ésta última definición, podrán apreciar, que ya empieza a mostrar con la introducción que lo que conocemos de los sistemas operativos es simplemente una cara bonita, y que de tras de eso, hay toda una maquinaria, un conjunto de distintas ideologías, técnicas, herramientas, etc. que no son vistos.
La idea de éste hilo de publicaciones de sistemas operativos es mostrarles que debajo de esa barra de inicio y ese hermoso escritorio, hay un embrollo de conceptos dando vuelta que hacen andar todo.

Un saludo para todos los lectores, y hasta mañana en otra publicación :)

0 comentarios:

Publicar un comentario