Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/components/freebsd-doc/articles_linux-emulation/changes/?format=api&page=15
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 891,
    "next": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/changes/?format=api&page=16",
    "previous": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/changes/?format=api&page=14",
    "results": [
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26492/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:29:41.140821Z",
            "action": 5,
            "target": "Esta llamada al sistema se utiliza para la devolución del controlador de señales. Realiza algunas comprobaciones de seguridad y restaura el contexto del proceso original. También desenmascara la señal en la máscara de señal de proceso.",
            "id": 93138,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93138/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26493/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:29:44.756342Z",
            "action": 37,
            "target": "Ptrace",
            "id": 93139,
            "action_name": "Marked for edit",
            "url": "https://translate-dev.freebsd.org/api/changes/93139/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26494/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:31:04.433331Z",
            "action": 5,
            "target": "Muchos <trademark class=\"registered\">UNIX</trademark> derivados implementan el <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall para permitir varias funciones de seguimiento y depuración. Esta función permite que el proceso de rastreo obtenga diversa información sobre el proceso rastreado, como volcados de registros, cualquier memoria del espacio de direcciones del proceso, etc. y también rastrear el proceso como en el paso de una instrucción o entre entradas del sistema (syscalls y trampas). <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry>también le permite configurar diversa información en el proceso de seguimiento (registros, etc.). <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> es a <trademark class=\"registered\">UNIX</trademark>-amplio estándar implementado en la mayoría <trademark class=\"registered\">UNIX</trademark>es alrededor del mundo.",
            "id": 93140,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93140/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26495/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:33:12.927353Z",
            "action": 5,
            "target": "<trademark class=\"registered\">Linux</trademark> emulación en FreeBSD implementa la <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> instalación en <filename>linux_ptrace.c</filename>. Las rutinas para convertir registros entre <trademark class=\"registered\">Linux</trademark> Y FreeBSD y el actual <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall emulación syscall. El syscall es un bloque de conmutadores largo que implementa su contraparte en FreeBSD para cada<citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> mando. los <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> los comandos son en su mayoría iguales entre <trademark class=\"registered\">Linux</trademark> y FreeBSD, por lo que normalmente solo se necesita una pequeña modificación. Por ejemplo, <literal>PT_GETREGS</literal> en <trademark class=\"registered\">Linux</trademark> opera con datos directos, mientras que FreeBSD usa un puntero a los datos, por lo que después de realizar un (nativo) <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall, se debe realizar una copia para conservar <trademark class=\"registered\">Linux</trademark> semántica.",
            "id": 93141,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93141/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26496/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:34:03.175591Z",
            "action": 5,
            "target": "La <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> La implementación en Linuxulator tiene algunas debilidades conocidas. Ha habido pánico al usar <command>strace</command> (el cual es un <citerefentry><refentrytitle>ptrace</refentrytitle><manvolnum>2</manvolnum></citerefentry> consumidor) en el entorno Linuxulator. también <literal>PT_SYSCALL</literal> no está implementado.",
            "id": 93142,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93142/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26497/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:34:38.262141Z",
            "action": 5,
            "target": "Siempre que un <trademark class=\"registered\">Linux</trademark> proceso que se ejecuta en la capa de emulación trampas la trampa en sí se maneja de forma transparente con la única excepción de la traducción de trampas. <trademark class=\"registered\">Linux</trademark> y FreeBSD difiere de opinión sobre lo que es una trampa, así que esto se trata aquí. El código es realmente muy corto:",
            "id": 93143,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93143/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26498/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:34:41.570436Z",
            "action": 37,
            "target": "static int\ntranslate_traps(int signal, int trap_code)\n{\n\n  if (signal != SIGBUS)\n    return signal;\n\n  switch (trap_code) {\n\n    case T_PROTFLT:\n    case T_TSSFLT:\n    case T_DOUBLEFLT:\n    case T_PAGEFLT:\n      return SIGSEGV;\n\n    default:\n      return signal;\n  }\n}",
            "id": 93144,
            "action_name": "Marked for edit",
            "url": "https://translate-dev.freebsd.org/api/changes/93144/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26499/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:34:52.876656Z",
            "action": 5,
            "target": "Reparación de pila",
            "id": 93145,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93145/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26500/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:35:32.455791Z",
            "action": 5,
            "target": "El editor de enlaces en tiempo de ejecución de RTLD espera las llamadas etiquetas AUX en la pila durante una <function>execve</function>por lo que se debe realizar una reparación para garantizar esto. Por supuesto, cada sistema RTLD es diferente, por lo que la capa de emulación debe proporcionar su propia rutina de reparación de la pila para hacer esto. Linuxulator también. los <function>elf_linux_fixup</function> simplemente copia las etiquetas AUX a la pila y ajusta la pila del proceso de espacio de usuario para que apunte justo después de esas etiquetas. Entonces RTLD funciona de manera inteligente.",
            "id": 93146,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93146/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26501/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:35:51.540672Z",
            "action": 5,
            "target": "soporte A.OUT",
            "id": 93147,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93147/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26502/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:36:43.041001Z",
            "action": 5,
            "target": "La <trademark class=\"registered\">Linux</trademark> La capa de emulación en i386 también admite <trademark class=\"registered\">Linux</trademark>A.OUT binarios. Prácticamente todo lo descrito en las secciones anteriores debe implementarse para la compatibilidad con A.OUT (además de la traducción de trampas y el envío de señales). El soporte para los binarios A.OUT ya no se mantiene, especialmente la emulación 2.6 no funciona con él, pero esto no causa ningún problema, ya que la base de linux en los puertos probablemente no soporte los binarios A.OUT en absoluto. Este soporte probablemente se eliminará en el futuro. La mayoría de las cosas necesarias para cargar<trademark class=\"registered\">Linux</trademark> A.OUT binarios está en <filename>imgact_linux.c</filename> archivo.",
            "id": 93148,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93148/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26503/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:36:52.887441Z",
            "action": 5,
            "target": "<trademark class=\"registered\">Linux</trademark> capa de emulación - parte MI",
            "id": 93149,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93149/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26504/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:37:23.720161Z",
            "action": 5,
            "target": "Esta sección habla de la parte independiente de la máquina del Linuxulator. Cubre la infraestructura de emulación necesaria para <trademark class=\"registered\">Linux</trademark> 2.6 emulación, la implementación del almacenamiento local de subprocesos (TLS) (en i386) y futexes. Luego hablamos brevemente sobre algunas llamadas al sistema.",
            "id": 93150,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93150/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26505/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:37:32.356916Z",
            "action": 5,
            "target": "Descripción de NPTEL",
            "id": 93151,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93151/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26506/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:38:55.959439Z",
            "action": 5,
            "target": "Una de las principales áreas de progreso en el desarrollo de <trademark class=\"registered\">Linux</trademark> 2.6 estaba enhebrando. Antes de 2.6, el <trademark class=\"registered\">Linux</trademark> El soporte de subprocesos se implementó en el <application>linuxthreads</application> biblioteca. La biblioteca fue una implementación parcial de <trademark class=\"registered\">POSIX</trademark> enhebrado. El subproceso se implementó usando procesos separados para cada subproceso usando el <function>clone</function> syscall para permitirles compartir el espacio de direcciones (y otras cosas). La principal debilidad de este enfoque era que cada hilo tenía un PID diferente, el manejo de la señal estaba roto (desde la perspectiva de los pthreads), etc. Además, el rendimiento no era muy bueno (uso de <literal>SIGUSR</literal> señales para sincronización de subprocesos, consumo de recursos del kernel, etc.), por lo que para superar estos problemas se desarrolló un nuevo sistema de subprocesos denominado NPTL.",
            "id": 93152,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93152/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26507/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:39:18.534893Z",
            "action": 5,
            "target": "La biblioteca NPTL se centró en dos cosas, pero apareció una tercera, por lo que generalmente se considera parte de NPTL. Esas dos cosas fueron la incrustación de subprocesos en una estructura de proceso y funciones. La tercera cosa adicional fue TLS, que no es requerido directamente por NPTL, pero toda la biblioteca de usuario de NPTL depende de ello. Esas mejoras dieron como resultado un rendimiento y una conformidad con los estándares mucho mejores. NPTL es una biblioteca de subprocesos estándar en <trademark class=\"registered\">Linux</trademark> sistemas en estos días.",
            "id": 93153,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93153/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26508/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:39:38.545054Z",
            "action": 5,
            "target": "La implementación de FreeBSD Linuxulator se acerca a la NPTL en tres áreas principales. TLS, futexes y PID mangling, que está destinado a simular el <trademark class=\"registered\">Linux</trademark> hilos. Más secciones describen cada una de estas áreas.",
            "id": 93154,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93154/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26509/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:39:49.101127Z",
            "action": 5,
            "target": "<trademark class=\"registered\">Linux</trademark> 2.6 infraestructura de emulación",
            "id": 93155,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93155/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26510/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:40:10.369850Z",
            "action": 5,
            "target": "Estas secciones tratan sobre la forma <trademark class=\"registered\">Linux</trademark> se administran los hilos y cómo lo simulamos en FreeBSD.",
            "id": 93156,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93156/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26511/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:40:18.810459Z",
            "action": 5,
            "target": "Determinación del tiempo de ejecución de la emulación 2.6",
            "id": 93157,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93157/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26512/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:42:56.580451Z",
            "action": 5,
            "target": "En <trademark class=\"registered\">Linux</trademark>La capa de emulación en FreeBSD admite la configuración de tiempo de ejecución de la versión emulada. Esto se hace a través de <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>, a saber <literal>compat.linux.osrelease</literal>. configurando esto <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>afecta el comportamiento en tiempo de ejecución de la capa de emulación. Cuando se establece en 2.6.x, establece el valor de <literal>linux_use_linux26</literal> mientras que el ajuste a otra cosa lo mantiene desarmado. Esta variable (más las variables por prisión del mismo tipo) determina si la infraestructura 2.6 (principalmente manipulación de PID) se usa en el código o no. La configuración de la versión se realiza en todo el sistema y esto afecta a todos<trademark class=\"registered\">Linux</trademark> procesos. los<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>no debe cambiarse al ejecutar cualquier <trademark class=\"registered\">Linux</trademark>binario, ya que podría dañar las cosas.",
            "id": 93158,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93158/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26513/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T10:43:08.047830Z",
            "action": 5,
            "target": "<trademark class=\"registered\">Linux</trademark> identificadores de procesos e hilos",
            "id": 93159,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93159/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26514/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:30:05.049160Z",
            "action": 5,
            "target": "La semántica de  <trademark class=\"registered\">Linux</trademark> Los subprocesos son un poco confusos y utilizan una nomenclatura completamente diferente a la de FreeBSD. Un proceso en <trademark class=\"registered\">Linux</trademark> consiste en un <literal>estructura de la tarea</literal> incrustando dos campos identificadores: PID y TGID. PID es <emphasis>no</emphasis> un ID de proceso pero es un ID de hilo. El TGID identifica un grupo de subprocesos, en otras palabras, un proceso. Para procesos de un solo subproceso, el PID es igual al TGID.",
            "id": 93160,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93160/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26514/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:30:17.394568Z",
            "action": 2,
            "target": "La semántica de <trademark class=\"registered\">Linux</trademark> Los subprocesos son un poco confusos y utilizan una nomenclatura completamente diferente a la de FreeBSD. Un proceso en <trademark class=\"registered\">Linux</trademark> consiste en un <literal>estructura de la tarea</literal> incrustando dos campos identificadores: PID y TGID. PID es <emphasis>no</emphasis> un ID de proceso pero es un ID de hilo. El TGID identifica un grupo de subprocesos, en otras palabras, un proceso. Para procesos de un solo subproceso, el PID es igual al TGID.",
            "id": 93161,
            "action_name": "Translation changed",
            "url": "https://translate-dev.freebsd.org/api/changes/93161/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26515/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:30:56.198026Z",
            "action": 5,
            "target": "El hilo en NPTL es solo un proceso ordinario que tiene TGID no igual a PID y tiene un líder de grupo que no es igual a él (y VM compartida, etc., por supuesto). Todo lo demás sucede de la misma manera que en un proceso ordinario. No hay separación de un estado compartido a alguna estructura externa como en FreeBSD. Esto crea cierta duplicación de información y una posible inconsistencia de datos. los <trademark class=\"registered\">Linux</trademark> el kernel parece utilizar task - & gt; información de grupo en algunos lugares e información de tareas en otros lugares y en realidad no es muy consistente y parece propensa a errores.",
            "id": 93162,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93162/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26515/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:31:23.138177Z",
            "action": 2,
            "target": "El hilo en NPTL es solo un proceso ordinario que tiene TGID no igual a PID y tiene un líder de grupo que no es igual a él (y VM compartida, etc., por supuesto). Todo lo demás sucede de la misma manera que en un proceso ordinario. No hay separación de un estado compartido a alguna estructura externa como en FreeBSD. Esto crea cierta duplicación de información y una posible inconsistencia de datos. los <trademark class=\"registered\">Linux</trademark> el kernel parece utilizar task -&gt;; información de grupo en algunos lugares e información de tareas en otros lugares y en realidad no es muy consistente y parece propensa a errores.",
            "id": 93163,
            "action_name": "Translation changed",
            "url": "https://translate-dev.freebsd.org/api/changes/93163/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26516/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:32:11.058085Z",
            "action": 5,
            "target": "cada hilo NPTL se crea mediante una llamada ala <function>clone</function> syscall con un conjunto específico de indicadores (más en la siguiente subsección). La NPTL implementa un subproceso estricto 1: 1.",
            "id": 93164,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93164/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26517/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:32:25.424699Z",
            "action": 5,
            "target": "En FreeBSD emulamos hilos NPTL con procesos FreeBSD ordinarios que comparten espacio VM, etc. y la gimnasia PID simplemente se imita en la estructura específica de emulación adjunta al proceso. La estructura adjunta al proceso se ve así:",
            "id": 93165,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93165/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26519/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:33:49.672134Z",
            "action": 5,
            "target": "El PID se usa para identificar el proceso FreeBSD que adjunta esta estructura. los <function>child_se_tid</function> y <function>child_clear_tid</function> se utilizan para la copia de direcciones TID cuando un proceso sale y se crea. los <varname>shared</varname> puntero apunta a una estructura compartida entre subprocesos. los <varname>pdeath_signal</varname> La variable identifica la señal de muerte del padre y la <varname>threads</varname>El puntero se utiliza para vincular esta estructura a la lista de subprocesos. los <literal>linux_emuldata_shared</literal> estructura se parece a:",
            "id": 93166,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93166/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26520/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:33:53.659005Z",
            "action": 37,
            "target": "struct linux_emuldata_shared {\n\n  int refs;\n\n  pid_t group_pid;\n\n  LIST_HEAD(, linux_emuldata) threads; /* head of list of linux threads */\n};",
            "id": 93167,
            "action_name": "Marked for edit",
            "url": "https://translate-dev.freebsd.org/api/changes/93167/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26521/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:34:48.103396Z",
            "action": 5,
            "target": "La  <varname>refs</varname> es un contador de referencia que se utiliza para determinar cuándo podemos liberar la estructura para evitar pérdidas de memoria. los <varname>group_pid</varname> es identificar PID (= TGID) de todo el proceso (= grupo de subprocesos). los  <varname>threads</varname> puntero es el encabezado de la lista de subprocesos en el proceso.",
            "id": 93168,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93168/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26521/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:34:52.024406Z",
            "action": 2,
            "target": "La <varname>refs</varname> es un contador de referencia que se utiliza para determinar cuándo podemos liberar la estructura para evitar pérdidas de memoria. los <varname>group_pid</varname> es identificar PID (= TGID) de todo el proceso (= grupo de subprocesos). los  <varname>threads</varname> puntero es el encabezado de la lista de subprocesos en el proceso.",
            "id": 93169,
            "action_name": "Translation changed",
            "url": "https://translate-dev.freebsd.org/api/changes/93169/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26522/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:35:24.949451Z",
            "action": 5,
            "target": "El  <literal>linux_emuldata</literal> La estructura se puede obtener del proceso utilizando <function>em_find</function>. el prototipo de la función es:",
            "id": 93170,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93170/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26522/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:35:28.778680Z",
            "action": 2,
            "target": "El <literal>linux_emuldata</literal> La estructura se puede obtener del proceso utilizando <function>em_find</function>. el prototipo de la función es:",
            "id": 93171,
            "action_name": "Translation changed",
            "url": "https://translate-dev.freebsd.org/api/changes/93171/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26523/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:35:34.530612Z",
            "action": 37,
            "target": "struct linux_emuldata *em_find(struct proc *, int locked);",
            "id": 93172,
            "action_name": "Marked for edit",
            "url": "https://translate-dev.freebsd.org/api/changes/93172/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26524/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:36:08.908196Z",
            "action": 5,
            "target": "Aqui, <varname>proc</varname> es el proceso del que queremos la estructura emuldata y el parámetro bloqueado determina si queremos bloquear o no. Los valores aceptados son<literal>EMUL_DOLOCK</literal> y <literal>EMUL_DOUNLOCK</literal>. Más sobre bloquear más tarde.",
            "id": 93173,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93173/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26525/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:36:18.696659Z",
            "action": 5,
            "target": "Destrucción de PID",
            "id": 93174,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93174/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26527/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:38:05.332645Z",
            "action": 5,
            "target": "Lo anterior afecta principalmente a las llamadas al sistema getpid, getppid, gettid. Donde usamos PID / TGID respectivamente. En copia de TID en <function>child_clear_tid</function> y<function>child_set_tid</function> copiamos FreeBSD PID.",
            "id": 93176,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93176/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26528/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:38:13.845857Z",
            "action": 5,
            "target": "Clonar syscall",
            "id": 93177,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93177/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26529/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:38:40.435109Z",
            "action": 5,
            "target": "La <function>clone</function> syscall es la forma en que se crean los hilos en <trademark class=\"registered\">Linux</trademark>. El prototipo de syscall se ve así:",
            "id": 93178,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93178/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26530/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:39:00.320182Z",
            "action": 37,
            "target": "int linux_clone(l_int flags, void *stack, void *parent_tidptr, int dummy,\nvoid * child_tidptr);",
            "id": 93179,
            "action_name": "Marked for edit",
            "url": "https://translate-dev.freebsd.org/api/changes/93179/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26531/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:41:27.237927Z",
            "action": 4,
            "target": "El  <varname>flags</varname> El parámetro le dice al syscall cómo exactamente se deben clonar los procesos. Como se describió anteriormente, <trademark class=\"registered\">Linux</trademark> puede crear procesos compartiendo varias cosas de forma independiente, por ejemplo, dos procesos pueden compartir descriptores de archivo pero no VM, etc. El último byte del parámetro <varname> flags </varname> es la señal de salida del proceso recién creado. los <varname>stack</varname>parámetro si non-<literal>NULL</literal> dice dónde está la pila de subprocesos y si está<literal>NULL</literal> se supone que debemos copiar al escribir la pila del proceso de llamada (es decir, hacer lo normal <citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry> la rutina hace). The <varname>parent_tidptr</varname> El parámetro se usa como una dirección para copiar el PID del proceso (es decir, el ID del hilo) una vez que el proceso está suficientemente instanciado pero aún no se puede ejecutar. los <varname>dummy</varname> El parámetro está aquí debido a la muy extraña convención de llamada de esta llamada al sistema en i386. Utiliza los registros directamente y no deja que el compilador lo haga, lo que resulta en la necesidad de una llamada al sistema ficticia. los <varname>child_tidptr</varname> El parámetro se utiliza como dirección para copiar PID una vez que el proceso ha terminado de bifurcarse y cuando el proceso finaliza.",
            "id": 93180,
            "action_name": "Suggestion added",
            "url": "https://translate-dev.freebsd.org/api/changes/93180/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26532/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:44:36.609017Z",
            "action": 5,
            "target": "La propia llamada al sistema procede estableciendo los indicadores correspondientes en función de los indicadores pasados. Por ejemplo, <literal>CLONE_VM</literal> mapas a RFMEM (compartir VM), etc. La única nit aquí es <literal>CLONE_FS</literal> y <literal>CLONE_FILES</literal>porque FreeBSD no permite configurar esto por separado, por lo que lo falsificamos al no configurar RFFDG (copia de la tabla fd y otra información fs) si alguno de estos está definido. Esto no causa ningún problema, porque esos indicadores siempre se colocan juntos. Después de configurar las banderas, el proceso se bifurca utilizando el <function>fork1</function> rutina, el proceso está instrumentado para que no se ponga en una cola de ejecución, es decir, no se establezca como ejecutable. Una vez finalizada la bifurcación, posiblemente volvamos a hacer el proceso recién creado para emular <literal>CLONE_PARENT</literal> semántica. La siguiente parte es crear los datos de emulación. Hilos en <trademark class=\"registered\">Linux</trademark> no envía una señal a sus padres, por lo que establecemos la señal de salida en 0 para deshabilitar esto. Después de esa configuración de <varname>child_set_tid</varname> and <varname>child_clear_tid</varname> se realiza habilitando la funcionalidad más adelante en el código. En este punto copiamos el PID a la dirección especificada por <varname>parent_tidptr</varname>. la configuración de la pila de procesos se realiza simplemente reescribiendo el marco del hilo <varname>%esp</varname> registrar (<varname>%rsp</varname> en amd64). La siguiente parte es configurar TLS para el proceso recién creado. Después de este <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> semantics podría ser emulado y finalmente el proceso recién creado se coloca en una cola de ejecución y copia su PID al proceso padre a través de <function>clone</function> el valor de retorno está hecho.",
            "id": 93181,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93181/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26533/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:45:33.320150Z",
            "action": 5,
            "target": "El  <function>clone</function> syscall es capaz y de hecho se usa para emular el clásico <citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry> y <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscalls. Glibc más nuevo en un caso de usos del kernel 2.6 <function>clonar</function> para implementar <citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry> y <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscalls.",
            "id": 93182,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93182/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26533/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:45:37.019488Z",
            "action": 2,
            "target": "El <function>clone</function> syscall es capaz y de hecho se usa para emular el clásico <citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry> y <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscalls. Glibc más nuevo en un caso de usos del kernel 2.6 <function>clonar</function> para implementar <citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry> y <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscalls.",
            "id": 93183,
            "action_name": "Translation changed",
            "url": "https://translate-dev.freebsd.org/api/changes/93183/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26534/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T16:45:46.656301Z",
            "action": 5,
            "target": "Cierre",
            "id": 93184,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93184/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26280/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T18:21:13.059014Z",
            "action": 5,
            "target": "Esta tesis de maestría trata sobre la actualización del <trademark class=\"registered\">Linux</trademark> capa de emulación (la llamada <firstterm>Linuxulator</firstterm>). La tarea consistía en actualizar la capa para que coincidiera con la funcionalidad de <trademark class=\"registered\">Linux</trademark> 2.6. Como implementación de referencia, el <trademark class=\"registered\">Linux</trademark>Se eligió el kernel 2.6.16. El concepto se basa libremente en la implementación de NetBSD. La mayor parte del trabajo se realizó en el verano de 2006 como parte del programa para estudiantes de Google Summer of Code. El foco estaba en traer el <firstterm>NPTL</firstterm> (new <trademark class=\"registered\">POSIX</trademark> biblioteca de hilos) en la capa de emulación, incluyendo<firstterm>TLS</firstterm> (hilo de almacenamiento local), <firstterm>futexes</firstterm> (mutex rápidos del espacio de usuario), <firstterm>PID destrozar</firstterm>, y algunas otras cosas menores. Se identificaron y solucionaron muchos pequeños problemas en el proceso. Mi trabajo se integró en el repositorio de fuentes principal de FreeBSD y se enviará en la próxima versión 7.0R. Nosotros, el equipo de desarrollo de la emulación, estamos trabajando para hacer <trademark class=\"registered\">Linux</trademark> 2.6 emulación la capa de emulación predeterminada en FreeBSD.",
            "id": 93186,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93186/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26282/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T18:22:12.053855Z",
            "action": 5,
            "target": "En los últimos años, el código abierto <trademark class=\"registered\">UNIX</trademark> Los sistemas operativos basados en la tecnología comenzaron a implementarse ampliamente en servidores y máquinas cliente. Entre estos sistemas operativos me gustaría señalar dos: FreeBSD, por su herencia BSD, base de código probado en el tiempo y muchas características interesantes y <trademark class=\"registered\">Linux</trademark> por su amplia base de usuarios, una entusiasta comunidad de desarrolladores abierta y el apoyo de grandes empresas. FreeBSD tiende a usarse en máquinas de clase servidor que sirven para tareas de red de trabajo pesado con menos uso en máquinas de clase de escritorio para usuarios normales. Mientras <trademark class=\"registered\">Linux</trademark> tiene el mismo uso en los servidores, pero los usuarios domésticos lo utilizan mucho más. Esto conduce a una situación en la que hay muchos programas binarios disponibles para <trademark class=\"registered\">Linux</trademark> que carecen de soporte para FreeBSD.",
            "id": 93187,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93187/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26288/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T18:24:09.060416Z",
            "action": 5,
            "target": "<trademark class=\"registered\">UNIX</trademark>es un sistema operativo con una larga historia que ha influido en casi todos los demás sistemas operativos actualmente en uso. A partir de la década de 1960, su desarrollo continúa hasta la actualidad (aunque en diferentes proyectos). <trademark class=\"registered\">UNIX</trademark> El desarrollo pronto se bifurcó en dos formas principales: las familias BSD y System III/V. Se influenciaron mutuamente al cultivar un <trademark class=\"registered\">UNIX</trademark> estándar. Entre las contribuciones originadas en BSD podemos nombrar memoria virtual, redes TCP/IP, FFS y muchas otras. La rama System V contribuyó a las primitivas de comunicación entre procesos de SysV, copia en escritura, etc.. <trademark class=\"registered\">UNIX</trademark> en sí ya no existe, pero sus ideas han sido utilizadas por muchos otros sistemas operativos en todo el mundo, formando así el llamado <trademark class=\"registered\">UNIX</trademark>-como los sistemas operativos. En estos días los más influyentes son<trademark class=\"registered\">Linux</trademark>, Solaris y posiblemente (hasta cierto punto) FreeBSD. Hay en la empresa <trademark class=\"registered\">UNIX</trademark> derivados (AIX, HP-UX, etc.), pero estos se han migrado cada vez más a los sistemas antes mencionados. Resumamos los típicos<trademark class=\"registered\">UNIX</trademark> caracteristicas.",
            "id": 93188,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93188/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26297/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/Aaron/?format=api",
            "timestamp": "2020-12-17T18:25:03.023563Z",
            "action": 5,
            "target": "Las instancias de kernel se procesan primero en el sistema (llamado init). Cada proceso en ejecución puede crear su copia idéntica utilizando el <citerefentry><refentrytitle>fork</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall. Se introdujeron algunas versiones ligeramente modificadas de esta llamada al sistema, pero la semántica básica es la misma. Cada proceso en ejecución puede transformarse en algún otro proceso utilizando el <citerefentry><refentrytitle>exec</refentrytitle><manvolnum>3</manvolnum></citerefentry> syscall. Se introdujeron algunas modificaciones de esta llamada al sistema, pero todas tienen el mismo propósito básico. Los procesos terminan sus vidas llamando al <citerefentry><refentrytitle>exit</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall. Cada proceso está identificado por un número único llamado PID. Cada proceso tiene un padre definido (identificado por su PID).",
            "id": 93189,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/93189/?format=api"
        }
    ]
}