Вы находитесь на странице: 1из 4

CURSO DESDE 0 DE PROGRAMACIN C BAJO GNU/LINUX.

Entrega 1. Inicio.

Breve historia de C.

En 1969, un hombre llamado Ken Thompson comenzaba a desarrollar un


sistema operativo llamado UNIX sobre un mquina PDP-7 de Digital usando un
lenguaje llamado B. Este lenguaje era experimental y estaba siendo
desarrollado por Martin Richrads, siendo un lenguaje muy cercano a programar
en ensamblador. Con UNIX se hizo atractivo adquirir una mquina de mayores
prestaciones como fue la PDP-11.

Uno de los primeros usuarios fue Dennis Ritchie y lo us para desarrollar el


lenguaje C como una extensin de B (1970-1972). Ms tarde, Thompson y
Ritchie usan C para reescribir la mayor parte de UNIX, lo que conlleva a
convertir C en el principal lenguaje de desarrollo software de sistemas.

Fue en 1978 cuando Brian Kernighan, en colaboracin con Dennis Ritchie,


redacta el primer manual de referencia de C, The C Programming Language..

Posteriormente, la organizacin internacional ANSI public un documento de


descripcin normalizada de C, y actualmente todos los compiladores de C han
adoptado en mayor o menor medida las especificaciones dadas por el estndar
ANSI C.

Entonces ...

... ya podis empezar a haceros una idea de por qu este curso es en C y no en


ningn otro lenguaje, precisamente porque el lenguaje padre de GNU/Linux es
C y me parece muy apto para aprender a programar, y a pesar de su antigedad
C sigue estando muy vivo y se sigue utilizando en multitud de aplicaciones. Es
un lenguaje para programacin estructurada (no es orientado a objetos) y nos
servir para aprender todo lo que necesitamos (y una vez terminemos con esto,
s que podramos tocar la programacin orientada a objetos con C++ por
ejemplo).

El objetivo es ver con un lenguaje todo lo que GNU/Linux como sistema


operativo nos ofrece y no hay nada ms completo que C para esto. Con ello me
refiero a llamadas al sistema, seales, comunicacin en red, concurrencia,
sistemas para el control de la concurrencia.... no le falta nada. Una vez
aprendida una base, hacerlo en un lenguaje u otro es cuestin de leer un poco,
no de volver a aprender.

Qu es lo que necesitamos?

Pues como mnimo un sistema GNU/Linux instalado, un compilador de C y un


editor de textos. Realmente no es necesario ms, pero veremos ms a fondo qu
usar y qu instalar.
1 Un sistema GNU/Linux instalado, nos vale cualquier distribucin. Incluso no
tiene por qu estar instalada, puede ser un LiveCD que tenga el resto de cosas
que necesitemos. Lo mejor es un Linux que sea al menos de la versin 2.4.X
(digo Linux porque me refiero solo al kernel, no al nmero de la versin de una
distribucin cualquiera), yo prefiero de la rama actual 2.6.X y no creo que nadie
use ya a da de hoy kernels mas bajos de la 2.4.X.

2 Un compilador. Nosotros usaremos el compilador de GNU llamado gcc y lo


encontrareis seguro en cualquier distribucin sea la que sea, lo cual no os
supondr ningn problema. Yo personalmente recomiendo versiones de la 3.X
para arriba.

3 Un editor donde escribir nuestro cdigo para luego compilarlo. Nos vale
cualquiera, ya sea bajo consola o bajo entorno grfico. Mis preferencias son:
para consola 'mcedit', y bajo entorno grfico para m como 'kwrite' ninguno.

Esto de aqu arriba es como en los juegos, los requerimientos mnimos, pero
ahora vamos a ver realmente qu vamos a usar o por lo menos qu voy a usar yo
durante el curso:

Para empezar, lo ya indicado anteriormente.


Un IDE (entorno de desarrollo integrado) de programacin, podis usar
cualquiera como Kdevelop 3 o Anjuta (ya veis que no me gusta programar
bajo consola). Yo me decanto por este primero porque es donde ms cmodo
me siento y el nico que explicar. Usad el que queris, simplemente
necesitareis buscar lo que yo hago en kdevelop en el entorno que elijis y eso
no os debe suponer ningn problema.
Un programa para el depurado como GDB.
Un depurador de memoria como 'valgrind'.
GNU make, utilidad de GNU para mantener grupos de programas.
Automake, creador automtico de ficheros Makefile.in a partir de ficheros
makefile.am.
Autoconf, constructor del script configurador automtico.

No os asustis por no entender de qu va esto, todo se integra bajo Kdevelop


aunque hay que instalarlo por separado, pero aun as veremos ms adelante
cmo usar las distintas herramientas por separado.

Vamos a instalarlo.

Instalar todo lo aqu comentado no supondr mucho problema, ya que que todo
o casi todo viene de serie en los cd's de vuestra distribucin favorita, y lo nico
que tendris que hacer es ir al instalador de vuestra distribucin, buscarlo e
instalarlo. Pero como no todo es perfecto puede que no encontris algunas
cosas, as que pondremos una lista de dnde conseguirlas:

GCC http://gcc.gnu.org/
Kwrite http://kate.kde.org/
mcedit que es una herramienta incluida en Midnight Commander
http://www.ibiblio.org/mc/
Kdevelop http://www.kdevelop.org/
Anjuta http://anjuta.sourceforge.net/
GNU GDB http://www.gnu.org/software/gdb/gdb.html
Valgrind http://valgrind.org/
GNU Make http://www.gnu.org/software/make/
GNU Automake http://www.gnu.org/software/automake/
GNU Autoconf http://www.gnu.org/software/autoconf/

No sabis instalar? Pues esto no puede ser, hay que leerse del Curso desde 0
de GNU/Linux http://www.sinuh.org/web/content/category/3/50/27/50/0 las
entregas de la 18 a la 23.

Como ltima nota, la versin usada de Kdevelop (3.5.5) utiliza las versiones 1.6
de Automake y 2.5 de Autoconf.

Pero no se vayan todava, an hay ms.

No, no son ms programas, pero s es informacin til. Como ya tendris por


defecto instalado el comando 'man', ahora debemos asegurarnos de tener las
pginas en espaol (si es que queris, ya que a algunos puede que os guste el
ingls), ya que es algo que utilizaris da s y da tambin si os metis con el
curso.

Para ello, buscad paquetes en vuestra distribucin llamados igual o parecido al


siguiente 'manpages-es', y si usis debian o derivadas adems tendris
'mapages-es-extra'. En algn momento puede que os interesen las pginas del
manual segn el estndar posix y os interese buscar 'manpages-posix' y
'manpages-posix-dev', las cuales yo prefiero no tener instaladas salvo cuando
son necesarias (trabajar con threads por ejemplo), ya que se muestran por
defecto en vez de las otras que estn en espaol.

Despedida

Damos ya por finalizada esta entrega, aunque corta, densa en acciones para
preparar nuestra plataforma de programacin bajo Linux. En la siguiente
entrega ya nos pondremos a dar nuestros primeros pasos en este lenguaje. Un
saludo y hasta la siguiente entrega.

Agradecimientos:
Revisin del documento: Karuchi (Carolina Garca).

Pgina oficial y dominio de mi propiedad http://matados2k.es


Matados'2k Usuario y moderador de www.sinuh.org
Matados'2k Moderador de foro.noticias3d.com

matados2k (arroba) gmail (punto) com


Este documento est sometido a la licencia de creative commons en su variante
Reconocimiento-NoComercial-SinObraDerivada 2.1 Espaa . Es de agradecer
que se comunique al autor el uso de este documento en otro medio y se debe
incluir de forma obligatoria este recuadro y los agradecimientos.

Вам также может понравиться