finish report

This commit is contained in:
Chris Cromer 2021-07-26 00:55:56 -04:00
parent d4bd0f9f90
commit 8ce7cd9769
5 changed files with 53 additions and 7 deletions

View File

@ -13,6 +13,12 @@
\usepackage{amsmath} \usepackage{amsmath}
\usepackage{listings} \usepackage{listings}
\usepackage{xcolor} \usepackage{xcolor}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{mathptmx}
\newcommand{\Quad}{\hspace*{1em}}
\lstdefinestyle{freefempp}{ \lstdefinestyle{freefempp}{
language=C, language=C,
@ -79,6 +85,8 @@ Carlos Faúndez
\include{sections/introduccion} \include{sections/introduccion}
\include{sections/funcionamiento}
\include{sections/codigo} \include{sections/codigo}
\include{sections/conclusiones} \include{sections/conclusiones}

View File

@ -1,6 +1,6 @@
\section{Código} \section{Código}
\input{sections/codigo/ciclo} \input{sections/codigo/ciclo}
\input{sections/codigo/builtins} \input{sections/codigo/builtins}
\input{sections/codigo/launch} \input{sections/codigo/permutar}
\input{sections/codigo/redireccion} \input{sections/codigo/redireccion}
\input{sections/codigo/environ} \input{sections/codigo/environ}

View File

@ -1,6 +0,0 @@
\newpage
\subsection{Launch}
Launch(lanzar) es la parte responsable por permutar un programa que está en el sistema operativo o en PATH. Para hacer eso\
primer hacemos un fork donde el hijo permuta la operación y el padre espera que su hijo termina. Luego pasamos un nombre\
de programa a lanzar y sus argumentos al execvp para permutar en el hijo.
\lstinputlisting{code/launch.txt}

View File

@ -0,0 +1,6 @@
\newpage
\subsection{Permutar}
Permutar es la parte responsable por correr un programa que está en el sistema operativo o en PATH. Para hacer eso\
primer hacemos un fork donde el hijo permuta la operación y el padre espera que su hijo termina. Luego pasamos un nombre\
de programa a permutar y sus argumentos al execvp.
\lstinputlisting{code/launch.txt}

View File

@ -0,0 +1,38 @@
\section{Funcionamiento}
El myshellin consiste de 3 partes importantes, los comandos "builtins", permutar y redireccionamiento.
\subsection{Builtins}
Los builtins son comandos que son proporcionados por el shell en vez de un programa que provee el sistema operativo. Los comandos\
que proporciona el myshellin son:
\begin{itemize}
\item help \newline \Quad mostrar una mensaje de ayuda de como usar el shell.
\item environ \newline \Quad imprimir todos los variables del entorno.
\item set \newline \Quad crear o sobre escribir un variable de entorno.
\item echo \newline \Quad imprimir un comentario o variable.
\item cd \newline \Quad cambiar el directorio donde está trabajando el shell.
\item exit \newline \Quad salir del shell.
\end{itemize}
Cuando el comando que ingreso el usuario no es un builtin el siguiente paso es tratar de permutar un software que proporciona el\
sistema operativo.
\subsection{Permutar}
Para permutar un programa de sistema, el proceso de myshellin hace una llamada al fork para crear un proceso hijo. Luego el\
proceso hijo intenta permutar con el comando execvp. Lo que hace eso es reemplazar el proceso hijo con el proceso del programa\
que proporciona el sistema operativo como ls, rm, df, du, etc. Mientras que corre el programa el proceso padre espera que\
termina el proceso hijo antes que puede seguir pidiendo que el usuario ingresa otros comandos.
\newpage
\subsection{Redireccionamiento}
Redireccionamiento es el proceso de redirigir los contenidos de una entrada o salida al stdin, stdout o stderr. Por ejemplo\
se puede redirigir todo el contenidos que se debe imprimir en stdout a un archivo usando el símbolo ``>`` seguido por un nombre\
de archivo. En el shell existen los siguientes tipos de redireccionamiento:
\begin{itemize}
\item > \newline \Quad redirigir el stdout a un archivo y borrar el contenido anterior si existe el archivo.
\item >\null> \newline \Quad redirigir el stdout a un archivo y agregue el el contenido nuevo al final del archivo si existe.
\item 1> \newline \Quad redirigir el stdout a un archivo y borrar el contenido anterior si existe el archivo.
\item 1>\null> \newline \Quad redirigir el stdout a un archivo y agregue el el contenido nuevo al final del archivo si existe.
\item 2> \newline \Quad redirigir el stderr a un archivo y borrar el contenido anterior si existe el archivo.
\item 2>\null> \newline \Quad redirigir el stderr a un archivo y agregue el el contenido nuevo al final del archivo si existe.
\item < \newline \Quad redirigir el contenido de un archivo al stdin.
\end{itemize}