Programacion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 24

Capítulo 1 - Introducción a Linux

Este capítulo cubre los siguientes objetivos del examen:

1.1: Evolución Linux y sistemas operativos populares

Peso: 2

Descripción: El conocimiento del desarrollo de Linux y las principales distribuciones.

Areas de Conocimiento Clave:

La filosofía de código abierto

sección 1.2.3

distribuciones

sección 1.2.4

Sistemas embebidos

sección 1.2.3

4.1: La elección de un sistema operativo

Peso: 1

Descripción: Conocimiento de los principales sistemas operativos y las distribuciones de Linux.

Areas de Conocimiento Clave:

Windows, Mac, Linux diferencias

sección 1.3

Gestión del Ciclo de Vida de distribución

sección 1.3.6
1.2 Evolución de Linux y los sistemas operativos populares

La definición de la palabra Linux depende del contexto en el que se utiliza. Linux significa
que el núcleo del sistema, que es la unidad central de todo lo que sucede en el ordenador
(más sobre esto más adelante). Las personas que dicen que su equipo "se ejecuta Linux"
generalmente se refieren al núcleo y un conjunto de herramientas que vienen con él
(llamado la distribución). Si usted tiene "experiencia en Linux", es muy probable que
hablando de los propios programas, aunque dependiendo del contexto, es posible que se
habla de saber cómo ajustar con precisión el núcleo. Cada uno de estos componentes
serán investigados para que pueda entender exactamente qué papel desempeña cada
uno. Para complicar aún más las cosas es el término UNIX. UNIX fue originalmente un
sistema operativo desarrollado en AT & T Bell, en la década de 1970. Fue modificada y
bifurcado (es decir, personas modificados y las modificaciones sirven como base para
otros sistemas) de tal manera que en la actualidad hay muchas variantes diferentes de
UNIX. Sin embargo, UNIX es una marca comercial ahora ambos y una especificación,
propiedad de un consorcio industrial llamado el Open Group. Solamente el software que
ha sido certificado por el Open Group puede llamarse UNIX. A pesar de la adopción de
todos los requisitos de la especificación UNIX, Linux no ha sido certificado, por lo que
realmente no es Linux UNIX! Es sólo ... tipo UNIX.

1.2.1 Función del Kernel

El kernel del sistema operativo es como un controlador de tránsito aéreo en un


aeropuerto. El núcleo dicta qué programa consigue que las piezas de la memoria, se inicia
y se mata a los programas, y que se encarga de mostrar texto en un monitor. Cuando una
aplicación necesita escribir en el disco, se debe pedir al sistema operativo para hacerlo. Si
dos aplicaciones piden el mismo recurso, el núcleo decide que la padecen, y en algunos
casos, mata a una de las aplicaciones con el fin de salvar al resto del sistema.

El núcleo también se encarga de conmutación de aplicaciones. Un equipo tendrá un


pequeño número de CPU y una cantidad finita de memoria. El núcleo se hace cargo de la
descarga de una tarea y la carga de una nueva tarea si hay más tareas que CPUs.
Cuando la tarea actual haya una cantidad suficiente de tiempo, la CPU detiene la tarea
para que otro puede funcionar. Esto se conoce como multitarea preventiva. La multitarea
significa que el equipo está haciendo varias tareas a la vez, y con derecho preferente
significa que el núcleo es decidir cuándo pasar la selección de tareas. Con las tareas de
conmutación rápida, parece que el equipo está haciendo muchas cosas a la vez.

Cada aplicación puede pensar que tiene un gran bloque de memoria en el sistema, pero
es el núcleo que mantiene esta ilusión, la reasignación de bloques más pequeños de la
memoria, el intercambio de bloques de memoria con otras aplicaciones, o incluso el canje
de los bloques que no han sido tocados en el disco.

Cuando se inicia el ordenador se carga una pequeña pieza de código llamado un gestor
de arranque. El trabajo del gestor de arranque es cargar el núcleo y ponerlo en marcha. Si
usted está más familiarizado con los sistemas operativos como Microsoft Windows o OS X
de Apple, es probable que nunca ve el gestor de arranque, pero en el mundo UNIX por lo
general es visible, de modo que se puede ajustar la forma en que su equipo se inicia.
El gestor de arranque carga el kernel de Linux, y luego transfiere el control. Linux continúa
con la ejecución de los programas necesarios para hacer que el equipo de utilidad, tales
como la conexión a la red o iniciar un servidor web

1.2.2 Aplicaciones

Al igual que un controlador de tráfico aéreo, el núcleo no es útil sin algo de controlar. Si el
núcleo es la torre, las aplicaciones son los aviones. Aplicaciones hacen peticiones al
núcleo y reciben los recursos, como la memoria, CPU y disco, a cambio. El núcleo
también abstrae los detalles complicados lejos de la aplicación. La aplicación no sabe si
un bloque de disco está en una unidad de estado sólido del fabricante A, un disco duro
giratorio del metal del fabricante B, o incluso un recurso compartido de archivos de red.
Las solicitudes sólo tienes que seguir el núcleo de la interfaz de programación de
aplicaciones (API) y en cambio no tiene que preocuparse de los detalles de
implementación.

Cuando nosotros, como usuarios, pensamos en aplicaciones, tendemos a pensar en los


procesadores de texto, navegadores web y clientes de correo electrónico. El kernel no le
importa si se está ejecutando algo que está orientada al usuario, un servicio de red que se
comunica con un ordenador remoto, o un trabajo interno. Así, a partir de esto, obtenemos
una abstracción llamada de un proceso. Un proceso es sólo una tarea que se carga y
seguido por el núcleo. Una aplicación puede incluso necesitar múltiples procesos para
funcionar, por lo que el núcleo se encarga de la ejecución de los procesos, iniciar y
detener ellas conforme a lo solicitado, y los recursos del sistema repartiendo.

1.2.3 Papel de código abierto


Linux comenzó en 1991 como un proyecto manía por Linus Torvalds. Hizo la fuente
libremente disponible y otros se unieron para dar forma a este sistema operativo en
ciernes. La suya no fue el primer sistema a ser desarrollado por un grupo, pero ya que era
un proyecto construido a partir de cero, los primeros usuarios tenían la capacidad de
influir en la dirección del proyecto y para asegurar que los errores de otros UNIXes no se
repitieron. proyectos de software toman la forma de código fuente, que es un conjunto
legible por humanos de instrucciones informáticas. El código fuente puede ser escrita en
cualquiera de los cientos de diferentes idiomas, Linux sólo pasa a ser escrito en C, que es
un lenguaje que comparte historia con el original de UNIX. El código fuente no se entiende
directamente por el equipo, por lo que debe ser compilado en instrucciones de máquina
por un compilador. El compilador reúne todos los archivos de origen y genera algo que se
puede ejecutar en el equipo, como el núcleo de Linux. Históricamente, la mayoría del
software se ha publicado bajo una licencia de código cerrado, lo que significa que usted
obtiene el derecho a utilizar el código de la máquina, pero no puede ver el código fuente.
A menudo la licencia dice específicamente que usted no intentará realizar ingeniería
inversa del código de máquina volver al código fuente de averiguar lo que hace! El código
abierto tiene una visión centrada en la fuente del software. La filosofía de código abierto
es que usted tiene el derecho de obtener el software, y para modificarlo para su propio
uso. Linux adoptó esta filosofía al gran éxito. La gente tomó la fuente, realizan cambios, y
compartida de nuevo con el resto del grupo.
1.2.4 Distribuciones Linux
Tome Linux y las herramientas GNU, añadir un poco más fácil de frente aplicaciones
como un cliente de correo electrónico, y usted tiene un sistema Linux completo. La gente
comenzó a empaquetar todo este software en una distribución casi tan pronto como se
convirtió en Linux utilizable. La distribución se encarga de configurar el almacenamiento,
la instalación del kernel, e instalar el resto del software. Las distribuciones de funciones
completo también incluyen herramientas para gestionar el sistema y un gestor de
paquetes para ayudar a agregar y quitar software después de la instalación se haya
completado.
Al igual que UNIX, hay muchos sabores diferentes de distribuciones. En estos días, hay
distribuciones que se centran en el funcionamiento de las herramientas específicas
servidores, ordenadores de sobremesa, o incluso de la industria, como el diseño de la
electrónica o computación estadística. Los principales actores en el mercado se pueden
remontar de nuevo a Red Hat o Debian. La diferencia más visible es el gestor de
paquetes, aunque se encuentra otras diferencias en todo, desde las ubicaciones de
archivos a filosofías políticas.
Red Hat comenzó como un simple distribución que introdujo el sombrero Gestor de
paquetes de Red (RPM). El desarrollador finalmente formó una compañía alrededor de
ella, que trató de comercializar un escritorio de Linux para los negocios. Con el tiempo,
Red Hat comenzó a centrarse más en las aplicaciones de servidor web y como servidor
de archivos, y se libera de Red Hat Enterprise Linux, que era un servicio de pago en un
ciclo de liberación de largo. El ciclo de liberación dicta qué frecuencia se actualiza el
software. Una empresa puede valorar la estabilidad y quiere ciclos de lanzamiento de
largo, un aficionado o un inicio puede querer el último software y optar por un ciclo de
liberación más corto. Para satisfacer este último grupo, Red Hat patrocina el Proyecto
Fedora lo que hace que una computadora de escritorio personal que comprende el
software más reciente, pero aún así construido sobre las mismas bases que la versión de
la empresa.
Porque todo en Red Hat Enterprise Linux es de código abierto, un proyecto llamado
CentOS llegó a ser, que vuelve a compilar todos los paquetes de RHEL y les dio de forma
gratuita. CentOS y otros como él (como Scientific Linux) son en gran medida compatible
con RHEL e integrar algún tipo de software más reciente, pero no ofrecen el soporte de
pago que Red Hat.
Scientific Linux es un ejemplo de una distribución específica basada en el uso de Red Hat.
El proyecto es una distribución patrocinada Fermilab diseñado para permitir la
computación científica. Entre sus muchas aplicaciones, Scientific Linux se usa con
aceleradores de partículas como el Gran Colisionador de Hadrones en el CERN.
Open SUSE derivado originalmente de Slackware, pero incorpora muchos aspectos de
Red Hat. La compañía original fue comprado por Novell en 2003, que luego fue comprada
por el Grupo de Attachmate en 2011. El grupo Attachmate entonces se combinó con Micro
Focus International. A través de todas las fusiones y adquisiciones, SUSE ha logrado
continuar y crecer. Si bien abierto SUSE es a base de escritorio y disponible para el
público en general, SUSE Linux Enterprise contiene código propietario y se vende como
un producto de servidor.
Debian es más de un esfuerzo de la comunidad, y como tal, también promueve el uso de
software de código abierto y la adhesión a las normas. Debian se acercó con su propio
sistema de gestión de paquetes basado en el formato de archivo .deb. Mientras que Red
Hat deja el soporte de plataformas no Intel y AMD para proyectos derivados, Debian
soporta muchas de estas plataformas directamente.
Ubuntu es la distribución más popular derivada de Debian. Es la creación de Canonical,
una empresa que se hizo para favorecer el crecimiento de Ubuntu y ganar dinero
mediante la prestación de apoyo.
Linux Mint se inició como un tenedor de Ubuntu Linux, sin dejar de confiar en los
repositorios de Ubuntu. Hay varias versiones, todas ellas forma gratuita, pero algunos
incluyen codecs propietarios, que no se puede distribuir sin restricciones de licencia en
algunos países. Linux Mint está suplantando rápidamente Ubuntu Linux como solución de
escritorio más popular del mundo.
Hemos hablado de las distribuciones mencionadas específicamente en los
objetivos de Linux Essentials. Debe tener en cuenta que hay cientos, si no miles
más que están disponibles. Es importante entender que si bien existen muchas
distribuciones diferentes de Linux, muchos de los programas y comandos siguen
siendo los mismos o son muy similares.

1.2.4.1 ¿Qué es un comando?


La respuesta más sencilla a la pregunta: "¿Qué es una orden?", Es que un comando es
un programa de software que cuando se ejecuta en la línea de comandos, realiza una
acción en el equipo.
Cuando se considera un comando con esta definición, en realidad estás pensando en lo
que sucede cuando se ejecuta un comando. Cuando se escribe en un comando, un
proceso que se ejecuta por el sistema operativo que puede leer la entrada, manipular los
datos y producir una salida. Desde esta perspectiva, un comando se ejecuta un proceso
en el sistema operativo, que a su vez hace que el equipo para realizar un trabajo.
Sin embargo, hay otra manera de ver lo que un comando es: mira su fuente. La fuente es
donde el comando "viene de" y hay varias fuentes diferentes de comandos dentro de la
cáscara de la CLI:
Los comandos integrada en el propio depósito: Un buen ejemplo es el comando cd, ya
que es parte de la bash shell. Cuando un usuario escribe el comando cd, la bash Shell ya
se está ejecutando y sabe cómo interpretar ese comando, que no requiere de programas
adicionales que se inicien.
Los comandos que se almacenan en archivos que se buscan por el shell: Si escribe un
comando ls, a continuación, el shell busca a través de los directorios que se enumeran en
la variable PATH para tratar de encontrar un archivo con nombre ls que puede ejecutar.
Estos comandos también se pueden ejecutar escribiendo la ruta completa a la orden.
Alias: alias pueden anular un comando integrado, una función o un comando que se
encuentra en un archivo. Abreviaturas pueden ser útiles para la creación de nuevos
comandos integrados de funciones y comandos existentes.
Funciones: Las funciones también pueden ser construidos utilizando los comandos
existentes para crear nuevos comandos o bien, anular comandos integrados a la Shell los
comandos almacenados en archivos. Alias y funciones normalmente se cargan desde los
archivos de inicialización cuando el depósito se inicia en primer lugar, se explica más
adelante en esta sección
Considera esto
Mientras que los alias se tratarán en detalle en una sección posterior, este breve
ejemplo puede ser útil para comprender el concepto de comandos.
Un alias es esencialmente un apodo para otro comando o una serie de comandos.
Por ejemplo, el comando cal 2014 mostrará el calendario para el año 2014.
Supongamos que se termina de ejecutar este comando con frecuencia. En lugar de
ejecutar el comando completa cada vez, puede crear un alias llamado mycal y
ejecute el alias, como se demuestra en el siguiente gráfico:

sysadmin@localhost:~$ alias mycal="cal 2014"


sysadmin@localhost:~$ mycal
2014
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1
5 6 7 8 9 10 11 2 3 4 5 6 7 8 2 3 4 5 6 7 8
12 13 14 15 16 17 18 9 10 11 12 13 14 15 9 10 11 12 13 14 15
19 20 21 22 23 24 25 16 17 18 19 20 21 22 16 17 18 19 20 21 22
26 27 28 29 30 31 23 24 25 26 27 28 23 24 25 26 27 28 29
30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1.2.5 Plataformas de hardware
Linux comenzó como algo que sólo se ejecutan en un ordenador como Linus ': un 386 con
un controlador específico del disco duro. La gama de apoyo creció, ya que la gente
construyó apoyo a otro hardware. Con el tiempo, Linux comenzó a apoyar otros chips,
incluyendo el hardware que se hizo para ejecutar sistemas operativos competitivos!
Los tipos de hardware crecieron desde el chip Intel humilde hasta superordenadores. Más
tarde, de tamaño más pequeño, soportado por Linux, los chips se han desarrollado para
caber en dispositivos de consumo, llamados dispositivos embebidos. El soporte para
Linux se convirtió en omnipresente de tal manera que a menudo es más fácil de construir
hardware para soportar Linux y luego usar Linux como un trampolín para su software a la
medida, de lo que es para construir el hardware y el software a medida a partir de cero.
Con el tiempo, los teléfonos celulares y las tabletas comenzaron a correr Linux. Una
empresa, más tarde comprada por Google, se le ocurrió la plataforma Android, que es un
paquete de Linux y el software necesarios para el funcionamiento de un teléfono o tableta.
Esto significa que el esfuerzo por conseguir un teléfono en el mercado es
significativamente menor, y las empresas pueden pasar su tiempo innovando en el
software de cara al usuario en lugar de reinventar la rueda cada vez. Android es ahora
uno de los líderes del mercado en el espacio.
Aparte de los teléfonos y tabletas, Linux se puede encontrar en muchos dispositivos de
consumo. Los routers inalámbricos suelen ejecutar Linux, ya que tiene un rico conjunto de
características de la red. El TiVo es un grabador de vídeo digital de consumo basada en
Linux. A pesar de que estos dispositivos tienen Linux en el núcleo, los usuarios finales no
tienen que saber. El software personalizado interactúa con el usuario y Linux proporciona
la plataforma estable.
1.3 La elección de un sistema operativo
Usted ha aprendido que Linux es un sistema operativo UNIX, lo que significa que no ha
sido objeto de certificación formal y por lo tanto no se puede utilizar la marca oficial de
UNIX. Hay muchas otras alternativas; algunos son de tipo UNIX y algunos están
certificados como UNIX. También hay no-Unix sistemas operativos, como Microsoft
Windows.
La pregunta más importante preguntar al determinar la configuración de una máquina es
"¿qué va a hacer esta máquina?" Si es necesario ejecutar un software especializado que
sólo se ejecuta en Oracle Solaris, entonces eso es lo que necesita. Si tiene que ser capaz
de leer y escribir documentos de Microsoft Office, a continuación, ya sea que usted
necesita Windows o algo capaz de ejecutar LibreOffice u OpenOffice.
1.3.1 Puntos de decisión
La primera cosa que hay que decidir es el papel de la máquina. Va a estar sentado en la
consola ejecutar aplicaciones de productividad o la navegación web? Si es así, usted
tiene una computadora de escritorio. ¿La máquina puede utilizar como un servidor Web o
de lo contrario se sienta en un rack de servidor en alguna parte? Se encuentra en el
servidor.
Los servidores suelen sentarse en un bastidor y comparten un teclado y un monitor con
muchos otros equipos, ya que el acceso de la consola sólo se utiliza para configurar y
solucionar problemas del servidor. El servidor se ejecutará en modo no gráfico, lo que
libera recursos para el propósito real de la computadora. Un escritorio se ejecutará
principalmente una interfaz gráfica de usuario.
A continuación, determine las funciones de la máquina. ¿Hay un software específico que
necesita para funcionar, o funciones específicas que tiene que hacer? Qué se necesita
para ser capaz de manejar cientos o miles de estas máquinas al mismo tiempo? ¿Cuál es
el conjunto de habilidades del equipo de manejo de la computadora y el software?
También debe determinar la tolerancia de toda la vida y el riesgo de que el servidor. Los
sistemas operativos y actualizaciones de software vienen en forma periódica, llamado el
ciclo de lanzamiento. Los proveedores de software sólo apoyarán las versiones anteriores
del software durante un determinado período de tiempo antes de no ofrecer las
actualizaciones, que se llama el ciclo de mantenimiento (o ciclo de vida). Por ejemplo, las
principales versiones de Fedora Linux salen aproximadamente cada 6 meses. Las
versiones se considera Final de la Vida (EOL) después de 2 versiones principales más un
mes, por lo que tiene entre 7 y 13 meses después de instalar Fedora antes de tener que
actualizar. Esto contrasta con la variante servidor comercial, Red Hat Enterprise Linux, y
se puede ir hasta 13 años antes de tener que actualizar.
Los ciclos de mantenimiento y liberación son importantes debido a que en un entorno de
servidor de empresa es mucho tiempo, y por lo tanto rara, de hacer una importante
actualización en el servidor. En su lugar, el propio servidor se reemplaza cuando hay
grandes mejoras o sustituciones a la aplicación que hacen necesaria una actualización del
sistema operativo. Del mismo modo, un ciclo de liberación lenta es importante porque las
aplicaciones a menudo apuntan a la versión actual del sistema operativo y que quieren
evitar la sobrecarga de la actualización de los servidores y sistemas operativos
constantemente para mantenerse al día. Hay una buena cantidad de trabajo necesario
para actualizar un servidor, y la función de servidor a menudo tiene muchas
personalizaciones realizadas que son difíciles de puerto a un nuevo servidor. Esto
requiere mucho más pruebas de que si sólo la aplicación se actualiza.
Si usted está haciendo el trabajo de desarrollo de software o de escritorio tradicional, a
menudo se desea que el software más reciente. el software más reciente tiene mejoras en
la funcionalidad y la apariencia, lo que contribuye a un mayor placer de la utilización de la
computadora. Un escritorio menudo almacena su trabajo en un servidor remoto, por lo
que el escritorio se puede limpiar y el sistema operativo más reciente se puso con la
mínima interrupción.
versiones de software individuales se pueden caracterizar como beta o estable. Una de
las mejores cosas de ser un desarrollador de código abierto es que se puede liberar su
nuevo software de forma rápida y obtener retroalimentación de los usuarios. Si una
versión de software está en un estado que tiene muchas características nuevas que no
han sido probados rigurosamente, que normalmente se conoce como beta. Después de
esas características se han probado en el campo, el software se mueve a un punto
estable. Si necesita las últimas características, a continuación, que busca una distribución
que tiene un ciclo de liberación rápida y hace que sea fácil de usar software beta. En el
lado del servidor, desea que el software estable a menos que esas nuevas características
son necesarias y que no les importa código que se ejecuta que no ha sido probado a
fondo.
Otro concepto vagamente relacionada es la compatibilidad hacia atrás. Esto se refiere a la
capacidad de un sistema operativo más tarde para ser compatible con el software de
hecho para las versiones anteriores. Esto suele ser un problema si tiene que actualizar su
sistema operativo, pero no está en condiciones de actualizar el software de aplicación.
Por supuesto, el costo es siempre un factor. Linux en sí mismo podría ser libre, pero
puede que tenga que pagar por el soporte, dependiendo de las opciones que elija.
Microsoft tiene costes de licencia del servidor y puede tener costes adicionales de soporte
durante la vida útil del servidor. El sistema operativo elegido sólo se puede ejecutar en
una selección particular de hardware, lo que afecta aún más el costo

1.3.2 Microsoft Windows


El mundo se divide Microsoft los sistemas operativos de acuerdo al propósito de la
máquina: de escritorio o servidor? La edición de escritorio de Windows ha sido objeto de
diversos esquemas de nombramiento con la versión actual (en este escrito) que son
simplemente de Windows 8. Las nuevas versiones del escritorio salen cada 3-5 años y
tienden a ser apoyado por muchos años. La compatibilidad hacia atrás es también una
prioridad para Microsoft, incluso yendo tan lejos como para agrupar la tecnología de
máquina virtual para que los usuarios puedan ejecutar software antiguo.
En el área del servidor, no es Windows Server, en la actualidad (en este escrito) en la
versión de 2012 para designar la fecha de lanzamiento. El servidor ejecuta una interfaz
gráfica de usuario, pero en gran parte como una respuesta competitiva a Linux, ha dado
pasos increíbles en las capacidades de scripting a través de la línea de comandos
PowerShell. También puede hacer que el servidor como un escritorio con el paquete
opcional Experiencia de escritorio.
1.3.3 Apple OS X
Apple hace el sistema operativo OS X, que ha sido objeto de certificación UNIX. OS X se
basa parcialmente en el software del proyecto FreeBSD.
Por el momento, OS X es principalmente un sistema operativo de escritorio, pero hay
paquetes opcionales que ayudan a la gestión de los servicios de red que permiten
muchos OS X escritorios para colaborar, como compartir archivos o tener una conexión
de red.
OS X en el escritorio suele ser una decisión personal que muchos encuentran el sistema
más fácil de usar. La creciente popularidad de OS X se ha asegurado el apoyo saludable
de proveedores de software. OS X también es muy popular en las industrias creativas,
como la producción de vídeo. Esta es un área donde las aplicaciones de accionamiento
de la decisión del sistema operativo, y por lo tanto la elección de hardware ya que OS X
se ejecuta en hardware de Apple.

1.3.4 BSD
Hay varios proyectos abiertos BSD fuente (Software Distribution) Berkely, como
OpenBSD, FreeBSD, NetBSD y. Estos son alternativas a Linux en muchos aspectos, ya
que utilizan una gran cantidad de software común. BSD se implementan normalmente en
la función de servidor, aunque también hay variantes como GNOME y KDE que fueron
desarrollados para las funciones de escritorio.

1.3.5 Otros Unix comerciales


Algunos de los Unix comerciales más populares son:
Oracle Solaris
AIX de IBM
HP-UX
Cada uno de estos se ejecuta en el hardware de sus respectivos creadores. El hardware
suele ser grande y poderoso, que ofrece características tales como la CPU de intercambio
en caliente y la memoria, o la integración con los sistemas mainframe legacy también
ofrecidos por el proveedor.
A menos que el software requiere el hardware específico o las necesidades de la
aplicación requiere algo de la redundancia incorporada en el hardware, la mayoría de la
gente tiende a elegir estas opciones porque ya son usuarios de los productos de la
compañía. Por ejemplo, IBM AIX se ejecuta en una amplia variedad de hardware IBM y
puede compartir hardware con ordenadores centrales. Por lo tanto, se encuentra en AIX
empresas que ya tienen una gran huella de IBM o que hacen uso de software de IBM
como WebSphere.
1.3.6 Linux
Uno de los aspectos en los que Linux es muy diferente a las alternativas es que después
de un administrador ha elegido Linux todavía tienen que elegir una distribución. Recuerde
del Tema 1 que la distribución de los paquetes del kernel de Linux, utilidades y
herramientas de gestión en un paquete instalable y proporciona una manera de instalar y
actualizar los paquetes después de la instalación inicial.
Algunos sistemas operativos están disponibles a través de un único proveedor, tales
como OS X y Windows, con el apoyo del sistema proporcionado por el proveedor. Con
Linux, hay múltiples opciones, desde ofertas comerciales para el servidor o de escritorio, a
distribuciones personalizadas hechas para convertir un viejo ordenador en un servidor de
seguridad de red.
A menudo, los proveedores de aplicaciones van a elegir un subconjunto de las
distribuciones que mantener. Las diferentes distribuciones tienen diferentes versiones de
las bibliotecas principales y es difícil para una empresa para apoyar todas estas versiones
diferentes.
Los gobiernos y las grandes empresas también pueden limitar sus opciones a las
distribuciones que ofrecen soporte comercial. Esto es común en las empresas más
grandes, donde el pago de otro nivel de apoyo es mejor que correr el riesgo de apagones
extensos.
Varias distribuciones también tienen ciclos de lanzamiento, a veces tan a menudo como
cada seis meses. Aunque no se requieren mejoras, cada versión se puede apoyar
solamente durante un período de tiempo razonable. Por lo tanto, algunas versiones de
Linux se considera que tienen un apoyo a largo plazo (LTS) de 5 años o más, mientras
que otros sólo serán apoyados por dos años o menos.
Algunas distribuciones diferencian entre estable, de prueba y versiones inestables. La
diferencia es que las liberaciones inestables comercio fiabilidad de características.
Cuando las funciones se han integrado en el sistema durante mucho tiempo, y muchos de
los errores y temas abordados, el software se mueve a través de pruebas en la versión
estable. La distribución Debian advierte a los usuarios sobre los peligros del uso de la
liberación "sid" con la siguiente advertencia:
' "Sid" está sujeta a cambios masivos y en el lugar actualizaciones de la biblioteca. Esto
puede resultar en un sistema muy "inestable", que contiene paquetes que no se pueden
instalar debido a que faltan bibliotecas, dependencias que no se pueden cumplir etc.
utilizarlo bajo su propio riesgo!
Otras versiones dependen de las distribuciones beta. Por ejemplo, la distribución Fedora
versiones beta o pre-versiones de su software antes de la publicación completa para
minimizar errores. Fedora es a menudo considerado como el orientado a la comunidad
versión Beta de RedHat. se añaden características y cambiadas en el lanzamiento de
Fedora antes de encontrar su camino en la distribución RedHat Enterprise listo.
1.3.7 Android
Android, patrocinado por Google, es la distribución Linux más popular del mundo. Es
fundamentalmente diferente de sus contrapartes. Linux es un núcleo, y muchos de los
comandos que serán cubiertos en este curso son en realidad parte del paquete GNU
(GNU No es Unix). Es por eso que algunas personas insisten en usar el término GNU /
Linux en lugar de Linux en sí.
Android utiliza la máquina virtual Dalvik con Linux, que proporciona una plataforma sólida
para dispositivos móviles como teléfonos y tabletas. Sin embargo, a falta de los paquetes
tradicionales que a menudo se distribuyen con Linux (como GNU y Xorg), Android es
generalmente incompatibles con escritorio distribuciones de Linux.
Esta incompatibilidad significa que un usuario de Ubuntu RedHat o no pueden descargar
el software de la tienda de Google Play. Del mismo modo, un emulador de terminal en
Android carece de muchas de las órdenes de sus homólogos de Linux. Es posible, sin
embargo, utilizar BusyBox con Android para permitir mayoría de los comandos para
trabajar
2.1 Introducción
En este capítulo vamos a familiarizarse con varias aplicaciones de código abierto y
herramientas. También discutiremos el software de código abierto y licencia.
2.2 Aplicaciones Mayor Open Source
El núcleo de Linux se puede ejecutar una amplia variedad de software a través de muchas
plataformas de hardware. Una computadora puede actuar como un servidor, lo que
significa que se ocupa principalmente de datos en nombre de otro, o puede actuar como
una computadora de escritorio, lo que significa que un usuario se le interactuando con él
directamente. La máquina puede ejecutar el software o puede ser utilizado como una
máquina de desarrollo en el proceso de creación de software. Incluso se puede ejecutar
varias funciones ya que no hay distinción de Linux sobre el papel de la máquina; es
simplemente una cuestión de configurar las aplicaciones que se ejecutan.
Una ventaja de esto es que se puede simular casi todos los aspectos de un entorno de
producción, desde el desarrollo, la prueba, a la verificación de reducido hardware, lo que
ahorra costes y tiempo. Como alguien que está aprendiendo Linux, puede ejecutar las
mismas aplicaciones de servidor en el escritorio o servidor virtual de bajo costo que se
ejecuta en un gran proveedor de servicios Internet. Por supuesto, usted no será capaz de
manejar el volumen de un gran proveedor haría, ya que tendrán hardware mucho más
caro. Sin embargo, se puede simular casi cualquier configuración sin necesidad de
hardware de gran alcance o la concesión de licencias de servidor.
software de Linux por lo general cae en una de tres categorías:
software de servidor - software que no tiene interacción directa con el monitor y el teclado
de la máquina que puede correr. Su finalidad es servir de información a otros equipos,
llamados clientes. A veces el software de servidor no puede hablar con otros equipos,
pero sólo se sienta allí y datos de "crujido".
El software de escritorio - un navegador web, editor de texto, reproductor de música, u
otro software que interactúa con. En muchos casos, como un navegador web, el software
está hablando a un servidor en el otro extremo y la interpretación de los datos para usted.
A continuación, el software de escritorio es el cliente.
Herramientas - una categoría suelto de software que existe para hacer más fácil el manejo
de su sistema. Es posible que tenga una herramienta que facilita la configuración de la
pantalla, o algo que proporciona un shell de Linux, o incluso las herramientas más
sofisticadas que convierten el código fuente a algo que el ordenador puede ejecutar
Además, vamos a considerar las aplicaciones móviles, sobre todo para el beneficio del
examen LPI. Una aplicación móvil se parece mucho a una aplicación de escritorio, sino
que se ejecuta en un teléfono o una tableta en lugar de un ordenador de sobremesa.
Cualquier tarea que desea hacer en Linux probablemente puede ser acomodado por
cualquier número de aplicaciones. Hay muchos navegadores web, muchos servidores
web, y muchos editores de texto (los beneficios de cada uno son objeto de muchas
guerras santas UNIX). Esto no es diferente que el mundo de código cerrado. Sin
embargo, una ventaja del código abierto es que si alguien que no le gusta la forma en que
funciona su servidor web, se puede empezar a construir su propia cuenta. Una cosa que
usted aprenderá a medida que avanza con Linux es la forma de evaluar el software. A
veces se va a ir con el líder de la manada, a veces usted querrá mirar por encima del
borde de la sangría.
2.2.1 Aplicaciones de servidor
Linux sobresale en que se ejecutan las aplicaciones de servidor debido a su fiabilidad y
eficiencia. Al considerar el software de servidor, la pregunta más importante es "¿qué
servicio estoy corriendo?" Si quiere servir páginas web, necesitará software de servidor
web, no un servidor de correo!
Uno de los primeros usos de Linux era para los servidores web. Un contenido de hosts
de servidor web para páginas web, que son vistos por un navegador web utilizando el
protocolo de transferencia de hipertexto (HTTP) o su sabor cifrada, HTTPS. La página
web en sí puede ser estática que significa que cuando el navegador Web solicita la página
al servidor web simplemente envía el archivo tal como aparece en el disco. El servidor
también puede servir contenido dinámico, lo que significa que la solicitud se envía por el
servidor web para una aplicación, que genera el contenido. WordPress es un ejemplo
popular. Los usuarios pueden desarrollar contenidos a través de su navegador en la
aplicación de WordPress y el software lo convierte en un sitio web completamente
funcional. Cada vez que haces compras en línea, usted está buscando en un sitio
dinámico.
Apache es el servidor web dominante en uso hoy en día. Apache fue originalmente un
proyecto independiente, pero desde que el grupo se ha formado la Fundación de Software
Apache y mantiene más de un centenar de proyectos de software de código abierto.

Otro servidor web es nginx, que tiene su base en Rusia. Se centra en el rendimiento
mediante el uso de más núcleos de Unix modernos y sólo hace un subconjunto de lo que
Apache puede hacer. Más del 65% de los sitios web son alimentados por cualquiera de
nginx o Apache.

Correo electrónico ha sido siempre un uso popular para servidores Linux. Cuando se
habla de servidores de correo electrónico siempre es útil para mirar a los 3 diferentes
papeles necesarios para obtener el correo electrónico entre las personas:
MAIL TRANSFER AGENT (MTA) - se da cuenta de qué servidor necesita recibir el correo
electrónico y utiliza el Protocolo simple de transferencia de correo (SMTP) para mover el
correo electrónico a dicho servidor. No es inusual para un correo electrónico a tomar
varios "saltos" para llegar a su destino final, ya que una organización puede tener varios
MTA.
MAIL DELIVERY AGENT (MDA), también llamado el agente de entrega local) - se
encarga de almacenar el correo electrónico en el buzón del usuario. Por lo general, se
invoca desde el MTA final de la cadena.
POP / IMAP DEL SERVIDOR - El Protocolo de oficina de correos y el Protocolo de
acceso a mensajes de Internet son dos protocolos de comunicación que permiten a un
cliente de correo electrónico que se ejecuta en su charla ordenador a un servidor remoto
para recoger el correo electrónico.
A veces, una pieza de software implementará múltiples componentes. En el mundo de
código cerrado, Microsoft Exchange implementa todos los componentes, por lo que no
hay ninguna opción para hacer selecciones individuales. En el mundo del software libre
hay muchas opciones. Algunos servidores de correo POP / IMAP implementar su propio
formato de base de datos de correo para el rendimiento, por lo que también incluirán la
MDA, si se desea que la base de datos personalizada. Las personas que usan formatos
de archivo estándar (como todos los mensajes de correo electrónico en un archivo de
texto) pueden elegir cualquier MDA.

El MTA más conocido es Sendmail. Postfix es otro popular y tiene como objetivo ser
más sencillo y más seguro que Sendmail.
Si está utilizando formatos de archivo estándar para el almacenamiento de mensajes de
correo electrónico, su MTA también puede entregar el correo. Como alternativa, puede
usar algo como procmail, que le permite definir filtros personalizados para procesar el
correo y filtrarlo.

Dovecot es un servidor POP / IMAP populares debido a su facilidad de uso y bajo


mantenimiento. IMAP Cyrus es otra opción.

Para compartir archivos, Samba es el claro ganador. Samba permite a una máquina Linux
para que se parezca a una máquina de Windows para que pueda compartir archivos y
participar en un dominio de Windows. Samba implementa los componentes de servidor,
como hacer que los archivos disponibles para compartir y ciertas funciones de servidor de
Windows, y también el extremo del cliente para que una máquina Linux puede consumir
un recurso compartido de archivos de Windows.
Si usted tiene máquinas de Apple en la red, el proyecto netatalk le permite a su
máquina Linux se comporta como un servidor de archivos de Apple.
El protocolo de uso compartido de archivos nativo de UNIX se llama el sistema de
archivos de red (NFS). NFS es generalmente parte del núcleo que significa que un
sistema de archivos remoto se puede montar como un disco normal, por lo que el acceso
a archivos transparentes a otras aplicaciones.
A medida que su red informática se hace más grande, tendrá que aplicar algún tipo de
directorio. El directorio más antigua se llama el Sistema de Nombres de Dominio y se
utiliza para convertir un nombre como http://www.linux.com a una dirección IP como
192.168.100.100, que es un identificador único de ese equipo en Internet. DNS también
lleva a cabo dicha información global como la dirección de la MTA para un determinado
nombre de dominio. Una organización puede querer ejecutar su propio servidor DNS para
alojar sus nombres que enfrenta públicas, y también para servir como un directorio interno
de los servicios. Internet Software Consortium mantiene el servidor DNS más popular,
llamado simplemente se unen después de que el nombre del proceso que ejecuta el
servicio.
El DNS es en gran parte centrada en nombres de equipo y direcciones IP y no es fácil de
realizar búsquedas. Otros directorios han surgido para almacenar otros datos como
cuentas de usuario y funciones de seguridad. El Lightweight Directory Access Protocol
(LDAP) es el Directorio más común que también poderes Directorio Activo de Microsoft.
En LDAP, se almacena un objeto en un árbol, y la posición de dicho objeto en el árbol
puede ser utilizada para obtener información sobre el objeto, además de lo que se
almacena con el propio objeto. Por ejemplo, un administrador de Linux se puede
almacenar en una rama del árbol llamado "departamento de TI", que se encuentra bajo
una rama llamada "Operaciones". De esta manera uno puede encontrar todo el personal
técnico mediante la búsqueda en la rama departamento de TI. OpenLDAP es el jugador
dominante aquí.

Una última pieza de la infraestructura de red se denomina Dynamic Host Configuration


Protocol (DHCP). Cuando un equipo arranca, necesita una dirección IP para la red local
para que pueda ser identificada. El trabajo de DHCP es para escuchar las solicitudes y
asignar una dirección libre de la piscina del DHCP. Internet Software Consortium también
mantiene el servidor DHCP de ISC, que es el jugador más común aquí.
Una base de datos almacena la información y también permite la fácil recuperación y
consulta. Las bases de datos más populares aquí son MySQL y PostgreSQL. Es posible
introducir las cifras de ventas en bruto en la base de datos y luego utilizar un lenguaje
llamado lenguaje de consulta estructurado (SQL) para las ventas totales de los
productos y la fecha con el fin de elaborar un informe.

2.2.2 Aplicaciones de escritorio


El ecosistema Linux tiene una amplia variedad de aplicaciones de escritorio. Se pueden
encontrar juegos, aplicaciones de productividad, herramientas creativas, y mucho más.
Esta sección es una mera encuesta de lo que hay ahí fuera, centrándose en lo que la LPI
considere más importante.
Antes de pasar a las aplicaciones individuales, es útil observar el entorno de escritorio. Un
escritorio de Linux se ejecuta un sistema llamado X Window, también conocido como
X11. El servidor Linux X11 es X.org, que proporciona una forma para que el software
funcione en modo gráfico y aceptar la entrada de un teclado y un ratón. Ventanas y los
iconos son manejados por otra pieza de software llamado el gestor de ventanas o entorno
de escritorio. Un gestor de ventanas es una versión más sencilla del entorno de escritorio,
ya que sólo proporciona el código para dibujar menús y gestionar las ventanas de la
aplicación en la pantalla. A las capas del entorno del escritorio en características como
ventanas de inicio de sesión, las sesiones, un administrador de archivos, y otros servicios
públicos. En resumen, un texto de sólo estación de trabajo Linux se convierte en un
escritorio gráfico con la adición de X-Windows y ya sea un entorno de escritorio o un
gestor de ventanas.
Los gestores de ventanas Compiz incluyen, FVWM, y la Ilustración, aunque hay muchos
más. Los entornos de escritorio son principalmente KDE y GNOME, ambos de los cuales
tienen sus propios gestores de ventanas. KDE y GNOME son proyectos maduros con una
increíble cantidad de utilidades incorporadas en contra de ellos, y la elección es a menudo
una cuestión de preferencia personal.
Las aplicaciones de productividad básicas, tales como un procesador de textos, hoja de
cálculo, y el paquete de presentación son muy importantes. Colectivamente se les conoce
como una suite de oficina, en gran parte debido a Microsoft Office, que es el jugador
dominante en el mercado.
OpenOffice (a veces se llama OpenOffice.org) y LibreOffice ofrecen una suite de oficina
completa, incluyendo una herramienta de dibujo que se esfuerza para la compatibilidad
con Microsoft Office, tanto en términos de características y formatos de archivo. Estos dos
proyectos son también un gran ejemplo de cómo la política influyen en código abierto.
En 1999 Sun Microsystems adquirió una empresa alemana relativamente oscuro que
estaba haciendo una suite ofimática StarOffice para Linux llama. Poco después de eso,
Sun rebautizado como OpenOffice y liberado bajo una licencia de código abierto. Para
complicar más las cosas, StarOffice se mantuvo un producto patentado que sacó de
OpenOffice. En 2010 fue adquirida por Sun Oracle, que más tarde se convirtió el proyecto
a la Fundación Apache.
Oracle ha tenido un pobre historial de apoyo a proyectos de código abierto que adquiere,
por lo que poco después de la adquisición por parte de Oracle el proyecto se bifurca para
convertirse en LibreOffice. En ese momento no se convirtieron en dos grupos de personas
que desarrollan la misma pieza de software. La mayor parte del impulso fue para el
proyecto LibreOffice por lo que se incluye por defecto en muchas distribuciones de Linux.

Para navegar por la web, los dos contendientes principales son Firefox y Google
Chrome. Ambos están abiertos los navegadores web de código que son rápidos, rico en
características, y tienen un excelente soporte para los desarrolladores web. Estos dos
paquetes son un buen ejemplo de cómo la diversidad es buena para el código abierto -
mejoras en uno incitan a que el otro equipo para tratar de ser mejor que el otro. Como
resultado, el Internet tiene dos excelentes navegadores que empujan los límites de lo que
puede hacerse en la web y el trabajo a través de una variedad de plataformas.

El proyecto Mozilla también ha salido con Thunderbird, un cliente de correo electrónico


completa de escritorio que se muestra. Thunderbird se conecta a un servidor POP o
IMAP, muestra de correo electrónico localmente, y envía correo electrónico a través de un
servidor SMTP externo.

Otros clientes de correo electrónico son notables Evolución y KMail que son el GNOME y
clientes de correo electrónico del proyecto KDE. Normalización través de POP e IMAP y
formatos de correo electrónico locales significa que es más fácil cambiar entre clientes de
correo electrónico sin perder datos. correo electrónico basado en web también es otra
opción.
Para los tipos creativos, hay Blender, Gimp, Audacity y que manejan la creación de la
película en 3D, la manipulación de imágenes 2D y edición de audio, respectivamente.
Ellos han tenido diversos grados de éxito en los mercados profesionales. Blender se
utiliza para todo, desde películas independientes a las películas de Hollywood, por
ejemplo.
2.2.3 Herramientas de consola
La historia del desarrollo de UNIX muestra una considerable superposición entre las
habilidades de desarrollo de software y sistemas de administración. Las herramientas que
le permiten administrar el sistema tienen características de los lenguajes de programación
tales como bucles, y algunos lenguajes de programación se utilizan ampliamente en la
automatización de las tareas de administración de sistemas. Por lo tanto, se debe
considerar estas habilidades complementarias.
En el nivel básico, que interactúa con un sistema Linux a través de una Shell a sin
importar si se está conectando al sistema de forma remota o desde un teclado conectado.
El trabajo de la shell es para aceptar comandos, como manipulaciones de archivos y
aplicaciones de arranque, y pase a los que el núcleo de Linux para su ejecución. Aquí, se
muestra una interacción típica con el shell de Linux:

sysadmin@localhost:~$ ls -l /tmp/*.gz
-rw-r--r-- 1 sean root 246841 Mar 5 2013 /tmp/fdboot.img.gz
sysadmin@localhost:~$ rm /tmp/fdboot.img.gz

El usuario recibe un aviso, que por lo general termina en un signo de dólar $ para indicar
una cuenta sin privilegios. Cualquier cosa antes del mensaje, en este caso sysadmin @
localhost: ~, es un indicador configurable que proporciona información adicional para el
usuario. En la figura anterior, administrador de sistemas es el nombre del usuario actual,
localhost es el nombre del servidor, y ~ es el directorio actual (en UNIX, el símbolo tilde es
una forma corta para el directorio personal del usuario). Vamos a ver los comandos de
Linux en más detalle en otros capítulos, pero al terminar la explicación, los primeros
archivos de comando lista con el comando ls, recibe alguna información sobre el archivo
y, a continuación, elimina ese archivo con el comando rm.
El shell de Linux proporciona un lenguaje rico para la iteración sobre archivos y
personalizar el entorno, todo sin salir de la shell. Por ejemplo, es posible escribir una sola
línea de comandos que se encuentra ficheros con contenidos que corresponden a un
patrón determinado, extrae información útil desde el archivo, copia la nueva información a
un nuevo archivo.

Linux ofrece una variedad de shell’s para elegir, sobre todo difieren en cómo y qué se
puede personalizar, y la sintaxis del lenguaje de script incorporado. Las dos familias
principales son la shell de Bourne y el shell C. El shell Bourne fue nombrado después de
que el creador y el intérprete de comandos C fue nombrado porque la sintaxis inspira en
gran medida de la lengua C. A medida que estos dos proyectiles fueron inventados en la
década de 1970 hay versiones más modernas, el Bourne Again Shell (bash) y la tcsh (tee-
cee-shell). Bash es el shell por defecto en la mayoría de los sistemas, aunque casi se
puede estar seguro de que Tcsh está disponible si así lo prefiere.

Otras personas tomaron sus características favoritas de Bash y tcsh y han hecho otros
proyectiles, tales como el shell Korn (ksh) y zsh. La elección de las shells es en su
mayoría de carácter personal. Si puede sentirse cómodo con Bash, entonces puede
funcionar eficazmente en la mayoría de los sistemas Linux. Después de que se puede
ramificarse y probar nuevas conchas para ver si ayudan a su productividad.
Aún más divisoria que la selección de shells es la elección de los editores de texto. Un
editor de texto se utiliza en la consola para editar archivos de configuración. Los dos
campos principales son vi (o el más moderno vim y emacs). Ambas son herramientas
muy poderosas para editar archivos de texto, difieren en el formato de los comandos y la
forma de escribir plugins para ellos. Plugins podría ser cualquier cosa de resaltado de
sintaxis de proyectos de software a calendarios integrados.

Tanto vim y emacs son complejas y tienen una curva de aprendizaje empinada. Esto no
es muy útil si lo que necesitas es una edición sencilla de un pequeño archivo de texto. Por
lo tanto pico y nano están disponibles en la mayoría de los sistemas (este último es un
derivado de la primera) y proporcionar la edición de texto muy básico.

Incluso si usted decide no utilizar vi que debe esforzarse para ganar un poco de
conocimiento básico porque la vi básica es en todos los sistemas Linux. Si va a restaurar
un sistema Linux rota ejecutando en modo de recuperación de la distribución que esté
seguro de tener disponible vi.

Si tiene un sistema Linux, necesitará añadir, eliminar y actualizar el software. En un


momento esto significaba descargar el código fuente, su puesta en marcha, la
construcción de ésta, y la copia de archivos en cada sistema. Afortunadamente, las
distribuciones creadas por paquetes que son copias comprimidas de la aplicación. Un
gestor de paquetes se encarga de hacer el seguimiento de los archivos que pertenecen a
cada paquete y actualizaciones, incluso la descarga desde un servidor remoto llamado un
repositorio. En los sistemas Debian incluyen las herramientas dpkg, apt-get y apt-cache.
En los sistemas derivados de Red Hat, utilice rpm y yum. Vamos a ver más en paquetes
más tarde.
2.2.4 Herramientas de desarrollo
No debería ser ninguna sorpresa que a medida que el software incorporado en las
contribuciones de los programadores, Linux tiene un excelente soporte para el desarrollo
de software. Las conchas se construyen para ser programable y hay poderosos editores
incluidos en cada sistema. También hay muchas herramientas de desarrollo disponibles, y
muchos lenguajes modernos tratan a Linux como un ciudadano de primera clase.
Los lenguajes de programación proporcionan una forma para que un programador pueda
introducir instrucciones en un formato legible más humano, y para aquellas instrucciones
que finalmente se traducía en algo que entienda el ordenador.las Idiomas caen en una de
dos campos: interpretado o compilado. Un lenguaje interpretado traduce el código
escrito en código de ordenador que el programa se ejecuta, y un lenguaje compilado se
traduce a la vez.

Linux en sí mismo fue escrito en un lenguaje compilado llamado principal beneficio de C.


C es que el idioma en sí eran similares con el código de máquina generado por lo que un
programador experto puede escribir código que es pequeño y eficiente. Cuando la
memoria del ordenador se midió en el Kilobytes, esto era muy importante. , Incluso con
tamaños de memoria de gran actualidad C sigue siendo útil para escribir código que debe
correr rápido, tales como un sistema operativo.
C se ha extendido en los últimos años. No es C ++, que añade soporte de objetos a C (un
estilo diferente de la programación), y C Objetivo que se llevó a otra dirección y se
encuentra en un uso intensivo de los productos de Apple.
El lenguaje Java toma un giro diferente en el enfoque compilado. En lugar de compilar a
código máquina, Java primera imagina una CPU hipotética llamada la Máquina Virtual de
Java (JVM) y compila todo el código a eso. Cada equipo host a continuación, ejecuta el
software JVM para traducir las instrucciones de JVM (llamado código de bytes) en
instrucciones nativas.
La traducción extra con Java podría hacer pensar que sería lento. Sin embargo, la JVM es
bastante simple por lo que se puede implementar de forma rápida y fiable en cualquier
cosa de un potente ordenador a un dispositivo de baja potencia que se conecta a un
televisor. Un archivo de Java compilado también se puede ejecutar en cualquier
ordenador implementación de la JVM!
Otro beneficio de la compilación de un objetivo intermedio es que la JVM puede
proporcionar servicios a la aplicación que normalmente no estarían disponibles en una
CPU. La asignación de memoria para un programa es un problema complejo, pero que
está integrada en la JVM. Esto también significa que los fabricantes de JVM pueden
centrar sus mejoras en la JVM en su conjunto, por lo que cualquier progreso que hacen es
inmediatamente disponible para las aplicaciones.

Los lenguajes interpretados, por el contrario, se traducen a código máquina mientras se


ejecutan. La potencia de los ordenadores extra gastado haciendo esto a menudo puede
ser recuperado por el aumento de la productividad del programador las ganancias al no
tener que dejar de trabajar para compilar. Los lenguajes interpretados también tienden a
ofrecer más características que los lenguajes compilados, lo que significa que se necesita
a menudo menos código. El propio intérprete de lenguaje se suele escribir en otro idioma
como el C, e incluso a veces de Java! Esto significa que un lenguaje interpretado se
ejecuta en la JVM, lo que se traduce en tiempo de ejecución en código máquina real.

Perl es un lenguaje interpretado. Perl fue desarrollado originalmente para llevar a cabo
la manipulación de texto. Con los años, se ganó el favor de los administradores de
sistemas y todavía se sigue mejorando y se utiliza en todo, desde la automatización para
la creación de aplicaciones web.

PHP es un lenguaje que fue construido originalmente para crear páginas web dinámicas.
Un archivo PHP es leída por un servidor web como Apache. etiquetas especiales en el
archivo indican que partes del código deben interpretarse como instrucciones. El servidor
web tira de todas las diferentes partes del archivo en conjunto y lo envía al navegador
web. principales ventajas de PHP es que es fácil de aprender y disponible en casi
cualquier sistema. Debido a esto, muchos proyectos populares se basan en PHP. Los
ejemplos notables incluyen WordPress (blogs), cactus (para la supervisión), e incluso
partes de Facebook.

Ruby es otro lenguaje que fue influenciado por Perl y Shell, junto con muchos otros
idiomas. Que hace que las tareas complejas de programación relativamente fácil, y con la
inclusión del marco de Ruby on Rails, es una opción popular para la construcción de
aplicaciones web complejas. Ruby es también la lengua que los poderes de muchas de
las herramientas de automatización líderes como chef y de marionetas, que facilitarán la
gestión de un gran número de sistemas Linux mucho más fácil.

Python es otro lenguaje de scripting que es de uso común. Al igual que Rubí se hace más
fácil las tareas complejas y tiene un marco llamado Django que hace que las aplicaciones
web de construcción muy fácil. Python tiene excelentes capacidades de procesamiento
estadístico y es uno de los favoritos en el mundo académico.

Un lenguaje es sólo una herramienta que hace que sea más fácil para decirle al
ordenador lo que quiere que haga. Una biblioteca de paquetes tareas comunes en un
paquete distinto que puede ser usada por el desarrollador. ImageMagick es una de esas
biblioteca que permite a los programadores manipular imágenes en código. ImageMagick
también viene con algunas herramientas de línea de comandos que le permiten procesar
imágenes de una Shell y aprovechar las capacidades de scripting allí.
OpenSSL es una biblioteca criptográfica que se utiliza en todo, desde los servidores de
Internet para la línea de comandos. Proporciona una interfaz estándar para que pueda
añadir la criptografía en su script en Perl, por ejemplo.
En un nivel mucho más bajo es la librería C. Esto proporciona un conjunto básico de
funciones para la lectura y la escritura a los archivos y pantallas, que se utiliza por las
aplicaciones y otros idiomas por igual.

También podría gustarte