Sistemas & Desarrollo

encontrados: 41, tiempo total: 0.012 segundos rss2
9 meneos
89 clics

Entendiendo el código ensamblador de ARM (Parte 1) [ENG]

ARM es un procesador con arquitectura RISC (Reduced Instruction Set Computer) de 32 bits. Tiene un modelo de memoria “débilmente ordenado” similar a Alpha y a IA64 requiriendo barreras (barriers) específicas para garantizar dicho ordenamiento. Cuenta con 16 registros de propósito general que también son usados para mantener el contador de programa, el puntero a la pila, la dirección de retorno, etc. [2ª y 3ª partes: blogs.msdn.com/b/oldnewthing/archive/2015/08/11/10634261.aspx ]
1 meneos
18 clics

Guía de ensamblador de x86 para principiantes (parte 2 de 2) [ENG]

En la parte anterior de esta serie de sobre ensamblador x86 (www.meneame.net/m/SysDevs/guia-ensamblador-x86-principiantes-parte-1-2) vimos la información básica del ensamblador de x86, como la convención de llamadas a funciones de esta arquitectura. En esta parte usaremos lo aprendido en la parte anterior para construir una calculadora RPN (Reverse Polish Notation) escrita enteramente en ensamblador de x86.
2 meneos
35 clics

Guía de ensamblador de x86 para principiantes (parte 1 de 2) [ENG]

Escribir código ensamblador estos días es prácticamente innecesario, aunque es recomendable que cualquiera interesado en la programación sepa cómo funciona. No sólo ofrece otra perspectiva comparado con lenguajes de alto nivel, también es muy útil a la hora de depurar código en otros lenguajes. En esta serie de dos entradas veremos cómo implementar una calculadora en notación polaca inversa (RPN: Reverse Polish Notation) en ensamblador desde cero.
15 meneos
498 clics
La belleza de MIPS

La belleza de MIPS  

Todos los ordenadores, móviles y en general, cualquier dispositivo que lleva software necesita un procesador. Los procesadores se agrupan por familias, familias de procesadores que se programan igual, en un lenguaje llamado ensamblador. La más popular es Intel x86, presente en cualquier PC y en algunos móviles, tablets y servidores. Pero no voy a hablaros hoy de x86, ni de ARM, sino de MIPS. El ensamblador hecho bello. Adentrémonos en este mundo. Si nunca has visto ensamblador, este es tu momento. Si ya lo has visto, quizá te apetezca recordar.
12 3 0 K 37
12 3 0 K 37
3 meneos
36 clics

Compila y recorre las instrucciones en ensamblador de un programa con penguinTrace [ENG]

penguinTrace es una herramienta que nos permite escribir código y ver cómo se ejecutan las instrucciones que lo componen. El objetivo es ayudar a las personas a comprender cómo se ejecutan los programas y/o mejorar la comprensión del ensamblador. Al escribir programas en C, es posible hacer que el compilador genere el ensamblado generado o desensamblar un binario para ver las instrucciones. [Vía HackPlayers].
10 meneos
145 clics
rwasa: servidor web escrito totalmente en ensamblador (x86_64) para sitios con alto tráfico [ENG]

rwasa: servidor web escrito totalmente en ensamblador (x86_64) para sitios con alto tráfico [ENG]

rwasa es un servidor web escrito a mano en ensamblador (x86_64) sin dependencias externas y centrado en el alto rendimiento, alta escalabilidad y diseñado para entornos con alto volumen de tráfico para competir con servidores del estilo de nginx. Además, es software libre teniendo GPLv3 como licencia.
19 meneos
313 clics
Tutorial interactivo de cómo crear un cargador de arranque en ensamblador de x86 [ENG]

Tutorial interactivo de cómo crear un cargador de arranque en ensamblador de x86 [ENG]

La programación en ensamblador puede ser intimidante para la gente que nunca lo ha investigado más allá de haberle echado un vistazo, pero tenerlo como base para comprender el funcionamiento de los ordenadores que usamos puede ser útil para saber lo que realmente se está ejecutando la CPU. Para iniciar un ordenador moderno con arquitectura x86 se necesita ir paso a paso por la historia de esta arquitectura. Y esto es hecho por el cargador de arranque en la mayoría de los casos.
14 5 1 K 50
14 5 1 K 50
99 meneos
1655 clics
Envío erróneo o controvertido, por favor lee los comentarios.

Programación en ensamblador de x86-64 desde Ubuntu [PDF|2,5 MB] [ENG]

El propósito de este texto es proporcionar una referencia para el lenguaje ensamblador de nivel universitario y los cursos de programación de sistemas. Este texto aborda el conjunto de instrucciones x86-64 para la popular clase de procesadores x86-64 que utilizan el sistema operativo Ubuntu de 64 bits. Si bien el código proporcionado y varios ejemplos deberían funcionar bajo cualquier sistema operativo de 64 bits basado en Linux, solo se han probado bajo Ubuntu 14/16/18 LTS (64 bits).
64 35 16 K 49
64 35 16 K 49
2 meneos
20 clics

Significado e historia del registro EAX de la arquitectura x86 [ENG]

Por lo general los tutoriales sobre ensamblador de la arquitectura x86 no pasan mucho tiempo explicando la perspectiva histórica de las decisiones de diseño y denominación. Cuando se está aprendiendo ensamblador de x86 siempre suelen decir lo mismo: aquí está EAX; es un registro; úsalo. Pero entonces, ¿qué significan exactamente las letras de dicho registro: E-A-X? Me temo que no hay una respuesta corta. Para explicarlo vamos a tener que volver a 1972…
8 meneos
132 clics

Tutorial para diseñar una CPU básica [ENG]

Siguiendo este tutorial podrás diseñar una CPU básica para la que podrás escribir su propio ensamblador. Luego podrás ir a presumir delante de tus amigos de lo bueno que eres.
2 meneos
68 clics

Las nueve principales cualidades del código limpio [ENG]

¿Con qué frecuencia muestras tu incredulidad al navegar a través del código de alguien diciendo en voz alta “madre mía, esto es código de espagueti…”? Probablemente bastante a menudo. ¿Y cuán seguro estás de que nadie pensó lo mismo cuando se trataba de tu código? En otras palabras, ¿cuán seguro estás de que tu código es limpio? La verdad es que sólo se puede estar seguro si se sabe completamente lo que significa que el código sea limpio.
6 meneos
49 clics
Código de conducta para el desarrollo de software abierto [ENG]

Código de conducta para el desarrollo de software abierto [ENG]

Este código de conducta resume nuestras expectativas para con los participantes dentro de la comunidad Atom así como medidas para la presentación de informes sobre comportamiento inaceptable. Nos comprometemos a proporcionar una comunidad acogedora e inspiradora para todos y esperamos que nuestro código de conducta sirva para ser honrado. Cualquier persona que viole el código de conducta puede ser expulsado de la comunidad.
4 meneos
49 clics

Estilo de código en el kernel Linux [ENG]

En este pequeño documento se describe el estilo de código preferido para desarrollar el kernel Linux. El estilo de código es muy personal y no se va a forzar ningún estilo en este documento, pero escribir siguiendo determinada forma hace que el código sea mucho más mantenible. Pero, antes de nada, sugiero descargar e imprimir una copia del estilo de código GNU para NO leerla nunca. Quémala. Es un gran gesto simbólico. Y a continuación, las normas del estilo de codificación del kernel Linux.
3 meneos
29 clics

Cómo escribir código inmantenible (y asegurarse un trabajo de por vida) [ENG|HUMOR]

En aras de crear oportunidades de empleo en el campo de programación en Java, les transmito estos consejos maestros sobre cómo escribir código que es tan difícil de mantener que las personas que lo siguen tardarán años en realizar incluso los cambios más simples. Además, si se siguen todas estas reglas al pie de la letra, se garantizará una vida de empleo, ya que nadie más que usted sabría mantener dicho código. Por otra parte, si se siguen todas estas reglas religiosamente, ¡ni usted mismo sería capaz de mantener este código!
2 1 0 K 32
2 1 0 K 32
4 meneos
15 clics

Internet depende de personas que trabajan gratis. [ENG]

¿Quién debería ser el responsable del mantenimiento y la resolución de problemas en proyectos de código abierto? Cuando compra un producto como las luces inteligentes de PhilipsHue o un iPhone, se asume que las personas que escribieron su código están siendo pagadas. Aunque eso es cierto para aquellos que crean directamente el software, prácticamente todas las empresas de tecnología confían también en miles de bits de código gratuito, disponible a a través de proyectos de código abierto en sitios como GitHub/Lab.
7 meneos
56 clics

Portando Linux a una nueva arquitectura, parte 2: el código inicial [ENG]

En la primera parte de esta serie (www.meneame.net/m/SysDevs/portando-linux-nueva-arquitectura-parte-1-ba ) hemos sentado las bases para portar Linux a una nueva arquitectura de procesador explicando los pasos preliminares (sin llegar a escribir ningún código fuente). Este artículo continúa desde allí profundizando en el código de arranque, lo que incluye desde el código necesario para arrancar Linux hasta la creación del primer hilo del kernel.
3 meneos
53 clics
Cómo saber si tu proyecto libre está condenado al fracaso [ENG]

Cómo saber si tu proyecto libre está condenado al fracaso [ENG]

Aunque no son estrictas, este conjunto de reglas puede ayudar a saber si un proyecto libre está condenado al fracaso o no. Entre las reglas que acercan al fracaso se incluyen: el código fuente ocupa más de 100 MB; el código comprimido ocupa más de 100 MB; no está disponible de forma pública bajo un sistema de control de versiones; no se usa el sistema de control de versiones; no hay documentación de cómo construir el software; hay documentación de cómo se construye el código pero no funciona; no hay un versionado correcto; etc.
7 meneos
179 clics
ReactOS, un Windows de código abierto

ReactOS, un Windows de código abierto  

ReactOS es un sistema operativo de código abierto, el cual tiene la principal función de ser una especie de clon de Windows. ReactOS no es un clon de Windows más ni un simple sistema Linux con un tema gráfico similar a Windows, sino que es un sistema que copia la arquitectura de Windows NT con el objetivo de ejecutar drivers, aplicaciones y demás software que hasta ahora solo estaba reservado para Windows.
9 meneos
249 clics
Diez reglas de la NASA de escritura de código fuente crítico y seguro [ENG]

Diez reglas de la NASA de escritura de código fuente crítico y seguro [ENG]

Todo gran proyecto de software utiliza estándares de codificación y reglas de estilo. Estas reglas establecen las bases que se han de seguir a la hora de escribir software como, por ejemplo, “¿cómo se debe estructurar el código?”; o “¿qué característica del lenguaje usado se debe usar y cuál no?”. Los desarrolladores de la NASA son unos de los que las siguen para poder desarrollar código crítico y seguro. Aquí están las 10 principales reglas que usan.
8 meneos
333 clics
La potencia de los recortes de código (snipples)

La potencia de los recortes de código (snipples)

Un recorte de código es una pequeña plantilla que podemos reutilizar dentro de un editor de textos. Esta plantilla se pega, en el texto que se está editando, al escribir una palabra y pulsar el tabulador. En el siguiente ejemplo, al escribir html5 y pulsar tabulador, se pega la plantilla correspondiente:
289 meneos
9302 clics

De como escribir código imposible de mantener. [EN]

En el interés de crear oportunidades de trabajo en el campo de la programación en Java, describo algunos consejos de como escribir código tan difícil de mantener, que las personas que vengan después de ti tardarán años en hacer los cambios más simples. Además, si sigues estás reglas religiosamente, te aseguraras tu empleo de por vida, ya que no habrá persona viva salvo tú que pueda mantenerlo. De nuevo, si sigues estás reglas demasiado religiosamente, ni tu serás capaz de mantenerlo.
129 160 0 K 43
129 160 0 K 43
7 meneos
258 clics

Creando un código QR paso a paso [ENG]

Esta aplicación de demostración en JavaScript visualiza de forma detallada los pasos necesarios para codificar una cadena de texto en un código QR. El contenido de esta página esencialmente explica y justifica cómo esta biblioteca de generación de códigos QR trabaja internamente.
3 meneos
12 clics

El código binario del microkernel seL4 ha sido verificado formalmente para procesadores RISC-V [ENG]

En junio de 2020 anunciamos que el microkernel seL4 fue el primer kernel de sistema operativo del mundo con prueba de corrección de implementación verificada por máquina, también verificada para la arquitectura RV64, lo que lo convierte en el primer sistema operativo verificado formalmente para RISC-V. Ahora nos complace anunciar que esta verificación se ha extendido al código binario ejecutable, lo que significa que se ha demostrado que el código máquina que se ejecuta en el procesador es correcto. // Relacionada: El microkernel seL4 ha sido verificado formalmente para procesadores RISC-V.
2 meneos
50 clics

Inyectar código en procesos en ejecución en Linux con ‘linux-inject’ [ENG]  

‘linux-inject’ es una utilidad para Linux que inyecta una librería .so dentro de un proceso en ejecución. Funciona de forma similar a como lo hace LD_PRELOAD pero, como se ha comentado, ‘linux-inject’ inserta el código mientras el proceso está corriendo. Veamos un ejemplo de su funcionamiento.
2 meneos
86 clics

La estética del código fuente: a la búsqueda del arte en la programación  

Un lenguaje informático no es más que un conjunto de instrucciones que introducimos en una máquina para que esta opere permitiéndonos así desarrollar programas. De este modo, las distintas formas en que combinamos dichas instrucciones dan lugar a los diferentes estilos y escuelas responsables de lo que podemos denominar ‘la estética de la programación’. Esa estética, según las reglas a las que responda, se puede clasificar a su vez en cuatro grandes grupos que tradicionalmente, como muchas corrientes artísticas, han coexistido.
« anterior12

menéame