Dev Kit de PSP 2

Indagando por el bajo mundo del internet encontré estas imágenes:


Al parecer es el Dev Kit de PSP2, tiene 2 cámaras, una al frente otra detrás, justo como el DSi, una pantalla de HD, un supuesto trackpad como el de las Laptop, un micrófono y 2 joysticks.

Esperemos que este no sea el modelo definitivo, se parece demasiado al PSPGo y no es muy de mi agrado, pero en fin con las especificaciones técnicas de un probable procesador Cell y tanta RAM como un 360 son bastante jugosas.

(Vía: VG247)

¿Mebibytes? ¿Es broma?

No tiene mucho que mantuve una discusión con unos amigos, acerca de los Megabytes y Mebibytes más sin embargo parecía que nadie había escuchado aquél término tan extraño, ni me creían.

Para los que ya tengan conocimientos acerca de la materia, es tan fácil como decir:

Un Mebibyte (MiB) es igual a 2^10 (1024) Kibibytes (KiB) que es igual a 2^10 bytes ó 1024 bytes.

Un Megabyte (MB) es igual a 10^3 (1000) Kilobytes que es igual a 10^3 bytes ó 1000 bytes.

Ahora, para los que no sean tan familiarizados, el bit es la unidad básica con la que se mide (comúnmente) la información digital, viene de la contracción de los términos “Binary Digit” o “Dígito Binario” (Gracias a Iván por el dato), cada bit puede ser o un 1 (UNO) ó un 0 (Cero), así es, los famosos unos y ceros informáticos, el sistema binario o base 2. Cada 8 bits se conforma un “BYTE”, que es un solo carácter (una letra, un símbolo o un número).

Al decir que la computadora usa la base 2, significa que las tareas se les harán mucho más fáciles de llevar al calcular con múltiplos de dos, por ello siempre veremos cualquier artilugio digital en múltiplos de 2 (Memorias de 128, 256, 512, 1024 y demás…), es algo así como para los humanos que se nos hace más cómodo usar múltiplos de 10 (Sistema Base 10 o decimal).

Aquí viene lo bueno, cuando tienes un montón de información, la computadora lo verá todo con base binaria, por ejemplo tienes una canción MP3 de 3 minutos aprox. que pesa 4,242,759 bytes:

4,242,759 bytes son 4143.31934 kibibytes ó 4.04621029 mibibytes.
4,242,759 bytes son 4242.759 kilobytes ó 4.242759 megabytes.

Dirán “¿Que diferencia es eso? No me importa, casi ni se nota”, pero cuando se compran un disco duro de 500 GIGABYTES, les están dando menos de lo que ustedes esperan, miren:

500 gigabytes son 500,000,000,000 bytes es decir que enrealidad le caben unos 465.661287 gibibytes de información.

Una estafa total, ¿verdad que ya es una gran diferencia?

Y ni hablemos de los famosos “Megabits” que usan tanto al venderte el internet, la comparación es:

1 megabit = 106bits = 1000 kilobits = 1000000 bits

En pocas palabras, tu internet de “1 mega” te permite bajar:

1,000,000 bits/s ó 125,000 bytes/s, mejor dicho 0.11920929 mebibytes cada segundo.

MUCHO menos que “un mega” cada segundo, no te tardas 4 segundos en bajar la canción antes mencionada, si no 33.9 segundotes.

Así que desde ahora yo sé que empezarán a mirar con otros ojos a TODO lo que les hable de bytes, muahahaha.

¿En verdad necesitamos tantos nucleos en nuestro procesador?

Navegando por los rumbos que acostumbro me encontre con éste escrito de A. David Garza Marín, en el cual nos hace comprender que tanto necesitamos n número de núcleos, ¿en realidad nuestras necesidades informáticas ameritan cierto número de núcleos?. Veámoslo…

Y como en algún momento sucedió, ahora está sucediendo con los multinúcleos. Por desgracia, el marketing se encarga de prostituir lo que es una buena idea de inicio, y se va al extremo de la expresión “más es mejor”. Tal vez más sea mejor, pero no es el común denominador. Más vitaminas puede derivar en una hipervitaminosis. Más velocidad en un vehículo puede derivar en un choque mortal. Más… más… más… Tal vez sería bueno empezar a reflexionar en una frase que reza: Menos es más.

En algún momento en la tecnología de procesadores, se tomó la decisión de empezar a prostituir los hercios. ¡Claro! Como había dado tan buen resultado hablar de hercios como sinónimo de velocidad, las empresas fabricantes de procesadores se dieron a la tarea de ofrecer más hercios, aunque ello no necesariamente redundara en más rendimiento. La primera prueba de eso en la tecnología x86 la estableció Cyrix con sus procesadores 5×86, 6×86 y MII, donde con una menor frecuencia de reloj se demostraba un rendimiento impresionante (en su tiempo) que podía desbancar a un Pentium o un K5 (en su primera etapa). Ya posteriormente, AMD también se subió a ese mismo barquito y presentó la segunda etapa de procesadores K5 (y subsecuentes) que con menor cantidad de hercios hacía más que procesadores Pentium de la época (por ejemplo, un K5-PR166 tenía una frecuencia de reloj real de 116.7MHz, pero con un rendimiento equiparable a 166MHz de un Pentium). Las razones son muchas, pero para no caer en detalles, hay más que hercios en un procesador. Esto es similar a un auto: hay más que RPM del motor para alcanzar mayor velocidad.

Sin embargo, la carrera de los hercios llegó a límites absurdos hasta que el calor ya no se pudo controlar. Entonces, las empresas que llevaron al absurdo a los hercios, de repente tomaron el mismo camino que, en su momento (y varios años antes) ya habían tomado Cyrix y AMD (tristemente, Cyrix no existe más): Reducir los hercios pero ofrecer el mismo o mayor con un proceso de perfeccionamiento en el flujo de instrucciones/datos para ofrecer tecnología que reduzca el consumo de energía y la generación de calor. Y es que así es: entre más hercios, mayor consumo de energía eléctrica y, por ende, mayor generación de calor.

Después de ello, AMD creó la tecnología multinúcleo en 2005. A partir de allí, y hasta la fecha, se ha dado una carrera por aumentar núcleos (reales o virtuales, como algunos hacen) para convencer de un posible mayor rendimiento. Nada más falso. Más núcleos no necesariamente significa mayor velocidad. Y es que todo depende de qué use y cómo lo use.

Para darnos una idea de lo anterior, imagínese en el supermercado: ha terminado de hacer sus compras, y se dirige a la caja a pagar… La caja tiene una fila enorme, y avanzará al mismo ritmo que la cajera o cajero (así como la cantidad de productos adquiridos por los clientes enfrente de Usted) tenga. Así, podría usted estar formado por un largo rato (cuanto y más si hay algún producto que no tiene precio, y hay que buscar el precio, o hay alguna cancelación, o hay algo que entorpezca aun más el flujo de la fila). Definitivamente, no es una experiencia muy buena. Bueno, pues ése es precisamente el funcionamiento de un procesador (CPU) x86: No hay por dónde más pasar, sino por la única fila que hay, y esperar que la persona de la caja sea lo suficientemente eficiente para realizar los cobros con celeridad.

¿Cómo podría acelerarse ello? Podríamos intentar poner a dos personas en la caja para ver si podemos atender a dos clientes al mismo tiempo. ¿Tiene sentido? Yo no lo creo. Sigue siendo una sola fila con una sola caja. No es posible agilizar la atención a los clientes. Aun cuando se intentaran poner dos filas para llegar a la sola caja, sigue siendo una sola caja. Y si intentáramos poner un modo de pausa en la caja para cobrar una parte de productos a un cliente, y otra parte a otro cliente, de todas formas no se agilizaría porque sigue siendo una sola caja. Esto es lo que se propone cuando se habla de núcleos virtuales: una sola caja, con capacidad de atender una sola cosa a la vez, pero que se hace creer que tiene la oportunidad de atender a dos clientes. Como se puede apreciar, esto no es, precisamente lo que nosotros desearíamos.

La solución REAL sería poner otra caja completa, con su propia fila de clientes, su propio cajero, su mesa y su máquina registradora. Entonces sí, se puede atender al doble de clientes y la EFICIENCIA se duplica (ojo, no se duplica la velocidad, se duplica la eficiencia). ¿A qué me refiero con que se duplique la eficiencia? a que cada cada cajero tendrá su propia efiiencia para atender a cada cliente (no ha aumentado su velocidad de atención), solo que ahora se atiende al doble de clientes por ser dos cajas. Esto funciona bien cuando hay más de un cliente que quiere ser atendido, pero, ¿qué pasa cuando sólo hay un cliente? ¿tener dos cajas hará que la atención a ese cliente sea más rápida? La verdad es que no, dado que el cliente usará solo una caja (a menos que ese cliente tenga dos carritos llenos y, por celeridad, pase un carrito por una caja, y otro carrito por otra caja con ayuda de alguien).

En la inmensa mayoría de los casos, los clientes solo tienen un carrito, y solo usan una caja, y eso es lo mismo que pasa con los programas en una computadora personal: solo ocupan un núcleo. Si se usa solo un programa, es prácticamente lo mismo hacerlo en una máquina con un procesador de un núcleo, que en uno de dos o más núcleos (REALES, no virtuales). En realidad, los núcleos se aprovecharán cuanto más aplicaciones haya en ejecución en una computadora personal. En un gran número de casos, dos núcleos harán un muy buen trabajo para atender las necesidades del usuario promedio. Tres núcleos podrán atender necesidades de multitarea muy exigentes (por encima del promedio) y cuatro núcleos estarían orientados a usuarios extremadamente exigentes con un grado enorme de requerimientos (como diversas máquinas virtuales ejecutándose al mismo tiempo). Seis núcleos estarían orientados a requerimientos extremos de cómputo, con aplicaciones exigentes de múltiples subprocesos (clientes con más de un carrito de enseres) donde la eficiencia en la respuesta es vital, y, finalmente, ocho núcleos sería para altísimos requerimientos de subprocesos donde la respuesta ante varias aplicaciones debe ser lo más ágil posible y con la menor posibilidad de atascamientos por “clientes” que entorpezcan el avance de la fila. En realidad, los usuarios para estos dos últimos casos no son comunes.

Cabe hacer notar que no solo hace falta tener cajas para poder agilizar el paso de los programas (o clientes en un supermercado). Volvamos al supermercado: imagínese que el supermercado tenga muchas cajas, pero carezca de estacionamiento. Si nos fijamos en los supermercados, es imperativo que tengan un estacionamiento para que las personas que llevan su auto (un gran número) puedan fácilmente cargar su auto con los enseres adquiridos. Ahora, si no tiene auto, imagínese que el supermercado está en un lugar de difícil acceso. Difícilmente puede pensarse que ese supermercado llegase a ser exitoso (sin estacionamiento, y además en un lugar de difícil acceso). Si no hay una forma de que el supermercado tenga un fácil acceso, difícilmente puedo pensar que el supermercado (por muy equipado que esté) tenga alguna posibilidad de éxito.

El estacionamiento sería equivalente a la memoria RAM, y el fácil acceso sería equivalente a lo que conocemos como Bus en la computadora. Lo mismo pasa con un procesador serial (CPU x86): Un procesador multinúcleo no podrá funcionar eficientemente si no tiene un buen espacio de estacionamiento (RAM) y un buen bus (fácil acceso). Un moderno procesador x86-64 con un sistema operativo de 64 bits (como los que ahora se están proveyendo) requiere de 4GB de RAM (la regla de oro son 2GB por cada núcleo en 64 bits). Así, en una computadora con 1 núcleo, lo ideal son 2GB, 2 núcleos, 4GB, 3 núcleos, 6GB, 4 núcleos, 8GB, 6 núcleos, 12GB y 8 núcleos, 16GB.

En cuanto a los buses, cuanto más amplios para acceder a la CPU, mejor. Son mejores los buses de 3GT/s en adelante. Ello permitirá que la CPU reciba y envíe datos o códigos lo antes posible, y permita un adecuado flujo (lo mejor posible).

Así, el asunto de los multinúcleos va mucho más allá de simplemente tener más y ya… Si alguien le ha dicho que sólo con tener más núcleos la máquina será mejor, sin observar que el resto de las características esté adecuadamente configurado, su experiencia podría no mejorar, sino, al contrario, empeorar por no tener un equipo adecuadamente equilibrado. Quiero resaltar que el procesador o CPU NO ES lo más importante de la computadora, sino un componente para poder tener un equipo eficiente. El rendimiento de la CPU por sí solo no es suficiente para una moderna computadora, por muchos núcleos que tenga. Su gran problema es su esquema de procesamiento serial (las filas en las cajas) que le caracterizan. Ya hablaremos de los procesadores en paralelo y su gran importancia en los modernos equipos de cómputo. ¡Nos seguimos leyendo!

Fuente: http://adgarza.blogspot.com

En ustedes esta la última decisión, comprar un hexacore, o ser objetivos y adquirir un quadcore, ya siendo exigentes.

IPv4 se esta acabando…

Algunos ya estaran enterados, otros no. IPv4 se está acabando, se calculo que en el mes de Octubre (que ya termino) quedaban menos del 5% de direcciones. ¿A qué se debe esto?, primero conozcamos más a fondo IPv4:

Protocolo de Internet versión 4 (IPv4) es la cuarta revisión en el desarrollo del Protocolo de Internet (IP) y es la primera versión del protocolo en ser ampliamente difundida. Usa direcciones de 32 bits (4 bytes), limitándola a 232 = 4,294,967,296 posibles direcciones únicas. Sin embargo, algunos están reservados para propósitos especiales como redes privadas (~18 millones de direcciones) o para multidifusión (~270 millones de direcciones). Esto reduce el número de direcciones que potencialmente se pueden asignar para el enrutamiento de la Internet pública.

Como sabemos, el crecimiento de la internet no para, dandole así dolores de cabeza a IPv4. Las causas mas sobresalientes son los dispositivos móviles, conexiónes always-on, demografía de la internet y el uso ineficiente de direcciones. Esto ha sido motivo de preocupación desde los 80´s, así que han surgido diversas tecnologías nuevas para darle un poco más de tiempo a esta revisión 4, como lo son el NAT, uso de redes privadas, DHCP, hosting virtual, reenumeración de redes entre otros. Estas no han sido suficientes y  en 1996 se empezó a definir lo que sería IPv6.

El Protocolo de Internet versión 6 (IPv6) es una nueva versión de IP, definida y diseñada para reemplazar a la versión 4 (IPv4), que actualmente esta implementado en la gran mayoría de dispositivos que acceden a Internet. IPv6 admite 340,282,366,920,938,463,463,374,607,431,768,211,456 direcciones únicas (2128 ó 340 sextillones de direcciones), cerca de 6.7 × 1017 o 670 mil billones de direcciones por cada mm2 de la superficie de la tierra.

Empresas grandes como Google y el gobierno de algunos países ya estan implementando IPv6 ante la inminente terminación de las direcciones en la revisión 4. Se pronostica que para inicios de 2011 empieze la revolución IPv6, pero aun nada esta asegurado. Lo único que se me ocurre es llamar al 01 800 123…, que diga, a el ISP y preguntar acerca de la implementación de la versión 6 en mi localidad. Varios programas ya estan dando soporte, como lo es Bit Torrent. Así que para allá vamos IPv6.

Distribucion GNU/Linux Propia

Antes de empezar este post, les pido una disculpa por no haberme presentado en mis posts anteriores; Soy DeoZamoX, un friki/nerd, fanático del retrocomputing, abandonware, videojuegos en general, programación y cualquier tipo de frikadas.

Un proyecto personal ha sido desarrollar mi propia distribución de GNU/Linux, debido a mi disconformidad con las que actualmente abundan por ahí, famosonas como Ubuntu y derivadas, Slax, Suse y demás que caen en ser muy pesadas y utilizar esos molestos paquetes que parecen ya ejecutables de Windows.

Hice un primer intento, desafortunadamente perdí mis datos en una formateada y rehíce todo unos años después, he estado trabajando desde una máquina virtual, en Windows XP Pro, (Se preguntarán, ¿por que Windows? Simple: Videojuegos) y gracias a esto me he visto con algunos problemas debido a la configuración del kernel, pero después les platicaré de eso.

Para desarrollar esta distribución, me basé en el libro de Linux from Scratch, de Gerard Beekmans, Et ál., que nos proporciona de manera fácil de entender y detallada el paso a paso de todo lo que se hace, ya tengas experiencia en sistemas basados en Unix o seas primerizo, mira este es un ejemplo:

“SysVinit (al que llamaremos “init” a partir de este momento) se basa en un esquema de niveles de ejecución. Hay 7 (numerados del 0 al 6) niveles de ejecución (en realidad existen más, pero son para casos especiales y es raro utilizarlos. Mira init(8) para más detalles) y cada uno de ellos indica lo que debe hacer el sistema durante el arranque. El nivel de ejecución por omisión es el 3. He aquí una breve descripción de los distintos niveles de ejecución como suelen implementarse:

0: parada del sistema
1: modo monousuario
2: modo multiusuario sin red
3: modo multiusuario con red
4: reservado para personalizar, si no, hace lo mismo que el 3
5: Igual que el 4. Normalmente se utiliza para iniciar el entorno
gráfico (mediante xdm de X o kdm de KDE)
6: reinicio del sistema”

Esta traducción la tomé del grupo “es.comp.os.linux.*“, sí, tradujeron todo el libro para los que lo suyo no sea el idioma anglosajón.

En pocas palabras, es un buen manual para los que quieran entrar al mundo de GNU/Linux y también para los que necesiten desarrollar un verdadero sistema operativo en base a sus necesidades.

Si los convencí, aquí les van los enlaces:

Enlaces del libro en inglés:
http://www.linuxfromscratch.org/lfs/download.html

Enlaces del libro traducido por es.comp.os.linux:
http://www.escomposlinux.org/lfs-es/

Otra cosa, el proyecto LFS desarrolló un Live-CD con todos los sources, proporciona un Host perfecto para desarrollar el sistema, incluye los scripts ALFS (Automated Linux From Scratch) para realizar todo automáticamente (No lo recomiendo puesto que te pierdes de la mayor parte del trabajo y aprendizaje) y los libros LFS en inglés.

Descarga el LFS LiveCD
http://www.linuxfromscratch.org/livecd/download.html

Espero que desarrollen su sistema LFS exitosamente y son bienvenidos a comentar sus dudas o sugerencias, así también si ya terminaste tu proyecto y quieres que lo publiquemos, con gusto lo haremos.