Download practica0

Document related concepts
Transcript
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Definición de Sistema Operativo
$ Software Libre
$ Distribuciones Linux
$ Definición de LiveCD
$ Programa Fuente, Programa Objeto, Compilador
$ Uso del CentOS
$ Comandos por consola
$ Construcción del primer programa en C
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Definición de Sistema Operativo
Un sistema operativo (SO) es un conjunto de programas destinados a
permitir la comunicación del usuario con un ordenador y gestionar sus recursos
de manera eficiente. Comienza a trabajar cuando se enciende el ordenador, y
gestiona el hardware de la máquina desde los niveles más básicos.
Un sistema operativo se puede encontrar normalmente en la mayoría de los
aparatos electrónicos que podamos utilizar sin necesidad de estar conectados a
un ordenador y que utilicen microprocesadores para funcionar, ya que gracias a
estos podemos entender la máquina y que ésta cumpla con sus funciones
(teléfonos móviles, reproductores de DVD, equipos de sonido... y
computadoras)
Fuente: http://es.wikipedia.org/wiki/Sistema_operativo
Laboratorio de Algoritmos y Programación I
Laboratorio 0
Software Libre
Software libre (en inglés free software) es el software que, una vez obtenido,
puede ser usado, copiado, estudiado, modificado y redistribuido libremente.
El software libre suele estar disponible gratuitamente en Internet, o a precio
del coste de la distribución a través de otros medios; sin embargo no es
obligatorio que sea así y, aunque conserve su carácter de libre, puede ser
vendido comercialmente.
Análogamente, el software gratis o gratuito (denominado usualmente
freeware) incluye en algunas ocasiones el código fuente; sin embargo, este
tipo de software no es libre en el mismo sentido que el software libre, al
menos que se garanticen los derechos de modificación y redistribución de
dichas versiones modificadas del programa.
Fuente: http://es.wikipedia.org/wiki/Software_libre
Laboratorio de Algoritmos y Programación I
Laboratorio 0
Software Libre
La definición mantenida por la Fundación para el Software Libre dice que para
que un programa de ordenador sea considerado software libre debe respetar
cuatro derechos o libertades considerados como fundamentales para el
usuario de ese programa:
•
Los usuarios deben tener derecho a utilizar el programa, sin restricciones,
donde quiera, como quiera y para lo que quiera.
•
Los usuarios deben tener derecho a estudiar cómo funciona el programa y, si
lo desean, a adaptarlo a sus necesidades específicas.
•
Los usuarios deben tener derecho a distribuir copias a sus amigos, empleados,
conocidos, empleadores y, en fin, a cualquier persona que deseen.
•
Los usuarios deben tener derecho a mejorar el programa, publicar y distribuir
sus mejoras al público (o a quien deseen) de modo que más personas salgan
beneficiadas de los cambios.
Fuente: http://www.gnu.org/home.es.html
Laboratorio de Algoritmos y Programación I
Laboratorio 0
Software GNU
La denominación de Software GNU engloba de forma general a cualquier software
desarrollado o mantenido por el Proyecto GNU, que conforma el Sistema
Operativo GNU. El Directorio de Software de la Free Software Foundation
proporciona una interfaz web para buscar Software GNU y Software Libre
catalogados por funcionalidades.
Fuente: http://www.gnu.org/home.es.html
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Distribuciones Linux
•Distribuciones no comerciales:
•Archlinux (optimimizada para procesadores i686)
•Aurox (basada en Red Hat Linux)
•BestLinux
•Bluewall
•ByzantineOS
•Debian (x86/PPC)
•CentOS (basada en Red Hat Enterprise Linux)
•Fedora Core (x86/PPC) (basada en Red Hat Linux)
•Gentoo Linux (x86/PPC)
•Gnoppix (basada en Ubuntu, antes en Debian, de tipo
CD autónomo)
•Knoppix (basada en Debian, de tipo CD autónomo)
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Distribuciones Linux
•Distribuciones no comerciales: (continuación)
•(x86/PPC/x86-64) (basada en Debian)
•Kubuntu (x86/PPC/x86-64) (Ubuntu con KDE)
•Mandriva Linux (x86/PPC/x86-64) (antes Mandrake Linux)
•MkLinux (para todo tipo de modelos Apple [[Macintosh])
•Pardus (basada en Debian)
•ROCK Linux
•Slackware
•Slax (live basada en Slackware)
•Scientific Linux (basada en Red Hat Enterprise Linux)
•OpenSuSE
•Trinux (basada en Debian, de tipo CD autónomo)
•Trustix Secure Linux
•VectorLinux (basada en Slackware)
•White Box (basada en Red Hat Enterprise Linux)
•Jarro Negro (basada en Slackware)
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Distribuciones Linux
•Distribuciones no comerciales hispanoamericanas
•ASLinux Desktop (distribución para escritorios de descarga gratuita basada en Debian y KDE mantenida por la
empresa andaluza Activa Sistemas)
•EduLinux (una distribución educativa chilena)
•Admelix (una distribución chilena)
•Linuxinf (una distribución educativa/informatica chilena)
•Espactra (Estación Practica de Trabajo)
•Gobierno GDF/Linux (creada por la Delegación Tlalpan del Gobierno del Distrito Federal (México), basada en
Fedora)
•Jarro Negro (creada por la Comunidad Linux UNAM Naucalpan CLUN, por estudiantes del Colegio de Ciencias y
Humanidades plantel Naucalpan, basada en Slackware y Debian)
•GuadaLinex (x86/PPC) (impulsada por la Junta de Andalucía (España) basada en Ubuntu, antes en Debian)
•JuegaLinex (x86/PPC) (Hermana de Guadalinex, pero con muchos juegos)
•gnUAMix (patrocinada por la Universidad Autónoma de Madrid, basada en Debian y de tipo CD autónomo)
•Linedux ( distribución educativa creada en Lima - Perú y basada en Debian)
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Distribuciones Linux
•Distribuciones no comerciales hispanoamericanas (continuación)
•LinEspa (creada por el foro LinuxenEspañol, basada en Debian)
•LinEx (creada por la Junta de Extremadura (España),)
•Linuxin (basada en Debian GNU/Linux 3.0 (Woody) y realizada para novatos)
•LliureX (creada por la Generalitat Valenciana (España) y orientada al sistema educativo, basada en Knoppix.
Soporta 2 idiomas: español y valenciano)
•LUC3M (distribución de la Universidad Carlos III de Madrid)
•Molinux (creada por la Comunidad Autónoma de Castilla-La Mancha (España), basada en Ubuntu)
•Musix GNU+Linux (100% Libre. Destinado a músicos, técnicos sonidistas y usuarios en general)
•Pequelin (distribución educativa para niños y jóvenes, basada en Knoppix)
•UTUTO XS (distribución 100% libre creada en Argentina por el Proyecto UTUTO con repositorios compilados
para diversos procesadores Intel y AMD)
•Tuquito ( distribución creada en Tucuman - Argentina y basada en Debian)
•Kwort ( distribución creada en Rosario - Argentina y basada en Slackware )
•WENDYX (distribución Chilena orientada a Desktop [1], basada en knoppix/Debian/biglinux)
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Distribuciones Linux
•Distribuciones comerciales
•ASLinux Desktop (distribución para escritorios de descarga gratuita basada en Debian y KDE mantenida
por la empresa andaluza Activa Sistemas)
•Caldera Linux
•Corel Linux (basada en Debian)
•Linspire (basada en Debian) (antes Lindows)
•Lycoris Desktop/LX
•Mandriva Fusion de Conectiva y Mandrake.
•Tumix GNu/linux
•Red Hat Linux
•Red Hat Enterprise Linux
•SUSE Linux (x86/PPC)
•Turbolinux
•Xandros (basada en Corel Linux e inspirada en Debian)
•Yellow Dog Linux (para PPC, basada en Fedora Core PPC)
Fuente: http://es.wikipedia.org/wiki/Distribuciones_de_Linux
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Definición de LiveCD
Un LiveCD (traducido en ocasiones como CD vivo o CD autónomo) es un sistema
operativo (normalmente acompañado de un conjunto de aplicaciones)
almacenado en un medio extraíble, tradicionalmente un CD (de ahí su nombre),
que puede ejecutarse desde éste sin necesidad de instalarlo en el disco duro del
ordenador, para lo cual usa la memoria RAM como disco duro virtual y el propio
medio como sistema de archivos. Algunos LiveCD incluyen una herramienta que
permite instalarlos en el disco duro. Otra característica es que por lo general no
se efectúan cambios en la computadora utilizada, aunque algunos pueden
almacenar preferencias si así se requiere.
Para usar un LiveCD es necesario obtener uno (muchos de ellos distribuyen
libremente una imagen ISO que puede bajarse de Internet y grabarse en disco) y
configurar el ordenador para que arranque desde la unidad lectora, reiniciando
luego el ordenador con el disco en la lectora, con lo que el LiveCD se iniciará
automáticamente.
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Código Fuente, Programa Objeto, Compilador
Código fuente: es el código del programa original escrito en un lenguaje de programación.
Programa Objeto: es un programa en lenguaje de máquina que resulta de la compilación de
un programa fuente.
Compilador: Es un programa que acepta otros programas escritos en un lenguaje de alto nivel
y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede
ejecutarse tantas veces como se quiera.
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Uso del CentOS
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Comandos por consola
•man
//despliega la documentación en línea
//acerca de un comando
•ls
// lista los archivos del directorio
• Argumentos de ls: ls –l, ls –help
// lista los archivos del directorio mostrando
// diferentes características según el
// parámetro.
•Mkdir
// crea directorio (mkdir nombreDirectorio)
•Cp
// copia un archivo (cp archivo1 archivo2)
•Mv
// cambia el nombre (mv archivo1 archivo2)
// cambia el archivo de directorio
(mv /dir1/archivo1 /dir2/archivo2)
•Rm
// elimina el archivo indicado (rm archivo1)
•Argumentos de rm: rm –r
// elimina archivos del directorio
(rm –r /home/usuario/Desktop)
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Comandos por consola
•Pwd
// directorio actual
•Clear
// limpia la pantalla
•Top
// muestra los procesos en ejecución
•Kill
// detiene el proceso indicado (kill 23)
• Uso del Tabulador:
Facilita la búsqueda de directorios.
Permite completar los nombres de archivos.
• Uso del historial
Permite acceder a los comandos que se han ejecutado en la consola, a través
del cursor del teclado.
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Editores de texto por consola: PICO
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Construcción del primer programa en C
#include <stdio.h>
main()
{
printf(“Hola Mundo”);
}
Código del programa 0 – Hola Mundo
Laboratorio de Algoritmos y Programación I
Laboratorio 0
Explicación de la sintaxis (ejemplo anterior en lenguaje C):
#include <stdio.h>
main()
$ Librería que contiene las funciones standard in y out
(comunicación entre el usuario y el computador)
$ main = principal. El main es el código que el
computador ejecutará en primer lugar. Los paréntesis
sirven para enviar valores, si fuese necesario.
{
$ Indica el comienzo del código dentro del main()
Printf(“hola mundo”);
Printf es el comando que utiliza el lenguaje C para
escribir en la pantalla. En este caso, lo que se quiere
escribir en pantalla es la frase “hola mundo”. Las comillas
“” se utilizan para indicarle al comando Printf lo que debe
escribir en la pantalla. El punto y coma ; indica el final de
una línea de código.
}
Indica el final del código dentro del main().
Laboratorio de Algoritmos y Programación I
Laboratorio 0
Otras consideraciones básicas del Lenguaje C:
El comando #include siempre se ubicará al principio del programa. El lenguaje C
contiene varias librerías, con diferentes funciones que realizan distintas tareas. En
un mismo programa pueden incluirse las librerías que sean necesarias.
Es importante que cada llave que abre “{“ tenga su correspondiente llave que cierra
“}”. Esto aplica para todas las funciones del lenguaje C que utilizan llaves.
Es importante que cada una de las líneas del código terminen con punto y coma (;).
El compilador generará un error si no consigue un punto y coma para cada una de
las líneas de un programa en C, mas no así para la inclusión de librerías
(#include<>) y las llaves.
Los comandos en lenguaje C son “case sensitive” (distinción entre mayúsculas y
minúsculas). Esto implica que si se escribe el comando Printf() o PRINTF() en vez
del comando correcto printf(), el compilador generará un error.
Laboratorio de Algoritmos y Programación I
Laboratorio 0
$ Comandos por consola: Compilación
Archivos en C (nombrearchivo.c)
Archivos en C++ (nombrearchivo.cpp)
Archivos en java (nombrearchivo.java)
Archivos en Pascal (nombrearchivo.pas)
Sintaxis de compilación de programas en lenguaje C (cónsola de Linux)
gcc nombrearchivo.c –o nombreprograma
Sintaxis de compilación al utilizar la librería math.h
gcc nombrearchivo.c –o nombre programa –lm