SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

de Matías Nicolás Garibotti Rodriguez -
Número de respuestas: 5

Buenas!

Estaba haciendo el ejercicio 2.d del parcial 2022 Julio y me surgió una duda de cómo se implementan los soft links. Entiendo que el soft link es un dir entry que apunta a un inodo (diferente del inodo del archivo original) y que este nuevo inodo referencia los mismos bloques que el inodo original. En cambio un hard link seria un dir entry que referencia el mismo inodo que el dir entry original (es decir, no se ocupan nuevos inodos).

Es esto correcto? Si lo es, cómo es que el borrado de un soft link no libera los bloques que son referenciados por otro dir_entry? Cómo funciona exactamente el borrado de un dir entry? Marca el inodo como unused y los bloques referenciados por ese inodo como unused en el mapa de bits?

Dejo un diagrama de lo que entiendo yo que sería un soft link para que se entienda mejor la idea.

Saludos

Diagrama de la implementación de un soft link

En respuesta a Matías Nicolás Garibotti Rodriguez

Re: SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

de Jorge Merlino -

Los softlinks no comparten ningun bloque con el archivo al que apuntan. De hecho podrían apuntar a un archivo en otro filesystem.

El softlink usa sus propios bloques para guardar la ruta del archivo al que apunta y nada más.

Saludos

En respuesta a Jorge Merlino

Re: SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

de Juan Pablo Conde Inzaurralde -
Buenas, ando con las misma duda del compañero y no termino de entender la respuesta de la solución de este parcial.
La función creatSoftLink() recibe una dir_entry que es al que se quiere referenciar y un inodo padre que es quien queremos que mantenga la referencia.
En la solución de este ejercicio al final lo que se hace es escribir en uno de los bloques del inodo padre la dir_entry que se recibe como parámetro, al hacer esto no estamos generando un hard link?
En respuesta a Juan Pablo Conde Inzaurralde

Re: SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

de Jorge Merlino -
Creo que estudiar la teoría de un softlink mirando ese ejercicio no es muy buena idea porque ahí te están pasando un dir_entry que no se sabe lo que tiene. Ese dir_entry no puede ser el mismo dir_entry que apunta al archivo original sino que debe ser otro nuevo con su propio inodo y sus propios bloques. Pero esto está fuera del alcance de ese ejercicio porque solo te piden que guardes ese dir_entry en el directorio donde corresponde y nadie dice como se construye.

Saludos
En respuesta a Jorge Merlino

Re: SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

de Damian Alberto Castro Martirena -
Buenas, no me termina de quedar clara su respuesta, entonces el inodo del softlink apunta a un bloque que tiene una copia del dir_entry original? Podrìa hacer un diagrama como el del compañero asi termina de quedar más claro?
Saludos
En respuesta a Damian Alberto Castro Martirena

Re: SoftLinks - Parcial 2022 Julio - Ejercicio 2.d

de Jorge Merlino -
Como comenté antes el dir_entry del softlink no es una copia del dir_entry original. El ejercicio no dice que sea una copia, solo dice que apunta.

Saludos