Está en la página 1de 15

ESCUELA MILITAR DE INGENIERÍAINGENIERÍA EN

SISTEMAS ELECTRÓNICOS

NOMBRES Llanos Choque Roberto Armando


Dayana Virenka Uzquiano Mancilla
Katherine Elena Ojopi Fernandez
CÓDIGOS SAGA A22403-0
A22514-2
A22562-2
NUMERO DE GRUPO 3
TIPO NDE DOCUEMTO Proyecto-Informe laboratorio 2
FECHA 30-08-2021

Antecedente
Era el año 1991 y Linus Torvalds ,que en aquel entonces era un estudiante de
informática de la Universidad de Helsinki, empezó a programar las primeras líneas
de código de un sistema operativo(finalmente llamado LINUX ) como una afición y
sin poderse imaginar la gran repercusión que traería.
Hubo una primera versión no oficial de Linux 0.01, pero esta solo incluía el comienzo
del núcleo, estaba escrita en lenguaje ensamblador y asumía que uno tenía acceso
a un sistema Minix para su compilación.
El 5 de octubre de 1991, Linus anuncio la primera versión oficial de Linux (versión
0.02). Con esta versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc
(El compilador GNU de C).Desde aquel entonces se han hecho muchísimas
versiones con ayuda de programadores de todo el mundo.
Linux es un sistema operativo compatible con Unix, sus dos características
principales y que los diferencian del resto de los sistemas operativos que
encontramos en el mercado son:
1. Es software libre, esto significa que no tenemos que pagar por el uso del
mismo.
2. El sistema viene acompañado del código fuente (el sistema lo forman el
núcleo del sistema (kernel) mas un gran numero de librerías que hacen
posible su utilización).
Las plataformas en las que en un principio se puede utilizar Linux son: Pentium,
Pentium Pro, Pentium II/III/IV, Amiga y Atari, también existen versiones para su
utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.
En los últimos tiempos, ciertas casas de software comercial han empezado a
distribuir sus productos para Linux y la presencia del mismo en empresas aumenta
rápidamente por la excelente relación calidad-precio que se consigue con Linux.
Objetivo
Realizar el diseño o desarrollar una herramienta que nos permita realizar la gestión
de los recursos de un computador empleando el sistema operativo Linux.
Marco Teórico

Linux es tal vez la mejor plataforma para aprender programación. A diferencia de


Windows y Mac, todo el código de todo el sistema operativo está disponible para su
estudio y modificación. También tiene el mayor surtido de herramientas para la
creación de programas y, salvo aquellos de licencia privativa, todos los lenguajes
de programación actuales y del pasado tienen una versión compatible.

En general, en Linux puedes ejecutar tus habilidades de programación en 3 niveles

El kernel Linux

El kernel es la piedra fundamental del sistema operativo. Es el que se ocupa de


administrar los recursos de hardware. El Kernel Linux tiene una nueva versión cada
3 meses y cuenta con la colaboración de miles de personas, muchos de ellos en
forma voluntaria y otros trabajando para empresas.

Para colaborar en el desarrollo del kernel Linux, necesitas dos cosas; una alta
autoestima y un profundo conocimiento de su funcionamiento y del lenguaje de
programación C. Lo primero es porque si bien cualquiera puede enviar
modificaciones (parches), las críticas de los otros desarrolladores y de Linus
Torvalds (el responsable principal del proyecto) suelen ser sangrientas.

Si no estás seguro de afrontar las críticas, puedes probar desarrollando un módulo.


Esto puede ser un controlador para un hardware específico, un gestor de ventanas
o cualquier otro programa que sirva de enlace entre el kernel y los programas
usados directamente por el usuario.
Repito que esto es algo reservado para usuarios con profundos conocimientos del
funcionamiento del kernel.

En general las distribuciones Linux suelen incluir las herramientas necesarias para
compilar y ejecutar programas en C

Script para el intérprete de comandos

El intérprete de comandos es una herramienta para darle ordenes al sistema


mediante el tipeo de texto. En los sistemas derivados de Unix se lo
denomina shell. Las distribuciones Linux traen por defecto el shell llamado Bash. El
conjunto de instrucciones de BASH hace posible crear programas para automatizar
tareas y hacer cualquier otra cosa que no requiera interfaz gráfica.

Puedes crear tus propios script en el editor de textos de tu distribución y ejecutarlos


desde el emulador de la terminal.

Sistema operativo GNU/Linux

El sistema operativo GNU/Linux puede explicarse bajo una organización de tres


capas. Una capa se considera una agrupación de componentes. En las capas se
considera al hardware como componente de la primera de ellas o capa inferior.
Dicho hardware incluye a la memoria y al CPU, entre otros elementos.

En la siguiente capa se encuentra el kernel o núcleo del sistema operativo. El kernel


es el software que reside en memoria y le indica al CPU que hacer. Este núcleo
gestiona al hardware y actúa como una interface entre éste y cualquier programa
en ejecución.
Una forma más simplificada de GNU/Linux
Kernel de GNU/Linux

El Kernel o Núcleo de GNU/Linux es el responsable de la gestión de los recursos


de la computadora y asignarlos a las tareas de los usuarios. Tales recursos incluyen
al CPU, dispositivos periféricos como a unidad de CD/DVD, impresoras, escaners,
etc.

Los programas interactúan con el kernel a través de las llamadas al sistema,


funciones especiales con nombres bien conocidos. Un programador puede hacer
uso de una llamada al sistema para interactuar con los dispositivos.

El kernel está a cargo de gestionar tareas para cuatro áreas generales del sistema:

 Procesos. El kernel es el responsable de determinar qué procesos pueden


hacer uso del CPU.
 Memoria. El kernel asigna espacio de memoria a los procesos que están en
ejecución.
 Controladores de dispositivos. El kernel actúa como una interface entre el
hardware y los procesos. Es generalmente trabajo del kernel operar el
hardware.
 Soporte a las llamadas al sistema. Los procesos usan las llamadas al sistema
para comunicarse con el kernel.

GNU/Linux puede soportar muchos usuarios

Dependiendo del hardware y de los tipos de tareas que desempeñe una


computadora, GNU/Linux puede dar soporte de uno a 1,000 usuarios, cada uno
ejecutando concurrrentemente diferentes programas.

GNU/Linux puede ejecutar muchas tareas

El sistema operativo está fuertemente protegido para ofrecer multitarea, permitiendo


que cada usuario ejecute más de una tarea a la vez. Los procesos pueden
comunicarse uno con otro pero permanecen protegidos entre ellos.

GNU/Linux provee un sistema de archivos jerárquico


Un archivo es una colección de información, por ejemplo, un reporte o una carta.
Puede contener también imágenes o una melodía o puede ser un programa
ejecutable. Cada archivo es almacenadoo bajo un identificador en un dispositivo de
almacenamiento como un disco duro. El sistema de archivos GNU/Linux provee
una estructura donde los archivos son organizados bajo un directorio, que
representa un folder.

Cada directorio tiene un nombre y puede contener archivos u otros directorios. Esta
estructura ayuda al usuario a gestionar una gran cantidad de archivos agrupados
jerarquicamente en directorios. Cada usuario tiene un directorio principal y todos los
subdirectorios que requiera.

Para mantener una gestión fácil tanto para usuario como para administradores y
desarrolladores de software, un grupo de entusiastas a través de la Internet,
desarrolló el Linux Filesystem Standard (FSSTND), el cual se encuentra dentro
del Linux Filesystem Hierarchy Standard (FHS) para definir un estándar en la
estructura jerárquica de archivos bajo Linux.

GNU/Linux es un sistema operativo que permite la interacción de usuario a través


de un shell de trabajo. Un shell es una interface, un programa o conjunto de
programas que permiten acceder a los recursos que ofrece el sistema operativo y
al kernel de éste a través de tal interface.

Los dos tipos de interfaces que permiten tal interacción, tanto en Unix como en los
sistemas operativos derivados de él son: a) Ambiente gráfico a través de escritorios
gráficos de trabajo, y b) Línea de comando a través de órdenes escritas.

Los escritorios de trabajo más populares son Gnome Desktop y K Desktop


Environment, aunque existen otros
como Xfce, Enlightenment, Cinnamon, Fluxbox y GNUstep, entre otros.

El programa más común en GNU/Linux para escribir las órdenes en la llamada línea
de comando es Bourne Again Shell (Bash shell), pero existen otros populares como
Bourne shell, Korn shell, Z shell y C shell, entre otros.
Shell de trabajo

Debido a que GNU/Linux es un sistema operativo multiusuario, cada uno puede


elegir el shell de trabajo que desee. Puesto que los shells son programas que
permiten interactuar con el sistema operativo a través de órdenes o comandos, el
shell es un lenguaje de programación interpretado de alto nivel. Los comandos del
shell pueden entonces ser agrupados en archivos de texto a manera de
instrucciones para ser ejecutados posteriormente. Estos archivos que contienen
comandos del shell se les conoce como shell scripts.

Esta flexibilidad le permite al usuario desarrollar complejas tareas con relativa


facilidad. GNU/Linux provee de cientos de utilidades (programas para interactuar
con el sistema operativo) para gestionar archivos, dispositivos y cualquier recurso
con el que cuente el usuario.

GNU/Linux establece jerarquias para los usuarios. Todos sistema operativo crea un
usuario principal o administrador llamado el Superusuario o root. El resto de los
usuarios son considerados usuarios normales que no tienen los privilegios de
gestión del sistema operativo que tiene root. Entre las actividades que tiene el
administrador del sistema o root es el de instalar aplicaciones, modificar los archivos
de configuración de los programas y servicios y actualizar el sistema operativo, entre
otras actividades.

Interface Gráfica de Usuario

La Interface Gráfica de Usuario (GUI, Graphical User Intarface) está conformada


por un servicio (programa de computadora que realiza un trabajo que será utilizado
por otro(s) programa(s)) llamado X Window System (también llamado X o X11), un
Escritorio de Trabajo (Desktop Manager, Gnome o K, usualmente) y un Gestor de
de ventanas (Window Manager).

Un Escritorio de Trabajo es una interface para usuario que facilita la interacción con
los programas del sistema operativo a través de iconos en lugar de escribir en una
línea de comando las órdenes.

Un Gestor de Ventanas que ejecuta bajo el Escritorio de Trabajo y permite que se


abran y cierren ventanas, se ejecuten programas y se utilice el mouse. Esta capa
es la capa que permite imprimirle personalidad al escritorio.
Recursos adicionales

GNU/Linux es un sistema operativo muy versátil que ofrece facilidades para


comunicación en red, compartiendo recursos y ofreciendo servicios como
publicación de una página web o la compartición de una impresora. También ofrece
recursos para el desarrollo de aplicaciones como compiladores e intérpretes para
lenguajes de programación como C, C++, Java, Python, awk, Perl, etc., y ambientes
de desarrollo que pueden instalarse de terceros como Netbeans, Eclipse o
Code:Block

Tipos de usuarios.

Usuario root

-También llamado superusuario o administrador.

-Su UID (User ID) es 0 (cero).

-Es la única cuenta de usuario con privilegios sobre todo el sistema.

-Acceso total a todos los archivos y directorios con independencia


depropietarios y permisos.-Controla la administración de cuentas de usuarios.

-Ejecuta tareas de mantenimiento del sistema.-Puede detener el sistema.-Instala


software en el sistema.-Puede modificar o reconfigurar el kernel, controladores, etc

Usuarios especiales

-Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache,
etc.

-Se les llama también cuentas del sistema.-No tiene todos los privilegios del usuario
root, pero dependiendo de la-cuenta asumen distintos privilegios de root.

-Lo anterior para proteger al sistema de posibles formas de vulnerar


laseguridad.

-No tienen contraseñas pues son cuentas que no están diseñadas parainiciar
sesiones con ellas.

-También se les conoce como cuentas de "no inicio de sesión" (nologin).

-Se crean (generalmente) automáticamente al momento de la instalaciónde Linux o


de la aplicación.
-Generalmente se les asigna un UID entre 1 y 100 (definifo en/etc/login.defs)

Usuarios normales

-Se usan para usuarios individuales.

-Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home.

-Cada usuario puede personalizar su entorno de trabajo.

-Tienen solo privilegios completos en su directorio de trabajo o HOME.

-Por seguridad, es siempre mejor trabajar como un usuario normal en vez del
usuario root, y cuando se requiera hacer uso de comandos solo de root,
utilizar elcomando su.-En las distros actuales de Linux seles asigna generalmente
un UID superior a 500.

Marco Práctico

Para poder realizar este punto primero debemos inicializar el vitualizador, en nuestro
caso “virtualbox” a continuación iniciaremos la maquina virtual de Linux.

Para poder ver los recursos existen varios códigos, pero acá nos enfocaremos en
algunos de los más relevantes, los cuales nos ayudarán a ver datos sobre la
máquina virtual, los recursos que tenemos disponibles, datos específicos sobre la
máquina virtual y otros.

Para tener un buen uso de la máquina virtual lo primero que necesitamos es estar
monitoreando la máquina virtual constantemente, y sacarle provecho a la máquina
virtual, ya que usamos un mismo hardware y diferentes software’s.

Aplicación.

En este punto veremos las herramientas a utilizar, hablaremos un poco de ellas y


veremos en que nos pueden ayudar.

Primer herramienta free

Para ver un reporte del estado de memoria de nuestro sistema


Acá podemos ver un reporte de nuestra máquina virtual acerca de nuestra memoria:
el total, el espacio usado, el espacio libre, el compartido entre usuarios, la memoria
de caché y el espacio disponible.

Segunda herramienta top

Este nos ayuda a tener un reporte en tiempo real del consumo de memoria y el
consumo de procesador, pero por proceso, este nos puede ayudar a monitorear si
puede existir el consumo de CPU muy elevado de memoria RAM, es donde
podemos empezar a realizar ajustes para mejorar el desempeño o a identificar
potenciales problemas, nos reporta los mismos datos que el comando free, pero
este es un poco más integral.

Tercera herramienta htop

Para esta herramienta podríamos tener un inconveniente, el cual podría ser


el que no este instaladas las librerías correspondientes para poderla ejecutar, por lo
que si al probar el código htop, nos dice que no encuentra un código para ejecutar,
debemos poner lo siguiente.

Una vez introducidas estas 2 líneas de código el comando “htop” esta lista
para utilizarse.

Como se puede ver a continuación la herramienta HTOP nos muetra con


colores en la parte inferior el equivalente a la primera herramienta “top” y en la parte
inferior un resumen del consumo de memoria RAM, CPU y el consumo de la
memoria SWAP.

Herramienta df

Con esta herramienta se puede vigilar el consumo de nuestro disco duro, que tan
seguido se recomienda hacer el uso de esta herramienta, se recomienda hacerlo
diario, siempre debemos ser conscientes de cuál es el consumo de recursos de
nuestro sistema y por esto presentamos estas herramientas.

Implementación.

En este punto daremos algunas recomendaciones de las herramientas vistas con


anterioridad, y analizaremos como podemos implementarlas a nuestro día a día.

El objetivo de virtual izar una máquina es reutilizar un hardware para poder ahorrar
costos, en la adquisición de más, por lo que es muy importante tener estas
herramientas siempre funcionando y ser conscientes de nuestros recursos
disponibles para hacer el mejor uso de ellos, en cuanto a la implementación de estas
herramientas es muy importante en máquinas virtuales o en virtualizadores, ya que
los recursos disponibles son compartidos entre el SO principal sobre el cual corre el
virtualizador o la máquina virtual y estos mientras no tengamos una actualización
de quipo o algún tipo de extensión al hardware original, los recursos son limitados,
por eso nuestro principal objetivo es el de estar en todo momento conscientes de
todos los recursos que tenemos.

Se podría luego de iniciar el equipo tanto la máquina virtual como el SO principal


revisar en ambos cuál es nuestro estado actual para poder ver si existe algún
proceso que está haciendo un uso excesivo de nuestros recurso y tomar medidas
en dicho caso, o ya sea para poder prevenir un error que nosotros podríamos
detectar.

Pruebas de funcionamiento

Pruebas de funcionamiento de la herramienta FREE


Pruebas de funcionamiento de la herramienta DF

Pruebas de funcionamiento de la herramienta HTOP


Pruebas de funcionamiento de la herramienta TOP

Balance de componentes
Para poder hacer uso de este sistema operativo a su máximo potencial no
necesitamos un exigente hardware, los requerimientos son los mínimos, ya que este
SO esta optimizado y el software no es muy exigente, a continuación mostraremos
los componentes que necesitaremos para el uso de la máquina virtual en toda su
capacidad, y veremos que estos no son muy exigentes.

A continuación mostraremos 3 versiones de Ubuntu y de acuerdo a las


disposiciones y la exigencia de los distintos tipos de usuarios, se puede adaptar una
u otra.

Ubuntu 14.04
Para esta distribución se requiere de:

 Procesador x86 a 700 MHz.


 Memoria RAM de 512 Mb
 Disco duro de almacenamiento de 5 GB
 Una tarjeta gráfica y un monitor que puedan soportar una resolución de 1024
x 768.
 Lector de DVD y/o puerto USB
 Una buena conexión a Internet.

Ubuntu 16.04
Con esta distribución se requiere de:

 Procesador Dual Core


 2GB de RAM
 Un disco duro de 16 GB
 Tarjeta gráfica y un monitor que soporte la resolución de 1366 x 768 pixeles.

Ubuntu 17.04
En esta distribución se debe considerar:

 Procesador x86 a 1 GHz


 Memoria RAM de 1GB
 Espacio en disco de 15 GB
 Tarjeta gráfica capaz de soportar 800 x 600 de resolución
 Puerto USB
 Tarjeta de red.

Los precios pueden variar dependiendo la época y otros factores.

Conclusiones y Recomendaciones
En este apartado llegamos a la conclusión de que es muy importante el saber de
los recursos que disponemos, esto se puede interpolar a todo en la vida, para sacar
el máximo provecho a todo lo que tenemos disponible, es primordial conocer de
ellos, saber que está siendo mal utilizado, como maximizar alguno que está siendo
mal utilizado, cómo anticiparse a los hechos y poder prevenir algún tipo de error que
se pudiera avecinar, el conocer herramientas que nos ayuden a poder realizar esta
tarea que es muy importante es esencial, para que estemos más conscientes de
todo lo que tenemos y que no surjan imprevistos que nos pudiesen perjudicar en
algún momento y estar siempre un paso adelante, no sorprendernos con
imprevistos, por eso presentamos estas herramientas que nos ofrece el mismo
sistema operativo y porque no hacer uso de ellos si están ahí para facilitarnos la
vida.

Recomendamos a todo aquel que lea este informe:

Que antes de iniciar cualquier cosa primero conozcamos con lo que disponemos
para poder sacarle el máximo provecho, estudiar el campo al que nos estamos
metiendo averiguar herramientas que nos pueden ayudar a llegar a la maximización
del uso de nuestros recursos y por último no rendirse en contratiempos que
pudiesen surgir en el camino.

Bibliografía

Requisitos Mínimos de Hardware para Instalar Linux y sus Distribuciones (requisitos-


para.com)

Gestión de Procesos en los Sistemas Operativos (uoc.edu)

Cómo instalar y usar Htop en Linux (conpilar.es)

https://histinf.blogs.upv.es/2011/12/23/historia-de-linux

También podría gustarte