SlideShare una empresa de Scribd logo
1 de 19
Introducción al Shell de Linux
MSc. Fernando Aparicio Urbano Molano
Arquitectura Computacional
Shell Linux
• Intérprete de comandos.
• Bourne Shell (sh): Escrito por Steve Bourne.
Intel Galileo GPIOPin Digital
Arduino
Pin en
Linux
0 50
1 51
2 14
3 15
4 28
5 17
6 24
7 27
8 26
9 19
10 16
11 25
12 38
13 39
Shell y GPIO
Shell y GPIO
Operadores Aritméticos
+ Igual a
- No igual a
* Menor que
/ Menor que o
igual a
% Mayor que
Operadores Bit a Bit
& AND
| OR
^ XOR
~ NOT o
complemento
<< Desplazamiento
a la izquierda
>> Desplazamiento
a la derecha
Óperadores Relacionales
-eq Igual a
-ne No igual a
-lt Menor que
-le Menor que o igual a
-gt Mayor que
-ge Mayor que o igual a
Operadores Lógicos
&& AND
|| OR
! No igual a
((! $A == true))
GPIO - Dipswitch
Ciclo de Decisión if – elif - else
Ciclo de Decisión if – elif - else
Interfaz GPIO Sysfs
• Interfaces de control: /sys/class/gpio (export, unexport).
• GPIO: /sys/class/gpio/gpioN/ (direction, value, edge,
active_low).
• Controladores GPIO: /sys/class/gpio/gpiochipN/
(base, label, ngpio).
Interfaz GPIO Sysfs
root@clanton:~# cat /sys/kernel/debug/gpio
• GPIO en Intel Galileo se dividen en cuatro partes:
1. GPIOs 0-1 - Intel Quark X1000 – pines GPIO[9:8].
2. GPIOs 2-7 - Intel Quark X1000 – pines GPIO_SUS[5:0].
3. GPIOs 8-15 - Intel Quark X1000 - pines GPIO[7:0] (controlador).
4. GPIOs 16-55 - Expansor Cypress CY8C9540A I/O.
Interfaz GPIO Sysfs
Funciones en Shell
#! /bin/sh
#Se define la
función
Hola (){
echo “Hola Mundo”
}
#Bucle
while true
do
Hola
usleep 500000
done
Funciones con parámetros
#! /bin/sh
#Se define la función
Hola_Mundo (){
echo “Hola $1 $2”
}
#Bucle
while true
do
Hola Intel Galileo
usleep 500000
done
Funciones que retornan valores
#! /bin/sh
#Se define la función
suma(){
res=$(($1 + $2))
return $res
}
#Bucle
while true
do
suma 6 9
ret=$?
echo “El resultado es: $ret”
usleep 500000
done
Función para configuración de GPIO

Más contenido relacionado

Similar a Introducción al Shell Linux

Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Memoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggMemoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggredondoredondoenriqu
 
CCNA_SEC_v11 Cap_04_part_I_EB
CCNA_SEC_v11 Cap_04_part_I_EBCCNA_SEC_v11 Cap_04_part_I_EB
CCNA_SEC_v11 Cap_04_part_I_EBEdgar Benavente
 
[Arqui1]practica2 200815555
[Arqui1]practica2 200815555[Arqui1]practica2 200815555
[Arqui1]practica2 200815555AnGeo Gomez
 
6sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_06sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_0Victor Garcia Vara
 
routerosbasicsv0-3espaol
 routerosbasicsv0-3espaol routerosbasicsv0-3espaol
routerosbasicsv0-3espaolpattala01
 
Lenguaje Ensamblador
Lenguaje Ensamblador Lenguaje Ensamblador
Lenguaje Ensamblador irana piñero
 
Aprenda-ANSI-C-Como-si-estuviera-en-primero.pdf
Aprenda-ANSI-C-Como-si-estuviera-en-primero.pdfAprenda-ANSI-C-Como-si-estuviera-en-primero.pdf
Aprenda-ANSI-C-Como-si-estuviera-en-primero.pdfPablo Narvaez
 
Aprenda ansi-c-como-si-estuviera-en-primero
Aprenda ansi-c-como-si-estuviera-en-primeroAprenda ansi-c-como-si-estuviera-en-primero
Aprenda ansi-c-como-si-estuviera-en-primeroDuban Garces
 
47835801 curso-plc-omron
47835801 curso-plc-omron47835801 curso-plc-omron
47835801 curso-plc-omronMoi Torres
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a ArduinoJosué Herrera
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSebastian Gonzalez
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...
Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...
Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...RootedCON
 

Similar a Introducción al Shell Linux (20)

Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Memoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCgggggggggggMemoria y acciones con un PLCggggggggggg
Memoria y acciones con un PLCggggggggggg
 
CCNA_SEC_v11 Cap_04_part_I_EB
CCNA_SEC_v11 Cap_04_part_I_EBCCNA_SEC_v11 Cap_04_part_I_EB
CCNA_SEC_v11 Cap_04_part_I_EB
 
[Arqui1]practica2 200815555
[Arqui1]practica2 200815555[Arqui1]practica2 200815555
[Arqui1]practica2 200815555
 
6sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_06sos instalacion ipv6_windows_v4_0
6sos instalacion ipv6_windows_v4_0
 
routerosbasicsv0-3espaol
 routerosbasicsv0-3espaol routerosbasicsv0-3espaol
routerosbasicsv0-3espaol
 
Lenguaje Ensamblador
Lenguaje Ensamblador Lenguaje Ensamblador
Lenguaje Ensamblador
 
Aprenda-ANSI-C-Como-si-estuviera-en-primero.pdf
Aprenda-ANSI-C-Como-si-estuviera-en-primero.pdfAprenda-ANSI-C-Como-si-estuviera-en-primero.pdf
Aprenda-ANSI-C-Como-si-estuviera-en-primero.pdf
 
Aprenda ansi-c-como-si-estuviera-en-primero
Aprenda ansi-c-como-si-estuviera-en-primeroAprenda ansi-c-como-si-estuviera-en-primero
Aprenda ansi-c-como-si-estuviera-en-primero
 
47835801 curso-plc-omron
47835801 curso-plc-omron47835801 curso-plc-omron
47835801 curso-plc-omron
 
Introducción a Arduino
Introducción a ArduinoIntroducción a Arduino
Introducción a Arduino
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corte
 
1 switch ex
1   switch ex1   switch ex
1 switch ex
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...
Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...
Jaime Peñalba - Como defenderse en terreno hostil: Protecciones para la Defco...
 

Más de Fernando Aparicio Urbano Molano

Lenguaje C para Microcontroladores PIC - Declaraciones de Decisión
Lenguaje C para Microcontroladores PIC - Declaraciones de DecisiónLenguaje C para Microcontroladores PIC - Declaraciones de Decisión
Lenguaje C para Microcontroladores PIC - Declaraciones de DecisiónFernando Aparicio Urbano Molano
 
Multivibradores, Temporizadores y aplicaciones de los Flip-Flops
Multivibradores, Temporizadores y aplicaciones de los Flip-FlopsMultivibradores, Temporizadores y aplicaciones de los Flip-Flops
Multivibradores, Temporizadores y aplicaciones de los Flip-FlopsFernando Aparicio Urbano Molano
 

Más de Fernando Aparicio Urbano Molano (20)

Ciclos de Control en Shell
Ciclos de Control en ShellCiclos de Control en Shell
Ciclos de Control en Shell
 
Introducción al Linux Embebido
Introducción al Linux EmbebidoIntroducción al Linux Embebido
Introducción al Linux Embebido
 
Lenguaje C para Microcontroladores PIC - Declaraciones de Decisión
Lenguaje C para Microcontroladores PIC - Declaraciones de DecisiónLenguaje C para Microcontroladores PIC - Declaraciones de Decisión
Lenguaje C para Microcontroladores PIC - Declaraciones de Decisión
 
Introducción al Lenguaje C para microcontroladores PIC
Introducción al Lenguaje C para microcontroladores PICIntroducción al Lenguaje C para microcontroladores PIC
Introducción al Lenguaje C para microcontroladores PIC
 
Node.JS para Intel Galileo
Node.JS para Intel GalileoNode.JS para Intel Galileo
Node.JS para Intel Galileo
 
Linux Yocto y GPIO
Linux Yocto y GPIOLinux Yocto y GPIO
Linux Yocto y GPIO
 
Arquitectura Computacional - Intel Galileo
Arquitectura Computacional - Intel GalileoArquitectura Computacional - Intel Galileo
Arquitectura Computacional - Intel Galileo
 
Conexiones del PIC16F887
Conexiones del PIC16F887Conexiones del PIC16F887
Conexiones del PIC16F887
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Modulo Timer 0 del PIC16F887
Modulo Timer 0 del PIC16F887Modulo Timer 0 del PIC16F887
Modulo Timer 0 del PIC16F887
 
Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887
 
Máquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDLMáquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDL
 
Introducción al PIC16 f887
Introducción al PIC16 f887Introducción al PIC16 f887
Introducción al PIC16 f887
 
Memorias
MemoriasMemorias
Memorias
 
Estados Indiferentes - Diagramas de Karnaugh
Estados Indiferentes - Diagramas de KarnaughEstados Indiferentes - Diagramas de Karnaugh
Estados Indiferentes - Diagramas de Karnaugh
 
Clase instrucciones PIC16F877A
Clase instrucciones PIC16F877AClase instrucciones PIC16F877A
Clase instrucciones PIC16F877A
 
Multivibradores, Temporizadores y aplicaciones de los Flip-Flops
Multivibradores, Temporizadores y aplicaciones de los Flip-FlopsMultivibradores, Temporizadores y aplicaciones de los Flip-Flops
Multivibradores, Temporizadores y aplicaciones de los Flip-Flops
 
Flip-Flops y aplicaciones de los Latch
Flip-Flops y aplicaciones de los LatchFlip-Flops y aplicaciones de los Latch
Flip-Flops y aplicaciones de los Latch
 

Último

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 

Último (20)

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 

Introducción al Shell Linux