Hoy hablaremos de algo que muchos saben y que otros muchos no lo saben. Microsoft anunció que la plataforma de sistema operativo Windows 10 tendría la característica de poder utilizar el Bash Shell de Ubuntu Linux.
Pero empecemos con un poquito de historia primero…
Orígenes de Linux
Linux, el sistema operativo del pingüino es un sistema basado en Unix que se puso a disposición de la comunidad por un personaje llamado Linus Torvalds. Es un sistema de código abierto que puede mejorarse por todos los usuarios que así lo deseen.
Distribuciones
El sistema operativo Linux tiene muchas variantes, algunas se conocen más y otras menos. Dependiendo de las necesidades que tengamos, decantaremos por usar una de otra.
- Distribuciones más populares: Red Hat, Open Suse, Ubuntu, Fedora, …
- Distribuciones no tan populares: Slackware, Debian, Knoppix, …
Actualmente existen poco más de 30 distribuciones de Linux, las mencionadas arriba son solo algunas.
Licenciamiento
Se dice que es gratis ¿Sí? – Desde el origen de Linux, se conservan los principios de que sea un sistema completamente abierto y accesible a todo aquel interesado sin un pago por ello. Sin embargo, cuando el Kernel del mismo se modifica y se le agregan funcionalidades adicionales, a partir de ahí se podría cobrar (puesto que tiene algo extra), y a lo anterior, también podrían existir costos de mantenimiento y soporte.
Digamos entonces que hay distribuciones gratis y otras que necesitan de pago. Existen organizaciones como Oracle, RedHat y Canonical que tomaron como base original ciertas versiones de Linux y de ahí crearon sus propias versiones de Sistema Operativo Linux.
¿Solo comandos o también hay ventanas?
En esencia, Linux empezó como un sistema basado principalmente en línea de comandos usando los llamados «Shells», pero también existen entornos gráficos de ventanas como los que conocemos de Windows, ambos pueden convivir en casi cualquier distribución, aunque el poder de operación se inclina más hacia la terminal para tareas administrativas y automatización.
- Entornos visuales
- GNOME
- KDE
- Shells
- Bourne Shell (sh): Shell clásica que se encuentra en los sistemas operativos Unix.
- Bourne Again Shell (bash): Shell de GNU que se encuentra en todos los sistemas Linux e UNIX.
- Korn Shell (ksh): Shell compatible con bash y que incluye muchos elementos de C.
- C Shell (csh): Es un lenguaje de programación, se le considera más idóneo para programadores que Bourne Shell.
El Shell es un intérprete de comandos hacia el Kernel del sistema operativo y cada versión de Shell tiene comandos propios, muchos se compartirán entre ellos y habrá otros que no lo estén.
En este sitio web podremos encontrar los principios del Open Source
¿Cómo metieron el Ubuntu Bash en Windows 10?
Windows 10 está basado en subsistemas ¿Qué significa esto? Hablamos de que para ejecutar cualquier programa este debe de pasar por ciertos componentes internos antes de llegar al Kernel y ejecutarse. Esta arquitectura no es nueva, se encuentra desde las primeras versiones de Windows, lo que sucedió esta vez fue que se le dio espacio a otro subsistema para soportar Ubuntu Linux en Windows 10. Haz clic aquí para ver el modelo de subsistemas de Windows.
La siguiente imagen representa la incorporación del Ubuntu Linux sobre Windows 10:
Modo Usuario: Es una modalidad donde se pueden ejecutar las aplicaciones sobre un sistema operativo, está restringido al completo uso del hardware.
Modo Kernel: Es una modalidad privilegiada donde se gestionan los principales recursos de una computadora: procesos, memoria, red y almacenamiento I/O.
¿Ya te estás dando cuenta de que pasó?
El Bash de Ubuntu se encuentra en el modo usuario y a partir de ahí cada instrucción es traducida sobre un subsistema de Windows para Linux, una vez completada cada interpretación de comandos, el resultado va hacia el Kernel de Windows para su ejecución.
Que no quede lugar a confusiones
No es una máquina virtual emulando Ubuntu sobre Windows 10, es «Ubuntu Linux» corriendo en Windows 10, sin embargo, Windows 10 no viene a ser una capa intermedia entre Ubuntu Linux y el hardware.
Saquen los servidores Linux del data center y déjenlos con Windows 10… no, espera!!
Esta es una gran característica que resalta las novedades de Windows 10, pero todavía no está completa. Aquí algunos hechos:
- Está pensado para entornos de desarrollo y pruebas, por lo que no es recomendable para entornos de producción en tiempo real.
- No hablamos de servidores, por lo que la carga no puede ser demasiada.
- Hay funcionalidades pero no todas están incluidas, lo estarán con el tiempo por cada anillo de actualización.
- El sistema de archivos es un pequeño espacio reservado del disco duro, no lo es en su totalidad.
Comunidad
Se tiene una comunidad activa de noticias y usuarios proveyendo retroalimentación sobre esta característica:
- MSDN: https://blogs.msdn.microsoft.com/wsl
- Windows Subsytem for Linux (WSL): https://msdn.microsoft.com/commandline/wsl/about
- User voice ( ideas & asks): https://wpdev.uservoice.com/forums/266908-command-prompt/filters/top
- Github: https://github.com/ethanhs/WSL-Programs
Mas abajo veremos una demostración de como es posible trabajar con Ubuntu Linux desde Windows 10, de momento pasemos al siguiente tema:
PowerShell
Es una consola para scripting, desde el que podremos configurar completamente un equipo informático basado en Windows sin tener que depender de un escritorio para ello. Ayuda a los profesionales de IT a controlar y automatizar la administración de Windows junto con las aplicaciones que vienen en el sistema operativo.
PowerShell es ese «Shell» de lado de Windows y ahora en Linux construido con el .NET Framework que ahora viene utilizarse desde la distribución de Linux Ubuntu, esto se debe en gran medida a la liberación de NET Core.
¿Algo nuevo en PowerShell para Linux? Si…
Hablando de la conocida funcionalidad que muchos profesionales de TI puedan conocer, también hay características nuevas como selección de editores de código: VS Code o Sublime y en camino SSH nativo para PowerShell.
PowerShell + Azure
PowerShell utiliza cmdlets (comandos) para llevar a cabo tareas de gestión, Azure tiene una gran variedad de cmdlets que se añaden a PowerShell para administrar los servicios de la nube desde esta consola.
Los cmdlets nos sirven para crear, probar, implementar y administrar soluciones y servicios ofrecidos a través de la plataforma de Azure. En la mayoría de los casos, podemos utilizar los cmdlets para realizar las mismas tareas que se realizan a través del Portal de administración de Azure. Por ejemplo: crear y configurar servicios en la nube, máquinas virtuales, redes virtuales y sitios web.
El poder de Azure PowerShell radica en la posibilidad de automatización de tareas que podemos hacer con todos los servicios
Ahora bien, visto todo lo anterior pongamos manos a la obra y demostremos como se configura Ubuntu en Windows 10 y PowerShell en Ubuntu:
Sígueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand