2. GNU/Linux
Normalmente conocido como Linux.
Características que lo diferencian del resto de los sistemas operativos:
● Es libre, esto significa que no tenemos que pagar ningún tipo de licencia por el uso del mismo
● El sistema viene acompañado del código fuente.
El sistema lo forman el núcleo del sistema (kernel) más un gran número de programas y librerias que hacen posible su utilización.
GNU se usa habitualmente con un núcleo llamado Linux, que asigna los recursos de la máquina y se comunica con el hardware
3. Gnu
● Sistema operativo GNU
● Crear una alternativa al sistema comercial UNIX
● Desarrollado por Free Software Foundation (FSF)
● Richard Stallman, fundador de FSF en 1985 y proyecto GNU en
1983
● FSF se dedica a eliminar las restricciones sobre la copia,
redistribución, entendimiento, y modificación de programas de
computadoras. Promociona el desarrollo y uso del software libre
en todas las áreas de la computación, pero muy particularmente,
ayudando a desarrollar el SO GNU.
● Elabora, mantiene y defiende la licencia GNU GPL
● El proyecto GNU tiene una serie de programas mantenidos por
voluntarios, empresas o una combinación de ambos.
● GNU: GNU not is Unix
● GNU es software libre, Unix es un sistema privativo
● El núcleo de GNU es Hurd
4. Unix
● Nació en los 70 en Labotarorios Bell, AT&T y General Electric
● Desarrollado por Key Thomson y Dennis Ritchie
● Dos variantes: Unix System V y Unix BSD
● Sistema operativo multitarea, multiusuario, rápido y seguro
● Destinado a servidores
● Controlado principalmente desde consola
● Sistema propietario
● Solo funciona en máquinas específicas
● Solo AT&T puede modificarlo y actualizarlo
5. Derivado de Unix: BSD
● En 1977 aparece BSD, sistema operativo de la Univ. de California, basado en UNIX.
● Nació por la necesidad de disponer de un SO que pudiera ser modificado
● AT&T permitió manipular su SO durante los 70. Al retirar esta posibilidad, la universidad
creó su propia versión: BSD
● Última versión de BSD es de 1995
● Surgieron otros proyectos como SunOS, Solaris, OpenSolaris, FreeBSD, OpenBSD, NetBSD
6. BSD
● PlayStation 4 y Nintendo Swich se basan en un Fork de BSD
● Nintendo se basa en FreeBSD y PlayStation en OrbisOS (Derivado
de FreeBSD)
● Mac OS o IOS están basados en DARWIN (derivado de BSD)
● La principal ventaja que ofrece FreeBSD a un fabricante como
puede ser Nintendo o Sony es que, al contrario de lo que ocurre
con Linux, si se modifica el código del sistema operativo, no están
obligados a compartirlo o publicarlo, pudiendo mantener en
secreto las modificaciones que le hagan, y así se evite que los
usuarios encuentren posibles vulnerabilidades para instalar
homebrew en sus dispositivos.
● La principal diferencia entre Linux y BSD es que Linux es un kernel,
mientras que BSD es un sistema operativo (que también incluye un
kernel) que ha sido derivado de del sistema operativo UNIX.
8. Kernel
● Corazón del sistema operativo
● Kernel.org
● Administra la memoria RAM, para que puedan funcionar todos los
programas y procesos en ejecución.
● Administra el tiempo de procesador, que es utilizado por los
procesos en ejecución.
● Gestionar el acceso y uso de los diferentes periféricos conectados
al ordenador.
10. Hurd
El desarrollo del núcleo propio de GNU, Hurd, se inició en 1990 (antes de
que comenzara el de Linux). Programadores voluntarios continúan
desarrollando Hurd por tratarse de un proyecto técnico interesante.
Aunque Richard Stallman había anunciado que esperaba el lanzamiento
oficial del sistema operativo GNU (también conocido como GNU/Hurd) antes
de finales de 2002, esto no fue conseguido, en parte porque se comenzó a
utilizar el núcleo Linux.
cdimage.debian.org/cdimage/ports/
11. Hurd
● Sustituye el núcleo Linux por el núcleo Hurd
● Funciona en arquitectura i386 y AMD64
cdimage.debian.org/cdimage/ports/
12. Origen de Linux
El núcleo Linux apareció por primera vez en 1991, cuando un estudiante de informática finlandés
llamado Linus Torvalds anunció en el grupo de noticias de USENET comp.os.minix, una primera
versión de un núcleo de reemplazo para Minix.
13. Origen de Linux
● El origen de Linux estuvo inspirado en MINIX, un pequeño sistema Unix desarrollado por Andy
Tanenbaum.
● Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix.
● Linus nunca anunció la versión 0.01 de Linux (agosto 1991), esta versión ejecutable, solamente
incluía los principios del núcleo del sistema, estaba escrita en lenguaje ensamblador y asumía que
uno tenía acceso a un sistema Minix para su compilación.
● El 5 de octubre de 1991, Linus anunció la primera versión "oficial" de Linux, (version 0.02). Con esta
versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C).
● Después de la versión 0.03, Linus saltó en la numeración hasta la 0.10. Más y más programadores
a lo largo y ancho de Internet empezaron a trabajar en el proyecto y después de sucesivas
revisiones, Linus incrementó el número de versión hasta la 0.95 (Marzo 1992). Más de un año
después (diciembre 1993) el núcleo del sistema estaba en la versión 0.99 y la versión 1.0 llego el 14
de marzo de 1994.
● La serie actual del núcleo es la 4.13.10 y sigue avanzando día a día con la meta de perfeccionar y
mejorar el sistema.
16. Software Libre y Código Abierto
El software libre y de código abierto (FOSS) es el software que está licenciado de tal manera
que los usuarios pueden estudiar, modificar y mejorar su diseño mediante la disponibilidad
de su código fuente.
Los conceptos de software libre y software de código abierto, que, si bien comparten
modelos de desarrollo similares, tienen diferencias en sus aspectos filosóficos que destaca la
Free Software Foundation.
El software libre se enfoca en las libertades filosóficas que les otorga a los usuarios
mientras que el software de código abierto se enfoca en las ventajas de su modelo de
desarrollo.
"FOSS" es un término imparcial respecto a ambas filosofías.
El software gratis no necesariamente tiene que ser libre o de código abierto (ni viceversa).
18. Software Libre y de Código Abierto
● Dos maneras de afrontar un objetivo similar
● Código abierto es menos restrictivo que el software libre
● Software libre se puede considerar código abierto, pero no todo el software de código
abierto tiene porqué ser libre.
● Según Stallman, con software libre se le da más sentido a la libertad que implica el
término, mientras que utilizar código abierto no implica que haya siempre libertad, sino
disponibilidad a la hora de acceder al código.
22. Ganar Dinero con Software Libre
¿ Cómo ganar dinero con una filosofía que se basa en el concepto de la libre distribución
tanto del programa como de su código fuente ?
Beta testing y colaboraciones de código
Donaciones
Patrocinio
Ediciones empresariales: Dirigido a empresas con más prestaciones y soporte 24/7.
Formación y consultoría
Vender complementos: comercializar plugins o complementos que le doten de mayores
capacidades.
Planes de soporte: Servicios de soporte para resolver problemas con la garantía de la
empresa desarrolladora.
23. Distros
Una distribución Linux es una distribución de software basada en el núcleo Linux que incluye
determinados paquetes de software para satisfacer las necesidades de un grupo específico
de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores.
37. Razones para usar Linux
● Para uso personal y profesional
● Es libre
● Es seguro
● Fácil de usar
● Soporta multitud de drivers
● Compatibilidad con el hardware
● Gran comunidad
● Ahorro en licencias
● Actualizaciones periódicas
● Programas libres
● Muchas distribuciones adaptadas a nuestras necesidades
● Probar sin instalar
● Versatilidad
● Completamente personalizable
● Para equipos con recursos limitados
43. Linux en Supercomputadores
ww.top500.org/statistics/sublist/
To summarize the list of top 500 supercomputers
based on OS this year:
Linux: 498
Unix: 2
Windows: 0
MacOS: 0
To give you a year wise summary of Linux shares on
the top 500 supercomputers:
In 2012: 94%
In 2013: 95%
In 2014: 97%
In 2015: 97.2%
In 2016: 99.6%
In 2017: 99.6
In 2018: ???
44. Linux Vs Android
● Linux es un Kernel libre y abierto, de manera que cualquier desarrollador puede cogerlo para crear su sistema
operativo, el cual no tiene por qué tener herramientas de GNU. Android es un ejemplo de ello.Google decidió
utilizar el Kernel e incorporarle sus herramientas y bibliotecas. Esto hace que contenga Linux sin ser GNU/Linux.
● Aunque Android y GNU/Linux comparten el núcleo, son sistemas operativos totalmente diferentes. Sus librerías
son diferentes, lo que hace que las aplicaciones de ambos sistemas se desarrollen de forma totalmente distinta,
y que por lo tanto las de uno no sean compatibles con el otro.
● Al arrancar un dispositivo Android, se carga el kernel de Linux al igual que lo haría en una distribución de
Linux, sin embargo, gran parte del otro software es diferente, Android no incluye la biblioteca GNU C glibc
utilizado en las distribuciones estándar de Linux, ni tampoco incluye la gran mayoría las bibliotecas de GNU
que se encontrarían en cualquier distribución típica de Linux, tampoco incluye un servidor X como Xorg, por lo
que no se puede ejecutar aplicaciones estándar de Linux gráficos.
● Un sistema operativo completo necesitas una serie de capas agregadas sobre este núcleo. Android está
desarrollado con las librerías de Dalvik como segunda capa y luego un framework que trabaja con Java, por lo
que las aplicaciones creadas para el sistema operativo de Google necesitan ser desarrolladas de forma distinta
y funcionan únicamente en dispositivos con Android
● Android tiene un uso más extenso de la licencia Apache. Esta no exige que el software desarrollado a partir de
códigos fuentes libres modificados deban ser copyleft, por lo que cualquier desarrollador puede hacer software
privativo a partir de códigos bajo la licencia Apache.
52. BASH
Bash (Bourne again shell) es un programa informático, cuya
función consiste en interpretar órdenes, y un lenguaje de consola.
Es el intérprete de comandos por defecto en la mayoría de las
distribuciones de GNU con Linux, además de macOS. También se
ha llevado a otros sistemas como Windows.
58. LS
Enumera los contenidos del directorio actual o de una ruta
si se le indica.
Atributos:
-l (Ofrece más información sobre el contenido: permisos, dueño,
peso etc…)
-a (Muestra ocultos)
-h (Indica el tamaño en KB, MB…)
-r (Invierte el orden de salida)
-t (Ordena por fecha de última modificación)
-u (Ordena por fecha de último acceso)
61. LS
El primer carácter de cada línea indica el tipo de fichero pudiendo ser:
- indica fichero regular.
d indica directorio.
l enlace simbólico
c dispositivos de caracteres.
b dispositivos de bloques.
s conexiones con el dominio local.
p conexiones.
62. LS
Los siguientes de a 3 caracteres, indican los permisos del: dueño u, grupo g y de
los otros o.
R indica permiso de lectura (Read)
W indica permiso de escritura (Write)
X indica permiso de ejecución (eXecute)
63. LS
Los siguientes de a 3 caracteres, indican los permisos del: dueño u, grupo g y de
los otros o.
Si la x del propietario es sustituida por una ese s indican que el bit de setuid (4000) está
activado.
Si la x del grupo es sustituida por una s indican que el bit de setgid (2000) está activado.
Si la x del propietario es sustituida por una T indican que el bit de stick (1000) está
activado.
Si no se han activado los bit de ejecución aparecerán en mayúsculas la letras S o la T
65. CAT
Si se le da un solo archivo, imprime su contenido a la salida
estándar.
Si le da más de un archivo, los concatenará.
Atributos:
-n Enumera las líneas.
67. CD
Le permite ir desde el directorio actual al directorio especificado.
Llamar sin argumentos lo regresa a su directorio personal.
Llamarlo con dos puntos (cd ..) lo regresa a un directorio "arriba" del actual
Llamarlo con un guion (cd -) lo regresa al directorio anterior
69. CP
Copia archivos y directorios.
Atributos:
-r Permite copiar archivos y directorios recursivamente.
-a Igual que el –r pero conserva los permisos/dueño/fecha del fichero
73. CHMOD
Cambia los permisos de escritura/lectura/ejecucion de un archivo o un
directorio.
Atributos:
-R Recursivo.
Chmod –x fichero (quita permiso de ejecución)
Chmod +x fichero (otorga permiso de ejecución)
75. NANO
Editor de texto (muy simple).
nano archivo.txt
Control + O --> Guardar y Salir.
Control + W → Buscar en el fichero
Control + X --> Salir sin guardar
80. TAR
Empaquetar ficheros/directorios con tar
tar -vcf nombre_archivo.tar nombre_carpeta_a_empaquetar
tar: comando.
vcf: opciones.
v: (verbose) muestra en pantalla las operaciones que va realizando archivo
por archivo (opcional).
c: (create/crear) crea un archivo tar.
f: (file/archivo) indica que se dará un nombre al archivo tar.
nombre_archivo.tar: nombre que se dará al archivo tar.
nombre_carpeta_a_empaquetar: nombre de la carpeta (o del directorio)
que se va a empaquetar.
81. TAR
Desempaquetar ficheros/directorios con tar
tar -vxf mi_archivo.tar
tar: comando.
vxf: opciones.
v: (verbose) permite obtener una descripción de los archivos.
desempaquetados (opcional).
x: (extract/extraer) extrae los archivos.
f: (file/archivo) para indicar el archivo tar que contiene los archivos,
parámetro siguiente.
nombre_archivo.tar: el nombre del archivo tar de donde se extraerán los
archivos.
94. grep/zgrep/egrep
Filtra los contenidos de un fichero.
Atributos:
-v Muestra las líneas que no condicen con el patrón buscado.
-i Ignora mayúsculas y minúsculas.
-n Numera las líneas en la salida.
-E Nos permite utilizar expresiones regulares. Equivalente a usar egrep
95. find
Permite localizar archivos/directorios bajo los criterios que le
argumentemos.
find [ruta] [expresión_de_búsqueda] [acción]
Atributos:
-name Permite establecer el nombre de búsqueda.
-iname Igual que name pero insensitive.
-type Permite establecer el tipo de fichero (file, directory, link).
-exec Permite ejecutar comandos con el resultado de este. Por medio
de la cadena {} pasaremos el patrón localizado con find y lo anexará al
comando tras la inclusión del atributo -exec
find . –iname *.txt –type f –exec rm {} ;
96. awk
AWK es un lenguaje de programación que utiliza listas y expresiones
regulares para el proceso de cadenas.
Una vez procesadas esas líneas podemos continuar trabajando con ellas.
97. sed
SED (Stream EDitor) es un editor de flujos y ficheros de forma no
interactiva. Nos permite de forma cómoda, borrar líneas, registros o sustituir
cadenas de caracteres dentro de las líneas.
d = Borrar línea actual.
s = Sustituir cadena en línea actual.
98. cut
Es un comando usado para la extracción de segmentos (o porciones) de
las líneas de texto.
-d Delimitador
-f Field – Nº de campo a mostrar
-c Caracteres
99. wc
Es un comando utilizado en el sistema operativo Unix que se utiliza para
saber el número de palabras/líneas/caracteres que compone a uno o más
archivos.
wc -l <archivo> número de líneas
wc -c <archivo> número de bytes
wc -m <archivo> imprime el número de caracteres
wc -L <archivo> imprime la longitud de la línea más larga
wc -w <archivo> imprime el número de palabras
100. su/sudo
Su permite usar el intérprete de comandos de otro usuario sin necesidad de
cerrar la sesión actual. Comúnmente se usa para obtener permisos de root
Sudo, ejecuta un comando como otro usuario, pero respetando una serie
de restricciones sobre qué usuarios pueden ejecutar qué comandos en
nombre de qué otros usuarios (especificadas en el archivo /etc/sudoers).
Por otro lado, a diferencia de su, sudo pide a los usuarios su propia
contraseña en lugar de la del usuario requerido
102. ifconfig
El comando ifconfig se usa para mostrar información sobre las interfaces de
red conectadas al sistema y también para configurar la interfaz de red.
Asignar una dirección IP a una
interfaz de red
ifconfig eth0 192.168.0.12 up
El comando anterior asignará dicha
dirección IP
a la tarjeta Ethernet con nombre
eth0.
Para desactivar la interfaz de red
ifconfig eth0 down
103. ping
Ping (Packet Internet Groper – Buscador de paquetes en Internet)
incluida por defecto en los sistemas operativos con la cual tendremos la
posibilidad de verificar el estado de una conexión a un equipo local o
remoto.
104. route
Muestra la tabla de enrutamiento; también se usa para modificarla. La tabla
que especifica cómo se enrutan los paquetes a un host se llama tabla de
enrutamiento.
Destination Indica la dirección IP de la red o host de destino
Gateway Indica el puerta de enlace desde el cual se alcanza el
host o red de destino
Genmask Indica el destino de la máscara de subred
Flags -Indica el estado actual de ruta
U - La ruta está activa
H - El objetivo es un host
G - Utilizar puerta de enlace
Iface Indica la interfaz
105. wget
Es una herramienta libre que permite la descarga de contenidos desde
servidores web de una forma simple. Admite HTTP, HTTPs y FTP.
106. ps
Para ver los procesos en sistemas Linux, contamos con el comando ‘ps’,
que listará los procesos que se encuentran corriendo en nuestro equipo.
ps axjf (mostrará un árbol jerárquico con la ruta del programa al que
pertenece el proceso)
107. pstree
Muestra en vista de árbol (de forma jerárquica) una lista de los procesos en
ejecución.
108. top
Es un gestor de procesos integrado en la mayoría de sistemas Linux.
Mientras que ps nos muestra un listado de procesos estático, top nos da un
informe en tiempo real de los mismos.
110. free
El comando Free en Linux muestra la cantidad de memoria libre y usada
que tiene el sistema. Por una parte muestra la memoria física y por otra la
swap, también muestra la memoria caché y de buffer consumida por el
Kernel.
111. kill/pkill
Usaremos kill para detener los procesos que necesitemos, para ello
necesitaremos su PID
Pkill permite matar procesos a través del nombre del mismo.
pkill firefox
112. adduser/userdel
Para añadir un nuevo usuario a nuestro sistema, usamos el comando
adduser o useradd.
Para eliminar un usuario del sistema, utilizaremos userdel.
113. uname
Muestra información del sistema.
Atributos:
-a Muestra toda la información sobre el sistema operativo utilizado..
114. netstat
Netstat es una herramienta de línea de comandos que muestra un listado
de las conexiones activas de una computadora, tanto entrantes como
salientes.
-a Visualiza todas las conexiones y puertos TCP y UDP, incluyendo las que
están "en escucha" (listening).
115. apt
Advanced Packaging Tool (Herramienta Avanzada de Empaquetado),
abreviado APT, es un sistema de gestión de paquetes creado por el
proyecto Debian. APT simplifica en gran medida la instalación y eliminación
de programas en los sistemas GNU/Linux.
116. aptitude
Aptitude es una interfaz para APT. Muestra una lista de paquetes de
software y permite al usuario elegir de modo interactivo cuáles desea
instalar o eliminar. Dispone de un poderoso sistema de búsqueda que
utiliza patrones de búsqueda flexibles
117. rpm
RPM Package Manager (o RPM, originalmente llamado Red Hat Package
Manager) es una herramienta de administración de paquetes pensada
básicamente para GNU/Linux. Es capaz de instalar, actualizar, desinstalar,
verificar y solicitar programas.
118. Cron & Crontab
El nombre cron viene del griego chronos que significa “tiempo”. En el
sistema operativo Unix, cron es un administrador regular de procesos en
segundo plano (demonio) que ejecuta procesos o guiones a intervalos
regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos
que deben ejecutarse y la hora en la que deben hacerlo se especifican en
el fichero crontab.
El código BSD no está controlado por un único usuario, algo que muchos ven como una gran ventaja frente a Linux, cuyo código base (el kernel) está controlado por Linus Torvalds. En BSD no existe una persona que dicte lo que se puede y no se puede integrar en el código.
Para este tipo de proceso hay un “equipo base” que dirige más o menos el proyecto, y que tiene más influencia en la evolución del código que los no miembros de ese equipo base.
Nos enseña como trabaja internamente el núcleo de Linux. Solo para los mas valientes.
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
3. No existen virus para Mac, Linux o plataformas móviles. ¡Ya nos gustaría a todos! La percepción que se tiene es que no hay riesgo ni peligro para estos usuarios, ya que los virus se hacen sólo para plataformas Windows. La realidad es que sí hay virus para todas estas plataformas. La diferencia estriba en la cantidad de amenazas informáticas que circulan si lo comparamos con Windows. Explicarlo es fácil: un hacker busca el beneficio económico. Si lo que quiere es llegar al máximo número de gente posible para conseguir más potenciales víctimas a las que robarles posteriormente, ¿cuál sería el blanco ideal? ¿Una plataforma con 10 millones de usuarios, u otra con 500 millones? La respuesta es obvia.
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Replicant es la versión libre de Android. Los desarrolladores de Replicant han sustituido muchas de las bibliotecas privativas en algunos modelos de dispositivo. Se han excluido las aplicaciones que no son libres.
Si uno valora la libertad, no quiere las aplicaciones privativas que ofrece Google Play. Para instalar aplicaciones libres de Android no se necesita Google Play, porque pueden obtenerse de f-droid.org.
Debate: Cual preferis ??
Debate: Cual preferis ??
Debate: Cual preferis ??
Pues depende. Dentro de lo subjetiva que pueda ser la respuesta, hay que tener en cuenta algo fundamental como son los recursos del equipo. Por lo que si tenemos un equipo antiguo o queremos instalar alguna distribución de Linux en una máquina virtual en la cual no queremos cederle demasiados recursos, lo ideal sería buscar entornos ligeros como puede ser el caso de XFCE o LXDE. En caso contrario que tengamos un equipo sin tantas límitaciones, y queramos permitirnos algún lujo visual podemos pasar a otra categoría entornos como GNOME o KDE.
Debate: Cual preferis ??
Debate: Cual preferis ??
●DNS y resolución de IP.
●Secuencia (número de petición)
●TTL --> Tiempo de vida
●Time --> Tiempo total
●Buffer memoria que se utiliza una vez y SOLO para ese programa (no tienen acceso otros a esa parte de memoria).
●Cache, puede ser consultada varias veces
Por defecto el comando kill envía una señal denominada TERM a un proceso que le pasaremos mediante su PID como argumento. Esta señal TERM pedirá a dicho proceso que termine, permitiéndole gestionar su función de cierre, completando las tareas necesarias y limpiando la información que ha cargado en memoria.