Wiesemann & Theis GmbH

Tecnología de redes, sensores e interfaces para la industria, la oficina y la informática

Primeros pasos para el programador de software:

Golang para sistemas Linux ARM


El Golang Gopher

Este tutorial sirve para la iniciación en la programación de soluciones individuales de comunicación y automatización sobre la base de sistemas Linux ARM en Go.

El lenguaje desarrollado por Google es fácil y rápido de aprender, en contraposición con los lenguajes de script, pero también muy potente y eficaz. Trae consigo un Cross-Compiler para los sistemas Linux ARM, facilitando así el flujo de trabajo en la programación de pure.box, el polifacético servidor de comunicación y automatización de Wiesemann & Theis.

Tras la instalación y configuración de un entorno de trabajo, en este tutorial se muestra el manejo básico con Gotool a través de la barra de comandos en base a un sencillo programa Hello-World para la pure.box.


Paso 1: instalar Go

Go es un software libre y puede ser descargado desde la página del proyecto. Otra opción es instalar Go desde las fuentes de paquetes. Tras la instalación hay que aplicar o ajustar algunas variables del entorno:

  • PATH

    Es necesario ampliar la variable PATH con el directorio bin en el directorio de GO, para poder ejecutar Go en todo el sistema.

  • GOROOT

    La variable GOROOT del entorno contiene la ruta para el directorio de instalación de Go. Esta variable solo se aplica cuando se haya instalado Go en un directorio diferente al estándar /usr/local/go.

  • GOPATH

    La variable GOPATH contiene la ruta para el directorio de trabajo del usuario. Este directorio contendrá luego los subdirectorios src para fuentes, lib para bibliotecas precompatibles y bin para los archivos ejecutables.

Aplicación de las variables del entorno

En primer lugar, establezca la variable GOPATH en su directorio de trabajo personal. Para ello tiene que editar el archivo .bashrc en su directorio Home y agregar allí por ejemplo la línea siguiente.

					
						export GPOATH=~/go
					
				

Si no ha instalado Go desde las fuentes del paquete, tendrá que establecer ahora la variable GOROOT y ampliar la variable PATH. Estos cambios deben ser realizados como es lógico para todo el sistema. Por tanto, edite el archivo etc/profile con derechos root y añada aquí las dos líneas siguientes:

					
						#Pfad zum Installationsverzeichnis von Go
						export GOROOT=/usr/local/go
						export PATH=$PATH:$GOROOT/bin
					
				
Instalar Git

Para instalar ampliaciones de idiomas y paquetes de terceros sin demasiado esfuerzo, Go emplea Git, el software desarrollado por Linus Torvalds para la gestión repartida de versiones. Este puede ser descargado de www.git-scm.com o instalado a través de la administración de paquetes.

Verificar la instalación

La herramienta de Go es la navaja suiza para la programación en Go. Para verificar si la instalación ha sido correcta puede se puede visualizar con ella el entorno de Go.

Introduzca en el terminal el comando siguiente:

					go env
				

Se obtiene ahora una relación de todas las variables del entorno relevantes para Go:

					
						GOARCH="amd64"
						GOBIN=""
						GOEXE=""
						GOHOSTARCH="amd64"
						GOHOSTOS="linux"
						GOOS="linux"
						GOPATH="/home/martin/go"
						GORACE=""
						GOROOT="/usr/lib/go"
						GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
						CC="gcc"
						GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build863343041=/tmp/go-build -gno-record-gcc-switches"
						CXX="g++"
						CGO_ENABLED="1"
					
				

Si aparece un mensaje de error, seguramente el directorio bin no se encuentra en la ruta de búsqueda de GOROOT. Analice la variable del entorno PATH con el comando echo %PATH%. Compruebe ahora si GOPATH se corresponde con su directorio de trabajo.


Paso 2: Hello World

El desarrollo de programas en Go se realiza dentro del GOPATH en el directorio src. Cree aquí el directorio hello y dentro de ese el archivo hello.go.

				
					package main

					import "fmt"

					func main() {
						fmt.Println("Hello, world!")
					}
				
			

  • Línea 1:
    Si desea crear un archivo ejecutable en Go, usted trabaja en el paquete main.

  • Línea 3:
    El paquete fmt pone a disposición funciones para la entrada y salida.

  • Línea 5:
    La función main() es el punto de iniciación en el programa.

  • Línea 6:
    fmt.Println() ofrece un string, seguido de un carácter Newline.

Para compilar el programa, introduzca ahora el comando siguiente:

				go install github.com/wut/tutorial/hello
			

Si no se emite ningún mensaje de error, el proceso de traducción se ha ejecutado correctamente. El archivo ejecutable hello.exe se encuentra ahora en el directorio bin de su Go-Path.

				
					./hello
					Hello World!
				
			


Paso 3: Hello pure.box - Cross-Compilation para ARM-Linux

Go facilita especialmente la compilación de aplicaciones para otras plataformas destino. Para traducir el ejemplo Hello World para pure.box solo tiene que aplicar temporalmente un par de variables del entorno:

  • GOARCH
    Con la variable GOARCH se establece la arquitectura destino. Para pure.box es arm.

  • GOOS
    Es el sistema operativo de la plataforma destino. Para pure.box hay que fijar esta variable en linux.

  • GOARM
    Con GOARM se comunica al compilador el modo de proceder con las operaciones de coma flotante (Floatingpoint). El valor para pure.box es 5.

Introduzca lo siguiente en el indicador de comandos:

				
					export GOOS=linux
					export GOARCH=arm
					export GOARM=5
				
			

Para iniciar la traducción para todas las plataformas, cambie al directorio del código fuente y ejecute allí go build:

				
					go build
					ls -al
					total 1476
					drwxr-xr-x 2 gopher users    4096 Dec 25 11:31 .
					drwxr-xr-x 3 gopher users    4096 Dec 25 12:08 ..
					-rwxr-xr-x 1 gopher users 1496747 Dec 25 11:31 hello
					-rw-r--r-- 1 gopher users      88 Dec 25 12:09 hello.go
				
			

Como puede ver, en su directorio de trabajo existe ahora el archivo ejecutable hello. ¡La compilación cruzada con Go es realmente así de fácil!


Paso 4: Ejecutar en pure.box

Para transferir Binary a la Box existen varias opciones: Además del acceso por FTP, también se puede integrar la Box directamente en su red de Windows a través de SMB.

El modo más sencillo de probar una aplicación es ejecutarla manualmente en una sesión del terminal, para ello debería estar activado SSH en la Box. Por lo tanto, la transferencia de archivos por SCP es evidente.

Si aún no tiene instalado ningún cliente SSH, instale el paquete open-ssh. Para SCP necesita los parámetros siguientes: El nombre de usuario es "admin", la contraseña es que haya configurado como tal en la administración. Introduzca como nombre del host los nombres o la dirección IP de su pure.box.

Copiar archivo:
				scp hello admin@hostname:/data/userfiles
			

Ejecutar programa:

Conéctese con la pure.box mediante Putty o con el comando ssh.

					
						ssh admin@hostname
					
				

Ejecute a continuación el archivo hello en el directorio /data/userfiles.

					
						./hello
						Hello pure.box
					
				


¿Alguna pregunta? ¡Llámenos!

¿Tiene alguna pregunta sobre estas instrucciones? Nuestro servicio técnico le atenderá con mucho gusto.


^