IV International Conference of Unix at Uninet
  • Presentation
  • Register
  • Program
  • Organizing Comittee
  • Listing of registered people
  • Translators team
Talk

20031223-3.sp

_libra_esta es la cuarta vez que participo en Umeet
_libra_i siempre ha sido divertido
_libra_hoy voy a hablar de unos parches guapos (y proyectos) que estan preparados para ir en el kernel 2.6
_libra_no tengo ningun texto preparado asique no dudeis en preguntarme
_libra_podeis preguntar CUANDO QUERAIS en el canal #qc
_libra_la traduccion al aleman se realiza en #taee y al español en #redes
_libra_creo que deberia empezar diciendo que el kernel 2.6 parece mucho mejor que los 2.0, 2.2 o el 2.4
_libra_asique todos deberiais probarlo y reportar los bugs a linux-kernel@vger.kernel.org ;))
_libra_hablaré un poco de los siguientes proyectos:
_libra_ - execshield
_libra_ - 4/4 split
_libra_ - CKRM (manejador de recursos del kernel basado en clases)
_libra_ - memory hotplug
_libra_...
_libra_el primer parche del que voy a hablar esta relacionado con la seguridad
_libra_como seguramente todos dabeis, el kernel 2.6 tiene algunas mejoras en seguridad para limitar el daño que pueda ocasionar un agujero
_libra_por ejemplo, con selinux puedes limitar el daño que se haga cuando sendmail explote OTRA VEZ o bind ;)
_libra_con exec-shield puedes dar otro paso para hacer tu sistema mas seguro
_libra_basicamente, las capas de tus procesos cambiaran un poco
_libra_y los datos y la pila no seran por defecto ejecutables nunca mas
_libra_esto hace un poco mas dificil convertir un debordamiento de buffer en un exploit
_libra_in x86 CPU´s la tabla de paginas nmo tiene un bit de permiso de ejecucion, asique exec-shield necesita hacer trucos verdaderamente feos
_libra_con suerte, funcionara en otras cpus como AMD64
_libra_tiene bits de ejecucion en las tablas de paginas, a si que los trucos de segmentacion no seran necesarios en el futuro
_libra_<hans> riel: no reducira este proceso la velocidad del sistema operativo?
_libra_si, totalmente
_libra_la segmentacion hace que el programa funcione un poco mas lento
_libra_de todas formas, el incremento en la seguridad valdra la pena para algunsa personas
_libra_en este punto, debo decir que exec-shield NO es el mejor gestor de memoria para seguridad
_libra_PaX es probablemente mas flexible
_libra_pero a un coste superior
_libra_me parece que exec-shield tendra un equilibrio razonable entre seguridad y celeridad para varios usuarios
_libra_tiene otros trucos como aleatoriedad de la direccion de inicio de la pila, ejecutables y librerias
_libra_a si que usar desbordamientos de bufer para asaltar una funcion de libc es improbable
_libra_en cambio, el atacante tumbara sendmail, en ves de conseguir una cuenta root
_libra_(o mejor, el desbordamiento no sera un ataque al fin y al cabo)
_libra_xtingray: cual es el recurso mas barato que conoces?
_libra_bueno, el mejor seria usar un chip AMD64 ;))
_libra_este hard tiene el bit de ejecucion para tablas de paginas
_libra_entoces no tiene penalizacion de tiempo
_libra_hans: que lo hace mejor, or ejemplo, un medio chrootado para aplicaciones?
_libra_ok, exec-shield no es "mejor"... Usaria los dos juntos
_libra_puedes (y probablemente deberias) ejecutar named en un medio chroot
_libra_pero entonces alguien lo rompe, y puede usar tu pc para mandar paquetes a cualquier lado (quiza para ayudar en un DDoS?)
_libra_a si que, reduciendo la posibilidad de que un desbordamiento de bufer sea explotado  es probablemente algo bueno a hacer
_libra_ah, puedes ejecutar exec-shield como parte del rpm para el kernel 2.6 de Arjan
_libra_ http://people.redhat.com/~arjanv/
_libra_no lo he visto corriendo en ingun otroparche para el kernel
_libra_ amplifiel: otras distribuciione como adamantrix usan rsbac y pax para seguridad, que piensas de estos aprches?
_libra_ok
_libra_rsbac es como selinux
_libra_ayuda a reducir el daño una vez se ha roto el programa
_libra_pero no ayuda a prevenir intrusiones en el programa
_libra_PaX ayuda a prevenir las intrusiones, pero tiene un coste mayor que exec-shield
_libra_si eres verdaderamente paranoico, seguramente preferiras Pax a exec-shield
_libra_pero personalmente creo que el impacto sobre el funcionamiento de PaX (particularmente, el espacio extra de uso, es decir, que tus programas tiene menos espacio de direccionamiento) lo haran muy "costoso" para mucha gente
_libra_ok, 4/4 split ;)
_libra_ahora explicare el que probablemente sea el peor problema que tiene linux en los sistemas x86 de 32 bits
_libra_el problema es que estos sistemas tienen como maximo 64GB de memoria fisica, pero solo 4Gb de virtual
_libra_y el clasico planteamiento de memoria virtual de linux dice que el kernel solo tiene 1GB de espacio!!
_libra_lo que significa que un giga debe manejar 64
_libra_esto es, cimplemente, espacio insuficiente si ejecutas lo que todo el mundo con un servidor de 64gigas corriendo
_libra_para hacer corta la historia, con 1 giga de espacio para el kernel, un sistema con mas de 24 gigas de ram es casi inutil
_libra_porque no tienes el espacio de memoria necesario para correr un gran sistema con los programas de uso cotidiano
_libra_en 2.4, y posteriormente en 2.6, las tablas de paginas fueronpuestas en la parte alta de la memoria
_libra_es decir, estan alojadas fuera de el giga perteneciente al espacio para el kernel
_libra_esto incremetna el limite de 16 gigas a 24 o 32 gigas
_libra_pero todavia esta lejos de los 64 gigas para sistemas  x86 de 64gb de ram
_libra_por suspuesto, la solucionpara genet con grandes servidores es usar procesadores de 64 bits
_libra_asi, el kernel tiene todo el espacio que necesita
_libra_pero no, ellos quieren un servidor barato ;((
_libra_a si que compran un  x86
_libra_por supuesto, los programadores son siempre los que se enfrentan al problema
_libra_pero lo unico que podemos hacer es incrementar elespacio para elkernle a 4 gigas
Aradorpero solamente hay 4 GB en total deisponibles en Linux, divididos entre el espacio de usuario y el espacio del kernel
Aradorasique necesitamos cambiar eso
AradorIngo Molnar hizo nu parche que hacia algo bastante feo, que simplemente funciona bien y necesita pocos cambios en el resto del codigo
Aradordel kernel
Aradorsabeis que cada proceso tiene su propio espacio de memoria
Aradorcon el parche de division 4/4, el _kernel_ tambien tiene su propio espacio de memoria de 4 GB
Aradory cada vez que haces una llamada al sistema o ocurre una interrupcion, el sistema hace un cambio de contexto de memoria
Aradoren el espacio de memoria del kernel de 4 GB
Aradorde esta manera el kernel tiene suficiente memoria para gestionar 64 GB de memoria fisica y a los programas ejecutandose en el
Aradorsin embargo, esto tiene un coste, comunmente el 10% de rendimiento
Aradorporque la CPU necesita cambiar las direcciones de los espacios de memoria todo el tiempo
Aradoren algunos benchmarks el coste es del 30%...
Aradortambien, este es el ultimo gran cambio que se puede hacer en sistemas de 32 bits
Aradorsi Intel viniera alguna vez con un sistema de 32 bits que gestione mas de 64 GB de memoria fisica, no hay mas trucos que podamos usar
Aradoreso es por lo que la unica solucion real es usar un chip de 64 bits
Aradorsi necesitas mucha memora
Arador<jamesm> riel: cuanto tiempo crees que la gente seguira usando sistemas de 32 bits?
Aradorcreo que seguiran usando ia32 hasta que intel tenga un chip de 64 bits barato
Aradoro hasta que necesiten mas de 128 GB de memoria
Aradorme temo que IA64 nunca será barato
Aradorporque está diseñado para ser un chip de alto nivel
Aradorsin embargo, con amd intentando vender si chip de 64 bits, creo que Intel tendrá que sacar algo
AradorDe verdad espero que lo hagan... ;)
Aradoralguna otra pregunta sobre la division 4/4, o problemas de gestión de memoria?
Aradorok, daré una pausa de 1 minuto para dar una oportunidad a los traductores
Aradorentonces seguire con CKRM, el kernel gestor de recursos del kernel basado en clases
AradorCKRM, el gestor de recursos del kernel basado en clases el kernel 2.0 ;)
Aradory algunos aspectos de el están en el kernel
Aradorbasicamente, CKRM consiste de dos partes
Arador1) un clasificador, para agrupar las tareas en clases de recursos basadas en...
Arador - pid
Arador - gid
Arador - uid
Arador- nombre
Arador - identificador de la clase de recursos
Arador - ...
Arador2) modulos de control de recursos, que se meten en el nucleo de CKRM y que:
Arador - dividen la CPU entre clases de recursos
Arador - dividen los limites de memoria entre clases de recursos
Arador - ....
Aradorbasicamente, con CKRM puedes hacer ocsas como:
Arador"quiero que sendmail y todos los procesos iniciados por él consuman no mas del 10% de la memoria o el 20% de la cpu"
Aradorde manera que no importa como este de sobrecargado tu cola de correo, tu sistema nunca estará sobrecargado
Aradoro en una universidad, podrias especificar "que los estudiantes tengan entre un 10% y un 50% de la memoria, los profesores ente 30% y 80% de la memoria, el administrador del sistema lo que quiera"
Aradorlas posibilidades de lo que puedes hacer con CKRM son infinitas
AradorEstoy seguro que algunos de vosotros con inspiraciones BOFH tendran algunas ideas creativas...
Arador [de nuevo, preguntas en #qc]
Aradorpodeis encontrar informacion sobre CKRM en http://ckrm.sourceforge.net/
Aradorpor supuesto, CKRM tiene sus lados malos tambien
Aradores muy bonito y flexible, pero tambien muy complejo
Aradorno estaría sorprendido de que CKRM fuera demasiado complejo para Linus
Aradory se tienen que hacer las cosas mas simples antes de que sea incluido en el kernel 2.7
Arador<bigsam72> ok, cuando seaimplementado ckrm y se ponganmites a por ejemplo sendmail, que pasa cuando sendmail llega al limite? ¿errores de asignación de memoria?
Aradoren el caso mas comun, sendmail seria mandado a swap
Aradorconseguiria memoria virtual, solo que no memoria fisica
Aradortambien, si el sistema tiene memoria libre que no se esta usando en ese momento, una clase de recurso puede pedir prestado esa memoria
Arador<james> riel: ¿cual es la sobrecarga en el rendimiento?
AradorNo puedo responder a esa pregunta, ya que CKRM está en sus estados mas tempranos
Aradorel codigo no esta preparado todavia y necesita mucho trabajo
AradorSospecho que la sobrecarga sera pequeña para la mayoria de gestores de recursos
Arador<franl> Puede CKRm controlar solo la CPU y uso de memoria, o tambien puede controlar otras cosas como fork()s y send()s por segundo?
Aradorfranl: actualmente, CKRM solo puede controlar la CPU, memoria y el IO
Aradorpero la gent eesta planeando mas gestores de recursis
Aradorpara la cpu y el io, el modulo CKRM es un scheduler
Aradorde manera que puede dar ciertas garantias de ancho de banda  y limites maximos en los grupos de recursos
Aradorla memoria es bastante similar, excepto por una gran diferencia
Aradortienes un nuevo segundo de cpu en cada segundo, pero la memoria no crece ;)
Aradoren terminos de ciencia de computadores, la memoria es un espacio no renovable
Aradorde manera que si un grupo de recursos usa mas memoria de su limite pero algo mas lo necesita el sistema necesita trabajo para quitarlo (mandandolo a swap)
AradorPara la CPU, ancho de banda de IO o gestion de la red el sistema no tiene que hacer ese trabajo
Aradorpara los adminitradores hay otro problema
Aradorsi das a cada grupo de recursos nu minimo de 10% garantizado, estate seguro de que no tienes mas de 10 grupos de recursos ;)
Arador<franl> como es la interfaz de la llamada de sistema de CKRM? solamente es un monton de ioctls?
Aradorfranl: la interfaz al espacio de usuario todavia esta en cursos
AradorCKRM A0* usaba llamadas al sistema, pero CKRM B0 parece usar una interfaz /proc
Aradoresto podría cambiar en un futuro, hasta que Linus este feliz
Aradorfranl: Apoya Linus en un principio a CKRM para 2.7?
Aradorno creo que le hayan preguntado ;)
Aradorpodria ser dificil convencerle de que CKRM esta bien
Aradornunca le gustan las cosas de solo-servidores
AradorLinus quiere funcionalidad que sea util para todos
Arador....y tiene razon
Aradorsin embargo, CKRM podría ser util para sistemas de escritorio
Aradorpor ejemplo, el usuario de escritorio podria tener un minimo garantizado de recursos del sistema de manera que updatedb no pueda hacer lento al escritorio
Aradorsi, es un hack, pero si hace a los escritorios sentirse mejor... ;)
Arador¿alguna otra pregunta, antes de que me mueva en "conexion de memoria en caliente" ?
Arador...
Aradorde acuerdo, conexion de memoria en caliente ;)
Aradorlos grandes manufacturadores de servidores están trabajando en una nueva funcionalidad
Aradorla idea es que los administradores puedan añadir nueva memoria (DIMMs) en el sistema, mientras el sistema esté corriendo
Aradoralgunos incluso quieren que el administrador del sistema pueda quitar DIMMs
Aradorahora bien, añadir memoria debería ser posible durante el kernel 2.6
Aradortenemos soporte de NUMA en el kernel, para soportar diferentes areas de memoria en un sistema
Aradorcuando el sistema añada nueva memoria, podriamos crear una nueva zona para esa memoria
Aradory entonces enganchar la nueva zona en las listas de otras zonas de memoria
Aradordespues de eso ya podemos empezar a usar la memoria
Arador"simple" ... excepto por algunos detalles con los que no os aburrire ;)
Arador<franl> Como quitar DIMMs cuando tienes páginas sucias en ellos?
Aradorok....quitar memoria es un GRAN PROBLEMA ;)
Aradorno creo que Linux vaya a soportarlo muy pronto
AradorSi toda la memoria en un DIMM pertenece a programas de usuario, entonces simplemente podemos mandarlos a swap cuando el administrador diga que quiere quitar un DIMM del sistema
Aradorpero que pasa si esta memoria esta mlockeada y teneos prohibido mandarla a swap?
Aradoro peor, que pasa si tiene esctructuras de datos del kernel que son referenciadas por una direccion fisica de memoria ?!
AradorNo veo ninguna manera buena de luchar con ello
Aradorpuedo pensar unas cuantas MALAS, pero no queremos eso ;)
Arador<franl> INcluso si un DIMM puede ser quitado de las paginas del kernel y de las paginas sucias del usuario, todavia tienes que esperar que el sysadmin quite el DIMM correctamente
Aradorcreo que para eso son las luces verdes y rojas ;)
Aradorlas tarjetas de enganche de memoria  en caliente tienen a tener todo tipo de luces en ellos afortunadamente
Aradortambien, porque querrías quitar memoria del sistema?
Aradorsolo se me ocurren dos cosas que un administrador de sistemas necesita hacer:
Arador1) añadir mas memoria, porque el programa lo necesita
Arador2) reemplazar un trozo de memoria dañada con buena memoia...pero eso se podria hacer en hardware, haciendo un espejo en el hardware con buena memoria y dejarle quitar el malo
Aradoren este caso la "mala memoria" sería memoria que tiene errores ECC corregibles
Aradorde manera que los datos aun parezcan buenos
Arador<hans> tambien, porque querrias quitar memoria de un sistema ?
Arador<hans> tal vez para cambiarlo por ram mas rapida?
Arador<franl> O para actualizarlo a DIMMs mas grandes
Aradorok, dos buenos puntos ;)
Aradorel de sustituirlo por uno de mas capacidad de memoria es especialmente valido
AradorSe me habia olvidado eso
Aradoralguien en VALinux de Japon esta trabajando en quitar memoria en caliente, por cierto
Aradorpero esta encontrandose los problemas fundamentales que acabo de describir
Aradorasique su codigo parchea la mayoria del tiempo
Aradorresumiento, en el kernel 2.6 solamente deberías esperar soporte para añadir memoria en caliente
Aradorquitar en caliente es muy complejo....
Arador...
Aradorhay aluna otra pregunta sobre enchufar memoria en caliente?
Aradorok, entonces supongo que la conferencia esta terminada ;)
Aradorgracias a todos los organizadores que han hecho posible este evento
Aradorse cuanto trabajo es, y estoy agradecido de que organizaran otra umeet
Aradorsi no estais dormidos, tambien me gustaria dar gracias a la audiencia
Aradorsi no sería como hablar conmigo mismo ;)
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
EMPERORplas plas plas plas plas plas plas
EMPERORplas plas plas plas plas plas plas
EMPERORplas plas plas plas plas plas plas
EMPERORplas plas plas plas plas plas plas

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net!

email usmore information


© 2003 - www.uninet.edu - contact organizing comittee - valid xhtml - valid css - design by raul pérez justicia