Al conjunto de instrucciones que nos permiten realizar una determinada función en el computador le denominamos software, básicamente nos referimos a lo que comúnmente conocemos como programas, sin embargo esto que parece tan simplista tiene una importancia mayor. ´pues el hardware sin un juego de instrucciones simplemente no es capaz de hacer nada, ya lo decíamos en la lección anterior, el computador como ha sido llamado por algunos es hasta el momento una maquina boba en el sentido de que hace maravillas, pero esas maravillas deben ser programadas por alguien, es decir detrás de cada programa o software hay una persona o empresa que escribió esas ordenes, para eso entonces se vale de una serie de lenguajes que hacen que la maquina le entienda y por lo mismo ejecute el programa. Como ven este mundo del software es bien interesante de comprender y mas que eso, entrarnos un poco en este mundo para que de alguna forma empecemos a generar nuestros propios programas para cosas particulares que necesitemos, así que entrémonos en este mundo para comprender cómo se hace, qué eso del software que administra el computador (sistema Operativo SO), qué significa software de propiedad y el software libre.
¿Qué es el software?
El software es una producción inmaterial del cerebro humano y tal vez una de las estructuras más complicadas que la humanidad conoce. De hecho, los expertos en computación aún no entienden del todo cómo funciona, su comportamiento, sus paradojas y sus límites.1 Básicamente, el software es un plan de funcionamiento para un tipo especial de máquina, una máquina ``virtual'' o ``abstracta''. Una vez escrito mediante algún lenguaje de programación, el software se hace funcionar en ordenadores, que temporalmente se convierten en esa máquina para la que el programa sirve de plan. El software permite poner en relación al ser humano y a la máquina y también a las máquinas entre sí. Sin ese conjunto de instrucciones programadas, los ordenadores serían objetos inertes, como cajas de zapatos, sin capacidad siquiera para mostrar algo en la pantalla.
Los ordenadores sólo procesan lenguaje binario,(1y 0 ) pero para las personas este no es un modo válido de comunicarse (salvo a nivel sináptico :-). Si bien en los tiempos heroicos de los primeros ordenadores no les quedaba otro remedio que hacerlo, los programadores hace mucho que no escriben su código en lenguaje binario (denominado técnicamente ``código-máquina''), pues es terriblemente tedioso, improductivo y muy sujeto a errores. Hace tiempo que los programadores escriben las instrucciones que ha de ejecutar el procesador de la máquina mediante lenguajes formales, llamados ``de alto nivel'', bastante cercanos al inglés, si bien con rígidas reglas sintácticas que lo asemejan a los lenguajes lógico-formales. Esto facilita enormemente la tarea de escribir programas pero, para que esas instrucciones sean comprensibles para el procesador, deben ser convertidas antes a código-máquina. Esa conversión se realiza cómodamente con programas especiales, llamados compiladores. A lo que escribe el programador se le denomina ``código-fuente''. Al resultado de la ``conversión'' (compilación) en lenguaje-máquina, se le denomina ``código-objeto'', ``binarios'' o ``ficheros ejecutables''. En principio, al usuario común sólo le importa este último nivel, los ``binarios'', pero conviene tener clara la distinción entre fuentes y binarios pues es clave para entender el empeño de los partidarios del software libre en disponer de las fuentes. [1]
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión. [2]
Clasificación del software
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres grandes tipos:
- Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:
- Sistemas operativos
- Controladores de dispositivos
- Herramientas de diagnóstico
- Herramientas de Corrección y Optimización
- Servidores
- Utilidades
- Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:
- Editores de texto
- Compiladores
- Intérpretes
- Enlazadores
- Depuradores
- Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
- Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros:
- Aplicaciones para Control de sistemas y automatización industrial
- Aplicaciones ofimáticas
- Software educativo
- Software empresarial
- Bases de datos
- Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
- Videojuegos
- Software médico
- Software de Cálculo Numérico y simbólico.
- Software de Diseño Asistido (CAD)
- Software de Control Numérico (CAM) [2]
Con todo lo anterior te has preguntado alguna vez, cómo hacen los analistas de sistemas para crear un programa? veamos un poco este proceso.
¿Cómo se crea un Software?
El proceso de ingeniería de software se define como "un conjunto de etapas parcialmente ordenadas con la intención de logra un objetivo, en este caso, la obtención de un producto de software de calidad" [Jacobson 1998].El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo" [Jacobson 1998].
El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define le alcance del proyecto y desarrolla un caso de negocio. La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios. [3]
Resumiendo algunas de estas etapas encontramos:
1.-Algoritmo: Es crear el proceso o serie de pasos que va a usar tu programa es decir definir que operaciones son las que vas a realizar para que tu programa haga lo que tu quieres
2.-Diagrama de flujo: Se trata de crear un diagrama el cual ayuda para saber que orden van a seguir los pasos del programa y no confundirte a la hora de programar
3.-Pseudocodigo: Es escribir el programa en una forma tal que describa las funciones que se van a usar sin estar escrita en un codigo en particular y pueda ser usada como guia por cualquier programador para hacer la codificacion es decir escribir el programa en un lenguaje de programacion definido
4.-Codificacion: Es escribir el programa ya en forma en el lenguaje de tu eleccion por ejemplo C
5.-Pruebas: Se trata de realizar pruebas tratando de cubrir todas las posibilidades de tu programa introduciendo diferentes variables para comprobar que el programa no tiene errores y da los resultados deseados
6.-Implementacion: Es ya poner el programa en funcionamiento e instalarlo en el sistema [4]
El sistema Operativo (SO)
Ahora que hemos visto algunas de estas etapas centrémonos en el programa mas importante que tiene un computador u ordenador, se trata del Sistema Operativo (SO). como bien habrás comprendido nuestra máquina solo comprende un lenguaje binario de 1 y 0, lo que quiere decir que habla un lenguaje un tanto extraño para el usuario, que solo sabe introducir ordenes a través del teclado u otro tipo de dispositivo en su idioma natal, tenemos entonces aparentemente una situación difícil y que no logramos conciliar, para eso entonces requerimos del sistema Operativo pues el mediador o puente entre la máquina y el usuario, pues realiza la doble interpretación de llevar a la maquina el lenguaje particular que ella entiende y nos devuelve un resultado visible y que está en nuestro idioma o por lo menos en un lenguaje que resulta mas comprensible, cómo ves este programa resulta imprescindible porque no solo interpreta ordenes sino que administra todos los recursos de la maquina (la menoría, dispositivos, secuencias etc.).
El sistema operativo como máquina virtual
Un computador se compone de uno o más procesadores o CPUs, memoria principal o RAM, memoria secundaria (discos), tarjetas de expansión (tarjetas de red, modems y otros), monitor, teclado, mouse y otros dispositivos. O sea, es un sistema complejo. Escribir programas que hagan uso correcto de todas estas componentes no es una tarea trivial. Peor aún si hablamos de uso óptimo. Si cada programador tuviera que preocuparse de, por ejemplo, como funciona el disco duro del computador, teniendo además siempre presentes todas las posibles cosas que podrían fallar, entonces a la fecha se habría escrito una cantidad bastante reducida de programas.
Es mucho más fácil decir `escriba "Chao" al final del archivo "datos"', que
1-Poner en determinados registros del controlador de disco la dirección que se quiere escribir, el número de bytes que se desea escribir, la posición de memoria donde está la información a escribir, el sentido de la operación (lectura o escritura), amén de otros parámetros;
2-Decir al controlador que efectué la operación.
3-Esperar. Decidir qué hacer si el controlador se demora más de lo esperado (¿cuánto es "lo esperado"?).
4-Interpretar el resultado de la operación (una serie de bits).
5-Reintentar si algo anduvo mal.
6-etc.
Además, habría que reescribir el programa si se instala un disco diferente o se desea ejecutar el programa en otra máquina.
Hace muchos años que quedó claro que era necesario encontrar algún medio para aislar a los programadores de las complejidades del hardware. Esa es precisamente una de las tareas del sistema operativo, que puede verse como una capa de software que maneja todas las partes del sistema, y hace de intermediario entre el hardware y los programas del usuario. El sistema operativo presenta, de esta manera, una interfaz o máquina virtual que es más fácil de entender y de programar que la máquina "pura". Además, para una misma familia de máquinas, aunque tengan componentes diferentes (por ejemplo, monitores de distinta resolución o discos duros de diversos fabricantes), la máquina virtual puede ser idéntica: el programador ve exactamente la misma interfaz. [5]
Las tareas que generalmente realiza un Sistema Operativo son las siguientes:
-Realizar el interfaz sistema-usuario.
-Compartir los recursos de Hardware entre los usuarios.
-Permitir a los usuarios compartir sus datos entre ellos.
-Prevenir que las actividades de un usuario no interfieran en las de los demás usuarios.
-Calendarizar los recursos de los usuarios.
-Facilitar el acceso a los dispositivos de E/S.
-Recuperarse de fallas o errores.
-Llevar el control sobre el uso de los recursos.
-Entre otras. [5]
Tipos de Sistemas Operativos
Existen varios tipos de sistemas operativos, definidos según su capacidad para administrar simultáneamente información de 16 bits, 32 bits, 64 bits o más.
Sistema | Programación | Usuario único | Usuario múltiple | Tarea única | Multitarea |
DOS | 16 bits | x |
| x |
|
Windows3.1 | 16/32 bits | x |
|
| No preventivo |
Windows95/98/Me | 32 bits |
|
|
| Cooperativo |
WindowsNT/2000 | 32 bits |
| X |
| Preventivo |
WindowsXP | 32/64 bits |
| X |
| Preventivo |
Unix / Linux | 32/64 bits |
| X |
| Preventivo |
MAC/OS X | 32 bits |
| X |
| Preventivo |
Windows 7 | 32/64 bits |
| X |
| Preventivo [6] |
Nuestro mercado la mayoría de las computadores está dominado por el SO Windows en sus diferentes versiones, sin embargo LINUX esta entrado en algunos equipos debido a su filosofia de software libre y a una gran cantidad de ventajas, brevemente veamos algunas características de ambos sistemas operativos, aunque nos vamos a centrar en Windows XP debido a que nuestra sala tiene instalado este software y aunque en los computadores de reciente adquisición tienen instalado la versión 7, en lineas generales sigue manteniendo muchas cosas en común, que hacen fácil la transición entre una versión y la otra.
Qué el S.O LINUX?
Linux es uno de los tantos flavors de Unix. Se trata de un sistema operativo de 32 bits de libre distribución, desarrollado originalmente por Linus Torvalds, un estudiante de la universidad finlandesa de Helsinki, quien, en 1991, se abocó a la tarea de reemplazar a Minix, un clon de Unix de pequeñas proporciones y finalidad académica desarrollado años antes por Andrew Tannenbaun.
A medida que avanzaba en su desarrollo, Linus fue dejando el código fuente de las sucesivas versiones del kernel y utilidades de Linux a disponibilidad de los usuarios de Internet. Este fue sin duda un gran acierto, ya que hizo posible que una multitud de desarrolladores de todo el mundo se familiarizaran con el código, lo cual en primera instancia significó un gran aporte de sugerencias, evolucionado luego hacia un espectacular ejemplo de desarrollo distribuido de software: centenares de desarrolladores independientes, desde diferentes puntos del planeta tomaron a su cargo la producción de software para Linux, ya sea escribiéndolo desde cero o portándolo desde otras plataformas Unix. Esta modalidad de desarrollo continua aún hoy y ha permitido a Linux alcanzar un alto nivel de desarrollo y madurez, así también como un amplio grado de aceptación.
Actualmente, Linux posee todas las características que pueden encontrarse en cualquier sistema Unix moderno, incluyendo direccionamiento lineal de 32 bits, memoria virtual, multitarea real, shared libraries, módulos de kernel cargables on-demand, soporte TCP/IP (incluyendo SLIP, PPP, NFS, etc.), y sistema X-Windows (incluyendo servidores X para los adaptadores de video más populares, y clones de Motif, OpenLook, NextStep y Windows95 como window managers).[7]
Linux es distribuido bajo la Licencia General Pública de GNU, lo cual significa que puede ser distribuido, copiado y modificado gratuitamente, a condición de no imponer ninguna restricción en sucesivas distribuciones. En pocas palabras: Linux es un sistema operativo gratuito.
Obtención del software
Si se dispone de una conexión eficiente y segura a la Internet (y de una buena cuota de paciencia), un paquete Linux completo (kernel + utilidades + aplicaciones) puede obtenerse gratuitamente de muchos servidores FTP públicos; el único costo será en este caso el costo de la conexión a la Internet. [7]
Qué es SO Windows XP?
Windows XP (cuyo nombre en clave inicial fue Whistler) es una versión de Microsoft Windows, línea de sistemas operativos desarrollado por Microsoft. Lanzado al mercado el 25 de octubre de 2001, actualmente es el sistema operativo para x86 más utilizado del planeta (con una cuota de mercado del 56.72%) y se considera que existen más de 400 millones de copias funcionando.3 Las letras "XP" provienen de la palabra eXPeriencia (eXPerience en inglés).
Dispone de versiones para varios entornos informáticos, incluyendo PCs domésticos o de negocios, además de equipos portátiles, "netbooks", "tablet PC" y "media center". Sucesor de Windows 2000 junto con Windows ME, y antecesor de Windows Vista, es el primer sistema operativo de Microsoft orientado al consumidor que se construye con un núcleo y arquitectura de Windows NT disponible en versiones para plataformas de 32 y 64 bits.
A diferencia de versiones anteriores de Windows, al estar basado en la arquitectura de Windows NT proveniente del código de Windows 2000, presenta mejoras en la estabilidad y el rendimiento. Tiene una interfaz gráfica de usuario (GUI) perceptiblemente reajustada (denominada Luna), la cual incluye características rediseñadas, algunas de las cuales se asemejan ligeramente a otras GUI de otros sistemas operativos, cambio promovido para un uso más fácil que en las versiones anteriores. Se introdujeron nuevas capacidades de gestión de software para evitar el "DLL Hell" (infierno de las DLLs) que plagó las viejas versiones. Es también la primera versión de Windows que utiliza la activación del producto para reducir la piratería del software, una restricción que no sentó bien a algunos usuarios. Ha sido también criticado por las vulnerabilidades de seguridad, integración de Internet Explorer, la inclusión del reproductor Windows Media Player y aspectos de su interfaz. [8]
Actividades
Amigos, ahora que hemos leído un poco acerca de lo qué el software y nos hemos introducido en los diferentes Sistemas Operativos como primer programa que debe tener nuestro computador, los invito a realizar las siguientes actividades para que puedas comprender la manera en qué funcionan dentro de tu ordenador.
1. Observa el siguiente video y busca en Internet qué es el software libre y escribe un resumen de lo que encuentres y luego haga un comentario personal sobre lo que puedes interpretar sobre las ventajas y desventajas de usar el software libre GNU
2. Ahora ve a la siguiente aplicación de Jclic, que nos permitirá realizar algunas actividades interactivas, haz cada uno de los ejercicios que te plantean allí
3. Ahora para que conozcas la manera en qué funciona el SO que tenemos instalado en nuestro colegio, vamos a MICROSOFT empresa propietaria de los SO Windows y conozcamos de primera mano junto al programa “Alianza por la educación”, qué es el Windows XP, haz clic sobre el siguiente enlace: (Para que puedas visualizar los videos debes abrir el enlace solo en Internet explorer) [10]
http://www.microsoft.com/latam/educacion/TV/xpyoffice2003/default.aspx
| |
Fuentes
[1] http://biblioweb.sindominio.net/telematica/softlibre/node1.html
[2] http://es.wikipedia.org/wiki/Software
[3] http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html
[4] http://es.answers.yahoo.com/question/index?qid=20090224085506AAF9OJk
[5] http://www.euram.com.ni/pverdes/verdes_informatica/informatica_al_dia/que_es_un_so_144.htm
[6] http://es.kioskea.net/contents/systemes/sysintro.php3
[7] http://www.investigacion.frc.utn.edu.ar/labsis/Publicaciones/QueEsLinux/QueEsLinux.html
[8] http://es.wikipedia.org/wiki/Windows_XP
[9] Aplicación Jclic para iantrodicur a windows xp. Gabriel González y Manel Plou ver (applet) Punt Òmnia-Marianao Sant Boi del Llobregat (Baix Llobregat) http://clic.xtec.cat/db/jclicApplet.jsp?project=http://clic.xtec.cat/projects/winxp/jclic/winxp.jclic.zip&lang=es&title=Introducci%F3n+a+Windows+XP
[10] Qué es: Alianza por la Educación (Partners in Learning.) La iniciativa Alianza por la Educación de Microsoft apoya el compromiso doble de Microsoft de promover la calidad de educación y ofrecer canales alternativos para el progreso económico. A través de la formación de alianzas con gobiernos y escuelas de todo el mundo, Alianza por la educación trabaja para integrar la tecnología en la enseñanza, el aprendizaje e investigación cotidianos.Actualmente, casi 3,5 millones de educadores en más de 100 países han recibido capacitación basada en el plan de estudios de Alianza por la educación y esto ha llegado a más de 80 millones de estudiantes a nivel mundial.Tres programas clave ayudan a los educadores a emplear tecnología a través de todo el proceso de aprendizaje y permiten a los estudiantes lograr sus metas de aprendizaje. http://www.microsoft.com/latam/educacion/alianzaporlaeducacion/partnersinlearning.mspx
0 comentarios:
Publicar un comentario