4ta Parte - Sistemas de Archivos - 2024 PDF
Document Details
Uploaded by SnazzyFantasticArt
UNPAZ
2024
Tags
Related
- Resumen Sistemas Operativos Teoría - Primer Parcial PDF
- Resumen Sistemas Operativos Teoría Primer Parcial PDF
- Resumen Sistemas Operativos Teoría - Primer Parcial (PDF)
- 4_a_Administración de sistemas de Archivos (1).pdf
- Dispositivos de Archivación Modernos - Escuela Nacional de Ciencias Comerciales No. 02 PDF
- Resumen Sist Op, seg parcial PDF
Summary
Resumen de la 4ta parte sobre Sistemas de Archivos para el 2do cuatrimestre de 2024. El documento describe conceptos fundamentales como archivos, sistemas de archivos y particiones. Contiene información sobre Windows, Linux y otros sistemas operativos.
Full Transcript
4ta Parte: Sistemas de Archivos 2do Cuatrimestre - 2024 El apunte siempre es modificado y actualizado. Estudiar del apunte del año y cuatrimestre actual Contenido 4. Sistemas de Archivos --------...
4ta Parte: Sistemas de Archivos 2do Cuatrimestre - 2024 El apunte siempre es modificado y actualizado. Estudiar del apunte del año y cuatrimestre actual Contenido 4. Sistemas de Archivos -------------------------------------------------------------------------------------------- 4 4.1. ¿Qué son los archivos? -------------------------------------------------------------------------------------4 4.2. ¿Qué es el sistema de archivos? -------------------------------------------------------------------------4 4.3. Proceso de formateo ---------------------------------------------------------------------------------------5 4.3.1. Formateo de un Disco Rígido -----------------------------------------------------------------------7 4.3.1.1. Características del disco rígido ---------------------------------------------------------------7 4.3.1.1.1. Pistas = Tracks -------------------------------------------------------------------------------8 4.3.1.1.2. Sector geométrico -------------------------------------------------------------------------8 4.3.1.1.3. Sector de una pista ------------------------------------------------------------------------8 4.3.1.1.4. Clúster-----------------------------------------------------------------------------------------9 4.3.1.1.5. Cilindros --------------------------------------------------------------------------------------9 4.4. Tipos de sistemas de Archivo --------------------------------------------------------------------------- 10 4.4.1 Tipos de sistemas de Archivo de Windows ----------------------------------------------------- 11 4.4.1.1. Tabla de archivos maestra (MFT) ---------------------------------------------------------- 12 4.4.1.2. Sistemas de Archivos en Memorias USB (Pendrives) ---------------------------------- 12 4.4.1.3. FAT32 --------------------------------------------------------------------------------------------- 13 4.4.1.4. exFAT ---------------------------------------------------------------------------------------------- 13 4.4.1. Tipos de sistemas de Archivo de Linux --------------------------------------------------------- 13 4.4.1.1. ext2: -------------------------------------------------------------------------------------------- 15 4.4.1.2. ext3: -------------------------------------------------------------------------------------------- 15 4.4.1.3. ext4: -------------------------------------------------------------------------------------------- 15 4.4.1.4. ReiserFS: -------------------------------------------------------------------------------------- 16 4.4.1.5. El área de intercambio (Swap)----------------------------------------------------------- 16 4.5. Estándar de jerarquía de archivos (FHS - File system Hierarchy Standard) ----------------- 19 4.5.1. Los principales directorios ------------------------------------------------------------------------- 20 4.5.1.1. Raíz / root ---------------------------------------------------------------------------------------- 20 4.5.1.3. /boot ---------------------------------------------------------------------------------------------- 20 4.5.1.4. /usr ------------------------------------------------------------------------------------------------ 21 4.5.1.5. /var ------------------------------------------------------------------------------------------------ 22 4.5.1.6. /home --------------------------------------------------------------------------------------------- 23 4.5.1.7. /opt"----------------------------------------------------------------------------------------------- 24 4.5.1.8. /tmp ----------------------------------------------------------------------------------------------- 25 4.5.1.9. /proc y /sys -------------------------------------------------------------------------------------- 26 4.5.1.10. /bin----------------------------------------------------------------------------------------------- 26 4.5.1.11. /run ---------------------------------------------------------------------------------------------- 27 1 4.5.1.12. /dev ---------------------------------------------------------------------------------------------- 28 4.5.1.13. /etc ----------------------------------------------------------------------------------------------- 29 4.5.2. Estáticos/dinámicos y compartibles/no compartibles -------------------------------------- 30 4.5.2.1. El contenido estático: ------------------------------------------------------------------------- 30 4.5.2.2. El contenido dinámico: ----------------------------------------------------------------------- 30 4.5.2.3. La información compartible ----------------------------------------------------------------- 30 4.5.2.4. La información no compartible ------------------------------------------------------------- 30 4.6. PARTICIONES DE UN DISCO RIGIDO ------------------------------------------------------------------- 31 Tipos de tablas de particiones: --------------------------------------------------------------------------- 31 4.6.1. Las Particiones Primarias: -------------------------------------------------------------------------- 31 4.6.2. Las Particiones Extendidas Y Lógicas ------------------------------------------------------------ 32 4.7. Particionado básico Windows y Linux ---------------------------------------------------------------- 33 4.7.1. instalación básica de Ubuntu en un disco duro nuevo sin particionar ----------------- 34 4.8. Firmware----------------------------------------------------------------------------------------------------- 37 4.8.1. BIOS (basic input/output system)---------------------------------------------------------------- 38 4.8.2. UEFI (Unified Extensible Firmware Interface)------------------------------------------------- 38 4.9. MBR (BIOS) – GPT (UEFI) --------------------------------------------------------------------------------- 40 4.9.1. Registro de arranque (MASTER BOOT RECORD o bien MBR) ----------------------------- 40 4.9.2. La tabla de particiones GUID (GPT GUID Partition Table)---------------------------------- 41 4.10. Gestor de arranque-------------------------------------------------------------------------------------- 42 4.10.1. Gestor de arranque de Windows--------------------------------------------------------------- 43 4.10.1.1. Cómo poner en marcha el gestor de arranque de Windows ---------------------- 43 4.10.1.2. Editar fácilmente el boot de Windows -------------------------------------------------- 43 4.10.2. Gestores de arranque de Linux ----------------------------------------------------------------- 44 4.11. DISTROS ---------------------------------------------------------------------------------------------------- 44 4.12. Interfaces -------------------------------------------------------------------------------------------------- 45 4.12.1. Interfaz de línea de comandos o CLI (command line interface) ------------------------ 45 4.12.1.1. Windows Shell -------------------------------------------------------------------------------- 45 4.12.1.2. Bash ---------------------------------------------------------------------------------------------- 46 4.12.1.3. Los principales motivos para utilizar CLI son: ----------------------------------------- 46 4.12.1.4. Interfaz gráfica de usuario o GUI (Graphical User Interface) ---------------------- 46 4.12.1.4.1. Cinnamon --------------------------------------------------------------------------------- 47 4.12.1.4.2. KDE ----------------------------------------------------------------------------------------- 47 4.12.1.4.3. GNOME------------------------------------------------------------------------------------ 48 4.12.1.4.4. XFCE ---------------------------------------------------------------------------------------- 48 4.12.1.4.5. LXDE---------------------------------------------------------------------------------------- 49 2 4.12.1.4.6. Xfast---------------------------------------------------------------------------------------- 49 4.12.1.4.7. Ratpoison --------------------------------------------------------------------------------- 50 4.12.1.4.8. Equinox------------------------------------------------------------------------------------ 50 4.12.1.4.9. Mate --------------------------------------------------------------------------------------- 51 4.12.1.4.10. Unity ------------------------------------------------------------------------------------- 51 4.12.1.4.11. Deepin ----------------------------------------------------------------------------------- 52 4.13. Breve explicación de algunas distribuciones ------------------------------------------------------ 53 4.13.1. Ubuntu ------------------------------------------------------------------------------------------------ 53 4.13.2. LINUX MINT ------------------------------------------------------------------------------------------ 54 4.13.3. DEBIAN------------------------------------------------------------------------------------------------ 55 4.13.4. ARCH LINUX ----------------------------------------------------------------------------------------- 55 4.13.5. DEEPIN ------------------------------------------------------------------------------------------------ 56 4.13.6. Elementary OS ------------------------------------------------------------------------------------- 56 4.13.7. MX Linux---------------------------------------------------------------------------------------------- 57 Bibliografía ----------------------------------------------------------------------------------------------------------- 57 3 4. Sistemas de Archivos 4.1. ¿Qué son los archivos? Los archivos son unidades lógicas de información creada por los procesos (un programa en ejecución). En general, un disco contiene miles o incluso millones de archivos independientes. De hecho, si concibe a cada archivo como un tipo de espacio de direcciones. Los procesos pueden leer los archivos existentes y crear otros si es necesario. La información que se almacena en los archivos debe ser persistente, es decir, no debe ser afectada por la creación y terminación de los procesos. Un archivo debe desaparecer sólo cuando su propietario lo remueve de manera explícita. Aunque las operaciones para leer y escribir en archivos son las más comunes, existen muchas otras. Los archivos son administrados por el sistema operativo. La manera en que se estructuran, denomina, abren, utilizan, protegen, implementan y administran son tópicos fundamentales en el diseño de sistemas operativos. La parte del sistema operativo que trata con los archivos se conoce como sistema de archivos y es el tema de esta unidad. 4.2. ¿Qué es el sistema de archivos? Un sistema de archivos proporciona una forma de separar los datos de la unidad en piezas individuales, que son los archivos. También proporciona una forma de almacenar datos sobre estos archivos, por ejemplo, sus nombres de archivo, permisos y otros atributos. El sistema de archivos también proporciona un índice (una lista de los archivos de la unidad y donde se encuentran ubicados en la unidad), por lo que el sistema operativo puede ver lo que hay en la unidad en un lugar en vez de recorrerla toda para encontrar un archivo. (Reynaldo Terrill, 2018) Los sistemas de archivos organizan y distribuyen los datos en áreas accesibles del disco duro o en dispositivos de almacenamiento masivo, así como también la forma en que va a iniciar el sistema operativo (proceso de arranque). El objetivo del sistema de archivos es poder trabajar con la información almacenada sin ningún tipo de problema, esto es así porque el sistema operativo debe saber en todo momento donde se encuentra cada archivo. (Durán, 2000, p. 28) En conclusión, el sistema de archivos de un sistema operativo es el que organiza todos los datos contenidos en memoria secundaria de una forma determinada. Ya no sólo eso, sino que cada unidad de almacenamiento tiene un sistema de archivos que es impuesto tras su formato. 4 4.3. Proceso de formateo Para poder utilizar tanto un disco duro (interno o externo), una unidad de estado sólido (SSD), una unidad USB o una tarjeta SD, estos deben estar «formateados», es decir, su estructura lógica debe tener un formato de manera que el sistema operativo sea capaz de comprender su estructura y que pueda trabajar con ella. El proceso de formateo establece un método de asignación de direcciones a las diferentes áreas. También establece un espacio para guardar allí la lista de direcciones. Sin el formateo no habría manera de saber dónde van los datos. Resulta como una biblioteca donde las páginas no estuvieran dentro de los libros, sino desparramadas en los estantes, mesas y pisos del lugar. Llevaría un gran esfuerzo conseguir un libro completo. Un método para el formateo permite usar el espacio eficientemente, manteniendo la posibilidad de encontrar la información deseada. También se utiliza el “formateo”, con el fin de restablecer cualquier dispositivo que albergue datos, a su estado original, borrando, de forma no definitiva, los datos que este contiene. Generalmente, esto permite que la memoria del dispositivo sea reescrita con nueva información. En algunas ocasiones, se puede proceder a realizar una partición del disco duro; esto es crear diversas divisiones independientes, dentro del disco duro, que puedan soportar diversos formatos de archivos. Existen dos tipos de formateo1; “de bajo nivel” o “formateo físico”, “alto nivel” o “lógico” Con este tipo de formateo el disco puede Es aquel que es realizado de manera rápida y regresar a su estado de fábrica. parcial, que se caracteriza por editar los sistemas de archivos en cada sector del disco Este consiste en el borrador, por parte del duro, haciendo que este los elimine. cabezal, de todos los sectores en los que se divide el disco, dejándolos sin datos. Este se De esta manera, se puede tener de nuevo el caracteriza por ser un proceso de gran espacio completo del disco duro, aunque los lentitud, por la rigurosidad con la que se tiene archivos aún existan; después de un tiempo, que realizar. De igual forma, solía ser y con el almacenamiento de nuevos datos, se aplicado, por el fabricante, a todas las reescribirán los anteriores, haciéndolos máquinas antes de ser distribuidas, para que irrecuperables. no se tenga acceso a datos previos en la máquina; sin embargo, con el avance de la tecnología, los discos duros normales no necesitan de un formateo a bajo nivel. 1 Conceptodefinicion.de, Redacción. (Última edición:26 de julio del 2019). Definición de Formatear. Recuperado de: //conceptodefinicion.de/formatear/. Consultado el 8 de septiembre del 2020 5 A modo de ejemplo podemos nombrar el software CCleaner que nos permite hacer los dos tipos de formateo, también nos da la opción de borrar el MFT (Tabla Maestra de Archivos) tema que veremos mas adelante en esta unidad. Para que la información en el disco rígido desaparezca es necesario sobrescribir la información, para que desaparezca, en el caso del SSD siempre borra los datos primero, antes de escribir nuevos datos en los chips de almacenamiento Flash. En el caso que se opte de hacer un formateo de alto nivel, o a lo que se denomina borrado rápido, la información se puede recuperar gracias a programas que utiliza la policía forense en informática como EnCase Enterprise. 6 4.3.1. Formateo de un Disco Rígido 4.3.1.1. Características del disco rígido En informática, la unidad de disco duro o unidad de disco rígido (en inglés: Hard Disk Drive, HDD) es el dispositivo de almacenamiento de datos que emplea un sistema de grabación magnética para almacenar datos digitales. Se compone de uno o más platos o discos rígidos, unidos por un mismo eje que gira a gran velocidad dentro de una caja metálica sellada. Sobre cada plato, y en cada una de sus caras, se sitúa un cabezal de lectura/escritura que flota sobre una delgada lámina de aire generada por la rotación de los discos. Es memoria no volátil. Una unidad de disco rígido puede tener uno o más discos de aluminio llamados platos, que tienen sus dos lados recubiertos por una capa de cromo o níquel (sensible al magnetismo). Cada plato tiene sus propios cabezales que leen y graban la información en ellos. 7 Todos los discos magnéticos son formateados de manera similar o divididos en áreas denominadas: Tracks = Pistas Sectors = Sectores Sector Geométrico Clúster = "grupo" o "raíz" Cylinders =Cilindros 4.3.1.1.1. Pistas = Tracks Un disco está divido en delgados círculos concéntricos llamados pistas. Las cabezas lectoras del disco se mueven entre la pista más externa o pista cero a la más interna. Cada pista está formada por uno o más clúster. Cada pista tiene un número. El diagrama muestra 3 pistas. 4.3.1.1.2. Sector geométrico Se llama sector geométrico de un disco, una parte en forma de cuña del mismo. Permite particionar el disco de manera que se puedan crea los sectores. Cada uno de ellos está numerado. 4.3.1.1.3. Sector de una pista Un sector de pista es el área de intersección entre una pista y un sector geometrico. Un sector simplemente es la unidad de almacenamiento más pequeña que se puede direccionar individualmente como bloque, al nivel más bajo del software. Los sectores pueden tener desde 512 bytes (los discos duros) hasta unos 2048 bytes (CDs y/o DVDs). El tamaño del sector no es fijo (en NTFS). Antiguamente el número de sectores por pista era fijo (en FAT), lo cual desaprovechaba el espacio significativamente, ya que en las pistas exteriores pueden almacenarse más sectores que en las interiores. 8 4.3.1.1.4. Clúster Un clúster o también conocido como unidad de asignación según la terminología de Microsoft es un conjunto continuo de sectores que componen la unidad más pequeña de almacenamiento de un disco, es decir, los archivos se almacenan en varios clústeres, si el archivo es más pequeño que un clúster, este lo ocupa completo. También al clúster lo podemos definir como la cantidad de fragmentos en que se divide un disco duro cuando se le da formato y si el archivo o el fragmento restante es menor que la unidad de asignación se desperdicia el espacio sobrante El tamaño de unidad de asignación de los clústeres así como el espacio de almacenamiento perdido debido a los archivos que ocupan menos que el tamaño del clúster depende del sistema de archivos que emplee el disco. Este es mayor problema del sistema de archivos FAT es que tiene un número máximo fijo de clusters por partición, o sea que, si se coloca un disco rígido más grande, el tamaño de cada cluster se hace a su vez más grande es los que se denomina SLACK SPACE. Por ejemplo, en el FAT 16, en una partición de 2 GB, cada clúster tiene 32 kilobytes, y si se guarda un archivo de 10K, ocupará 32 K, desperdiciando el espacio en disco. CLUSTER de 32KB 10KB (DATOS) 22KB (SLACK SPACE) La única manera de reducir la cantidad de espacio perdido es reduciendo el tamaño de cada clúster cambiando el método de formateo. Se podría tener más pistas en el disco o además más sectores por pista, o podría reducir el número de pistas y sectores por clúster. En NTFS permite definir el tamaño del clúster, de forma independiente al tamaño de la partición (a partir de 512 bytes que es el tamaño mínimo). 4.3.1.1.5. Cilindros Es el conjunto de pistas a las que el sistema operativo puede acceder al mismo tiempo en cada posición de los cabezales. Si un disco duro tiene dos platos, el cilindro consta de 4 pistas. Manejando cilindros se accede a los datos más rápidamente que manejando pistas individuales, ya que el sistema operativo puede grabar o leer mayor cantidad de información sin tener que mover el cabezal. 9 4.4. Tipos de sistemas de Archivo Cuando formateamos normalmente podemos elegir diferentes sistemas de archivos dependiendo el sistema operativo y computadora; Windows Linux Solaris Mac OS IBM Discos Ópticos FAT (File Allocation ext2 (Extended UFS HPFS (High JFS UDF Table) file System) Performance File System). FAT16 ext3 ZFS HFS+ (Hierarchical GPFS+ File System) FAT32 ext4 APFS (Apple File System) NTFS (New JFS Technology File System) EFS ReiserFS exFAT (Extended Reiser4 File Allocation) XFS Como podemos observar en la tabla, existen múltiples tipos de sistema de archivos, pero por desgracia todos no son compatibles en los sistemas operativos más comunes y esto en muchas ocasiones representa un fallo latente para algunos usuarios ya que se ven ante la imposibilidad de transferir información entre uno y otro sistema usando medios como unidades USB, tema que veremos en otro apartado. A continuación, haremos hincapié a algunos de los sistemas de archivos; Windows y en la próxima unidad veremos la de Linux. 10 4.4.1 Tipos de sistemas de Archivo de Windows FAT12 FAT16 FAT32 NTFS Desarrollador Microsoft New Technology Tabla de Asignación de Archivos File System Nombre completo (versión (versión de (versión de 32/64 (versión de 32 bits) de 12 bits) 16 bits) bits) 1980-08 1993-actual Introducido 1984-88 1996-98 (Windows (DOS (Windows NT) (DOS 3.0) 95) 0.42) Identificador de (MBR) (MBR) (MBR) (MBR) partición (GPT) (GPT) Límites FAT12 FAT16 FAT32 NTFS Tamaño máximo 2 GB (4 16 TB -1 32 MB 4 GB - 1 de archivo GiB - 1) 4.068 para 65.460 para 4 mil millones para Número máximo 268.173.300 para clústers de clústers de clústers de 512 KB de archivos clústers de 32 KB 8 KB 32 KB Longitud máxima 255 caracteres 8.3 (11) o 255 caracteres cuando se usan LFNs del nombre de (Long File Names) archivo Tamaño máximo 256 TB del volumen 32 MiB 2 GiB 10 TB DOS v7 and Windows NT higher 2000 DOS All Windows 98 DOS All XP versions Sistema versions of ME of 2003 Server Operativo Microsoft Microsoft 2000 Windows 2008 Windows XP Vista 2003 Server 7 – 8 - 10 Vista 11 4.4.1.1. Tabla de archivos maestra (MFT) NTFS utiliza una tabla de archivos maestra (MFT) similar a la FAT, es la que contiene todos y cada uno de los archivos que componen un volumen, es decir, que cuando el sistema operativo consulta el contenido de un archivo, debe dirigirse a la MFT para obtener información del mismo, como: tamaño, propiedades, atributos, localización, nombres de archivos, eventos que sucede en el sistema, número de cluster, entre otros datos. La MFT es como una base de datos que almacena todo lo que necesita a la hora de consultar o acceder a un archivo o directorio, porque los directorios y los archivos no están en un área concreta del disco, sino puede estar en diferentes zonas del disco. Como fue explicado anteriormente, a través de un software llamado EnCase Enterprise se puede recuperar archivos y carpetas NTFS de la tabla maestra de archivos MFT, realizando procedimientos para buscar archivos sin carpetas raíz. Esta operación es especialmente útil cuando se ha formateado un dispositivo o la MFT está dañada. 4.4.1.2. Sistemas de Archivos en Memorias USB (Pendrives) Todos los sistemas operativos modernos de Windows funcionan perfectamente con NTFS, sin embargo, si vamos a utilizar otros sistemas como Mac OS X o Linux es posible que tengamos dificultad para leer y, sobre todo, escribir datos en estas unidades, salvo que utilicemos software de terceros. Igualmente es muy probable que en muchos dispositivos (móviles, televisores, reproductores multimedia, etc) no sean compatibles con este formato de archivos, por lo que de conectar una unidad NTFS a estos equipos no compatibles nos devolverá un error, en el mejor de los casos. Otras de las consecuencias es que NTFS es un sistema de archivos de registro por diario, esto crea más actividades de lectura/escritura. Por lo tanto, puede disminuir la vida de su dispositivo USB flash drive. Ante este punto surge otra pregunta, ¿Qué tipo de sistema de archivos usar que sea compatible con estos tres sistemas operativos?, En términos técnicos se ha recomendado que el sistema de archivos de las unidades USB sea FAT32 gracias a que es un sistema de archivos antiguo y que ha evolucionado hasta contar con FAT32 en la actualidad, pero existe un formato que es mucho mejor en términos de seguridad, fiabilidad y compatibilidad: exFAT. Veamos en detalle que es y que abarca cada uno de estos sistemas de archivos. 12 4.4.1.3. FAT32 Este formato es uno de los más compatibles pero debido a su vida útil, está vigente desde la década de los 90, presenta una serie de limitaciones que pueden afectar el ritmo de actualizaciones que vivimos hoy en día. Al ser un formato con tanto tiempo activo es compatible prácticamente con cualquier sistema operativo. Como hemos mencionado tiene sus limitaciones como la incapacidad de alojar archivos mayores a 4 GB o que las particiones con dicho sistema de archivos no podrán tener más de 8 TB de capacidad. La gran ventaja de este sistema es que es compatible con todos los SO, videoconsolas, televisiones, etc. 4.4.1.4. exFAT es en cierto modo un FAT32 más moderno y dinámico el cual fue desarrollado en el año 2006 y está presente en la mayoría de sistemas operativos modernos. Por defecto todos los sistemas operativos tradicionales, Windows, Linux o Mac OS son compatibles con exFAT y su uso es altamente recomendado para unidades externas, como dispositivos USB o discos externos, gracias a su sencillez y múltiples características. Pero, puede no ser compatible con ciertos medios de reproducción. 4.4.1. Tipos de sistemas de Archivo de Linux Linux soporta gran variedad de sistemas de archivo, desde sistemas basados en discos, como pueden ser ext2, ext3, ReiserFS, XFS, JFS, UFS, ISO9660, FAT, FAT32 o NTFS, a sistemas de archivo que sirven para comunicar equipos en la red de diferentes sistemas operativos, como NFS (utilizado para compartir recursos entre equipos Linux) o SMB (para compartir recursos entre máquinas Linux y Windows). Los sistemas de archivos indican el modo en que se gestionan los archivos dentro de las particiones. Según su complejidad, tienen características como previsión de apagones, posibilidad de recuperar datos, indexación para búsquedas rápidas, reducción de la fragmentación para agilizar la lectura de los datos, etc. 13 Las características que mejoran entre los sistemas de archivos pueden variar según la implementación y la versión específica de cada sistema de archivos. Sin embargo, en general, existen algunas características comunes que tienden a mejorar o diferenciarse entre diferentes sistemas de archivos utilizados en sistemas operativos como Linux. A continuación, se presentan algunas de las características que a menudo mejoran entre sistemas de archivos: Tamaño máximo de sistema de archivos: Algunos sistemas de archivos pueden soportar sistemas de archivos más grandes, lo que permite administrar discos de mayor capacidad y almacenar una mayor cantidad de datos. Tamaño máximo de archivos individuales: Mejoras en el tamaño máximo de archivos individuales permiten almacenar archivos más grandes y facilitan el manejo de archivos multimedia, bases de datos u otros conjuntos de datos masivos. Journaling (registro de transacciones): El journaling es una característica que mejora la confiabilidad del sistema de archivos al registrar las transacciones antes de realizarlas, lo que permite una recuperación rápida en caso de interrupciones inesperadas del sistema. Extensiones: La utilización de extensiones mejora la eficiencia en la administración del espacio en disco al agrupar contiguamente bloques de datos de un archivo, lo que reduce la fragmentación y mejora el rendimiento de acceso a los datos. Espacio libre (slack space): Los sistemas de archivos antiguos desperdiciaban mucho espacio libre. Los sistemas de archivos modernos pueden utilizar el espacio libre de manera más eficiente, lo que puede aumentar la capacidad de almacenamiento. Velocidad: Los sistemas de archivo antiguos eran lentos. Los sistemas de archivos modernos son mucho más rápidos, lo que facilita el acceso a los archivos. Fiabilidad: Los sistemas de archivo antiguos eran propensos a errores. Los sistemas de archivos modernos son más fiables, lo que reduce el riesgo de pérdida de datos. Seguridad: Los sistemas de archivo antiguos no eran muy seguros. Los sistemas de archivos modernos ofrecen una mejor seguridad, lo que dificulta el acceso no autorizado a los archivos. Soporte para múltiples usuarios: Los sistemas de archivo antiguos solo podían ser utilizados por un usuario a la vez. Los sistemas de archivo modernos pueden ser utilizados por múltiples usuarios al mismo tiempo, lo que facilita el trabajo en equipo y el intercambio de archivos. Soporte para múltiples dispositivos: Los sistemas de archivo antiguos solo podían ser utilizados en un dispositivo específico. Los sistemas de archivo modernos pueden ser utilizados en una variedad de dispositivos, incluidos discos duros, unidades flash, discos duros externos y servidores. Soporte para múltiples formatos de archivo: Los sistemas de archivo antiguos solo podían almacenar un formato de archivo específico. Los sistemas de archivo modernos pueden almacenar una variedad de formatos de archivo, incluidos documentos, hojas de cálculo, presentaciones, imágenes, videos y audio. 14 Soporte para compresión: Los sistemas de archivo modernos pueden comprimir archivos, lo que reduce el tamaño de los archivos y libera espacio de almacenamiento. Soporte para cifrado: Los sistemas de archivo modernos pueden cifrar archivos, lo que hace que sea más difícil que los datos se accedan sin autorización. Hay varios tipos, normalmente ligados a sistemas operativos concretos. A continuación, se enumeran los más representativos: 4.4.1.1. ext2: Tiene una fragmentación muy baja, aunque es algo lento manejando archivos de gran tamaño. Fue la continuación del sistema de ficheros ext, implementado en 1992 e integrado en Linux 0.96. Las principales ventajas que tenía sobre ext eran las siguientes: Compatible con sistemas de ficheros grandes, admitiendo particiones de disco de hasta 4TB y ficheros de hasta 2GB de tamaño. Proporciona nombres de ficheros largos, de hasta 255 caracteres. Tiene una gran estabilidad. Actualización. 4.4.1.2. ext3: Es la versión mejorada de ext2, con previsión de pérdida de datos por fallos del disco o apagones. En contraprestación, es totalmente imposible recuperar datos borrados. Es compatible con el sistema de archivos ext2.. Sus ventajas frente a ext2 son: Actualización. Debido a que los dos sistemas comparten el mismo formato, es posible llevar a cabo una actualización a ext3, incluso aunque el sistema ext2 esté montado. Fiabilidad y mantenimiento. 4.4.1.3. ext4: "ext4" es una abreviatura de "Extensión del sistema de archivos 4" (Fourth Extended Filesystem). Es la cuarta versión del sistema de archivos extendidos utilizados comúnmente en sistemas operativos basados en Unix, especialmente en Linux. El sistema de archivos "ext4" es una evolución del sistema de archivos "ext3" y proporciona mejoras significativas en rendimiento, escalabilidad y confiabilidad. Algunas de las características clave de ext4 incluyen: Mayor tamaño máximo de sistema de archivos y archivos individuales. Mayor eficiencia en la administración del espacio en disco Mayor velocidad y rendimiento general. 15 Soporte para características avanzadas, como journaling (registro de transacciones) y prealocación de espacio. Capacidad para extender un sistema de archivos ext3 existente a ext4 sin necesidad de realizar una reformatización. Sus principales ventajas radican en su eficiencia (menor uso de CPU, mejoras en la velocidad de lectura y escritura) y en la ampliación de los límites de tamaño de los archivos, ahora de hasta 16TB, y del sistema de archivos, que puede llegar a los 1024PB (PetaBytes). Debido a sus mejoras y ventajas sobre las versiones anteriores, ext4 se ha convertido en el sistema de archivos predeterminado para muchas distribuciones de Linux y es ampliamente utilizado en sistemas Linux modernos. 4.4.1.4. ReiserFS: Es el sistema de archivos de última generación para Linux. Organiza los archivos de tal modo que se agilizan mucho las operaciones con estos. El problema de ser tan actual es que muchas herramientas (por ejemplo, para recuperar datos) no lo soportan. 4.4.1.5. El área de intercambio (Swap) Es el sistema de archivos para la partición de intercambio de Linux. Todos los sistemas Linux necesitan una partición de este tipo para cargar los programas y no saturar la memoria RAM cuando se excede su capacidad. En Windows, esto se hace con el archivo pagefile.sys en la misma partición de trabajo, con los problemas que esto conlleva. El espacio de intercambio en Linux se usa cuando la cantidad de memoria física (RAM) está llena. Si el sistema necesita más recursos de memoria y la RAM está llena, las páginas inactivas en la memoria se mueven al espacio de intercambio. Si bien el espacio de intercambio puede ayudar a las máquinas con una pequeña cantidad de RAM, no debe considerarse un reemplazo de más RAM. El espacio de intercambio se encuentra en los discos duros, que tienen un tiempo de acceso más lento que la memoria física. El espacio de intercambio puede ser; una partición de intercambio dedicada (recomendado), un archivo de intercambio (Page.file) una combinación de particiones de intercambio y archivos de intercambio. 16 En años anteriores, la cantidad recomendada de espacio de intercambio aumentó linealmente con la cantidad de RAM en el sistema. Sin embargo, los sistemas modernos a menudo incluyen cientos de gigabytes de RAM. Como consecuencia, el espacio de intercambio recomendado se considera una función de la carga de trabajo de la memoria del sistema, no de la memoria del sistema. La Tabla, “Espacio de intercambio del sistema recomendado” ilustra el tamaño recomendado de una partición de intercambio según la cantidad de RAM en su sistema y si desea suficiente memoria para que su sistema hiberne. Hibernación es un proceso del sistema operativo en el cual se “congelan” todos los datos, servicios y configuraciones que estamos utilizando para poder apagar el equipo y volver a iniciarlo tal cual estaba. Las recomendaciones son especialmente importantes en sistemas con poca memoria (1 GB y menos). No asignar suficiente espacio de intercambio en estos sistemas puede causar problemas como inestabilidad o incluso hacer que el sistema instalado no pueda arrancar. Hay muchas equivocaciones al calcular el espacio de la partición, una de ellas es la siguiente formula; Tamaño de partición swap recomendado = 2 * RAM instalada Esta fórmula sugiere asignar al menos el doble de la cantidad de RAM física instalada en tu sistema como tamaño de la partición swap. Sin embargo, esta recomendación puede ser excesiva en sistemas modernos con una gran cantidad de RAM, ya que es poco común que toda la RAM se utilice al máximo. Otra de la fórmula que suele ser mal aplicada; Tamaño de partición swap recomendado = 1.5 * RAM instalada La fórmula que es otra regla general que algunas personas utilizan para calcular el tamaño recomendado de la partición de intercambio (swap). En lugar de asignar el doble de la memoria RAM, esta fórmula sugiere asignar 1.5 veces la cantidad de memoria física instalada en el sistema. 17 La fórmula se expresa de la siguiente manera: Por ejemplo, si tienes 8 GB de RAM instalada en tu sistema, según esta fórmula, el tamaño recomendado para la partición swap sería: Tamaño de la partición de intercambio recomendado = 8 GB * 1.5 = 12 GB De nuevo, al igual que con la fórmula anterior, esta es solo una regla general y puede ser más conservadora que lo necesario en sistemas modernos con grandes cantidades de RAM. Asignar una partición de intercambio demasiado grande puede ocupar espacio valioso en el disco, especialmente si tienes un SSD con capacidad limitada. Es importante evaluar tus necesidades específicas y el tipo de uso que darás al sistema para determinar el tamaño adecuado de la partición de intercambio. Siempre es recomendable asegurarse de tener suficiente espacio libre en el disco y tener en cuenta la cantidad total de RAM disponible antes de tomar una decisión final sobre el tamaño de la partición swap. Si en algún momento notas que el tamaño actual de la partición swap no es suficiente, siempre puedes ajustarlo o incluso utilizar un archivo de intercambio (swap) en lugar de una partición dedicada para mayor flexibilidad. 18 4.5. Estándar de jerarquía de archivos (FHS - File system Hierarchy Standard) El "Estándar de jerarquía de archivos" (FHS - Filesystem Hierarchy Standard) intenta definir unas bases, para que tanto los programas del sistema, como los usuarios y administradores, sepan dónde encontrar lo que buscan. La mayoría de las distribuciones de Linux, inclusive las que forman parte de Free Software Standards, no aplican de forma estricta y al 100% el estándar, aunque las diferencias son mínimas. Todos los archivos y directorios aparecen debajo del directorio raíz «/» (El equivalente en el mundo Unix al C:\ de Windows) aunque se encuentren en discos/dispositivos distintos. En Linux/Unix no existen letras de discos (C:, D:, etc), es una estructura jerárquica en forma de árbol invertido, donde el directorio principal (directorio raíz) es el directorio /, del que cuelga toda la estructura del sistema: Linux admite nombres de archivo largos y se puede utilizar cualquier carácter excepto /. De todas maneras, no es recomendable usar los siguientes caracteres, por tener significado especial en Linux: \^~!#?&()´"`;·$=¿¡@{}*+- A la hora de diferenciar un archivo de otro, Linux distingue mayúsculas y minúsculas, por lo que los archivos "texto1.txt" y "Texto1.txt" son archivos distintos 19 4.5.1. Los principales directorios 4.5.1.1. Raíz / root También conocido como directorio principal o directorio raíz del sistema de archivos, es el nivel superior en la estructura jerárquica de un sistema de archivos. En la mayoría de los sistemas operativos, incluidos Windows, Linux y macOS, el directorio raíz se representa mediante una barra diagonal (/) en el caso de Linux y macOS, y una letra de unidad (por ejemplo, C:) en el caso de Windows. El directorio raíz contiene todos los archivos y directorios del sistema, y es el punto de partida desde el cual se accede a los demás que permanecen dentro del sistema de archivos. Todos los demás directorios y archivos se encuentran dentro del directorio raíz o en subdirectorios de él. En sistemas basados en Unix (como Linux y macOS), el directorio raíz se denomina "/", y se utiliza como referencia absoluta para todas las rutas de archivo y directorio. Por ejemplo, "/home/usuario/archivo.txt" se refiere al archivo "archivo.txt" ubicado en el directorio "usuario" dentro del directorio "home", que a su vez se encuentra en el directorio raíz. En sistemas Windows, cada unidad de disco tiene su propio directorio raíz, como "C:" para el disco duro principal. Por lo tanto, "C:\Windows\System32" se refiere a la ubicación del directorio "System32" en el directorio raíz de la unidad "C:". 4.5.1.3. /boot Contiene los archivos necesarios para el proceso de arranque (boot) del sistema. Estos archivos incluyen el gestor de arranque (bootloader), el núcleo del sistema operativo (kernel) y, en algunos casos, archivos de configuración relacionados con el arranque del sistema. Cuando enciende su computadora, el proceso de arranque comienza y busca el cargador de arranque en el directorio "/boot". El bootloader es responsable de cargar el núcleo del sistema operativo en la memoria y pasar el control al sistema operativo para que pueda comenzar a funcionar. En sistemas Linux, el bootloader más usado es GRUB (GRand Unified Bootloader) o su versión más moderna, GRUB2. GRUB busca en el directorio "/boot" el archivo de configuración (grub.cfg) y los archivos del núcleo del sistema operativo (vmlinuz) necesarios para iniciar el sistema. En algunos sistemas, especialmente aquellos con arranque seguro (Secure Boot) o configuraciones complicadas de múltiples sistemas operativos (dual boot o multi 20 boot), se puede utilizar un directorio "/boot" separado para garantizar la integridad del proceso de arranque y facilitar la gestión del arranque. En conclusión, el directorio "/boot" es crucial para el proceso de arranque de un sistema Linux, ya que contiene los archivos necesarios para cargar el núcleo del sistema operativo y comenzar el funcionamiento del sistema. Mantener el contenido de este directorio seguro y actualizado es fundamental para un arranque confiable y exitoso del sistema operativo. 4.5.1.4. /usr El directorio /usr viene de «User System Resources» y contiene archivos y programas de uso común que son compartidos entre todos los usuarios del sistema. Es uno de los directorios más grandes del sistema y suele almacenar la mayoría de los programas, bibliotecas y documentación que no son esenciales para el funcionamiento básico del sistema. El directorio "/usr" tiene varias subcarpetas importantes: 1. /usr/bin: Contiene programas ejecutables (binarios) que están disponibles para todos los usuarios del sistema. Aquí se encuentran muchas aplicaciones y utilidades que los usuarios pueden utilizar en sus sesiones. 2. /usr/sbin: Similar a "/usr/bin", pero contiene programas ejecutables que generalmente están destinados a ser utilizados por el superusuario (root) para tareas de administración del sistema. 3. /usr/lib: Almacena bibliotecas compartidas (shared library) utilizadas por programas en "/usr/bin" y "/usr/sbin". 4. /usr/include: Contiene archivos de cabecera que son necesarios para compilar programas que utilizan las bibliotecas en "/usr/lib". 5. /usr/share: Aquí se encuentran datos compartidos que se utilizan por diferentes aplicaciones, como imágenes, iconos, archivos de configuración y otras piezas de datos no esenciales para el funcionamiento del sistema. 6. /usr/local: Este directorio se utiliza para instalar software y programas adicionales que no forman parte de la distribución del sistema operativo. Es un lugar común para que los administradores instalen software de terceros. El directorio "/usr" se separa de otros directorios, como "/bin" y "/sbin", para permitir una mejor organización y mantenimiento del sistema. Al mantener los programas y bibliotecas no esenciales en "/usr", es posible tener sistemas más ligeros y flexibles. Además, separar "/usr" del resto del sistema permite que el directorio raíz ("/") se mantenga más pequeño y, en algunos casos, incluso montado en modo de lectura en solitario para aumentar la seguridad del sistema. En conclusión, el directorio "/usr" es una parte esencial del sistema operativo y almacena programas y recursos compartidos que benefician a todos los usuarios del sistema. Es un componente clave en la organización del sistema y facilita la instalación y administración de software en sistemas Unix y Linux. 21 4.5.1.5. /var La abreviatura "var" proviene de "variable" y es donde se almacenan datos variables o cambiantes del sistema, que pueden crecer o disminuir con el tiempo. El directorio "/var" contiene una variedad de datos que pueden cambiar durante la ejecución del sistema, incluyendo: 1. Registros (logs): Archivos de registro generados por diferentes servicios y aplicaciones del sistema, como el registro del sistema (syslog), registros de aplicaciones, registros de errores, etc. 2. Spool: Directorios spool utilizados para almacenar datos que esperan ser procesados, como colas de impresión (print spool) o correos electrónicos salientes (mail spool). 3. Base de datos: Algunas aplicaciones almacenan bases de datos variables en este directorio. 4. Temporales: Archivos temporales creados por aplicaciones para almacenar datos durante su funcionamiento. 5. Cache: Directorios de caché utilizados para almacenar datos temporales para acelerar el acceso a aplicaciones y servicios. 6. Archivos de estado: Algunos programas y servicios crean archivos de estado en este directorio para almacenar información sobre su funcionamiento actual. El directorio "/var" es esencial para el funcionamiento adecuado del sistema y la mayoría de sus subdirectorios deben tener permisos adecuados para que las aplicaciones y servicios puedan acceder a ellos y escribir en ellos según sea necesario. Es importante tener en cuenta que "/var" contiene datos variables y cambiantes, por lo que es esencial realizar copias de seguridad regulares de los datos críticos almacenados en este directorio para evitar la pérdida de información en caso de fallos del sistema o errores de aplicaciones. 22 4.5.1.6. /home Directorio por defecto donde se almacenan los perfiles de los usuarios. Cuando se crea un nuevo usuario en el sistema se le asigna un directorio HOME, /home/, sobre el cual tiene todos los permisos de lectura y escritura Es el directorio de los usuarios estándar, y por lo tanto, el destinado a almacenar todos los archivos del usuario, como documentos, fotos, vídeos, música, plantillas, etc. También incluye archivos temporales de aplicaciones ejecutadas en modo usuario, que sirven para guardar las configuraciones de programas, etc. Dentro /home hay los directorios personales de todos los usuarios, nombrados según el nombre de usuario utilizado. Así, por ejemplo, si en un sistema pongamos que hay dos usuarios denominados User1 y User2, la estructura será así: /home/User1 /home/User2 Cada directorio de usuario contiene asimismo diferentes carpetas para ayudarlo a clasificar la información. Estas generalmente son: /Documentos, /Imágenes, /Música, /Plantillas y /Vídeos / así como otros archivos y carpetas ocultas, que son los encargados de guardar la información de configuraciones de las aplicaciones del usuario. Para visualizar los ficheros ocultos dentro del directorio individual de cada usuario, puedes hacerlo rápidamente mediante la combinación de comandos CTRL + F. Por cierto, y muy importante, todas los archivos y carpetas ocultas en Linux empiezan por un punto, seguido del nombre de la carpeta. En muchas distribuciones es una práctica recomendada el hecho de ubicar el directorio /home es una partición separada del resto, por tal de facilitar que, en caso de reinstalar el sistema operativo, puedas mantener intacta la partición de la /home, y de este modo mantener todos los archivos personales. 23 4.5.1.7. /opt" Es un directorio para almacenar software adicional y aplicaciones de terceros. La abreviatura "opt" proviene de "opcional", lo que indica que el contenido de este directorio no es esencial para el funcionamiento básico del sistema, sino que contiene software opcional que se instala de manera independiente al sistema operativo principal. En el directorio "/opt", los desarrolladores y proveedores de software pueden instalar sus aplicaciones y paquetes sin interferir con el sistema operativo o las aplicaciones esenciales del sistema. Esto hace que "/opt" sea un lugar común para instalar programas de terceros que no forman parte de la distribución del sistema operativo. Algunos ejemplos de uso de "/opt" incluyen: 1. Software comercial: Algunos paquetes de software comercial o de pago pueden ser instalados en "/opt" para mantenerlos separados de otras aplicaciones del sistema. 2. Aplicaciones personalizadas: Si un usuario o un equipo de desarrollo crea una aplicación personalizada, puede optar por instalarla en "/opt" para mantenerla aislada del sistema principal. 3. Versiones alternativas de software: Algunos usuarios pueden instalar versiones alternativas de software en "/opt" para experimentar con nuevas versiones sin afectar las versiones principales del sistema. 4. Programas que no siguen la estructura estándar del sistema de archivos: Algunas aplicaciones de terceros pueden tener una estructura de directorios no convencional y ser instalados en "/opt" para evitar conflictos con la estructura del sistema. Es importante destacar que el directorio "/opt" es un lugar de instalación opcional y que los programas instalados aquí no están automáticamente disponibles en el camino de búsqueda del sistema. Por lo tanto, es posible que debas agregar manualmente el directorio "/opt" a la variable de entorno "PATH" para poder ejecutar los programas instalados en este directorio desde cualquier ubicación en la línea de comandos. Particionar "/opt" puede ser beneficioso en ciertos escenarios, como cuando desee mantener una separación clara entre el sistema operativo y las aplicaciones de terceros. Sin embargo, también puede aumentar la complejidad y requerir una planificación cuidadosa del espacio. Si no tiene motivos específicos para hacer una partición separada para "/opt", es posible que sea más práctico mantenerlo dentro de la partición raíz ("/") junto con el sistema operativo y gestionar las aplicaciones de terceros de manera adecuada mediante otras técnicas como el uso de herramientas de gestión de paquetes y directorios adecuados para la instalación de software. En resumen, "/opt" es un directorio destinado a almacenar software opcional y aplicaciones de terceros en sistemas Unix y Linux. Es una ubicación conveniente para mantener el software separado del sistema operativo principal y permite a los usuarios e instaladores de software tener más control sobre sus aplicaciones instaladas. 24 4.5.1.8. /tmp Se utiliza para almacenar archivos temporales. Estos archivos temporales son creados por aplicaciones y servicios para almacenar datos que se necesitan solo temporalmente durante la ejecución del sistema. Los archivos en el directorio "/tmp" no están destinados a ser persistentes y, por lo general, se eliminan automáticamente cuando el sistema se reinicia. Esto significa que cualquier archivo almacenado en "/tmp" no se conservará entre reinicios, lo que lo convierte en un lugar ideal para almacenar datos temporales que no necesitan persistencia a largo. Algunos ejemplos de uso del directorio "/tmp" incluyen: 1. Archivos de caché temporal: Algunas aplicaciones almacenan datos temporales en "/tmp" para mejorar el rendimiento y reducir la necesidad de repetir determinadas operaciones. 2. Colas de tareas: Algunos servicios pueden utilizar "/tmp" para almacenar tareas o trabajos pendientes de procesar. 3. Archivos temporales de procesos: Los programas pueden crear archivos temporales en "/tmp" para almacenar datos que solo son necesarios durante la ejecución del programa y que no necesitan ser conservados después. Es importante tener en cuenta que, debido a que los archivos en "/tmp" no están destinados a ser persistentes, es común que el sistema elimine automáticamente los archivos antiguos y no se utilice en este directorio para evitar que ocupe espacio innecesariamente. Dado que "/tmp" es un directorio que puede ser utilizado por aplicaciones y servicios para almacenar datos temporales, los administradores del sistema deben asegurarse de que el directorio tenga los permisos adecuados para que todas las aplicaciones puedan acceder y escribir en él según sea necesario. Además, debido a su naturaleza temporal, es importante no almacenar datos críticos o permanentes en este directorio, ya que podrían perderse cuando el sistema se reinicie. No es necesario hacer una partición separada para "/tmp", y en la mayoría de los casos, no se recomienda hacerlo. La razón principal es que el directorio "/tmp" está destinado a almacenar archivos temporales que no necesitan persistencia entre reinicios del sistema. Por lo tanto, no es crítico proteger los datos almacenados en "/tmp" en caso de fallas del sistema. 25 4.5.1.9. /proc y /sys Los directorios "/proc" y "/sys" son directorios que proporcionan información en tiempo real sobre el estado del sistema y la configuración del kernel. /proc: El directorio "/proc" es un sistema de archivos virtual que proporciona una interfaz para acceder a información en tiempo real sobre los procesos y recursos del sistema. Cada proceso en ejecución tiene su propio directorio dentro de "/proc", nombrado por su número de identificación de proceso (PID). Dentro de estos directorios, se encuentran archivos que garantizan detalles sobre el proceso, como uso de CPU, uso de memoria, descriptores de archivos abiertos y más. Además de la información de los procesos, "/proc" contiene otros archivos que ofrecen datos sobre el sistema, como información sobre la memoria, configuración del núcleo y estadísticas de red. Es importante destacar que la mayoría de los archivos en "/proc" son de lectura en solitario, ya que se proporciona información en tiempo real que se genera por el kernel y no se puede modificar directamente. /sys: El directorio "/sys" es otro sistema de archivos virtual que ofrece una vista jerárquica de la configuración y estado del kernel del sistema. Especifica la interfaz de dispositivo del kernel (sysfs) y proporciona información sobre dispositivos, controladores y otros aspectos del kernel. En "/sys", cada dispositivo y controlador tiene su propio directorio y archivos que reflejan las propiedades y configuraciones del dispositivo. Los usuarios y las aplicaciones pueden acceder a esta información para obtener detalles sobre el hardware, ajustar la configuración del kernel o, en algunos casos, cambiar ciertas opciones de dispositivos. Ambos directorios, "/proc" y "/sys", son vitales para la interacción y monitorización del sistema operativo y el kernel en tiempo real. Proporcionan una interfaz sencilla y estandarizada para acceder a información y ajustar configuraciones importantes del sistema, y son herramientas poderosas para administrar y detectar problemas en sistemas Linux. 4.5.1.10. /bin El directorio "bin" es una abreviatura de "binary" (binario) y es uno de los directorios más importantes en sistemas operativos basados en Unix y Linux. Este directorio contiene archivos ejecutables (binarios) que son esenciales para el funcionamiento del sistema y para que los usuarios y programas 26 puedan interactuar con el sistema de manera eficiente. Los archivos binarios almacenados en el directorio "/bin" son comandos y utilidades básicos del sistema que se utilizan para realizar diversas tareas, como manipulación de archivos, gestión de procesos y configuración del sistema. Estos archivos binarios se pueden ejecutar desde la línea de comandos (terminal) y forman parte de la interfaz de línea de comandos (CLI) de Linux. Algunos ejemplos comunes de archivos binarios en el directorio "/bin" incluyen: ls: Comando para listar archivos y directorios. cp: Comando para copiar archivos y directorios. mv: Comando para mover o renombrar archivos y directorios. rm: Comando para eliminar archivos y directorios. mkdir: Comando para crear directorios. cat: Comando para concatenar y mostrar el contenido de archivos. chmod: Comando para cambiar los permisos de archivos y directorios. Estos son solo algunos ejemplos de los muchos archivos binarios esenciales que se encuentran en el directorio "/bin". Los archivos en este directorio son accesibles para todos los usuarios del sistema y están disponibles en cualquier momento para realizar tareas básicas en el sistema. Es importante tener en cuenta que algunos sistemas pueden tener un directorio adicional llamado "/sbin", que es similar a "/bin", pero contiene comandos y utilidades esenciales que están destinados a ser ejecutados por el superusuario (root) para tareas de administración del sistema 4.5.1.11. /run Un El directorio "run" en sistemas Unix y Linux archivos temporales y datos específicos de ejecución para aplicaciones en tiempo de ejecución. A diferencia de otros directorios, como /tmp, que se utilizan para archivos temporales que persisten a través de reinicios, el directorio /run almacena archivos temporales y datos que se necesitan solo durante el tiempo de ejecución actual del sistema y se eliminan al reiniciar. Este directorio es especialmente importante en sistemas que utilizan el sistema de inicio systemd, ya que systemd utiliza /run para almacenar información sobre servicios y sockets en ejecución. Además, otros programas y servicios pueden utilizar /run para almacenar archivos temporales relacionados con su funcionamiento. Es común encontrar en el directorio /run subdirectorios que contienen archivos de PID (Process ID) para identificar qué procesos están en ejecución, archivos de socket, archivos de bloqueo (lock files) y otros archivos específicos temporales del sistema. 27 4.5.1.12. /dev El directorio "/dev" es un directorio especial en sistemas operativos basados en Unix y Linux que contiene archivos especiales que representan dispositivos del sistema, como discos duros, impresoras, tarjetas de red, dispositivos USB, entre otros. En Linux, todo se considera un archivo, incluso los dispositivos de hardware. El directorio "/dev" se utiliza para presentar estos dispositivos de hardware al sistema operativo ya las aplicaciones como si tuviera archivos normales. Estos archivos especiales, también conocidos como "nodos de dispositivo", permiten a los programas interactuar con el hardware del sistema a través de operaciones de lectura y escritura, al igual que lo harían con archivos regulares. Por ejemplo, si conecta una memoria USB a su computadora, el sistema creará automáticamente un archivo especial en "/dev" que representa esa memoria USB, y el sistema operativo y las aplicaciones podrán acceder a ella a través de ese archivo especial. Algunos ejemplos comunes de dispositivos representados como archivos en "/dev" incluyen: /dev/sda: Representa el primer disco duro del sistema. /dev/ttyS0: Representa el primer puerto serie (COM1 en sistemas Windows). /dev/usbX: Representa un dispositivo USB conectado (X es un número que puede variar según el dispositivo). /dev/null: Un dispositivo especial que descarta cualquier dato escrito en él. /dev/random y /dev/urandom: Dispositivos que generan números aleatorios. El directorio "/dev" es una parte esencial del sistema operativo, ya que permite la interacción con el hardware del sistema a través de una interfaz de archivo estandarizada. Sin este directorio, las aplicaciones tendrán que comunicarse con los dispositivos de hardware de manera mucho más compleja y específica para cada dispositivo. 28 4.5.1.13. /etc Se considera el espacio donde albergan todos los archivos de configuración del sistema. Su principal propósito es almacenar configuraciones globales que afectan el comportamiento del sistema y sus aplicaciones. /etc actúa como un repositorio central para todos los archivos de configuración esenciales del sistema, permitiendo una fácil gestión y organización de las configuraciones. A diferencia de las configuraciones específicas de usuario que se encuentran en los directorios home de los usuarios (como ~/.config), las configuraciones en /etc afectan a todos los usuarios y al sistema en general. Tipos de Archivos en /etc Archivos de Configuración del Sistema: Archivos que definen cómo se comporta el sistema a nivel básico, incluyendo información sobre usuarios, grupos y contraseñas. Ejemplos: /etc/passwd, /etc/shadow. Configuraciones de Red: Archivos que configuran aspectos de la red, como la resolución de nombres de dominio y la configuración de interfaces de red. Ejemplos: /etc/hosts, /etc/resolv.conf. Configuraciones de Servicios y Demonios: Archivos que configuran servicios del sistema y demonios (programas que se ejecutan en segundo plano). Ejemplos: /etc/ssh/sshd_config para SSH, /etc/nginx/nginx.conf para Nginx. Configuraciones de Seguridad: Archivos que gestionan aspectos de la seguridad del sistema, como permisos y políticas de seguridad. Ejemplos: /etc/sudoers, /etc/selinux/config. Scripts y Configuraciones de Inicio: Archivos y scripts que se ejecutan durante el proceso de arranque del sistema. Ejemplos: /etc/rc.local, /etc/fstab. Es un directorio que facilita la gestión y mantenimiento ya que la centralización de configuraciones en /etc simplifica la tarea de los administradores de sistemas para mantener y ajustar la configuración del sistema. Además del control de acceso a los archivos en /etc es crucial para la seguridad del sistema. Solo los usuarios con privilegios administrativos (como root) pueden modificar estos archivos, asegurando que solo personas autorizadas puedan hacer cambios críticos. Su tamaño relativamente pequeño típicamente no ocupa una gran cantidad de espacio en disco en comparación con otros directorios como /usr, /var o /home. Esto se debe a que los archivos de configuración son generalmente pequeños, consistiendo en texto plano. En un sistema básico, /etc puede ocupar desde unos pocos megabytes hasta algunas decenas de megabytes. En sistemas más complejos o con muchas configuraciones personalizadas y servicios adicionales, podría ocupar más espacio, aunque es raro que supere los cientos de megabytes. Para determinar el espacio exacto que ocupa el directorio /etc en tu sistema, puedes usar el siguiente comando en la terminal: du -sh /etc 50M /etc - Esto indicaría que el directorio /etc ocupa 50 megabytes en disco. 29 4.5.2. Estáticos/dinámicos y compartibles/no compartibles 4.5.2.1. El contenido estático: Contiene binarios, bibliotecas, documentación y otros archivos que no cambian sin intervención del administrador(root). Pueden estar en dispositivos de solo lectura (read-only) y no necesitan que se hagan copias de seguridad tan a menudo como con archivos dinámicos /bin, /sbin, /opt, /boot, /usr/bin 4.5.2.2. El contenido dinámico: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos sólo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados, como dijimos en otra ocasión, en una partición aparte en el mismo disco, como, por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. /home En red existe una buena cantidad de información que se puede compartir entre diferentes máquinas para ahorrar espacio y facilitar la tarea de administración. Ciertos archivos contienen información específica a una sola máquina, por tanto, estos sistemas de archivos no pueden ser compartidos (sin tomar medidas especiales). 4.5.2.3. La información compartible Es aquella que puede ser compartida entre varias máquinas diferentes, ósea, contiene archivos que se pueden encontrar en una computadora y utilizarse en otro. /usr, /bin, /opt 4.5.2.4. La información no compartible Es aquella que debe ser local a una máquina particular ósea que contiene archivos que no son compartibles. Por ejemplo. Los directorios hogar de los usuarios son compartibles, pero los archivos de bloqueo de dispositivo (lock files) son no compartibles. /etc, /boot, /var/run, /var/lock 30 4.6. PARTICIONES DE UN DISCO RIGIDO Las particiones, por decirlo de alguna manera son divisiones de los discos duros, es como si a un disco duro le hiciéramos varios cortes, y cada uno de los trozos que salieran se comportan como discos diferentes. Aunque seguimos teniendo un solo disco duro cada una de estas particiones funcionara de manera independiente, y por ejemplo cada una de ellas podrá tener su propio sistema operativo y cada una de ellas podría tener un sistema de archivos diferente. Tipos de tablas de particiones: Tablas de particiones Master boot record Tabla de partición GUID (MBR) (GPT) ROM - Firmware BIOS UEFI Cuatro primarias Particiones Primarias 128 particiones – Windows Tres primarias y una extendida 254 particiones - Linux Particiones Extendidas Una o ninguna No existen Particiones Lógicas Dentro de la extendida – No existen las que el usuario desea Límite máximo de cada partición. 2 terabytes 18 exabytes Arquitectura soportada 32 Bits y 64 Bits 64 Bits Hay tres tipos diferentes de particiones: 4.6.1. Las Particiones Primarias: Estas son las particiones arrancables, es decir desde las que, al encender la computadora arrancaría el sistema operativo que hubiera en esa partición primaria, solo puede haber una partición primaria activa a la vez, (activa significa que será visible para esa computadora, por lo que el resto de particiones primarias serán invisibles, aunque una vez iniciado el sistema operativo mediante software se puedan hacer visibles solo seguirá habiendo una como activa). Solo puede haber 4 particiones primarias en el caso del MBR y 128 en el caso del GPT por disco duro. Estas particiones no se subdividen. Dichas particiones comienzan en el principio del disco y llegan hasta el final del mismo o hasta donde lo defina el usuario. En el caso de que la partición primaria no se extienda hasta el final del disco, el espacio que resta se lo debería gestionar como una Partición Extendida. 31 4.6.2. Las Particiones Extendidas Y Lógicas En la siguiente imagen vemos un disco rígido de 128GB, particionado con MBR. Solo se podrá generar cuatro particiones primarias. Disco Rigido de 128 GB Espacio 40 GB 40 GB 40 GB 40 GB 8 GB MBR Sector Particion Particion Particion Particion Espacio sin de Primaria 1 Primaria 2 Primaria 3 Primaria 4 particionar Arranque (Activa) En el caso de necesitar más particiones se transforma la partición 4, de primaria a extendida. Disco Rigido de 128 GB Espacio 40 GB 40 GB 40 GB 40 GB 8GB Particion extendida MBR Sector Particion Particion Particion Particion Particion Particion Particion Espacio sin de Primaria 1 Primaria 2 Primaria 3 Logica 1 Logica 1 Logica 1 Logica 1 particionar Arranque (Activa) 10 GB 10 GB 10 GB 10 GB Las particiones extendidas solo se encuentran en MBR y comienzan donde termina la partición primaria y se extiende hasta el final del disco, o hasta donde lo defina el usuario. Solo puede haber una por disco duro, así que en total se podría tener tres particiones primarias más una partición extendida. La función de la partición extendida es la de guardar dentro de ella las unidades lógicas, también conocidas como particiones lógicas, y de éstas si podremos tener todas las que queramos, la única diferencia de una unidad o partición lógica con una partición primaria es que las lógicas no pueden ser arrancables. Las unidades lógicas sirven para indicarle a la PC que la unidad D: está en la misma parte física que el C: es decir, que no es otro disco físico aparte. Aunque los sistemas operativos actuales se pueden instalar en una unidad o partición lógica, y arrancarla desde gestores de arranque. Como se aclaró anteriormente, en GPT no existen las particiones extendidas y lógicas, solo las primarias, con un límite en Windows de 128, y en Linux 254 particiones, teniendo como contra la imposibilidad de instalar sistemas operativos de 32bits. Disco Rigido de 128 GB Espacio 15 GB 15 GB 15 GB 15 GB 15 GB 15 GB 15 GB 15 GB 8 GB MBR Sector Particion Particion Particion Particion Particion Particion Particion Particion Espacio sin de Primaria 1 Primaria 2 Primaria 3 Primaria 4 Primaria 5 Primaria 6 Primaria 7 Primaria 8 particionar Arranque (Activa) 32 4.7. Particionado básico Windows y Linux En Windows a diferencia de Linux se identifican las particiones o unidades de almacenamiento con “letras”. (C:\, A:\). En el ejemplo de la imagen observamos un sistema de archivos Windows con su memoria secundaria (HDD), dividida en dos particiones denominadas; unidades “C:” y “D”. Dentro de cada letra vemos una estructura de directorios que empiezan con la raíz / , y en consiguiente los directorios y subdirectorios. C:\Users\w_sal\Desktop\Guemes En el caso de Linux las particiones están montadas en directorios, por ejemplo; /home, /boot, /usr, etc. A esto lo denominados puntos de montaje; 33 En la captura de pantalla podemos observar que en el momento de realizar una instalación del SO Ubuntu, nos da la opción de montar diferentes particiones en directorios predeterminados. 4.7.1. instalación básica de Ubuntu en un disco duro nuevo sin particionar El dispositivo denominado como “/dev/sda” se corresponde al disco duro. Si hubiese más discos conectados, su denominación seguiría el orden «/dev/sdb», «/dev/sdc», etc. El primer paso será crear una nueva tabla de particiones. Una vez creada la tabla de particiones, se mostrará el espacio libre en disco. Para añadir una partición hay que pulsar el botón con el símbolo “+” o dar doble clic sobre la selección de “espacio libre”. 34 Solo es imprescindible crear una partición, pero lo recomendable son tres: una para el sistema operativo, otra para datos y una tercera como memoria virtual. El tamaño se muestra en MB (megabytes), por lo que habrá que dividir el total entre 1.000 para tener una estimación de los GB (gigabytes) disponibles. La primera partición se designaría para el sistema operativo, y éste no necesita de gran espacio. Una cifra conservadora pueden ser 20 GB, alrededor de 20.000 MB. Para terminar, hay que asignar el punto de montaje, que en este caso sería el símbolo “/”, equivalente a la partición raíz del sistema. Para evitar cálculos innecesarios, la segunda partición a crear sería la relativa al área de intercambio o memoria swap, a seleccionar en el campo «Utilizar como». 35 En equipos con >2 GB y >8 GB de Memoria RAM se recomienda dejar como partición de área de intercambio igual a la capacidad de RAM. Ver tabla de direccionamiento d Para la partición de datos se puede utilizar todo el espacio en disco restante. «Punto de montaje» señalado como “/home”, donde se guardarán todos los datos personales del usuario. La razón para separar sistema y datos es que, ante un eventual fallo del sistema, la reinstalación no provocaría la pérdida de archivos y/o configuraciones personales. Una vez particionado el disco comenzará la instalación del sistema y no habrá vuelta atrás. Hasta este punto todos los cambios son reversibles. 36 4.8. Firmware Es un programa que es grabado en una memoria ROM y establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo. Se considera parte del hardware por estar integrado en la electrónica del dispositivo, pero también es software, pues proporciona la lógica y está programado por algún tipo de lenguaje de programación. El firmware recibe órdenes externas y responde operando el dispositivo. Se encuentra el firmware en monitores, unidades de disco, impresoras, microprocesadores, etc. La BIOS y el UEFI son programas firmware. 37 4.8.1. BIOS (basic input/output system) En español «sistema básico de entrada y salida» es un tipo de firmware que localiza y prepara los componentes electrónicos o periféricos de una PC, para comunicarlos con algún sistema operativo que la gobernará. Para ello la máquina cargará ese sencillo programa en la memoria RAM central del aparato. El programa está instalado en un circuito integrado de la placa base y realizará el control POST de la misma en el tiempo de arranque o encendido, proporcionando funcionalidades básicas: chequeo de la memoria principal y secundaria, comunicación con el usuario vía monitor o teclado y enlace mediante los procesos de arranque o booting con el núcleo del sistema operativo que gobernará el sistema. Por lo general el término se usa de forma ambivalente para referirse al software BIOS o a la memoria ROM donde residía históricamente en los sistemas de cómputo basados en la arquitectura x86. 4.8.2. UEFI (Unified Extensible Firmware Interface) La Interfaz de Firmware Extensible Unificada es el firmware sucesor, escrito en C, del BIOS. A mediados de la década (2010) pasada las empresas tecnológicas se dieron cuenta de que el BIOS estaba quedándose obsoleto, y 140 de ellas se unieron en la fundación UEFI para renovarla y reemplazarla por un sistema más moderno. 38 En esencia, todo lo que hemos dicho antes que hace el BIOS lo hace también la UEFI. Pero también tiene otras funciones adicionales y mejoras sustanciales, como; La diferencia más notable para el usuario medio entre ambos firmwares está en el aspecto. El BIOS tiene un diseño muy MS-DOS, y sólo te puedes mover por él mediante el teclado. La UEFI en cambio tiene una interfaz muchísimo más moderna, permite incluir animaciones y sonidos, y te permite utilizar el ratón para interactuar con ella. La UEFI puede conectarse a Internet para actualizarse. Debajo del capó, el código de UEFI se ejecuta en 32 o 64 bits, mientras que la BIOS suele hacerlo en 16 bits. El arranque del sistema es más rápido con UEFI de lo que lo era con BIOS. No se puede instalar un sistema desde un Pendrive/DVD/CD booteable en modo UEFI. Porque contiene Secure Boot su función de es impedir la ejecución de cualquier software no firmado y certificado por el fabricante. Ósea, evita el inicio de sistemas operativos que no estén autenticados para protegerte de los bootkits, un malware que se ejecutan al iniciar Windows. En UEFI únicamente podemos instalar los sistemas operativos de 64 bits. Los Windows de 32 nunca se instalarán en modo UEFI. En el caso de instalar Windows XP de 32bits es necesario tener activado en el UEFI; Legacy Mode, y deshabilitado el Secure Boot. Requiere de una partición UEFI de boot. Para ello, el disco debe estar vacío. UEFI permite usar discos duros de hasta 9.4 Zetabytes (cuando existan), es decir, 9.4 mil millones de terabytes. En cambio, en el BIOS de máquinas hogareñas tan solo de 3 terabytes. Y, por último, el UEFI se puede cargar en cualquier recurso de memoria no volátil, lo que permite que sea independiente de cualquier sistema operativo. También se le pueden añadir extensiones de terceros, como herramientas de overclocking o software de diagnóstico. 39 4.9. MBR (BIOS) – GPT (UEFI) Los 3 tipos de tablas particionado son: GPT (GUID Partition Table), para equipos modernos, MBR (Master Boot Record), utilizada sobre todo en equipos antiguos; APM (Apple Partition Map), la tabla de particiones de los sistemas operativos Apple, como macOS. 4.9.1. Registro de arranque (MASTER BOOT RECORD o bien MBR) Se suele llamar registro de arranque principal o registro de arranque maestro al primer sector de un disco duro. A menudo se llama sector de arranque del disco a los primero 512 bytes de un disco. El MBR utiliza BIOS es pequeño e inflexible. Las direcciones físicas de la unidad del disco duro se le llama CHS (Cilindro, Cabeza, Sector). El tamaño de bloque del disco duro usando MBR es de 512 bytes limitando las particiones hasta un tamaño maximo de 2 TB. Contiene las características relacionadas con el disco, como son: Versión del sistema operativo con el que se formateó el disco. Cantidad de caras. Cantidad de bytes por clúster. Cantidad de clúster en el disco. 40 Este registro se crea durante el formateo. Al encender la PC, un programa de la ROM-BIOS busca el registro de arranque en las unidades de disco del sistema para poder iniciar su funcionamiento. También permite saber al equipo cuántas particiones hay, donde se ubican y cuál es la que permite arrancar el SO. Cuando arranca la computadora se dirige al MBR que identifica la partición activa y se inicia el proceso de arranque. Dicho de otra forma, el MBR apunta a la partición activa y la máquina comienza a cargar el sistema operativo almacenado en esa partición activa o un menú que permite elegir. Algunos virus atacan a la información guardada en el MBR, de forma que no es posible arrancar la computadora. Si tiene discos de restauración del sistema se puede recuperar esa información del sector de arranque del disco duro o MBR. 4.9.2. La tabla de particiones GUID (GPT GUID Partition Table) Se introdujo como parte del Firmware Extensible Unificado Interface (UEFI). GPT proporciona un mecanismo más flexible para particionar los discos de arranque que el viejo Master Boot Record (MBR) que era común en las PC que contienen BIOS. GPT (GUID Partition Table) es superior al permitir crear hasta 128 particiones primarias en un solo disco (duro o SSD) en Windows y hasta 256 particiones primarias en Linux, lo que va más que sobrado para cualquier tipo de uso actual y futuro. Permite discos duros de 2TB o más de capacidad. A pesar de que los discos duros pueden llegar a ser cuellos de botella bastante molestos en las computadoras actuales, a día de hoy siguen siendo, al menos de cara a los usuarios finales, una mejor opción para disponer de mucha capacidad, sobre todo porque son más baratos. En la capacidad está otra de las ventajas de GPT sobre MBR, ya que el segundo solo tiene disponibles 32 bits para representar los sectores lógicos. Esto quiere decir que en un principio solo es capaz de soportar discos de hasta 2TB de almacenamiento, mientras que GPT cuenta aquí con soporte de 64 bits para abarcar discos de hasta 9,4 zettabytes (unos 9,4 billones de gigabytes), muy sobrado para cualquier contexto actual. MBR almacena todos los datos de las particiones y el arranque en un mismo lugar. En caso de que dicho lugar acabe corrupto, la situación derivaría en serios problemas y grandes disgustos, cosa que el usuario detectará al ver que el sistema operativo no se inicia. A pesar de que la recuperación de MBR es posible, no es seguro que sea exitosa. GPT almacena múltiples copias del arranque en varias particiones, al principio y al final de los encabezados de la tabla, por lo que si una partición se corrompe puede apoyarse en otra para recuperarse. Además, cuenta con un código de detección de errores que evalúa la tabla de particiones en el arranque. En caso de detectar errores, GPT intentará repararse a sí mismo. 41 Esquema M.B.R. Esquema G.P. T 4.10. Gestor de arranque Cuando en un computador se dispone de uno o más sistemas operativos, instalados en el disco duro o SDD, el usuario debe tener opción a seleccionar, en el momento del arranque, con cuál de ellos quiere iniciar sesión. Estos programas pueden leer automáticamente las particiones del computador r para detectar y configurar los sistemas instalados, permiten crear nuestras propias entradas (útil en el caso de Linux, por ejemplo, para cargar el sistema con parámetros o un kernel específico) y pueden contar con medidas de seguridad adicionales, como, por ejemplo, protección mediante contraseña. 42 Los principales sistemas operativos cuentan con sus propios gestores de arranque. Y, además, nosotros mismos podemos instalar otras alternativas manualmente para hacer uso del arranque dual, o dual boot, en nuestro computador. 4.10.1. Gestor de arranque de Windows Cuando instalamos Windows, durante el proceso de instalación se crean una serie de particiones con ficheros críticos del sistema operativo. Una de estas particiones creadas contiene las opciones de recuperación del sistema y toda la información del arranque. También se encuentra en ella el gestor de arranque de Windows. Si solo tenemos un sistema operativo instalado en la computadora, este gestor de arranque no nos aparecerá. Sin embargo, en el momento que el propio asistente detecta otro sistema cualquiera, ya sea Windows o Linux, añadirá una entrada al gestor, y este nos aparecerá cuando vayamos a arrancar el PC. 4.10.1.1. Cómo poner en marcha el gestor de arranque de Windows Este gestor de arranque se instala automáticamente junto al sistema operativo, por lo que generalmente no tenemos que hacer nada. La mejor forma de dejarlo a punto es instalar los sistemas operativos, de más viejo (en caso de instalar Windows 7 en una partición) al más nuevo, dejando Linux en el medio e instalando Windows 10 en último lugar. Además, desde la Configuración Avanzada > Inicio y recuperación podremos configurar el comportamiento de este gestor de arranque, como el tiempo de espera o el sistema operativo predeterminado. 4.10.1.2. Editar fácilmente el boot de Windows Y si queremos una forma más rápida y sencilla de editar el BCD de Windows, el programa EasyBCD nos permite configurar el gestor de arranque de Windows, añadir o quitar sistemas operativos y mejorarlo para poder usarlo más cómodamente. 43 4.10.2. Gestores de arranque de Linux Linux, igual que Windows, tiene también su propio gestor de arranque. Según la distribución que elijamos, se instalará en el punto de montaje /boot un gestor que será el encargado de permitirnos arrancar nuestro sistema operativo. Los dos gestores de arranque más utilizados en las distros son GRUB y LILO. Mientras que el gestor de arranque de Windows no termina de llevarse del todo bien con las particiones Linux, y mucho menos si montamos un hackintosh, con estas alternativas vamos a poder tener un gestor de arranque mucho más compatible, completo y personalizable. 4.11. DISTROS Una distribución o distro de Linux no es más que una versión personalizada del sistema operativo original, el kernel o núcleo de Linux. ¿Sabías que existen más de 600 distribuciones Linux? Esto se debe al carácter abierto, la condición de código libre de Linux, que cualquiera puede ampliar y modificar. Aunque comúnmente es utilizado como nombre para todo el sistema operativo, Linux es solo el nombre del Kernel. Es una pieza de software que maneja las interacciones entre el hardware y las aplicaciones del usuario final. Por otro lado, hablar de una Distribución de Linux, hace referencia a un sistema operativo completo, construido sobre el núcleo de Linux. Generalmente incluye un asistente de instalación y muchas aplicaciones, preinstaladas o empaquetadas para una instalación sencilla. Las distros se distinguen entre las fáciles de usar, pero menos configurables y las difíciles de usar, pero más personalizables. Sólo vamos a mostrar algunas: 44 Ubuntu es fácil de instalar, hasta se puede instalar como programa de Windows, y tiene un método para instalar programas llamado.deb (que inventó su predecesora «Debian«). Su facilidad la ha hecho una de las distros más populares. Por otro lado, tenemos a Gentoo, una distro difícil de instalar y de manejar, muchos pueden intentar instalarla varias veces sin lograrlo, por la cantidad de «perillas» que hay que mover, pero según sus usuarios, una vez lista, es una distribución muy veloz y hecha a la medida del computador que estás usando. Quizás una analogía imperfecta de las distros pudiera ser decir que XP sería una distro de Windows, 98 otra, Vista otra y así, pero las distros de Linux a diferencia de las versiones de Windows son paralelas o contemporáneas, no son una evolución en el tiempo sino más bien métodos distintos de trabajar con el sistema. 4.12. Interfaces 4.12.1. Interfaz de línea de comandos o CLI (command line interface) Es un programa que permite a los usuarios escribir comandos de texto instruyendo a la computadora para que realice tareas específicas. 4.12.1.1. Windows Shell El shell predeterminado en Windows es CMD.exe o el Command Prompt (símbolo del sistema). De hecho, Microsoft ha utilizado el símbolo del sistema desde los viejos tiempos, cuando MS-DOS era el sistema operativo principal. 45 4.12.1.2. Bash Bash son las siglas de Bourne Again SHell y fue desarrollado por la Fundación Free Software. Es un tipo de shell que se utiliza en MacOS y en muchas distribuciones de Linux. Sin embargo, también puedes instalar bash Linux en Windows 10. En Linux, el shell Bash es uno de los muchos shells que pueden usar los usuarios de Linux. Los otros tipos son shell Tchs, shell Ksh y shell Zsh 4.12.1.3. Los principales motivos para utilizar CLI son: Permite administrar sistemas operativos de forma más rápida. Tiene la capacidad de almacenar scripts para poder automatizar tareas cotidianas de mantenimiento y gestión de sistemas. Es un sistema de comunicación sólido y robusto que cuenta con programas de consola con un gran nivel de desarrollo que aportan muchas funcionalidades. Facilita la detección de problemas de red utilizando comandos específicos para ello. Es más rápido de utilizar una vez se tiene soltura con el teclado (uso de la tecla tab, acortador de sentencias, etc.). Cuando se supera la curva de aprendizaje de CLI, que es alta, se tiene la mayoría del tiempo las manos en el teclado, incrementando, tanto la productividad como la concentración. Se dispone de un mayor control a la hora de ejecutar operaciones. Se puede combinar con GUI para poder realizar algunas funciones con esa interfaz gráfica y otras en línea de comandos. 4.12.1.4. Interfaz gráfica de usuario o GUI (Graphical User Interface) Es toda aquella interfaz de software que muestra un conjunto de imágenes y objetos gráficos para representar la información e interactuar con ellos. El software más primitivo carecía de GUI y todo se hacía mediante CLI (Command Line Interface) o interfaz de línea de comandos en modo texto. No fue hasta principios de los años 70, cuando un equipo de la Universidad de Stanford liderado por Douglas Engelbart creó una interfaz con hipervínculos gobernada por Mouse. 46 4.12.1.4.1. Cinnamon Cinnamon se basa en archivos de la biblioteca de Gnome, pero fue diseñado para Linux Mint. Es un potente entorno de escritorio que es flexible y combina el diseño tradicional con características avanzadas. Cinnamon consta de 3 áreas principales: un solo panel situado en la parte inferior, una bandeja del sistema y varias otras funciones situadas a la derecha, y el menú de la aplicación en el lado izquierdo de la pantalla. También puede personalizar el menú de la aplicación mediante la adición de aplicaciones de su elección. Para asegurar que esto funciona sin problemas, deberás contar con una tarjeta gráfica potente y controladores actualizados. 4.12.1.4.2. KDE KDE es uno de los entornos de escritorio Linux populares y también un competidor para GNOME. Se asemeja al escritorio de Windows por lo que, si quieres experimentar un escrito