1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Interesante

  • Configurar Iproute
    Introducción a Iproute

    Con Iproute podemos crear tablas de rutas alternativas a la tabla general de rutas que usamos generalmente con route. Así pues, podemos hacer que todo el tráfico proveniente de un interfaz o segmento de red salga por uno de nuestros dispositivos de red y otro tráfico proveniente de otro segmento salga por el otro dispositivo. O bien que un tipo de tráfico, por ejemplo smtp, salga por un interfaz, y otro tipo por el otro. Todo eso lo hacemos con IPROUTE.

  • Cómo autentificar Squid contra OpenLDAP
    Autenticando Squid contra OpenLDAP

    Dado que últimamente se esta poniendo de moda hacer uso de un Servidor de Directorios LDAP, para unificar la autenticación de varios servicios en un sistema Linux, vamos a ver una manera (no es la única, pero si la que a mi me ha funcionado) de autenticar el proxy Squid, contra OpenLDAP. Evidentemente, antes de nada, instalaremos nuestro Servicio de Directorios y migraremos los usuarios de nuestro sistema.



  • iptables y NAT para vagos
    Un muy buen artículo de Ricardo Galli Granada, publicado hace algún tiempo en www.bulma.net, que recupero aquí porque pienso que a más de uno le dará una idea de como proteger su red de forma rápida, sencilla y muy segura, además de hacer nat y masquerading.

  • Cómo montar Túneles con OpenVPN sobre Debian

    Al ver que en el wiki, no esta bien explicado como se monta un túnel con OpenVPN, y buscar información para montarlo, escribí este artículo para que nadie mas se perdiera en el proceso.

     

    Micro documento sobre como montar una red de túneles cifrados en nuestro nodo con OpenVPN, para uno, o mas túneles cifrados, sobre red local o inet. ( Con clientes, o con otros nodos )

  • Cómo montar una red wireless con Linux

    Redes Wireless con Linux

    Las redes Wireless 802.11b, de 11 Mbps están convirtiéndose en una opción muy válida y popular en los últimos meses. Además que los precios han bajado notablemente, dan una enorme comodidad si tenemos varios ordenadores en casa y el soporte que hay en Linux es muy potente y variado.

  • Cómo instalar NIS + NFS

    Procedimientos

    En el Servidor para poner NIS

    1. domainname nombre-de-dominio
    2. cd /var/yp
    3. mkdir nombre-de-dominio
    4. service portmap restart
    5. service ypserv restart
    6. service ypbind restart
    7. make
    8. En el servidor deben de estar seleccionados los servicios para arrancar desde inicio                                                                                                                                             
      • ypserv
      • ypbind
      • portmap
                        
                                
                      

    En el cliente para escuchar NIS

    1. En gnome seleccionar Aplicaciones -> System settings -> Authentication
    2. Marcar la casilla "Enable NIS Support"
    3. Seleccionar "Configure NIS..."
    4. En NIS Domanin escribir el nombre del dominio NIS creado
    5. En NIS Servidor ponr la ip del Servidor NIS
    6. En el servidor deben de estar seleccionados los servicios para arrancar desde inicio                                                                           
      1. ypbind
      2. portmap                                                  


    Ahora la parte NFS del Servidor

    1. como root cd /home
    2. mkdir nfs (aqui van a quedar todos los homes de los usuarios creados)
    3. cd /etc
    4. vi exports
    5. Agregar la siguiente linea

      /home/nfs rango.de.ips.de.red(rw,sync,no_root_squash)
      En mi caso particular la linea se ve asi:
      /home/nfs/ 192.168.1.*(rw,sync,no_root_squash)
    6. Reiniciar el demonio nfs con service nfs restart
    7. Los servicios que deben inicarse en el arranque para NFS son                                                                                      
      • netfs
      • nfs
      • nfslock
      • portmap

                         

                             

    Ahora la parte NFS en el cliente

    1. como root cd /etc
    2. vi fstab
    3. agregar la siguiente linea
      192.168.1.1:/home/nfs   /home/nfs    nfs   defaults    0 0
    4. mount -a
    5. Los servicios que deben inicarse en el arranque para NFS son                                                                                                          
      • netfs
      • nfs
      • nfslock
      • portmap

                                            

                          

    Agregando usuarios en el Servidor NIS

    La parte importante de agregar los usuarios en el NIS Servidor, es que, su directorio home no debe de quedar dentro de /home, sino dentro de /home/nfs/usuario.

    Con la utileria "Users & Groups", al agregar al usuario ejemplo, le decimos que su direcotorio personal quede dentro de /home/nfs/ejemplo.

    En el Servidor, es importante loggearse como el usuario recien creado, para que despues sea disponible en cualquier equipo de la red.

    Despues de loggearse y salir de la session como el usuario recien creado, el siguiente paso es (como root)

    1. cd /var/yp
    2. make
    3. service portmap restart
    4. service ypserv restart
    5. service ypbind restart
    6. Ir a la maquina cliente y loggearse como el usuario recien creado en el NIS Servidor. Todo debe de funcionar.


    Fuente:

    Kwame
    daniel arroba informatux.net
    http://www.informatux.net/
    Original: LinuxParaTodos

    Copyright.

    © 2003 Kwame. Se permite la libre distribución y modificación de este documento por cualquier medio y formato mientras esta leyenda permanezca intacta junto con el documento y la distribución y modificación se hagan de de acuerdo con los términos de la Licencia Pública General GNU publicada por la Free Software Fundation; sea la versión 2 de la licencia o (a su elección) cualquier otra posterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

    Technorati Tags:
    >>

28
Ago

Quartz Extreme

Escrito por J. Llorente

PDFImprimir E-mail
Acerca de este documento


En este reportaje vamos a ver que es Quartz Extreme, y que ventajas aporta.
Quartz Extreme, no es más que el nombre que Apple da a su nuevo gestor de
ventanas acelerado por hardware que incorpora desde Mac OS X 10.2

Nota legal

Este reportaje ha sido escrito por Fernando López Hernández para
macprogramadores.org y se publica en macnux.com con su debida autorización,
de acuerdo a las leyes internacionales sobre propiedad intelectual, a la Directiva
2001/29/CE del Parlamento Europeo de 22 de mayo de 2001 y al artículo 5 de la
Ley 22/1987 de 11 de Noviembre de Propiedad Intelectual Española, el autor
prohíbe la publicación de este documento en cualquier otro servidor web, así
como su venta, o difusión en cualquier otro medio sin autorización previa.
Sin embargo el autor anima a todos los servidores web a colocar enlaces a
este documento. El autor también anima a cualquier persona interesada en
conocer Quartz Extreme a bajarse o imprimirse este reportaje.

Madrid, Julio 2004
Para cualquier aclaración contacte con:
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla

Conceptos previos


Antes de explicar en que consiste Quartz Extreme, vamos a explicar primero
como está implementado el sistema de ventanas de OS X.
El sistema de ventanas de Apple consta principalmente de cinco subsistemas
gráficos:

Quartz 2D. Cuyo nombre formal es “Core Graphics Rendering” es una
librería de dibujo en 2D que acepta instrucciones de dibujo en forma de
figuras lógicas (líneas, círculos, botones, comboboxes, texto...) y transforma
estas entradas en una salida en varios formatos de salida (PostScript, PDF y
por supuesto bitmaps). En el resto de este artículo supondremos que la salida
la genera en forma de bitmap, pero el lector debe recordar que la salida
también la puede generar en forma de, por ejemplo, PDFs, lo cual es muy útil
para imprimir esas salidas.

En el documento oficial de Apple “Mac OS X System Overview”, este
subsistema se describe así:

[Quartz 2D's] APIs allow you to create text and images by specifying a sequence of
commands and mathematical statements that place lines, shapes, color, shading,
translucency, and other graphical attributes in two-dimensional space. You do not
need to specify the attributes of individual pixels. As a result, a shape can be
efficiently defined as a series of paths and attributes rather than as a bitmap.

QuickDraw. Es la antigua librería gráfica de Mac OS Classic, aunque en OS X
esta librería en gran parte se limita a llamar a Quartz 2D para que le realice
las operaciones de dibujo.

OpenGL. Es la librería de dibujo 3D de OS X. Esta librería se basa en el
estándar OpenGL de Silicon Graphics International (SGI). Otros muchos
sistemas operativos la utilizan, una excepción destacable es Windows que
tiene su propia librería de dibujo llamada Direct X (aunque lógicamente
podemos instalar OpenGL en Windows como una aplicación más).

QuickTime. La librería de Apple para producir video de alta calidad.

Quartz Compositor. Todos los datos en forma de bitmaps que producen
Quartz 2D, QuickDraw, OpenGL y QuickTime se pasan a Quartz Compositor
para ser mostrados en la pantalla. Es decir, Quartz Compositor (formalmente
llamado “Core Graphics Services”) está implementado como un servidor de
ventanas implementado en un sólo proceso y es el responsable de manejar
todas las ventanas de la pantalla.

Cada ventana tiene asociado un bitmap (creado por la aplicación dueña de la
ventana) y que modifica usando las APIs de dibujo. El servidor de ventanas
produce el resultado final en pantalla componiendo todos los bitmaps de las
diferentes ventanas de acuerdo a las coordenadas y capa que ocupan.
En concreto en “Mac OS X System Overview” se describe como:

[The window server] composites and recomposites each pixel of an application's
window as the window is drawn, redrawn, covered, and uncovered. Each window is
represented as a bitmap that includes both translucency (alpha channel) and antialiasing
information. The bitmap serves as a buffer, allowing the window server to
"remember" an application's window contents and to recomposite it without the
application's involvement.

Otra misión del gestor de ventanas es enviar los eventos (movimientos y
pulsaciones de ratón así como pulsaciones de teclado) a su correspondiente
aplicación, así como gestionar el cursor del ratón.

Es decir, en resumen, la aplicación envía comandos de dibujo a las diferentes
APIs, estas APIs producen bitmaps, y el servidor de ventanas (Quartz
Compositor) combina estos bitmaps para obtener el contenido final de la
pantalla.

Arquitectura del sistema de ventanas de Mac OS X

Existe un problema importante de rendimiento con la arquitectura de Mac OS
X, que es que la cantidad de memoria que usa el servidor de ventanas crece
linealmente con el número de ventanas que tenemos abiertas.

En arquitecturas más tradicionales (como puedan ser el sistema de ventanas
de Microsoft Windows o el de XWindows) este problema no existe porque
cuando estos sistemas se diseñaron el mantener en memoria un bitmap con
la imagen de cada una de las ventanas era simplemente inviable. En estas
arquitecturas, lo que se hace es que cada vez que el servidor de ventanas
quiere dibujar una ventana, este manda una orden a la aplicación dueña de la
ventana para que la redibuje. Obsérvese que aquí existe un trade-off entre
velocidad y memoria, ya que esta solución tradicional aunque consume
menos memoria, es más lenta.

En las arquitecturas tradicionales existe un frame buffer del tamaño y
resolución de la pantalla (p.e. 1024x768 a 32 bits de profundidad de color) en
el que todas las ventanas dibujan. Este frame buffer se almacena en la
memoria de video.

Para evitar el molesto efecto que puede experimentar el usuario de ver como
se dibuja en pantalla, se utiliza una técnica llamada doble buffer, que
consiste en dibujar primero en memoria y luego volcar este contenido a la
memoria de video. Este doble buffer puede estar o bien en memoria
convencional o bien en la memoria de video (si tiene suficiente memoria).
Según esto es fácil calcular la memoria que requiere un sistema de ventanas
tradicional. P.e. 2 frame buffers x 1024 píxeles x 768 píxeles x 32 bits por
píxel = 6.291.456 B, es decir, 6 MB.

Sin embargo, en la arquitectura de Mac OS X, el tamaño de la pantalla no
determina la memoria necesaria, sino que lo determina el número de
ventanas que tengamos creadas (que suele ser mucho mayor), cada una de
ellas con su bitmap, que puede ser del tamaño de la ventana (o mayor si la
ventana tiene scroll).

Hasta Mac OS X 10.1 estos bufferes de bitmap se almacenaban en memoria
convencional, dejando sólo en memoria de video la memoria del servidor de
ventanas. Con la llegada de Mac OS X 10.2, va a ser posible (si la tarjeta de
video tiene suficiente memoria) mover los bufferes de ventana a la tarjeta de
video, evitando todo el trasiego de información de memoria convencional a la
tarjeta.

De aquí viene el hecho de que Quartz Extreme exija disponer de 16 MB de
RAM en video (32 MB recomendables).

¿Qué ventana tiene entonces esta nueva arquitectura? Las ventajas son
básicamente dos:

Por un lado se consigue mayor velocidad, siempre que haya memoria
suficiente (esta ventaja se conseguía también en Mac OS X 10.1, ya que,
aunque el bitmap estaba en memoria convencional, no había que repintar la
ventana cada vez que se invalidaba).

Por otro lado se consiguen efectos gráficos que hasta ahora eran prohibitivos.
Estamos hablando de las transparencias y sombreados (véase Figura 1), un
efecto tan conocido como característico de OS X. Para ello, en vez de que el
servidor de ventanas coja sin más los píxeles de las ventanas y los vuelque en
la pantalla, el servidor de ventanas puede combinar los píxeles de varias
ventanas teniendo en cuenta el factor de transparencia de cada ventana.


Figura1: Ejemplo de transparencias y sombreados en Mac OS X 10.2

Quartz Extreme

Hasta Mac OS X 10.1 Quartz Compositor operaba completamente por
software usando la CPU (Central Process Unit) para posicionar las ventanas
en capas y enviar el resultado final a la tarjeta de video, con lo que la tarjeta
de video actuaba como un almacén temporal de la imagen que estábamos
mostrando en pantalla.

Con la llegada de Mac OS X 10.2 y de Quartz Extreme, el gestor de ventanas
se mueve al GPU (Graphics Process Unit), dejando a la CPU más libre para
acometer otras tareas.

¿Qué es entonces Quartz Extreme?. Quartz Extreme no es más que una
nueva implementación de Quartz Compositor usando OpenGL, en concreto
usando una textura de OpenGL. Por eso a Quartz Extreme se le llama
informalmente QuartzGL.

Cuando una aplicación usa una API de dibujo para emitir un comando de
dibujo, la API produce un bitmap (posiblemente basado en una imagen
vectorial), y la textura OpenGL, que no es más que una aplicación, coloca ese
bitmap en la textura usando los comandos de dibujo de OpenGL.

De esta forma, el servidor de ventanas no es más que una aplicación OpenGL.
Eso si, es la única aplicación OpenGL que no envía su salida al servidor de
ventanas, porque esa aplicación es en si el servidor de ventanas.

La Figura 2 y Figura 3 muestran la diferencia entre Quartz Compositor antes y
después de la llegada de Quartz Extreme. Obsérvese la proliferación de línea
rojas (hardware) en Quartz Extreme. Con Quartz Extreme, lo único que no se
ha pasado al GPU ha sido la implementación de Quartz 2D, QuickDraw y
QuickTime, que sigue realizándose en la CPU (una posible mejora para
futuras versiones). OpenGL si que utiliza la GPU de la tarjeta de video.



Figura 2: Sistema de video antes de Quartz Extreme


Figura 3: Sistema de video con la llegada de Quartz Extreme

Otra importante mejora que se aprecia en Mac OS X 10.2 ha sido respecto al
scroll. Antes cuando hacíamos un scroll se repintaba el contenido de toda la
ventana, es decir, se volcaba del buffer de la ventana a la memoria de video
(era especialmente apreciable al ver páginas web con un browser). Jaguar
simplemente deslaza el contenido de la memoria de la tarjeta de video (lo
cual se podría haber hecho por hardware sin necesidad de Quartz Extreme), y
después se mueve, de buffer de ventana a la memoria de video, sólo la nueva
porción de la ventana.

Última versión del archivo original aquí.

Madrid, Julio 2004
Fernando López Hernández
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla

Agregue su comentario

Tu Nombre:
Asunto:
Comentario:

Últimos contenidos

Facebook conecta

Total visitas

3741970
38.107.179.230
UNITED STATES
US

Quien está en linea

Tenemos 34 invitados conectado(s)

Conectan

Locations of visitors to this page

Nos visitan desde