Conjunto de programas que puede ejecutar el hardware
Para la realización de las tareas de computación a las que se
Destina.
• Conjunto de instrucciones que permite la utilización de la
Computadora (PC, Estación de trabajo, Mainframe, etc.).
• Es la parte intangible de la computadora, es decir, sistemas
Operativos, aplicaciones, documentos, etc.
Software
Libre – Propietario – Abierto
Software Libre
• Un software será libre cuando permita a los usuarios, que
Adquirieron el producto, poder ejecutarlo, copiarlo, estudiarlo,
Distribuirlo e incluso modificarlo.
• Libre no significa gratuito, no es una cuestión de precio, sino de libertad.
Un software libre garantiza las siguientes libertades: La libertad de usar el programa, con cualquier propósito La libertad de estudiar cómo funciona el programa, y adaptarlo a Sus necesidades La libertad de distribuir copias, con lo que puedes ayudar a otra Persona La libertad de mejorar el programa y hacer públicas las mejoras a Los demás, de modo que toda la comunidad se beneficie Para hacer efectivas éstas libertades se debe poder acceder al código fuente.
Código Fuente: Conjunto de líneas de texto que son las instrucciones que debe seguir la Computadora para ejecutar un programa. En él está descripto por completo el aspecto y funcionamiento del Programa . Es el resultado del trabajo mental del programador junto con la sintaxis Del lenguaje de programación que esté utilizando. Luego que el programador lo escribe debe ser traducido al lenguaje Máquina (código binario) . Éstas traducciones las realizan los llamados Compiladores, ensambladores, intérpretes y otros sistemas de Traducción. Código fuente de una página web… El software es como las recetas de cocina, tenés apuntada En un papel una receta, hacés el plato (muy bueno) y se lo Das a probar a alguien. Para que esa persona pueda hacer el Mismo plato le debés dar la receta, con el sabor del plato no Es suficiente. En el campo del software existe el código fuente (la receta) Y el programa (el plato cocinado), para poder modificar el Programa (el plato cocinado) o hacerlo con tus propios Medios (ingredientes), alguien te ha tenido que dar el Código fuente (la receta). Tipos de Software Libre • Software de dominio público: significa que no está protegido por el Copyright*, por lo tanto, podrían generarse versiones no libres del Mismo. • Software libre protegido con Copyleft * 1 : impide a los redistribuidores Incluir algún tipo de restricción a las libertades propias del software así Concebido, es decir, garantiza que las modificaciones seguirán siendo Software libre (Código Abierto). * Solamente su autor puede utilizar, modificar y distribuir su contenido. *1 Licencia que permite la libre distribución de copias y versiones de las mismas modificadas, exigiendo Que los mismos derechos sean preservados. Software Abierto Diferencias con el Libre • La idea del código abierto se centra en la premisa de que al compartir El código, el programa resultante tiende a ser de calidad superior al Software propietario. Se enfoca en cómo «mejorar» el software, en Sentido meramente práctico. • El software libre no busca ser práctico a nivel de desarrollo, cosa que También consigue, sino que tiene que ver con la moral y la ética: Defiende un derecho fundamental, la libertad. • Ambos movimientos comparten que el software debe ser libremente Modificable y distribuible, con o sin cambios o mejoras. Mientras el Código abierto marca la diferencia en que si bien el código debe ser También accesible pueden existir restricciones sobre su uso o Modificación. • Es el software no libre, también llamado privativo o privado. • Se refiere a cualquier programa informático en el que los usuarios tienen Limitadas las posibilidades de usarlo, modificarlo o redistribuirlo, o que su 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 posee los derechos de Autor sobre un software negando o no otorgando los derechos de usar el Programa con cualquier propósito. Es decir, se le permite a un Desarrollador o empresa controlar a sus usuarios. • Windows y Mac OS son los mejores ejemplos de software propietario. Software propietario Sintetizando diferencias… Software De Sistema – De Aplicación – De Programación • El software también puede clasificarse de acuerdo a su fin… Software de Sistema (O Base) • Vienen incorporados o pre-instalados con la computadora. • Es esencial para la computadora, sin el no podría funcionar. • Le otorgan al usuario una interfaz. • Es el software que nos permite tener una interacción con Nuestro hardware. • Da soporte a los demás programas. Software de Aplicación • Permiten al usuario realizar una tarea específica. Ejemplo, si Quieres dibujar utilizas un Graficador, si quieres escribir Utilizas un Procesador de Texto, si quieres realizar unas Cuentas numéricas utilizas una Planilla de Cálculo, etc. Software de Programación • Son las herramientas que el programador utiliza para Desarrollar programas informáticos. Para ello se vale de Distintos lenguajes de programación. Algunos ejemplos: • Editores de texto • Compiladores • Interpretes • Enlazadores • Depuradores • Entorno de desarrollo integrado (IDE) Software Del código fuente al código máquina Un programa escrito en un lenguaje de alto nivel (código Fuente), no puede ser ejecutado directamente por la Computadora, sino que debe ser traducido a lenguaje máquina. • Las etapas por las que debe pasar un programa escrito en Un lenguaje de programación, hasta poder ser ejecutable Son: 1. Programa fuente: Programa escrito en un lenguaje de alto Nivel 2. Compilador: Programa encargado de traducir los programas Fuentes a lenguaje máquina y de comprobar que las llamadas A las funciones de librería se realizan correctamente. 3. Programa (o código) objeto: Es el programa fuente traducido (por el compilador) a código máquina. Aún no es Directamente ejecutable. 4. Programa Ejecutable: Traducción completa a código máquina (realizada por el enlazador) del programa fuente y que ya es Directamente ejecutable. Enlazador: programa encargado de insertar al programa objeto el Código máquina de las funciones de las librerías (archivos de Biblioteca) usadas en el programa y realizar el proceso de Montaje, que producirá un programa ejecutable .Exe. Las librerías son una colección de código (funciones) ya Programado y traducido a código máquina, listo para utilizar en Un programa y que facilita la labor del programador. Como cada lenguaje de programación tiene unas reglas Especiales (sintaxis) debe existir un compilador específico Para cada lenguaje de programación. Si el programa fuente es sintácticamente correcto, el Compilador generará el código objeto, en caso contrario Mostrará una lista con los errores encontrados, no Generándose ningún programa objeto, para que Procedamos a su depuración. Un depurador es un programa diseñado específicamente para la Detección, verificación y corrección de errores. Los depuradores nos permiten trazar el programa (ejecutarlo Sentencia a sentencia) y visualizar el contenido de las variables y Direcciones de memoria durante la ejecución del programa. Además Permiten alterar el flujo de ejecución del mismo, cambiar los valores De las variables e introducir puntos de parada. Pasos para la elaboración y Ejecución de un programa: 1 •Escribir el código fuente, en el editor. 2 •Compilar el fichero fuente. 3 •Si se producen errores de sintaxis volver al editor y corregirlos. 4 •Si no hay errores se obtendrá el código objeto y el enlazador construirá el archivo ejecutable. 5 •Una vez tengamos el archivo ejecutable, será el sistema operativo el encargado de colocar el programa en La memoria central y ejecutarlo. 6 •Comprobar el funcionamiento del programa. 7 •Si se detecta errores o un mal funcionamiento del programa, activar el depurador para trazar el programa y Ejecutarlo sentencia a sentencia. 8 •Una vez que hayamos encontrado la causa del error, volveremos al editor y lo corregimos. 9 •El proceso de compilar, enlazar y ejecutar el programa lo repetiremos hasta que no se produzcan errores.
Un software libre garantiza las siguientes libertades: La libertad de usar el programa, con cualquier propósito La libertad de estudiar cómo funciona el programa, y adaptarlo a Sus necesidades La libertad de distribuir copias, con lo que puedes ayudar a otra Persona La libertad de mejorar el programa y hacer públicas las mejoras a Los demás, de modo que toda la comunidad se beneficie Para hacer efectivas éstas libertades se debe poder acceder al código fuente.
Código Fuente: Conjunto de líneas de texto que son las instrucciones que debe seguir la Computadora para ejecutar un programa. En él está descripto por completo el aspecto y funcionamiento del Programa . Es el resultado del trabajo mental del programador junto con la sintaxis Del lenguaje de programación que esté utilizando. Luego que el programador lo escribe debe ser traducido al lenguaje Máquina (código binario) . Éstas traducciones las realizan los llamados Compiladores, ensambladores, intérpretes y otros sistemas de Traducción. Código fuente de una página web… El software es como las recetas de cocina, tenés apuntada En un papel una receta, hacés el plato (muy bueno) y se lo Das a probar a alguien. Para que esa persona pueda hacer el Mismo plato le debés dar la receta, con el sabor del plato no Es suficiente. En el campo del software existe el código fuente (la receta) Y el programa (el plato cocinado), para poder modificar el Programa (el plato cocinado) o hacerlo con tus propios Medios (ingredientes), alguien te ha tenido que dar el Código fuente (la receta). Tipos de Software Libre • Software de dominio público: significa que no está protegido por el Copyright*, por lo tanto, podrían generarse versiones no libres del Mismo. • Software libre protegido con Copyleft * 1 : impide a los redistribuidores Incluir algún tipo de restricción a las libertades propias del software así Concebido, es decir, garantiza que las modificaciones seguirán siendo Software libre (Código Abierto). * Solamente su autor puede utilizar, modificar y distribuir su contenido. *1 Licencia que permite la libre distribución de copias y versiones de las mismas modificadas, exigiendo Que los mismos derechos sean preservados. Software Abierto Diferencias con el Libre • La idea del código abierto se centra en la premisa de que al compartir El código, el programa resultante tiende a ser de calidad superior al Software propietario. Se enfoca en cómo «mejorar» el software, en Sentido meramente práctico. • El software libre no busca ser práctico a nivel de desarrollo, cosa que También consigue, sino que tiene que ver con la moral y la ética: Defiende un derecho fundamental, la libertad. • Ambos movimientos comparten que el software debe ser libremente Modificable y distribuible, con o sin cambios o mejoras. Mientras el Código abierto marca la diferencia en que si bien el código debe ser También accesible pueden existir restricciones sobre su uso o Modificación. • Es el software no libre, también llamado privativo o privado. • Se refiere a cualquier programa informático en el que los usuarios tienen Limitadas las posibilidades de usarlo, modificarlo o redistribuirlo, o que su 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 posee los derechos de Autor sobre un software negando o no otorgando los derechos de usar el Programa con cualquier propósito. Es decir, se le permite a un Desarrollador o empresa controlar a sus usuarios. • Windows y Mac OS son los mejores ejemplos de software propietario. Software propietario Sintetizando diferencias… Software De Sistema – De Aplicación – De Programación • El software también puede clasificarse de acuerdo a su fin… Software de Sistema (O Base) • Vienen incorporados o pre-instalados con la computadora. • Es esencial para la computadora, sin el no podría funcionar. • Le otorgan al usuario una interfaz. • Es el software que nos permite tener una interacción con Nuestro hardware. • Da soporte a los demás programas. Software de Aplicación • Permiten al usuario realizar una tarea específica. Ejemplo, si Quieres dibujar utilizas un Graficador, si quieres escribir Utilizas un Procesador de Texto, si quieres realizar unas Cuentas numéricas utilizas una Planilla de Cálculo, etc. Software de Programación • Son las herramientas que el programador utiliza para Desarrollar programas informáticos. Para ello se vale de Distintos lenguajes de programación. Algunos ejemplos: • Editores de texto • Compiladores • Interpretes • Enlazadores • Depuradores • Entorno de desarrollo integrado (IDE) Software Del código fuente al código máquina Un programa escrito en un lenguaje de alto nivel (código Fuente), no puede ser ejecutado directamente por la Computadora, sino que debe ser traducido a lenguaje máquina. • Las etapas por las que debe pasar un programa escrito en Un lenguaje de programación, hasta poder ser ejecutable Son: 1. Programa fuente: Programa escrito en un lenguaje de alto Nivel 2. Compilador: Programa encargado de traducir los programas Fuentes a lenguaje máquina y de comprobar que las llamadas A las funciones de librería se realizan correctamente. 3. Programa (o código) objeto: Es el programa fuente traducido (por el compilador) a código máquina. Aún no es Directamente ejecutable. 4. Programa Ejecutable: Traducción completa a código máquina (realizada por el enlazador) del programa fuente y que ya es Directamente ejecutable. Enlazador: programa encargado de insertar al programa objeto el Código máquina de las funciones de las librerías (archivos de Biblioteca) usadas en el programa y realizar el proceso de Montaje, que producirá un programa ejecutable .Exe. Las librerías son una colección de código (funciones) ya Programado y traducido a código máquina, listo para utilizar en Un programa y que facilita la labor del programador. Como cada lenguaje de programación tiene unas reglas Especiales (sintaxis) debe existir un compilador específico Para cada lenguaje de programación. Si el programa fuente es sintácticamente correcto, el Compilador generará el código objeto, en caso contrario Mostrará una lista con los errores encontrados, no Generándose ningún programa objeto, para que Procedamos a su depuración. Un depurador es un programa diseñado específicamente para la Detección, verificación y corrección de errores. Los depuradores nos permiten trazar el programa (ejecutarlo Sentencia a sentencia) y visualizar el contenido de las variables y Direcciones de memoria durante la ejecución del programa. Además Permiten alterar el flujo de ejecución del mismo, cambiar los valores De las variables e introducir puntos de parada. Pasos para la elaboración y Ejecución de un programa: 1 •Escribir el código fuente, en el editor. 2 •Compilar el fichero fuente. 3 •Si se producen errores de sintaxis volver al editor y corregirlos. 4 •Si no hay errores se obtendrá el código objeto y el enlazador construirá el archivo ejecutable. 5 •Una vez tengamos el archivo ejecutable, será el sistema operativo el encargado de colocar el programa en La memoria central y ejecutarlo. 6 •Comprobar el funcionamiento del programa. 7 •Si se detecta errores o un mal funcionamiento del programa, activar el depurador para trazar el programa y Ejecutarlo sentencia a sentencia. 8 •Una vez que hayamos encontrado la causa del error, volveremos al editor y lo corregimos. 9 •El proceso de compilar, enlazar y ejecutar el programa lo repetiremos hasta que no se produzcan errores.