GNU / Linux /

Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

Participa en el tema Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción) en el foro GNU / Linux.
Varios son los objetivos de ésta linea de discusión. El principal es nutrirnos de información ...

Buscar en este tema:
1 2 3 >
 
  •  
    Andrea87 escribió el 10/08/2007 a las 07:01 hs.
     
    ¿Mensaje inapropiado?
    #1 Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)
    Varios son los objetivos de ésta linea de discusión.
    El principal es nutrirnos de información util y aprender entre todos acerca de las caracteristicas técnicas del Kernel de Linux como Nucleo, el manejo de la memoria fisica, la partición Swap, la administración de procesos y/o cualquier otro aspecto relacionado con el Kernel. Comparaciones con nucleos de otros sistemas como Windows, Solaris o FreeBSD, datos estadisticos, valores y resultados de pruebas y testeos, etc.

    El objetivo tambien es compartir información y amalgamar datos entre todos de forma que nos permita optimizar el rendimiento de nuestros sistemas o tener una mayor comprensión de su funcionamiento (si se puede), aunque sea para algunos de una manera intuitiva. Cada uno va a tomar de aqui lo que le sea de mayor utilidad.

    Nadie está excluido y, por supuesto, aquellos que sientan la necesidad de hacer preguntas técnicas por falta de conocimiento están absolutamente invitados a hacerlo. Los debates tienen lugar dentro de un marco de respeto y, en lo posible, con un criterio objetivo.
    No intenta, sin embargo, convertirse en una conversación exclusivamente academica, pero si en una en la cual se puedan integrar la discusión, la investigación, el apoyo informativo, el aporte de datos y el debate nutritivo. Por ello es que todos están invitados, tanto aquellos que conocen del tema en un nivel profundo como aquellos que quieran aportar con impresiones intuitivas o simplemente estadisticas o del tipo que fueran y también aquellos que solo deseen preguntar y aprender, pero intentando todos no superar una distancia máxima con respecto a la tematica que se está tratando y que es lo mencionado al principio.

    Vale aclarar que, por supuesto, no es necesario ser un usuario de Linux para poder participar. Los usuarios de otros sistemas (como Windows, por ejemplo) están perfectamente invitados. Pero también vale aclarar que ésto no intenta ser una "competencia".

    Como cierta flexibilidad en la tematica es inevitable (y sana), se ruega a cada uno el criterio de participación apropiado para asi beneficiarnos todos/as.

    Con respecto a los debates que puedan surgir y que son bienvenidos, siempre que se respeten las intenciones mencionadas mas arriba y el tema principal, de mas está decir que el arbitraje está a cargo de los moderadores correspondientes.

    Se sugiere comenzar con el Manejo de Procesos (y el concepto de Proceso, por supuesto) qué es, probablemente la forma mas coherente de iniciar la temática. Luego de ello se desarrollará espontaneamente tratando otros aspectos.

    Que lo disfruten mucho
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/gnu-linux.50/497901-kernel-linux-caracteristicas-tecnicas-comparaciones-leer.html
    | Más
  • LuisManson escribió el 10/08/2007 a las 09:18 hs. ¿Mensaje inapropiado?

    #2 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    OK, no entiendo bien... Andrea, no te faltó un link o algo?
    aca tienen uno
    http://widefox.pbwiki.com/Kernel%20C...20vs%20Windows
    http://widefox.pbwiki.com/Kernel%20N...s%20Comparison

    Todo dicho :P
    Me gusta este mensaje
  • Andrea87 escribió el 10/08/2007 a las 09:24 hs. ¿Mensaje inapropiado?

    #3 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Originalmente publicado por LuisManson Ver mensaje
    OK, no entiendo bien... Andrea, no te faltó un link o algo?
    aca tienen uno
    http://widefox.pbwiki.com/Kernel%20C...20vs%20Windows
    http://widefox.pbwiki.com/Kernel%20N...s%20Comparison

    Todo dicho :P

    No, no falta nada. Todo está ahi.
    Me gusta este mensaje
  • Duke Forever escribió el 10/08/2007 a las 09:38 hs. ¿Mensaje inapropiado?

    #4 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Bueno, voy a empezar por una pregunta tecnica:
    Por lo que tengo entendido la principal diferencia entre los kernels monoliticos y los microkernels es que estos ultimos se dividen en modulos que funcionan en el user space, siendo el kernel en si solo un interconector entre estos modulos. La pregunta es... ¿Que son exactamente el kernel space y el user space? ¿Hay otros "spaces"? ¿Que es eso de ring 3? ¿El hardware tiene algo que ver?

    Bueno, terminaron siendo una serie de preguntas, pero todas apuntan a lo mismo.

    Saludos!!
    Me gusta este mensaje
  • ezeaguerre escribió el 10/08/2007 a las 21:24 hs. ¿Mensaje inapropiado?

    #5 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Originalmente publicado por Duke Forever
    Por lo que tengo entendido la principal diferencia entre los kernels monoliticos y los microkernels es que estos ultimos se dividen en modulos que funcionan en el user space, siendo el kernel en si solo un interconector entre estos modulos.
    Sip ^_^

    Originalmente publicado por Duke Forever
    La pregunta es... ¿Que son exactamente el kernel space y el user space? ¿Hay otros "spaces"? ¿Que es eso de ring 3? ¿El hardware tiene algo que ver?
    Si, el hardware tiene mucho que ver. Los procesadores que tenemos todos nosotros tienen 4 niveles de protección, desde ring 0 hasta ring 3. Las aplicaciones corren en ring3 y el kernel en ring0, los otros dos niveles no se usan por lo general, pero hay aplicaciones muy específicas que si los pueden utilizar, como puede ser vmware o algún otro.
    El kernel divide el espacio de direcciones virtuales de un proceso en dos, una porción para el usuario y otra para el kernel. El usuario jamás puede acceder al rango de direcciones que le pertenece al kernel (y que está en el nivel 0), en caso de hacerlo el procesador lanza una excepción que el kernel maneja y así decide matar al proceso.
    No se si se entiende bien, pero básicamente Linux divide el espacio de direccionamiento (virtual) del proceso así:

    0 - 0xC0000000: 3GB de espacio de usuario
    0xC0000000 - 0xFFFFFFFF: 1GB espacio del kernel

    y supongamos que se está ejecutando un proceso en modo de usuario (ring 3), el mismo en un momento dado decide acceder al último giga de memoria virtual (que pertenece al kernel), entonces el procesador se da cuenta que está corriendo en ring3 y lanza una excepción.
    El único medio que tiene el proceso de usuario de acceder al kernel es mediante puntos específicos bien controlados, como ser la interrupción 0x80, en ese momento el procesador cambia el nivel de ejecución de ring 3 a ring 0 y así tiene acceso a todo el espacio de direccionamiento, cuando el kernel termina de hacer lo que tenga que hacer ejecuta una instrucción IRET (Interrupt RETurn) volviendo al código de usuario y poniendo el procesador nuevamente en ring3.
    Desde luego que no solamente tiene que ver con la memoria, sino que también hay ciertas instrucciónes que no se pueden ejecutar en ring3, especialmente las que tiene que ver con la administración de las tablas de la CPU como cargar la GDT o modificar los registros de control crX.

    Ahora con el tema de la virtualización el procesador corre en dos modos, el "root" que es el más privilegiado y el otro que no recuerdo el nombre que es para los virtualizados. Y cada uno de esos modos tiene su respectivo ring0 a ring3. Y en 64 bits creo que solamente hay dos niveles de protección, ya que se eliminó la segmentación en favor de la paginación, y la paginación solamente ofrece protección en dos niveles (no por la paginación en si, sino por como está implementada en este micro), usuario y sistema (kernel).

    Además hay ciertas cosas que son modificables, por ej. en ring3 no se pueden efecutar instrucciones de entrada/salida a puertos, sin embargo esto se puede modificar cambiando el valor del flag IOPL en el registro de flags, o bien utilizando un mapa de bits de los puertos a los que se tienen acceso, el cual viene luego del TSS (Task State Segment).

    Hoy estuve laburando a full con el tema wireless y un amigo, pero en cuanto tenga tiempo posteo un documento bien armadito sobre procesos.

    Saludos.

    P.D: Como habrán visto, los niveles de protección depende del hardware, hay CPUs en las que no existe tal distinción (como nuestros procesadores cuando corren en modeo real de 16 bits) y por ende la protección es una cuestión de buena fe entre los programas :P

    P.D2: 0xnro = número en hexadecimal.
    Me gusta este mensaje
  • LuisManson escribió el 11/08/2007 a las 00:15 hs. ¿Mensaje inapropiado?

    #6 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Fo loco, hace unas semanas yo era quien mas posteaba, pero cuando ezequiel escribe un post vale por 10!

    Loco, media pila, me estas dejando mal parado!!!! :P

    Felizitaciones por el post, muy instructivo, ahora, una consulta, int80 no es la de acceso a disco/particiones/booteo o algo asi?

    salu2!
    Me gusta este mensaje
  • ezeaguerre escribió el 11/08/2007 a las 01:00 hs. ¿Mensaje inapropiado?

    #7 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Bueno, ni bien inicia la máquina la BIOS provee de servicios a lo que sea que se vaya a ejecutar a través de interrupciones, pero solamente funcionan en modo real. El DOS también proveía las suyas y distintos sistemas operativos puede que provean otras, así que no recuerdo si la 0x80 era de acceso a disco o no, pero cuando Linux bootea y entra en modo protegido las interrupciones de la BIOS no sirven para nada, solamente podés utilizar las que establezca Linux. El procesador mantiene una tabla de descriptores de interrupciones, utilizando el registro IDTR para apuntar a esta tabla llamada IDT (Interrupt Description Table).
    Hay arquitecturas donde los servicios de la BIOS se mantienen en ROM y otras donde se copian a RAM, ahora no recuerdo si en x86 se copian a RAM o no pero creería que no :P

    P.D3: Por si no conteste tu pregunta, la int 0x80 en Linux i386 se utiliza para todas las llamadas al sistema, supongamos que querés llamar a exit y supongamos que exit es la llamada número 1 (no recuerdo cual es, pero supongamos, si querés después me fijo :P) y además que querés devolver el código de retorno 4, entonces harías así:

    Código:
    mov eax, 1 # EAX = 1 = Llamada a la supuesta función exit
    mov ebx, 4 # EBX = 4 = Primer parámetro de la función
    int 0x80      # Llamar al kernel
    # Código C equivalente: exit ( 4 );
    
    Ahora, si quisieras llamar a una supuesta llamada fork que fuese la número 2 podrías hacer así:

    Código:
    mov eax, 2 # EAX = 2 = Llamada a supuesta función fork
    int 0x80      # Llamar al kernel
    # Código C equivalente: fork ();
    
    Saludos.

    P.D: Hay excepciones, donde la BIOS si sirve en modo protegido, pero es feo feo el mecanismo para acceder a los servicios que provee. Otra forma también muy fea es pasar momentaneamente a modo real, realizar el llamado y volver a modo protegido, pero es lento y horrible :P

    P.D2: Lista de interrupciones, de BIOS y de DOS (creo): http://www.osdev.org/wiki/Ralf_Brown%27s_Interrupt_List
    Me gusta este mensaje
  • Usuario inexistente escribió el 12/08/2007 a las 17:49 hs. ¿Mensaje inapropiado?

    #8 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    ezeaguerre muy, muy pero muy bueno... un par de cosas que me gustaría aclarar/preguntar,
    Los procesadores que tenemos todos nosotros tienen 4 niveles de protección, desde ring 0 hasta ring 3.
    no conozco a fondo todos los procesadores ni todos los que están dando vuelta por acá, y pensando que tu explicación es para un grupo no muy técnico, pero creo que los que tienen 4 niveles son los procesadores tipo INTEL y hay procesadores que sólo tienen 2 niveles (usuario y kernel), por eso es que Linux (creo que otros *nix también) usan sólo dos niveles 1 y 3 para matener portabilidad entre diferentes arquitecturas.
    Me gusta este mensaje
  • ezeaguerre escribió el 12/08/2007 a las 20:08 hs. ¿Mensaje inapropiado?

    #9 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Exacto, con todos nosotros me quería referir a los procesadores Intel y AMD de 32 bits arquitecutra i386 (u x86 o como le gusten llamarlo :P). Hay montones de procesadores diferentes, por ej. creo que los MIPS tan solo tienen dos niveles de protección, y en los procesadores Intel y AMD x86-64 (AMD64, EM64T, IA-32e, como más te guste :P) tienen soporte en las tablas de páginas para solamente dos niveles de protección, usuario y kernel ^_^. Así como bien vos decís, si utilizaran más de dos niveles de protección se haría más dificil portar el kernel a otras arquitecturas, además que el tamaño del código crecería considerablemente poque habría más partes que sean dependientes de la arquitectura.
    No conozco ningún sistema operativo que utilice más de dos niveles de protección, pero si lo hay es porque fue escrito con un único (o un reducido grupo) de procesadores en mente.

    Saludos.
    Me gusta este mensaje
  • Runing_Through escribió el 12/08/2007 a las 20:46 hs. ¿Mensaje inapropiado?

    #10 Re: Kernel de Linux - Caracteristicas técnicas / Comparaciones (Leer introducción)

    Cual es la diferencia entre usar int 0x80 y sysenter? Solo la velocidad?
    Por que en Multicore Limits en 32bits es 2 y en 64bits es 4? Lei en varios blogs que el soporte multicore era mucho mayor.
    Cual es la diferencia entre tasks, process,kernel threads, threads y fibers?
    En un sistema con varios microprocesadores y/o varios nucleos cual es la mejor forma que un programa puede usar tal capacidad de proceso(en un kernel con smp activado)?
    Me gusta este mensaje
1 2 3 >


Estadísticas del tema
  • 22 RESPUESTAS
  • 6817 VISTAS
  • 9 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB