Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Sistemas Operativos

SELinux en 10 puntos.

Por el contrario de muchos escritos que existen alrededor de SELinux, pretendo únicamente esbozar la primera parte de los puntos clave a recordar. Soy partidario de la teoría, puesto que le da sentido a la practica.  Primero mencionaré el objetivo del comando y después el propio comando. Sugiero que si algunos de los conceptos que escribo no son de su conocimiento, los revise en otro sitio con mucha más información. 1.- Revisar el TE de nuestro SO : #getenforce 2.- Establecer el TE de manera NO persistente: #setenforce [1|0] 3.- Revisar el TE del archivo de configuración de TE (persistente) y el actual, entre otros valores: #secon 4.- Revisar el contexto que tiene un archivo determinado: #secon -f file      o de otra manera: #ls -Z file 5.- Cambiar el atributo TYPE de un archivo: #chcon -t TYPE file 6.- Ver los atributos de un proceso: #ps -auZ pid 7.-  Restaurar el contexto por defecto de un archivo: #restorecon -R -v file 8.- Obt...

Sistemas Operativos Modernos

Tanembaum recopila la basta experiencia en el campo del funcionamiento de sistemas operativos y sus estudios académicos y los plasma en poco más de mil páginas. La presentación es muy simple, y eso ayuda mucho al lector para no perderse en complejidades innecesarias. A favor creo que tiene la concepción integral del cómo y por qué funciona así el sistema operativo en turno, además de citar algunos ejemplos claros. Como punto en contra, esperaría ejemplos más usuales y ampliada la información de las tripas de los componentes de un sistema operativo, subsanado quizá con material adicional al libro, o referencias a la web (tan solo tienen una) donde poder jugar con lo aprendido. Yo dividiría su libro en tres secciones. La primera son los conocimientos generales y conceptos de la materia. Después un caso de estudio de GNU/ Linux y un último de Windows (Vista). Sin embargo, Tanenbaum lo divide en más tópicos como Procesos, Sistema de Archivos, Seguridad, E/S, etc. Sin duda que para...

Significado de los dígitos de versión del kernel Linux

Algunas de las cosas que siempre quise saber, pero nunca me hice del tiempo para investigarlo es la función de los cuatro dígitos del kernel Linux. Su significado poco tiene que ver con hechos cabalísticos o confusos enunciados matemáticos. Mejor que en mis palabras están las de Tanenbaum: Los números de versión de Linux consiste en cuatro números, A.B.C.D, como 2.6.9.11. El primer número indica la versión del kernel. El segundo indica la revisión mayor. Antes del kernel 2.6 los números pares correspondían a versiones estables del kernel, mientras que los impares correspondían a versiones inestables que estaban en desarrollo. Después del kernel 2.6 los significados se manejaron de forma distinta. El tercer número corresponde a la revisión de versiones menores, como la aceptación de drivers. El cuarto número corresponde a las correcciones de errores menores o parches de seguridad.  Como ven, el señor Tanenbaum es sumamente lacónico con la explicación de los dígitos que compo...

Interrupciones, un mal imposible de eliminar.

Los interbloqueos son comunes, pero no tanto, en los sistemas operativos de hoy en día. Existen cuatro características que nos ayudan a determinar si se trata de un interbloqueo y 4 para poder tomar acciones cuando éstos sucedan. Una interrupción consiste en que dos o más procesos estén bloqueados en espera de los recursos que cada uno tiene. Esto es, proceso A tiene ocupada la impresora, pero necesita la grabadora de CD; proceso B tiene ocupada la grabadora de CD y necesita la impresora para terminar su tarea. Este proceso es infinito y jamás podrá interrumpirse a menos que el sistema operativo tome acciones o ellos mismos.  La definición formal de un interbloqueo es la siguiente: Un conjunto de procesos se encuentra en un interbloqueo  si cada proceso en el conjunto está esperando un evento que sólo puede ser ocasionado por otro proceso en el conjunto. Las condiciones para que se de un interbloqueo de recursos son las siguientes 4: Condición de exclusión mutua. ...

Hilos en C con pthread

Esta vez les compartiré un poco el funcionamiento básico de los hilos en POSIX (caso particular de GNU/ Linux), pasando de la teoría a la práctica. Una buena referencia de qué es lo que estoy usando en este código es la liga de pthread . #include #include #include #define NUMERO_DE_HILOS 10 void *imprimir_hola_mundo(void *tid) {     /*Imprime el identificador del hilo y termina*/     printf("Hola mundo. Soy el hilo %d0\n", tid);     pthread_exit(NULL); } int main(int argc, char *argv[]) {     /*Se crean diez hilos*/     pthread_t hilos[NUMERO_DE_HILOS];     int estado, i;     for(i=0; i< NUMERO_DE_HILOS; i++) {         printf("Creando hilos en main %d0\n", i);         estado = pthread_create(&hilos[i], NULL, imprimir_hola_mundo, (void *)i);         if...

Esqueleto a nivel bajo cuando ocurre una interrupción

1.- El hardware mete el contador del programa a una pila. 2.- El hardware carga el nuevo contador de programa al vector de interrupciones. 3.- Por medio de código ensamblador se guardan los registros. 4.- Establecimiento de nueva pila con lenguaje ensamblador. 5.- El servicio de interrupciones se ejecuta 6.- El planificador toma deicisiones de que proceso se debe ejecutar. 7.- El procedimiento de C regresa al código ensamblador 8.- El procedimiento en ensamblador inicia el nuevo proceso actual Vector de interrupciones