2.
1 Sistemas operativos
Un sistema operativo es un software que se ejecuta en un dispositivo informático y administra los
componentes de hardware y software que conforman un sistema informático funcional.
Los sistemas operativos modernos no solo administran los recursos de hardware y software, sino
que programan que los programas se ejecuten de manera multitarea (compartiendo el procesador
para que puedan ocurrir múltiples tareas aparentemente simultáneamente), brindan servicios
estándar que permiten a los usuarios y programas solicitar que suceda (por ejemplo, un trabajo de
impresión) del sistema operativo, y siempre que se solicite correctamente, el sistema operativo
aceptará la solicitud y realizará la función necesaria.
Los sistemas operativos de escritorio y servidor son, por naturaleza, más complejos que un sistema
operativo que se ejecuta en un dispositivo de propósito único, como un firewall o un teléfono
móvil. Desde un simple decodificador que proporciona una interfaz de menú para un proveedor
de cable, hasta supercomputadoras y clústeres de computación paralelos masivos, el término
genérico sistema operativo se utiliza para describir cualquier software que se inicie y ejecute en
ese dispositivo.
Los usuarios de computadoras de hoy en día pueden elegir principalmente entre tres sistemas
operativos principales: Microsoft Windows , Apple macOS y Linux .
De los tres sistemas operativos principales enumerados, solo Microsoft Windows es único en su
código subyacente. MacOS de Apple es una distribución UNIX totalmente calificada basada en BSD
Unix (un sistema operativo distribuido hasta 1995), complementado por una gran cantidad de
código propietario. Se ejecuta en hardware específicamente optimizado para funcionar con el
software de Apple. Linux puede ser cualquiera de los cientos de paquetes de distribución
diseñados u optimizados para cualquier tarea que se requiera. Solo Microsoft Windows se basa en
una base de código patentada que no está basada en UNIX o Linux.
Un usuario puede interactuar fácilmente con cualquiera de estos sistemas señalando y haciendo
clic en las tareas de productividad cotidianas que se comportan de manera similar
independientemente del sistema operativo subyacente. A excepción de Windows, que se
administra principalmente a través de la GUI, la mayoría de las tareas de administración del
sistema se realizan mediante comandos escritos en un terminal. Un administrador que esté
familiarizado con UNIX generalmente puede realizar tareas en un sistema Linux y
viceversa. Muchas funciones de línea de comandos de Linux también tienen equivalentes de
Microsoft que los administradores usan para hacer su trabajo de manera eficiente.
2.1.1 Puntos de decisión
Papel
La primera decisión al especificar cualquier sistema informático es la función de la
máquina. ¿Estarás sentado en la consola ejecutando aplicaciones de productividad o navegación
web? Si es así, un escritorio familiar es lo mejor. ¿Muchos usuarios accederán a la máquina de
forma remota o proporcionarán servicios a usuarios remotos? Entonces es un servidor .
Los servidores generalmente se sientan en un estante y comparten un teclado y un monitor con
muchas otras computadoras, ya que el acceso a la consola generalmente solo se usa para la
configuración y la resolución de problemas. Los servidores generalmente se ejecutan como una
CLI, lo que libera recursos para el propósito real de la computadora: servir información a los
clientes (cualquier usuario o sistema que acceda a los recursos de forma remota). Los sistemas de
escritorio ejecutan principalmente una GUI para la facilidad de uso de sus usuarios.
Función
A continuación, determine las funciones de la máquina. ¿Hay algún software específico que deba
ejecutar o funciones específicas que deba realizar? ¿Habrá cientos, incluso miles, de estas
máquinas funcionando al mismo tiempo? ¿Cuál es el conjunto de habilidades del equipo que
administra la computadora y el software?
Ciclo vital
La vida útil del servicio y la tolerancia al riesgo del servidor también deben determinarse. Los
sistemas operativos y las actualizaciones de software se realizan periódicamente, lo que se
denomina ciclo de lanzamiento. Los proveedores solo admiten versiones anteriores de software
durante un cierto período de tiempo antes de no ofrecer ninguna actualización; Esto se llama ciclo
de mantenimiento o ciclo de vida .
En un entorno de servidor empresarial, los ciclos de mantenimiento y lanzamiento son
consideraciones críticas porque lleva mucho tiempo y es costoso realizar actualizaciones
importantes. En cambio, el hardware del servidor en sí mismo a menudo se reemplaza porque un
mayor rendimiento vale la pena el gasto adicional, y los recursos involucrados a menudo son
muchas veces más costosos que el hardware.
Considera esto
Hay una gran cantidad de trabajo involucrado en la actualización de un servidor debido a
configuraciones especializadas, parches de software de aplicación y pruebas de usuario, por lo que
una organización proactiva buscará maximizar su retorno de la inversión en capital humano y
monetario.
Los centros de datos modernos están abordando este desafío a través de la virtualización . En un
entorno virtual, una máquina física puede alojar docenas, o incluso cientos de máquinas virtuales,
disminuyendo los requisitos de espacio y energía, además de proporcionar la automatización de
muchas de las tareas realizadas previamente manualmente por los administradores de
sistemas. Los programas de secuencias de comandos permiten crear, configurar, implementar y
eliminar máquinas virtuales de una red sin necesidad de intervención humana. Por supuesto, un
humano todavía necesita escribir el script y monitorear estos sistemas, al menos por ahora.
La necesidad de actualizaciones de hardware físico también se ha reducido enormemente con la
llegada de proveedores de servicios en la nube como Amazon Web
Services , Rackspace y Microsoft Azure . Avances similares han ayudado a los administradores de
escritorio a gestionar las actualizaciones de manera automatizada y con poca o ninguna
interrupción del usuario.
Estabilidad
Las versiones de software individuales se pueden caracterizar como beta o estables dependiendo
de dónde se encuentren en el ciclo de lanzamiento. Cuando una versión de software tiene muchas
características nuevas que no se han probado, generalmente se conoce como beta . Después de
ser probado en el campo, su designación cambia a estable .
Los usuarios que necesitan las últimas funciones pueden optar por utilizar el software beta. Esto a
menudo se realiza en la fase de desarrollo de una nueva implementación y proporciona la
capacidad de solicitar funciones que no están disponibles en la versión estable.
Los servidores de producción generalmente usan software estable a menos que las funciones
necesarias no estén disponibles, y el riesgo de ejecutar código que no ha sido probado
exhaustivamente es mayor que la utilidad proporcionada.
El software en el ámbito del código abierto a menudo se lanza para la revisión por pares muy
temprano en su proceso de desarrollo, y se puede poner muy rápidamente en entornos de prueba
e incluso de producción, proporcionando comentarios extremadamente útiles y envíos de código
para solucionar problemas encontrados o características necesarias.
Por el contrario, el software propietario a menudo se mantendrá en secreto durante la mayor
parte de su desarrollo, y solo alcanzará una etapa beta pública cuando esté casi listo para su
lanzamiento.
Compatibilidad
Otro concepto poco relacionado es la compatibilidad con versiones anteriores que se refiere a la
capacidad de los sistemas operativos posteriores de ser compatibles con el software creado para
versiones anteriores. Esto suele ser una preocupación cuando es necesario actualizar un sistema
operativo, pero una actualización del software de la aplicación no es posible debido al costo o la
falta de disponibilidad.
La norma para el desarrollo de software de código abierto es garantizar primero la compatibilidad
con versiones anteriores y romper las cosas solo como último recurso. La práctica común de
mantener y versionar bibliotecas de funciones ayuda mucho. Por lo general, una biblioteca
utilizada por uno o más programas se versiona como una nueva versión cuando se han producido
cambios significativos, pero también mantiene todas las funciones (y compatibilidad) de versiones
anteriores que pueden ser codificadas o referidas por el software existente.
Costo
El costo siempre es un factor al especificar nuevos sistemas. Microsoft tiene tarifas anuales de
licencia que se aplican a los usuarios, servidores y otro software, al igual que muchas otras
compañías de software. En última instancia, la elección del sistema operativo se verá afectada por
el hardware disponible, los recursos y las habilidades del personal, el costo de compra, el
mantenimiento y los requisitos futuros proyectados.
La virtualización y los servicios de soporte externos ofrecen a la organización de TI moderna la
promesa de tener que pagar solo por lo que usa en lugar de desarrollar una capacidad
excesiva. Esto no solo controla los costos, sino que ofrece oportunidades para que las personas,
tanto dentro como fuera de la organización, proporcionen experiencia y valor.
Interfaz
Los primeros sistemas informáticos electrónicos fueron controlados por medio de interruptores y
enchufes similares a los utilizados por los operadores telefónicos en ese momento. Luego vinieron
las tarjetas perforadas y, finalmente, un sistema de terminal basado en texto similar a la interfaz
de línea de comando (CLI) de Linux que se usa actualmente. La interfaz gráfica de usuario (GUI) ,
con un mouse y botones para hacer clic, fue pionera en Xerox PARC (Centro de Investigación de
Palo Alto) a principios de la década de 1970 y popularizada por Apple Computer en la década de
1980.
Hoy en día, los sistemas operativos ofrecen interfaces GUI y CLI, sin embargo, la mayoría de los
sistemas operativos de consumo (Windows, macOS) están diseñados para proteger al usuario de
las entradas y salidas de la CLI.
2.2 Microsoft Windows
Microsoft ofrece diferentes sistemas operativos según el rol de la máquina: ¿escritorio o
servidor? La versión de escritorio de Windows ha experimentado varios esquemas de
nomenclatura con la versión actual (a partir de este escrito) que es simplemente Windows 10. Las
nuevas versiones de este sistema operativo salen cada 3-5 años y tienden a ser compatibles
durante muchos años. La compatibilidad con versiones anteriores es una prioridad para Microsoft,
incluso llegando a agrupar tecnología de máquina virtual para que los usuarios puedan ejecutar
software más antiguo.
Windows Server actualmente (a partir de este escrito) está en la versión 2019 para indicar la fecha
de lanzamiento. El servidor puede ejecutar una GUI, pero recientemente Microsoft, en gran
medida como una respuesta competitiva a Linux, ha hecho avances increíbles en sus capacidades
de scripting de línea de comandos a través de PowerShell. También hay un paquete opcional de
Experiencia de escritorio que imita una máquina de productividad estándar. Microsoft también
anima activamente a los clientes empresariales a incorporar su servicio en la nube de Azure.
2.3 Apple macOS
Apple fabrica el sistema operativo macOS , que se basa parcialmente en el software del proyecto
FreeBSD y ha recibido la certificación UNIX. macOS es bien conocido por ser "fácil de usar" y, como
tal, ha seguido siendo favorecido por usuarios con acceso limitado a recursos de TI como escuelas
y pequeñas empresas. También es muy popular entre los programadores debido a sus robustas
bases UNIX.
Del lado del servidor, macOS Server está dirigido principalmente a organizaciones más
pequeñas. Esta adición de bajo costo al escritorio de macOS permite a los usuarios colaborar y a
los administradores controlar el acceso a los recursos compartidos. También proporciona
integración con dispositivos iOS como iPhone y iPad.
Algunos departamentos de TI corporativos grandes permiten a los usuarios elegir macOS ya que
los usuarios a menudo requieren menos soporte que las implementaciones de productividad
estándar de Microsoft. La continua popularidad de macOS ha asegurado un apoyo saludable de los
proveedores de software. macOS también es bastante popular en las industrias creativas, como la
producción de gráficos y videos. Para muchos de estos usuarios, la elección de la aplicación
determina la decisión del sistema operativo. El hardware de Apple, al estar tan estrechamente
integrado con el sistema operativo, y su insistencia en el cumplimiento de los estándares en la
programación de aplicaciones les brinda a estos creativos profesionales una plataforma estable
para realizar muchas funciones de computación intensa con menos preocupaciones sobre la
compatibilidad.
2.4 Linux
Los usuarios de Linux suelen obtener un sistema operativo descargando una distribución. Una
distribución de Linux es un paquete de software, típicamente compuesto por el núcleo de Linux,
utilidades, herramientas de administración e incluso algún software de aplicación en un paquete
que también incluye los medios para actualizar el software central e instalar aplicaciones
adicionales.
La distribución se encarga de configurar el almacenamiento, construir el núcleo e instalar
controladores de hardware, así como también instalar aplicaciones y utilidades para crear un
sistema informático completamente funcional. Las organizaciones que crean distribuciones
también incluyen herramientas para administrar el sistema, un administrador de paquetes para
agregar y eliminar software, así como programas de actualización para proporcionar parches de
seguridad y funcionalidad.
El número de distribuciones de Linux disponibles en cientos, por lo que la elección puede parecer
desalentadora al principio. Sin embargo, los puntos de decisión son en su mayoría los mismos que
los resaltados para elegir un sistema operativo.
Papel
Con Linux, hay múltiples opciones para elegir según las necesidades de la organización. La variedad
de distribuciones y el software que lo acompaña permite que el sistema operativo sea
significativamente más flexible y personalizable. Las distribuciones están disponibles para una
variedad mucho más amplia de sistemas, desde ofertas comerciales para el servidor tradicional o
roles de escritorio, hasta distribuciones especializadas diseñadas para convertir una computadora
vieja en un firewall de red; desde distribuciones creadas para alimentar una supercomputadora,
hasta aquellas que permiten sistemas integrados. Estos pueden centrarse en la ejecución de
aplicaciones o servidores web, escritorios de productividad, sistemas de punto de venta o incluso
herramientas dedicadas al diseño electrónico o la informática estadística.
Función
Los gobiernos y las grandes empresas también pueden limitar sus opciones a distribuciones que
ofrecen soporte comercial porque pagar por otro nivel de soporte puede ser mejor que arriesgarse
a interrupciones extensas. En su mayor parte, las preocupaciones sobre la seguridad se han
abordado a través de la gran comunidad de código abierto, que supervisa los cambios en el kernel
en busca de vulnerabilidades y proporciona informes de errores y soluciones a una escala mucho
mayor que la que pueden lograr los proveedores de código cerrado.
El soporte para las aplicaciones necesarias puede variar y es, por lo tanto, una consideración
adicional. A menudo, los proveedores de aplicaciones eligen un subconjunto de distribuciones
para admitir. Las diferentes distribuciones tienen diferentes versiones de las bibliotecas de claves,
y es difícil para una empresa admitir todas estas versiones diferentes. Sin embargo, algunas
aplicaciones como Firefox y LibreOffice son ampliamente compatibles y están disponibles para
todas las distribuciones principales.
Ciclo vital
La mayoría de las distribuciones tienen ciclos de actualización mayores y menores para introducir
nuevas funciones y corregir errores existentes. Además, hay paquetes de desarrollo donde los
usuarios pueden contribuir con código y enviar parches para su posible inclusión en nuevas
versiones.
Las distribuciones de Linux pueden clasificarse ampliamente en dos categorías principales:
entusiastas y empresariales. Una distribución entusiasta como Tumbleweed de openSUSE tiene un
ciclo de actualización rápido, no es compatible con la empresa y es posible que no contenga (o
elimine) funciones o software en la próxima versión que está en la actual. El proyecto Fedora de
Red Hat utiliza un método similar de desarrollo y ciclo de lanzamiento, al igual que Ubuntu
Desktop.
Las distribuciones empresariales son casi exactamente lo contrario, ya que se aseguran de ser
estables y consistentes, y ofrecen soporte de nivel empresarial durante períodos prolongados, de
5 a 13 años en el caso de SUSE. Las distribuciones empresariales son mucho menores, ofrecidas
principalmente por Red Hat, Canonical y SUSE.
El software de la aplicación se puede escribir de modo que solo admita una versión específica de
una distribución, lo que requiere que los usuarios permanezcan en un sistema operativo más
antiguo y menos seguro de lo que desearían. Por lo tanto, se considera que algunas versiones de
Linux tienen soporte a largo plazo (LTS) de 5 años o más, mientras que otras solo tienen soporte
por dos años o menos.
Estabilidad
Algunas distribuciones ofrecen versiones estables , de prueba e inestables . Al elegir una versión
inestable para las características requeridas, se debe tener en cuenta el hecho de que esas
características pueden cambiar en cualquier momento durante el ciclo de desarrollo. Cuando las
características se han integrado en el sistema durante mucho tiempo, con la mayoría de los
errores y problemas resueltos, el software pasa a través de las pruebas a la versión estable.
Otras versiones dependen de distribuciones beta. Por ejemplo, la distribución de Fedora lanza
versiones beta o prelanzamientos de su software antes del lanzamiento completo para minimizar
los errores. Fedora a menudo se considera la versión beta orientada a la comunidad de
RedHat. Las características se agregan y cambian en la versión de Fedora antes de encontrar su
camino en la distribución RedHat lista para la empresa.
openSUSE y su contraparte empresarial SLES (SUSE Linux Enterprise Server) son similares, ya que
la edición comunitaria se utiliza como campo de pruebas para las características y funciones que
eventualmente se migrarán a la versión empresarial. Anteriormente algo diferente, las versiones
posteriores de las bases de código de distribución de openSUSE y SLES son casi idénticas, lo que
permite una migración más fácil de características y código de una a otra.
Considera esto
La distribución Debian advierte a los usuarios sobre las dificultades de usar la versión "sid"
(inestable) con la siguiente advertencia:
' "sid" está sujeto a cambios masivos y actualizaciones de la biblioteca en el lugar. Esto puede
resultar en un sistema muy "inestable" que contiene paquetes que no se pueden instalar debido a
bibliotecas faltantes, dependencias que no se pueden cumplir, etc. ¡Úselo bajo su propio riesgo! '
Costo
La distribución de Linux elegida en sí podría ser de costo cero, pero pagar por el soporte puede
valer la pena dependiendo de las necesidades y capacidades de la organización.
Interfaz
Como la mayoría de los sistemas operativos, Linux se puede usar de una de dos maneras: gráfica
(GUI) y no gráfica (CLI). A continuación se muestra un ejemplo de un escritorio gráfico, con una
barra de menú de aplicaciones populares a la izquierda, un documento de LibreOffice que se está
editando en primer plano y un navegador web en segundo plano.
En modo gráfico, los usuarios pueden tener varias ventanas diferentes con aplicaciones de
terminal (shells) abiertas, lo cual es muy útil cuando se realizan tareas en múltiples computadoras
remotas. Los administradores y usuarios pueden iniciar sesión con su nombre de usuario y
contraseña a través de una interfaz gráfica.
El segundo tipo de interfaz, la CLI, es una interfaz basada en texto para la computadora, donde el
usuario escribe un comando y la computadora lo ejecuta. El entorno CLI es proporcionado por una
aplicación en la computadora conocida como terminal . Terminal El terminal acepta lo que el
usuario escribe y pasa a un shell . El shell interpreta lo que el usuario ha escrito en instrucciones
que puede ejecutar el sistema operativo. Si el comando genera un resultado, este texto se
muestra en el terminal. Si se encuentran problemas con el comando, se muestra un mensaje de
error.
La CLI comienza con un inicio de sesión basado en texto como se muestra a continuación. En un
inicio de sesión exitoso, después de que se le solicite un nombre de usuario y una contraseña, se le
asigna un shell CLI personalizado para el usuario en particular.
En el modo CLI no hay ventanas para moverse. Los editores de texto, los navegadores web y los
clientes de correo electrónico se presentan solo en formato de texto. Así funcionaba UNIX antes
de que los entornos gráficos fueran la norma. La mayoría de los servidores también funcionan en
este modo, ya que las personas no inician sesión directamente en ellos, lo que hace que una
interfaz gráfica sea un desperdicio de recursos. Aquí hay un ejemplo de una pantalla CLI después
de iniciar sesión:
El mensaje de inicio de sesión original se encuentra en la parte superior, con el texto más nuevo
agregado a continuación. Durante el inicio de sesión, es posible que aparezca un texto llamado
el mensaje del día (MOTD). Esta es una oportunidad para que el administrador de sistemas pase
información a los usuarios, o simplemente haga una broma tonta. Después de MOTD aparece el
símbolo del sistema, en el ejemplo anterior, el usuario ingresó el w comando que muestra
quién inició sesión. A medida que se ingresan y procesan nuevos comandos, la ventana se desplaza
hacia arriba y el texto anterior se pierde en la parte superior. El terminal en sí es responsable de
mantener cualquier historial, como permitir que el usuario se desplace hacia arriba y vea los
comandos ingresados anteriormente. En lo que respecta a Linux, lo que está en la pantalla es todo
lo que hay. No hay nada para moverse.
2.4.1 Distribuciones de Linux
Sombrero rojo
Red Hat comenzó como una distribución simple que introdujo el Administrador de paquetes de
Red Hat (RPM). El desarrollador finalmente formó una compañía a su alrededor, que trató de
comercializar un escritorio Linux para negocios. Con el tiempo, Red Hat comenzó a centrarse más
en las aplicaciones del servidor, como el servicio web y de archivos, y lanzó Red Hat Enterprise
Linux (RHEL) , que era un servicio pago en un ciclo de lanzamiento largo. El ciclo de lanzamiento
dicta la frecuencia con la que se actualiza el software. Una empresa puede valorar la estabilidad y
desear ciclos de lanzamiento largos, mientras que un aficionado o una startup pueden desear el
último software y optar por un ciclo de lanzamiento más corto. Para satisfacer al último grupo, Red
Hat patrocina el Proyecto Fedora lo que hace que un escritorio personal comprenda el último
software, pero aún se construye sobre los mismos cimientos que la versión empresarial.
Debido a que todo en Red Hat Enterprise Linux es de código abierto, surgió un proyecto
llamado CentOS. Se vuelve a compilar todos los paquetes de RHEL (conversión de su código fuente
del lenguaje de programación que fueron escritos en un lenguaje utilizable por el sistema) y les dio
de forma gratuita. CentOS y otros similares (como Scientific Linux) son en gran medida
compatibles con RHEL e integran algunos software más nuevos, pero no ofrecen el soporte pagado
que Red Hat ofrece.
Scientific Linux es un ejemplo de una distribución de uso específico basada en Red Hat. El
proyecto es una distribución patrocinada por Fermilab diseñada para permitir la informática
científica. Entre sus muchas aplicaciones, Scientific Linux se usa con aceleradores de partículas,
incluido el Gran Colisionador de Hadrones en el CERN.
SUSE
SUSE , originalmente derivado de Slackware , fue una de las primeras distribuciones completas de
Linux, tiene muchas similitudes con Red Hat Enterprise Linux. La compañía original fue comprada
por Novell en 2003, que luego fue comprada por el Grupo Attachmate en 2011. El grupo
Attachmate luego se fusionó con Micro Focus International en 2014, y en 2018 SUSE anunció
planes para avanzar como un negocio independiente. A través de todas las fusiones y
adquisiciones, SUSE ha logrado continuar y crecer.
Si bien SUSE Linux Enterprise contiene código patentado y se vende como un producto de
servidor, openSUSE es una versión completamente abierta y gratuita con múltiples paquetes de
escritorio similares a CentOS y Linux Mint.
Debian
Debian es más un esfuerzo de la comunidad y, como tal, también promueve el uso de software de
código abierto y el cumplimiento de los estándares. Debian creó su propio sistema de gestión de
paquetes basado en el .deb formato de archivo. Si bien Red Hat deja el soporte de plataformas
que no son Intel y AMD para proyectos derivados, Debian admite directamente muchas de estas
plataformas.
Ubuntu es la distribución más popular derivada de Debian. Es la creación de Canonical, una
compañía que fue creada para impulsar el crecimiento de Ubuntu y gana dinero al brindar
soporte. Ubuntu tiene varias variantes diferentes para escritorio, servidor y varias aplicaciones
especializadas. También ofrecen una versión LTS que se mantiene actualizada durante 3 años en
equipos de escritorio y 5 años en servidores, lo que brinda a los desarrolladores y a las empresas
en las que trabajan para desarrollar soluciones basadas en una distribución estable.
InLinux Mint se inició como una bifurcación de Ubuntu Linux, sin dejar de depender de los
repositorios de Ubuntu. Existen varias versiones, todas gratuitas, pero algunas incluyen códecs
patentados, que no pueden distribuirse sin restricciones de licencia en ciertos países.
Androide
Linux es un núcleo, y muchos de los comandos cubiertos en este curso son en realidad parte del
paquete GNU. Es por eso que algunas personas insisten en usar el término GNU / Linux en lugar
de Linux solo.
Android, patrocinado por Google, es la distribución de Linux más popular del mundo. Es
fundamentalmente diferente de sus contrapartes. Android usa la máquina virtual Dalvik con
Linux, proporcionando una plataforma robusta para dispositivos móviles como teléfonos y
tabletas. Sin embargo, al carecer de los paquetes tradicionales que a menudo se distribuyen con
Linux (como GNU y Xorg), Android generalmente es incompatible con las distribuciones de Linux
de escritorio.
Esta incompatibilidad significa que un usuario de Red Hat o Ubuntu no puede descargar software
de la tienda Google Play. Del mismo modo, un emulador de terminal en Android carece de muchos
de los comandos de sus homólogos de Linux. Sin embargo, es posible usar BusyBox con Android
para permitir que la mayoría de los comandos funcionen.
Otro
Raspbian es una distribución especializada de Linux optimizada para ejecutarse
en hardware Raspberry Pi. Esta combinación ha tenido un uso significativo en la capacitación de
programadores y diseñadores de hardware en todos los niveles. Su bajo costo y facilidad de uso lo
han convertido en el favorito de los educadores de todo el mundo, y hay muchos dispositivos
adicionales disponibles para extender sus capacidades al mundo físico. Hay una multitud de
laboratorios y proyectos disponibles que enseñan todo, desde monitoreo ambiental hasta diseño
de circuitos, aprendizaje automático y robótica.
Linux From Scratch (LFS) es más una herramienta de aprendizaje que una distribución
funcional. Este proyecto consiste en un libro en línea y un código fuente, con "instrucciones paso a
paso" para construir una distribución Linux personalizada desde el código fuente. Esta
"distribución" encarna el verdadero espíritu de Linux mediante el cual los usuarios pueden
modificar cualquier aspecto del sistema operativo y aprender cómo funcionan todas las piezas
juntas. También es un buen punto de partida para cualquier persona que necesite una
funcionalidad especializada o una construcción ultra compacta para un proyecto de sistema
integrado.
Hemos discutido las distribuciones mencionadas explícitamente en los objetivos de Linux
Essentials. Tenga en cuenta que hay cientos, si no miles más disponibles. Si bien hay muchas
distribuciones diferentes de Linux, muchos de los programas y comandos siguen siendo los
mismos o son muy similares.
2.4.2 Sistemas embebidos
Linux comenzó como algo que solo se ejecutaría en una computadora como la de Linus Torvald:
una PC Intel 386 con un controlador de disco duro específico, pero como cualquiera podía agregar
o cambiar Linux, la gente comenzó a crear soporte para otro hardware. Finalmente, Linux
comenzó a admitir otros chips con énfasis en tamaño pequeño y bajo consumo de energía.
Debido a esta flexibilidad, un número significativo de fabricantes de dispositivos ha utilizado Linux
como sistema operativo para sus productos de hardware. Hoy llamamos a estos sistemas
integrados porque están diseñados para realizar una tarea específica en hardware optimizado solo
para ese propósito. Estos sistemas abarcan una tremenda diversidad de dispositivos que se usan
hoy en día, desde teléfonos celulares hasta televisores y electrodomésticos inteligentes, hasta
sistemas de monitoreo remoto para tuberías y fábricas.
A medida que Linux evolucionó, se desarrollaron chips de procesador especializados para
dispositivos de consumo e industriales para aprovechar sus capacidades. El soporte para Linux se
ha vuelto tan omnipresente que es posible crear prototipos y lanzar nuevos dispositivos al
mercado utilizando componentes estándar. El auge de las computadoras baratas, pequeñas y
adaptables de una sola placa, como la Raspberry Pi, ha brindado a los experimentadores y
emprendedores en todo el mundo herramientas para crear rápidamente soluciones
personalizadas, con tecnología Linux, que hubieran requerido meses de trabajo por parte de
equipos especializados hace solo unos años.
Si bien los consumidores están familiarizados con los dispositivos de entretenimiento integrados
de Linux, como las grabadoras de video digital (DVR) y los "televisores inteligentes", el impacto
real de Linux incorporado está empezando a darse cuenta. El Internet de las cosas (IoT) se está
intensificando con dispositivos baratos y ubicuos que se implementan en todo, desde pozos
petroleros hasta granjas de generación solar. Estas redes de sensores y controladores inteligentes
permiten a los ingenieros ajustar los procesos críticos en tiempo real mientras monitorean e
informan a las estaciones de control central. A medida que se monitorean más procesos y se
integran más datos con el aprendizaje automático y la inteligencia artificial (IA), podemos anticipar
ganancias en eficiencia, seguridad y productividad solo soñadas por generaciones pasadas.