La mayoría de usuarios estadounidenses elegirá un iPhone como su próximo smartphone, según una encuesta

No es ningún secreto que Estados Unidos es uno de los principales mercados de Apple, al fin y al cabo, se trata de su hogar —y del de Google, cuyas ventas están creciendo mucho también–, y de un mercado en el que los usuarios gastan bastante dinero de media en sus terminales. Ahora, a pesar de que Apple haya recortado su previsión de ventas para este año 2019 un estudio

Entra en Andro4all para leer el artículo completo

Puedes unirte a nosotros en Twitter, Facebook o en Google+

¡Suscríbete a nuestro canal de YouTube!

Publicado recientemente en Andro4all

from Andro4all https://ift.tt/2EkJqoP
via IFTTT

Unity prepara un nuevo compilador en C# llamado Burst

Unity es un motor de juego extremadamente popular, especialmente por sus herramientas de edición completas y fáciles de usar.

Sin embargo, el motor debe seguir la evolución de las máquinas: durante diez años, los procesadores no aumentan en frecuencia, sino en número de núcleos. En otras palabras, para explotar el nuevo rendimiento disponible, los juegos deben ejecutar su código en diferentes núcleos, a través de diferentes hilos.

Sin embargo, desde el momento en que la tecnología está disponible, pocos juegos realmente tienen éxito. De hecho, los problemas para escribir dicho código son numerosos.

Para evitar estas desventajas, es posible seguir algunos conjuntos de reglas. Esta es una de las razones por las que Unity está trabajando en un nuevo compilador en C #, llamado Burst con el cual, si no se siguen estas reglas, se producirá un error de compilación.

Para lograr esto, el código debe escribirse como una colección de tareas a realizar. Cada una de estas tareas realiza algunas transformaciones en los datos.

El programador debe especificar las áreas de memoria a las que puede acceder de solo lectura y aquellas en las que desea leer y escribir datos: el compilador se asegurará de que no use nada fuera de estas declaraciones.

Luego, un programador determina la mejor manera de realizar estas tareas, en tiempo real, con esta información adicional: puede asegurarse de que ninguna tarea escribirá datos donde otra persona intente leer o escribir, por ejemplo.

Burst no solo tiene el objetivo de facilitar la programación paralela: también se utiliza en las partes más críticas (desde el punto de vista del rendimiento) del código de Unity.

Hasta ahora, estos estaban escritos en C ++, pero los compiladores actuales no son del todo satisfactorios.

De hecho, si un desarrollador desea que un bucle se vectorice, no tiene garantía de que el compilador lo hará, debido una adición entre dos vectores, por ejemplo, el compilador debe probar formalmente que, en todos los casos posibles e imaginables, los dos vectores no corresponden a las mismas direcciones en la memoria).

¿Por qué Burst y no un compilador existente?

El rendimiento es un punto crítico si un bucle no es vectorizado es un problema real que debe solucionarse rápidamente.

Además, el binario generado debe ser seguro dado que los errores de desbordamiento de búfer y las referencias peligrosas se deben descubrir lo antes posible, con mensajes de error reales en lugar de comportamientos indefinidos (que causan muchos problemas de seguridad).

Ante estas necesidades planteadas, aún es necesario elegir el idioma de entrada de este compilador: ¿una variante o un subconjunto de C, C ++, C # o un nuevo idioma?

Un nuevo lenguaje no es una buena opción ya que en un principio evitas tener que entrenar a las personas con esta nueva herramienta.

C # tiene la preferencia desde el punto de vista de los usuarios, ya que ya lo utilizan el motor del juego se codificará en el mismo idioma que los juegos.

Además, C # ya tiene un ecosistema muy grande, por el contrario, C ++ todavía sufre de su herencia de C, con no siempre obvias inclusiones por determinar y enormes tiempos de compilación, defectos que C ++ 20 corrige parcialmente, a pesar de su obsesión con el rendimiento.

Se tomó la decisión de continuar con C #, pero al eliminar una serie de elementos que dificultan el rendimiento, tales como la biblioteca estándar, en su mayor parte, la recolección de basura y los permisos.

Burst realmente no funciona como un compilador completo puesto que no toma como entrada una gran cantidad de código, sino solo el punto de entrada a un bucle crucial.

Se limita a compilarlo como una función, así como a todo lo que llama. El nivel de optimización es extremadamente alto: dado que Burst se enfoca en ciertas partes del código, puede pasar tiempo.

La primera iteración de Burst, con HPC # y el sistema de tareas vino con Unity 2018.1.

El código generado es a veces más rápido que la versión anterior en C ++, a veces más lento, pero los desarrolladores confían en que siempre lograrán al menos el mismo nivel de rendimiento que C ++.

Fuente:  blogs.unity3d.com

El artículo Unity prepara un nuevo compilador en C# llamado Burst ha sido originalmente publicado en Linux Adictos.

from Linux Adictos https://ift.tt/2Vn8gev
via IFTTT

DMA: detectada una nueva vulnerabilidad de seguridad

Se ha detectado una nueva vulnerabilidad a través de DMA (Direct Memory Access). Este tipo de ataques por DMA no son nada nuevos, ya se conocen desde hace años, pero ahora un grupo de investigadores de seguridad han detectado una nueva amenanza que afrecta a los principales sistemas operativos: GNU/Linux, FreeBSD y otros BSDs, Microsoft Windows y Apple macOS. El ataque que aprovecha dicha vulnerabilidad puede eludir los mecanismo de protección establecidos.

Mediante la conexión a la computadora de un dispositivo malicioso conectado en caliente, pueden hacerse estos ataques. Los dispositivos pueden ser de lo más variado, desde un adaptador de red USB, un ratón, un teclado, un pendrive o disco duro externo, una tarjeta gráfica externa, impresoras, etc. Pero afectan concretamente al puerto Thunderbolt 3, es decir, por tanto también al USB-C en el que se basa. Thunderbolt permite que los periféricos conectados a través de él puedan eludir políticas de seguridad del sistema operativo y la memoria del sistema, pudiendo acceder por DMA a ciertas direcciones de memoria (leer y escribir) que deberían ser reservadas. En esas posiciones de memoria, podría haber datos muy privados como contraseñas almacenadas, datos bancarios o de inicios de sesión de otros servicios importantes, valores privados almacenados por el navegador, etc.

Nuevamente el S.O. usa la unidad IOMMU (unidad de gestión de memoria de E/S) para bloquear otros ataques por DMA anteriores, haciendo que los dispositivos periféricos legítimos no accedan a ciertas posiciones de memoria y solo permitiéndoles que tengan acceso a las que les corresponden. En cambio, mediante un apila llamada Thunderclap se puede engañar a esta protección y pasarla por alto para fines ilícitos.

El artículo DMA: detectada una nueva vulnerabilidad de seguridad ha sido originalmente publicado en Linux Adictos.

from Linux Adictos https://ift.tt/2VrQMhh
via IFTTT

Explicación sencilla del arbol de directorios de GNU/Linux

Decía el gran Dennis Ritchie que “UNIX es muy simple, sólo se necesita un genio para entender su simplicidad“. Y realmente, aunque pueda parecer muy complejo en ciertas cosas, los *nix, y por tanto Linux, son bastante simples en otras. De hecho, es en esta simplicidad la que los hace tan buenos, flexibles y atractivos. Pues bien, en este artículo, vamos a explicar de una forma muy sencilla el árbol de directorios de GNU/Linux.

Así, los directorios o carpetas de tu distro no tendrán secretos para tí. Especial dedicación a aquellos que so nuevos y que provienen de Microsoft Windows, ya que si vienen de otros UNIX se adaptarán casi de inmediato por el parecido. Pero es cierto que en Windows quizás sepas dónde está la unidad C:, dónde están Documentos o Descargas, dónde el Escritorio o tal vez donde se instalan los programas, pero por la sencillez no necesitas conocer mucho más.

En cambio, en los *nix, sí que deberías conocer el árbol de directorios de una forma más profunda, ya que nos servirán para encontrar ficheros de configuración, instalar ciertos paquetes en el lugar adecuado, localizar las fuentes del kernel, o la imagen de éste, nuestros ficheros personales, etc.:

  • /: es el riectorio principal, la raíz o root. De él cuelgan el resto de directorios, es decir, todos los demás serán subdirectorios de éste (incluso si están en particiones o discos diferentes). Sin duda es la más importante.
  • /bin: es el directorio donde se almacenan los binarios, es decir, los programas que emplea el sistema para labores administrativas como los comandos cp, echo, grep, mv, rm, ls, kill, ps, su, tar, etc.
  • /sbin: la S es de System, y como su nombre indica, aquí se almacenan los binarios o programas que emplea el propio sistema operativo para tareas de arranque, restauración, etc. Por ejemplo, fsck, mount, mkfs, reboot, swapon,…
  • /boot: es el directorio de arranque, donde está la o las imágenes del kernel Linux que se cargarán durante el arranque, y también directorios y configuración del propio gestor de arranque.
  • /dev: es un directorio muy especial donde se encuentran los dispositivos de bloques o carácteres, es decir, ficheros que representan la memoria, particiones, discos, dispositivos de hardware, etc. Ya sabes que en UNIX “todo” es un archivo, y no unidades como en Windows…Por ejemplo, el disco duro o particiones serán /dev/sda1, /dev/sda2,…/dev/sdb1, etc.
  • /media o /mnt: son los directorios donde se establecen generalmente los puntos de montaje. Es decir, cuando insertamos algún medio extraible o recurso de red compartido, etc., que hayamos montado, estaría aquí si lo hemos puesto como punto de montaje. El primero es más específico para medios que se montan de una forma temporal.
  • /etc: muy importante para el administrador, ya que aquí residen los ficheros de configuración de los componentes del sitema y otros programas instalados.
  • /home: es el directorio para los usuarios estándar. Por ejemplo, aquí se almacenan dentro de directorios separados (uno para cada usuario con su nombre), los ficheros personales. Por ejemplo, /home/isaac o ~ sería mi directorio personal…
  • /lib o /lib64: es donde se alojan las bibliotecas necesarias para los binarios presentes en el sistema. En /lib64 estarán las de las apliaciones de 64-bit.
  • /opt: es un directorio que almacenará los paquetes o programas instalados en el sistema que son de terceros. Por ejemplo, si instalamos algún antivirus, Chrome, Arduino IDE,… o ciertos paquetes grandes, suelen instalarse aquí.
  • /proc: es otro directorio muy especial, más que un directorio es una interfaz por decirlo de un modo sencillo. Y aquí el sistema nos presenta los procesos como directorios numerados con el PID. Dentro de cada uno de ellos estará toda la información necesaria para la ejecución de cada proceso en marcha. Además, encontrarás ficheros de los que extraer información importante, como cpuinfo, meminfo, etc. Es precisamente de estos ficheros de los que extraen infromación algunos comandos que usamos habitualmente, como por ejemplo, cuando hacemos uso de free para consultar la memoria disponible, éste comando realmente estará mostrando el contenido de /proc/meminfo de una forma ordenada.
  • /root: no hay que confundirlo con /, una cosa es el directorio raíz o root y otra muy diferente /root. En este caso, se puede asemejar a un /home pero exclusivo para el usuario root o privilegiado.
  • /svr: almacena ficheros y directorios relativos a servidores que tienes instalados en el sistema, como web, FTP, CVS, etc.
  • /sys: junto con /dev y /proc, es otro de los especiales. Y como /proc, realmente no almacena nada, sino que es una interfaz también. En este caso, son ficheros virtuales con información del kernel e incluso, se pueden emplear algunos de sus ficheros para configurar ciertos parámetros del kernel.
  • /tmp: es el directorio para ficheros temporales de todo tipo. Es empleado por los usuarios para almacenar de forma temporal ciertos ficheros o incluso para almacenar cache o ciertos ficheros volátiles de navegadores web, etc. No obstante, hay otro directorio para lo mismo en /var/tmp.
  • /var: ya que lo he nombrado anteriormente, se trata de un directorio con directorios y ficheros que suelen crecer de tamaño, como bases de datos, logs, etc. Es precisamente los logs o registros del sistema por lo que es más popular este directorio, y allí encontrarás muchísima información de todo lo que ocurre en el sistema: /var/logs/. Dentro de dicho directorio encontrarás separados por directorios, los logs de multitud de software, incluído el sistema.
  • /usr: son las siglas de User System Resources, y actualmente almacnea ficheros de solo lectura relativso a utilidades del usaurio, como los paquetes que instalamos mediante el gestor de paquetes en nuestra distro. Dentro hay como una “réplica” del árbol de directorios vistos hasta ahora (casi todos) como si de un segundo nivel se tratase. Vas a encontrar /usr/bin, /usr/lib, /usr/sbin, /usr/src, etc., que por lo dicho anteriormente y sus nombres, puedes hacerte una idea de lo que almacenan. Solo decir que /usr/src es donde permanecerán los ficheros de código fuente.

Ten en cuenta que no todas las distros siguen este esquema y puede haber pequeñas variaciones, pero si se adaptan al FHS, no tendrás demasiado problema…

El artículo Explicación sencilla del arbol de directorios de GNU/Linux ha sido originalmente publicado en Linux Adictos.

from Linux Adictos https://ift.tt/2EAbMNc
via IFTTT

Llega la nueva versión de OBS Studio 23.0 y estas son sus novedades

Open Broadcaster Software también conocido por sus siglas como OBS es una aplicación libre y de código abierto para la grabación y transmisión de vídeo por internet (streaming), mantenida por OBS Project.

Open Broadcaster Software está es una aplicación multiplataforma la cual puede ser utilizada en Linux, Mac y Windows, está escrito en C y C++ y permite captura de fuentes de vídeo en tiempo real, composición de escena, codificación, grabación y retransmisión.

Principales novedades de la versión OBS Studio 23

Este nuevo lanzamiento de OBS Studio 23 trae una serie de mejoras, para su versión de Windows el código se reescribió, incluyendo la codificación NVIDIA NVENC para activar la disposición de hardware, se proporcionó la capacidad de conectarse a cuentas en Twitch y Mixer, se agregó un panel con chat de Twitch y Mixer.

Pero también tiene un trabajo interesante en general, así como en el lado de Linux.

La versión Linux de OBS Studio 23 ahora tiene soporte para la interfaz VA-API para permitir la aceleración de vídeo basada en GPU para aquellos que utilizan el controlador Intel VA-API más comúnmente o también como el rastreador de estado de aceleración de vídeo en Gallium3D, como una alternativa para el soporte VDPAU.

OBS Studio 23 también posee varios nuevos filtros de audio, soporte para remodelación por lotes, soporte de audio de varias pistas para la salida del Ffmpeg, invertir polaridad, limitador y expansor y una variedad de otros cambios.

Además de ello se ha implementado el modo por lotes de reenvasado de flujo (remuxing) y se ha agregado la capacidad de volver a empaquetar automáticamente el contenido grabado en formato MP4.

En el script de repetición instantánea, el soporte de VLC se ha agregado como fuente de video.

Finalmente se puede destacar también la adición de un panel de información opcional con estadísticas (habilitado a través del menú Ver -> Docks) y una nueva herramienta para la salida a dispositivos Decklink.

¿Cómo instalar OBS Studio 23 en linux?

Para quienes estén interesados en poder instalar esta nueva version de OBS en su distribución de Linux, podrán hacerlo siguiendo las instrucciones que compartimos a continuación.

Instalación de OBS Studio 23 desde Flatpak

De manera general para casi cualquier distribución de Linux actual, la instalación de este software puede ser realizado con ayuda de los paquetes de Flatpak. Solo deben contar con el soporte para instalar este tipo de paquetes.

En una terminal solo tienen que ejecutar el siguiente comando:

flatpak install flathub com.obsproject.Studio

En el caso de que ya cuenten con la aplicación instalada por este medio, pueden actualizarla ejecutando el siguiente comando:

flatpak update com.obsproject.Studio

Instalación de OBS Studio 23 desde Snap

Otro método general para realizar la instalación de esta aplicación es con ayuda de los paquetes de Snap. De igual forma que Flatpak, deben contar con el soporte para instalar este tipo de paquetes.

La instalación la vamos a realizar desde una terminal tecleando:

sudo snap install obs-studio

Hecha la instalación, ahora vamos a conectar los medios:

sudo snap connect obs-studio:camera
sudo snap connect obs-studio:removable-media

Instalación desde PPA

Para los que son usuarios de Ubuntu y derivados, pueden realizar la instalación de la aplicación añadiendo un repositorio al sistema.

Este lo añadimos tecleando:

sudo add-apt-repository ppa:obsproject/obs-studio

sudo apt-get update

Y realizamos la instalación de la aplicación ejecutando

sudo apt-get install obs-studio && sudo apt-get install ffmpeg

Instalación en Arch Linux y derivados

Para el caso de los usuarios de Arch Linux, Manjaro, Antergos y cualquier otro derivado. Podemos realizar la instalación tecleando el siguiente comando en una terminal:

sudo pacman -S obs-studio

Instalación en Fedora

Finalmente, para quienes sean usuarios de Fedora solo tiene que teclear lo siguiente:

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install obs-studio

En caso de querer habilitar la codificación acelerada por hardware aquellos usuarios de NVIDIA, deben de asegúrese de tener instalado en su sistema CUDA (en caso de que se trate de una tarjeta más antigua, instalen xorg-x11-drv-nvidia-340xx-cuda):

sudo dnf install xorg-x11-drv-nvidia-cuda

El artículo Llega la nueva versión de OBS Studio 23.0 y estas son sus novedades ha sido originalmente publicado en Linux Adictos.

from Linux Adictos https://ift.tt/2Vl1Ts8
via IFTTT

MIUI permitirá el bloqueo facial de apps en su próxima actualización

Xiaomi, al igual que muchas otras compañías, lleva un año muy centrada en mejorar el software de sus terminales, que, al fin y al cabo, es una parte tan importante como el hardware de los dispositivos que usamos. Y, de hecho, podemos disfrutar de una buena experiencia aún con un procesador modesto gracias a que el sistema operativo esté bien adaptado. MIUI 10 es la capa de personalización que tienen

Entra en Andro4all para leer el artículo completo

Puedes unirte a nosotros en Twitter, Facebook o en Google+

¡Suscríbete a nuestro canal de YouTube!

Publicado recientemente en Andro4all

from Andro4all https://ift.tt/2tCJIm2
via IFTTT