Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Si cuentas con la versión de W8, W8.1 o W10, lo más seguro es que tu equipo
incluya una BIOS UEFI con Secure Boot. También debes tener en cuenta que debes
desactivar esas opciones dependiendo de la distribución que se vaya a instalar, ya que
si no se desactivan no se podrá iniciar el disco de arranque USB que se ha creado
anteriormente.
Para instalar una distro Linux sobre un Windows, el instalador te permitirá decidir
si quieres realizar la instalación junto a Windows o si quieres utilizar otro disco. En este
caso solo debes escoger el espacio que ocupa cada uno de ellos.
En el caso que ya tengas Linux y quieras instalar Windows, entonces el instalador
del sistema de Microsoft eliminará el GRUB por completo. Esto quiere decir que te
quedarás sin opciones para el arranque, lo que evitará que puedas escoger con qué
sistema comenzar. Por lo tanto, lo más recomendable es instalar Linux en un PC que
ya tenga Windows instalado previamente.
Para instalar Windows o Linux hoy en día se debe realizar un proceso muy
sencillo, por lo que no necesitas tener conocimiento avanzado para ello, en este solo
necesitas crear un disco de arranque USB que será insertado en tu PC, el
mismo arranca desde él y no desde el disco duro del equipo. aquí solo debes
seguir las instrucciones que se te van indicando en pantalla a través del instalador.
Una vez hayas seguido cada una de las instrucciones y el procedimiento haya
finalizado, ya estará todo listo para que puedas comenzar a utilizar la máquina con
ambos sistemas operativos.
Partición extendida
Las particiones extendidas son como contenedores donde podemos tener multitud de
particiones lógicas. Por ese motivo, a veces se les conoce como particiones secundarias.
Solo puede existir una partición de este tipo por disco, y solo sirve para contener
particiones lógicas. Por lo tanto, es el único tipo de partición que no soporta un sistema
de archivos directamente. Estas particiones fueron ideadas para romper la limitación de 4
particiones primarias por unidad física. Por ejemplo, imagina que quieres tener 8
particiones en una sola unidad de almacenamiento. Lo que podemos hacer es crear 3
particiones primarias y una partición extendida. A continuación, crearemos 5 particiones
lógicas dentro de la partición extendida. También podríamos crear 1 partición primaria, 1
partición extendida y 7 particiones lógicas dentro de la extendida.
Partición lógica
Las particiones lógicas son aquellas particiones que creamos dentro de las particiones
extendidas. Al igual que en las particiones primarias, las particiones lógicas pueden
utilizarse para instalar Windows y cualquier otro tipo de archivos. Se pueden tener un
máximo de 23 particiones lógicas en una partición extendida. Aunque algunos sistemas
operativos pueden ser más restrictivos, como Linux que impone un máximo de 15,
incluyendo las 4 primarias, en discos SCSI y en discos IDE 8963. Aunque podemos
instalar sistemas operativos en las unidades lógicas, no se les puede dar el
estado activo y, por lo tanto, no sirven para arrancar el ordenador desde cero por si
mismas. Eso sí, podemos utilizar un gestor de arranque en una partición primaria para
arrancar las particiones lógicas.
Aunque es posible cambiar las particiones del sistema mientras esté en ejecución, se
corre un riesgo muy alto de cometer errores que lleven a la pérdida de datos. Conviene
por tanto evitar cambiar las particiones del sistema instalado y realizar siempre una copia
de seguridad de todos los datos antes de hacerlo.
Ejecutar blkid sin ningún argumento enumerará todos los dispositivos disponibles con su
Identificador único universal (UUID), el TIPO del sistema de archivos y la ETIQUETA, si
está configurada.
f) Crear una nueva partición primaria, ¿es posible? ¿Por qué sucede esto?
Hay que tener en cuenta que en un disco solo puedes tener 4 particiones primarias y una
extendida que contenga muchas lógicas.
g) Realice los pasos necesarios para poder crear dos nuevas particiones de 1G cada
una.
5.- Kernel
a) ¿Qué es?
Es una parte fundamental del sistema operativo que se encarga de conceder el acceso al
hardware de forma segura para todo el software que lo solicita, el Kernel es una pequeña
e invisible parte del sistema operativo, pero la más importante, ya que sin esta no podría
funcionar. Todos los sistemas operativos tienen un Kernel, incluso Windows 10, pero
quizás el más famoso es el Kernel de Linux, que ahora además está integrado en
Windows 10 con sus últimas actualizaciones. Este núcleo de los sistemas operativos se
ejecuta en modo privilegiado con acceso especial a los recursos del sistema para poder
realizar las peticiones de acceso que le va pidiendo el software que lo necesita, además
como los recursos no son ilimitados, también hace de arbitro a la hora de asignarlos,
decidiendo el orden de las peticiones recibidas según la prioridad e importancia de estas.
Una gestión muy importante y fundamental que en la mayoría de las ocasiones pasa
desapercibida aún siendo un trabajo esencial para coordinar todo el hardware con el
software.
El kernel de Windows es privado y su código lo tienen a salvo en el que solamente
Microsoft puede realizar modificaciones para mejorar sus próximas versiones de
Windows 10, al igual pasa con el de MacOS, basado en UNIX pero con licencia privada
se reserva al equipo de desarrollo encargado de Apple de realizar estas modificaciones,
pero Linux tiene un Kernel público bajo licencia GPL v2 y su código (o la mayor parte)
está disponible para poder descargarlo, examinarlo o incluso realizar aportes y
modificaciones útiles para los demás usuarios.
Microkernel:
Es la cantidad casi mínima de software que pueden proporcionar los mecanismos
necesarios para implementar un Sistema operativo (SO). Estos mecanismos
incluyen espacio de dirección administración, hilo administración y comunicación entre
procesos (IPC). Si el hardware proporciona varios anillos o Modos de CPU, el
microkernel puede ser el único software que se ejecuta en el nivel más privilegiado, que
generalmente se conoce como modo supervisor o kernel. Funciones tradicionales del
sistema operativo, como controladores de dispositivo, pilas de protocolo y sistemas de
archivos, normalmente se eliminan del propio microkernel y en su lugar se ejecutan
en espacio de usuario. En términos del tamaño del código fuente, los microkernels suelen
ser más pequeños que granos monolíticos. los MINIX 3 microkernel, por ejemplo, tiene
sólo aproximadamente 12.000 líneas de código.
Kernel híbrido:
La idea detrás de un kernel híbrido es tener una estructura de kernel similar a la de un
microkernel, pero implementar esa estructura a la manera de un kernel monolítico. A
diferencia de un microkernel, todos (o casi todos) los servicios del sistema operativo en
un kernel híbrido todavía están en espacio del kernel. No hay ninguno de los beneficios
de confiabilidad de tener servicios en espacio de usuario, como con un microkernel. Sin
embargo, al igual que con un ordinario núcleo monolítico, no hay ninguna sobrecarga de
rendimiento para el paso de mensajes y el cambio de contexto entre el kernel y el modo
de usuario que normalmente viene con un microkernel.
El kernel de Linux no tiene capa de usuario. Sólo tiene una, la del propio kernel, por lo
que se le considera monolítico. En cuanto a qué tipo de estructura es mejor, aquí siempre
hay debate. Los defensores del kernel monolítico siempre apuntan que son muchos más
sencillos para depurar errores.
6.- Intérprete de comandos (Shell)
a) ¿Qué es?
Una shell de Unix es el término usado en informática para referirse al intérprete de
comandos de los sistemas operativos basados en Unix y similares, como GNU/Linux, y
que es su interfaz de usuario tradicional. Mediante las instrucciones que aporta el
intérprete, el usuario puede comunicarse con el núcleo y por extensión, ejecutar dichas
órdenes, así como herramientas que le permiten controlar el funcionamiento de la
computadora. Por ello, en inglés se le denominó así, shell, que puede ser traducido como
«cáscara», porque es la envoltura visible del sistema informático. Los comandos que
aportan los intérpretes, pueden usarse a modo de guion si se escriben en ficheros
ejecutables denominados shell-scripts, de este modo, cuando el usuario necesita hacer
uso de varios comandos o combinados de comandos con herramientas, escribe en un
fichero de texto, marcado como ejecutable, las operaciones que posteriormente, línea por
línea, el intérprete traducirá al núcleo para que las realice. Sin ser un shell estrictamente
un lenguaje de programación, al proceso de crear scripts de shell se le denomina
programación shell o en inglés, shell programming o shell scripting. En el sentido más
genérico del término, shell significa cualquier intérprete que los usuarios usen para
escribir comandos. Su etimología proviene del uso natural de consolas en computadores
funcionando bajo unix antaño, cuando los usuarios conectaban al computador central, lo
hacían mediante consolas, (shells) por las cuales a través de un intérprete, hacían inicio
de sesión y manejaban la computadora principal. Posteriormente, con la proliferación de
los computadores personales y su filosofía monousuario, un computador por usuario
(entiéndase lo contrario de la filosofía inicial de Unix, un computador, muchos usuarios
conectados por terminales), se desarrolló un software que emulase las características
principales de las consolas físicas, a modo de poder seguir usándolas como clientes en
un computador o núcleo que comprendiera la convención estándar usada para configurar
y llevar a cabo tareas de administración de emergencia con servidores basados en Unix.
Los usuarios de Unix y similares, pueden elegir entre distintos shells (programa que se
debería ejecutar cuando inician la sesión, véase bash, ash, csh, Zsh, ksh, tcsh). Las
interfaces de usuario gráficas para Unix, como son GNOME, KDE y Xfce pueden ser
llamadas shells visuales o shells gráficas. Por sí mismo, el término shell es asociado
usualmente con la línea de comandos. En Unix, cualquier programa puede ser un shell
de usuario. Los usuarios que desean utilizar una sintaxis diferente para redactar
comandos, pueden especificar un intérprete diferente como su shell de usuario. El
término shell también hace referencia a un programa particular, tal como el Bourne
shell, sh. El Bourne shell fue el shell usado en las primeras versiones de Unix y se
convirtió en un estándar de facto; todos los sistemas similares a Unix tienen al menos un
shell compatible con el Bourne shell. El programa Bourne shell se encuentra dentro de la
jerarquía de archivos de Unix en /bin/sh. En algunos sistemas, tal como BSD, /bin/sh es
un Bourne shell o un equivalente, pero en otros sistemas como muchas distribuciones de
Linux, /bin/sh es un enlace simbólico a un shell compatible con más características
(como Bash). POSIX especifica su shell estándar como un subconjunto estricto del Korn
shell.
O. Tail: Este tiene una función similar al comando head, pero en lugar
de mostrar las primeras líneas, el comando tail mostrará las últimas
diez líneas de un archivo de texto. Por ejemplo, tail -n
nombredearchivo.ext.
P.Uname: El comando uname, abreviatura de Nombre de Unix,
imprimirá información detallada sobre tu sistema Linux, como el
nombre de la máquina, el sistema operativo, el núcleo, etc.
Q. Mkfs: se utiliza para dar formato a un dispositivo de almacenamiento de
bloque con un determinado sistema de archivos.
R. Dmesg: herramienta exclusiva de sistemas basados en Unix con la
capacidad de listar los avisos temporales generados por el kernel.
S. Who: da información de los usuarios que están conectados al sistema y
también otras informaciones como cuándo se arrancó el sistema y cuál
es el nivel de ejecución del sistema.
T.Lsusb: permite visualizar información de los dispositivos USB
conectados a los puertos USB del sistema.
U. Ifconfig: es utilizado para arrancar la interface de la tarjeta de red,
pararla y realizar todas las configuraciones sobre dicha tarjeta en
nuestros servidores dedicados o servidores virtuales.
V.Id: muestra por el terminal los IDs (números de identificación) de usuario
y de grupo tanto reales como efectivos. Muestra los UIDs (identificador
de usuario) y GIDs (identificador de grupo) para el usuario especificado
o, cuando se omite, para el usuario actual.
W. less: es una utilidad en línea de comandos capaz de mostrarnos el
contenido de un archivo, o la salida de un comando pagina por pagina.
Es similar al comando «more» pero con alguna característica más
avanzada, además nos permite navegar hacia adelante y hacia atrás a
través del archivo.
Cat: (abreviatura de concatenate, en inglés) es uno de los comandos
más utilizados en Linux. Se utiliza para listar el contenido de un archivo
en la salida estándar (sdout). Para ejecutar este comando,
escribe cat seguido del nombre del archivo y su extensión. Por
ejemplo: cat archivo.txt.
Aquí hay otras formas de usar el comando cat:
cat > nombredearchivo crea un nuevo archivo.
8.- Archivos
a) ¿Cómo se identifican los archivos en GNU/Linux?
Linux no se basa en la extensión para saber qué tipo de archivo es cada uno,
si no que utiliza lo que se llama "magic numbers", este sistema determina el
tipo de archivo mediante unos test que comprueban que tipo de archivo es. El
comando para mostrar el tipo de archivo es file. Este sistema es mucho más
eficaz que el de las extensiones.
Hay que tener en cuenta que el sistema puede saber qué tipo de archivo es
pero no tener ninguna aplicación con que visualizarlo.
b) ¿A qué hacen referencia las siglas UID y GID? ¿Pueden coexistir UIDs
iguales en un sistema GNU/Linux? Justifique.
Los sistemas operativos Linux y Unix utilizan el UID (User ID o ID de usuario) para
identificar al usuario particular. El GID (Group ID o ID de grupo) se utiliza para identificar
a un grupo. El usuario puede pertenecer a muchos grupos secundarios y cada grupo
secundario tendrá un GID único. El comando "id" puede utilizarse para mostrar el UID y
los GID de un usuario particular. El usuario raíz (super) puede ver el UID y el GID de
cualquier usuario. Si no tienes privilegios de raíz, solamente puedes ver tu UID y GID.
Abre una ventana terminal. La aplicación terminal suele encontrarse en la sección
"Accessories" (Accesorios), "Utilities" (Utilidades) o "Tools" (Herramientas) del menú
principal "Programs" (Programas) o "Applications" (Aplicaciones). Ingresa el comando
"su" para convertirte en el usuario raíz. Saltea este paso si no tienes privilegios de
usuario raíz o si quieres el UID o el GID de tu propia cuenta. Ingresa el comando "id -u
<nombre de usuario>" para hallar el UID de un usuario particular. Reemplaza "<nombre
de usuario>" por el nombre del usuario de Unix o Linux. Ingresa el comando "id -g
<nombre de usuario>" para hallar el GID de un usuario particular. Reemplaza "<nombre
de usuario>" por el nombre del usuario de Unix o Linux. Ingresa el comando "id -G
<nombre de usuario>" para listar todos los GID de un usuario en particular. Reemplaza
"<nombre de usuario>" por el nombre del usuario de Unix o Linux. Ingresa el comando
"exit" para cerrar la sesión de usuario raíz.
Se supone que no pero hay un caso excepcional, el U ID= 0 (sería el root). Pueden
llegar a haber másde un root, y coexisten, pero son casos excepcionales, se supone
que no pueden haber varios usuarios con un mismo ID.
Al ser Unix un sistema multiusuario, los archivos de cada usuario deben ser protegidos
del resto de los usuarios. Lo mismo ocurre con los archivos del sistema (programas,
configuraciones, etc.). Esto tiene que ver no sólo con la confidencialidad de la
información, sino también con la protección de errores involuntarios por parte de los
usuarios. Para ello se utiliza un sistema de “permisos de archivos”. Este mecanismo
permite que archivos y directorios “pertenezcan” a un usuario en particular. Por ejemplo,
como diego creó archivos en su directorio “home”, diego es el propietario de esos
archivos y tiene acceso total a ellos.
Unix también permite que los archivos sean compartidos entre usuarios y grupos de
usuarios. Si diego lo desea, podría restringir el acceso a sus archivos de forma que
ningún otro usuario pueda acceder a ellos.
Tipos de permisos
Los grupos usualmente son definidos por el tipo de usuarios que acceden al sistema. Por
ejemplo, en un sistema Unix de una universidad, los usuarios pueden ser divididos en los
grupos estudiantes, dirección, profesores e invitados. Hay también unos pocos grupos
definidos por el sistema (como bin y daemon) que son usados por el propio sistema para
controlar el acceso a los recursos. Normalmente los usuarios comunes no pertenecen a
estos grupos.
Los permisos están divididos en tres tipos: lectura, escritura y ejecución. Estos permisos
pueden ser fijados para tres clases de usuarios: el propietario del archivo o directorio, los
integrantes del grupo al que pertenece y todos los demás usuarios.
/home/diego/nuevo$ ls -l cosas
-rw-r--r-- 1 diego users 505 Mar 13 19:05 paco
/home/diego/nuevo$
El primer campo representa los permisos del archivo. El tercer campo es el propietario
del mismo (diego), el cuarto es el grupo al cual pertenece el archivo (users) y el último
campo es el nombre del archivo (paco).
La cadena “-rw-r--r-” nos informa, por orden, los permisos para el propietario, los usuarios
del grupo y el resto de los usuarios.
Los siguientes tres caracteres, “r--”, representan los permisos para los miembros del
grupo al que pertenece el archivo (en este caso, users). Como sólo aparece una “r”
cualquier usuario que pertenezca al grupo users puede leer este archivo, pero no
modificarlo ni ejecutarlo.
Los últimos tres caracteres, “r--”, representan los permisos para cualquier otro usuario del
sistema (que no sea diego ni pertenezca al grupo users). Nuevamente, como sólo está
presente la “r”, los demás usuarios pueden leer el archivo, pero no escribir en él o
ejecutarlo.
-rwxr-xr-x
El propietario del archivo puede leer, escribir y ejecutar el archivo. Los usuarios
pertenecientes al grupo del archivo y todos los demás usuarios pueden leer y ejecutar el
archivo.
-rw-------
El propietario del archivo puede leer y escribir. Nadie más puede acceder al archivo.
-rwxrwxrwx
drwxr-xr-x
El propietario del directorio puede leer, escribir y entrar al mismo. Los usuarios
pertenecientes al grupo del directorio y todos los demás usuarios pueden leer e ingresar
al directorio.
El nombre completo de la ruta (full path name) significa la ruta completa a ese archivo
o carpeta desde el / directorio del sistema de archivos . Para comprender la ruta
completa, primero debe conocer el punto de partida. El directorio raíz / es el punto de
partida de los sistemas operativos basados en unix.
Un nombre de ruta que es "relativo" a la ubicación del directorio actual o "de trabajo".
Reglas:
Un nombre de ruta relativo puede utilizar los siguientes símbolos que se pueden utilizar al
principio:
cd ../ipc144
cp ../joe.doe/sample.c.
c) ¿Qué acciones debe llevar a cabo para comprimir 4 archivos en uno solo?
Indique la secuencia de comandos ejecutados
tar –cvzf mi_archivo_comprimido.tgz /home/req3107/archivo1o2o3o4
12.- Indicar qué acción realiza cada uno de los comandos indicados a continuación
considerando su orden. Suponga que se ejecutan desde un usuario que no es root ni
pertenece al grupo de root. (Asuma que se encuentra posicionado en el directorio de
trabajo del usuario con el que se logueo). En caso de no poder ejecutarse el comando
indique la razón:
13.- Indicar qué comando sería necesario ejecutar para realizar cada una de las
siguientes acciones:
a) Terminar el proceso con PID 23
KILL -9 23
c) Buscar todos los archivos de usuarios en los que su nombre contiene la cadena
“.conf”
find / -name *.conf
d) Guardar una lista de procesos en ejecución el archivo /home/<su nombre de
usuario>/procesos
ps > /home/req3107/procesos
14. Indicar que comando sería necesario ejecutar para realizar cada una
de las siguientes acciones:
b) Cree un usuario. Elija para como nombre, por convención, la primer letra de su
nombre seguida de su apellido. Asígnele una contraseña de acceso.
adduser rquevedo
h) Acceda a otra terminal virtual para loguearse con el usuario antes creado.
screen su rquevedo
i) Una vez logueado con el usuario antes creado, averigüe cual es el nombre de su
terminal.
who “root pts/0 2012-05-05 19:39 (:tty1:S.0)”
m) Apague el sistema.
Shutdown
15. Indique que comando sería necesario ejecutar para realizar cada
una de las siguientes acciones:
c) Cambie los permisos del archivo LEAME, de manera que se puedan ver reflejados
los siguientes permisos:
Dueño: ningún permiso
Grupo: permiso de ejecución
Otros: todos los permisos
chmod 017 LEAME
f) Utilizando los conceptos aprendidos en el punto e), busque todos los archivos cuya
extensión sea .so y almacene el resultado de esta búsqueda en un archivo dentro del
directorio creado en a). El archivo deberá llamarse ejercicio_f
find / -name “*.so” –type f > /home/pabloke87/2020/ejercicio_f
16. Indicar que acción realiza cada uno de los comandos indicados a
continuación considerando su orden. Suponga que se ejecutan
desde un usuario que no es root ni pertenece al grupo de root. (si no
existe el usuario deberá crearlo)
1) mkdir iso
Crea el directorio iso
2) cd ./iso; ps > f0
Cambia al directorio iso, crea una lista de los procesos de iso y lo guarda en un
archivo que se llama f0.
3) ls > f1
Lista el contenido de directorio actual (/iso) y lo guarda en el archivo f1.
4) cd /
Me voya raíz.
5) echo $HOME
Imprime el directorio home del usuario
6) ls -l > $HOME/iso/ls
Guarda el listado detallado del directorio actual en el archivo llamado ls contenido en
el directorio iso
7) cd $HOME; mkdir f2
Va a home y crea el directorio f2
8) ls –ld f2
Lista los detalles del directorio f2
9) chmod 341 f2
Cambia los permisos del directorio f2. escritura y ejecución al dueño, lectura al grupo
y ejecución a otros.
11) cd f2
Se posiciona en el directorio f2
12) cd ~/iso
Cambia al directorio /home/user/iso