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=16
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=17",
    "previous": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/changes/?format=api&page=15",
    "results": [
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26306/?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:27.132510Z",
            "action": 5,
            "target": "+ hilos ligeros",
            "id": 93190,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93190/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26326/?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:28:57.417420Z",
            "action": 5,
            "target": "Cuando un proceso emite una interrupción <literal>0x80</literal>, el <literal>int0x80</literal>Se emite el controlador de capturas syscall (definido en <filename>sys/i386/i386/exception.s</filename>), que prepara argumentos (es decir, los copia en la pila) para una llamada a una función C <citerefentry><refentrytitle>syscall</refentrytitle><manvolnum>2</manvolnum></citerefentry> (definido en <filename>sys/i386/i386/trap.c</filename>), que procesa el pasado en trampilla. El procesamiento consiste en preparar el syscall (dependiendo del <literal>sysvec</literal> entrada), Al determinar si la llamada al sistema es de 32 bits o de 64 bits (cambia el tamaño de los parámetros), los parámetros se copian, incluida la llamada al sistema. A continuación, la función syscall real se ejecuta con el procesamiento del código de retorno (casos especiales para <literal>ERESTART</literal> y <literal>EJUSTRETURN</literal> errores). Finalmente un <literal>userret()</literal> está programado, cambiando el proceso de nuevo al ritmo de los usuarios. Los parámetros del controlador de llamada al sistema real se pasan en forma de<literal>struct thread *td</literal>, <literal>struct syscall args *</literal> argumentos donde el segundo parámetro es un puntero a la estructura de parámetros copiada.",
            "id": 93191,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93191/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26332/?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:29:48.328302Z",
            "action": 5,
            "target": "El sistema operativo FreeBSD se adhiere al tradicional <trademark class=\"registered\">UNIX</trademark> esquema, donde cada proceso tiene un número de identificación único, el llamado <firstterm>PID</firstterm> (Identificacion de proceso). Los números PID se asignan de forma lineal o aleatoria desde <literal>0</literal> a <literal>PID_MAX</literal>. La asignación de números PID se realiza mediante una búsqueda lineal del espacio PID. Cada hilo en un proceso recibe el mismo número PID como resultado de la <citerefentry><refentrytitle>getpid</refentrytitle><manvolnum>2</manvolnum></citerefentry> llamada.",
            "id": 93192,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93192/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26339/?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:32:17.698450Z",
            "action": 5,
            "target": "La mayoría de los <trademark class=\"registered\">Linux</trademark> el desarrollo ocurre en un <application>Git</application> sistema de control de versiones.<application>Git</application> es un sistema distribuido, por lo que no hay una fuente central de <trademark class=\"registered\">Linux</trademark>código, pero algunas ramas se consideran prominentes y oficiales. El esquema de número de versión implementado por <trademark class=\"registered\">Linux</trademark> consta de cuatro números A.B.C.D. Actualmente, el desarrollo ocurre en 2.6.C.D, donde C representa la versión principal, donde se agregan o cambian nuevas características, mientras que D es una versión secundaria solo para corrección de errores.",
            "id": 93194,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93194/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26342/?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:34:27.410378Z",
            "action": 5,
            "target": "Syscalls en <trademark class=\"registered\">Linux</trademark> se realizan (en el espacio de usuario) usando <literal>syscallX</literal> macros donde X sustituye a un número que representa el número de parámetros de la llamada al sistema dada. Esta macro se traduce en un código que se carga <varname>%eax</varname> registrarse con un número de syscall y ejecutar interrumpir <literal>0x80</literal>. Después de que se llame a este retorno de llamada al sistema, que traduce los valores de retorno negativos en positivos<literal>errno</literal> valores y conjuntos <literal>res</literal> a <literal>-1</literal> en caso de un error. Siempre que la interrupción <literal>0x80</literal>se llama el proceso ingresa al kernel en el controlador de trampas de llamadas del sistema. Esta rutina guarda todos los registros en la pila y llama a la entrada de llamada al sistema seleccionada. Tenga en cuenta que el <trademark class=\"registered\">Linux</trademark> la convención de llamada espera que los parámetros a la llamada al sistema se pasen a través de registros como se muestra aquí:",
            "id": 93195,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93195/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26343/?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:34:38.707425Z",
            "action": 5,
            "target": "parámetro -&gt; <varname>%ebx</varname>",
            "id": 93196,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93196/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26344/?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:34:45.392986Z",
            "action": 5,
            "target": "parámetro -&gt; <varname>%ecx</varname>",
            "id": 93197,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93197/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26345/?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:34:49.602284Z",
            "action": 5,
            "target": "parámetro -&gt; <varname>%edx</varname>",
            "id": 93198,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93198/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26346/?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:34:53.740231Z",
            "action": 5,
            "target": "parámetro -&gt; <varname>%esi</varname>",
            "id": 93199,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93199/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26347/?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:34:58.228434Z",
            "action": 5,
            "target": "parámetro -&gt; <varname>%edi</varname>",
            "id": 93200,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93200/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26348/?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:35:02.060101Z",
            "action": 5,
            "target": "parámetro -&gt; <varname>%ebp</varname>",
            "id": 93201,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93201/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26349/?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:35:32.164680Z",
            "action": 5,
            "target": "Hay algunas excepciones a esto, donde <trademark class=\"registered\">Linux</trademark> utiliza una convención de llamada diferente (más notablemente la <literal>clone</literal> syscall).",
            "id": 93202,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93202/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26350/?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:36:02.871317Z",
            "action": 5,
            "target": "Los manipuladores de trampas se introducen en <filename>arch/i386/kernel/traps.c</filename>y la mayoría de estos manipuladores viven en <filename>arch/i386/kernel/entry.S</filename>, donde ocurre el manejo de las trampas.",
            "id": 93203,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93203/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26351/?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:36:28.000457Z",
            "action": 5,
            "target": "El retorno del syscall es administrado por syscall <citerefentry><refentrytitle>exit</refentrytitle><manvolnum>3</manvolnum></citerefentry>, que verifica si el proceso tiene trabajo sin terminar, luego verifica si usamos selectores proporcionados por el usuario. Si esto sucede, se aplica la corrección de la pila y finalmente se restauran los registros de la pila y el proceso vuelve al espacio de usuario.",
            "id": 93204,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93204/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157264/?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:38:52.534201Z",
            "action": 5,
            "target": "En la versión 2.6, el <trademark class=\"registered\">Linux</trademark> sistema operativo redefinió algunos de los tradicionales <trademark class=\"registered\">UNIX</trademark> primitivas, en particular PID, TID e hilo. PID se define para no ser único para cada proceso, por lo que para algunos procesos (subprocesos) <citerefentry><refentrytitle>getppid</refentrytitle><manvolnum>2</manvolnum></citerefentry> devuelve el mismo valor. TID proporciona la identificación única del proceso. Esto es porque <firstterm>NPTL</firstterm> (New <trademark class=\"registered\">POSIX</trademark> Thread Library) define los subprocesos como procesos normales (llamados subprocesos 1: 1). Generando un nuevo proceso en <trademark class=\"registered\">Linux</trademark> 2.6 sucede usando el  <literal>clone</literal> syscall (las variantes de la bifurcación se vuelven a implementar usándolo). Esta llamada al sistema de clonación define un conjunto de indicadores que afectan el comportamiento del proceso de clonación con respecto a la implementación del hilo. La semántica es un poco difusa ya que no hay una sola bandera que le diga al syscall que cree un hilo.",
            "id": 93205,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93205/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157264/?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:38:57.315046Z",
            "action": 2,
            "target": "En la versión 2.6, el <trademark class=\"registered\">Linux</trademark> sistema operativo redefinió algunos de los tradicionales <trademark class=\"registered\">UNIX</trademark> primitivas, en particular PID, TID e hilo. PID se define para no ser único para cada proceso, por lo que para algunos procesos (subprocesos) <citerefentry><refentrytitle>getppid</refentrytitle><manvolnum>2</manvolnum></citerefentry> devuelve el mismo valor. TID proporciona la identificación única del proceso. Esto es porque <firstterm>NPTL</firstterm> (New <trademark class=\"registered\">POSIX</trademark> Thread Library) define los subprocesos como procesos normales (llamados subprocesos 1: 1). Generando un nuevo proceso en <trademark class=\"registered\">Linux</trademark> 2.6 sucede usando el <literal>clone</literal> syscall (las variantes de la bifurcación se vuelven a implementar usándolo). Esta llamada al sistema de clonación define un conjunto de indicadores que afectan el comportamiento del proceso de clonación con respecto a la implementación del hilo. La semántica es un poco difusa ya que no hay una sola bandera que le diga al syscall que cree un hilo.",
            "id": 93206,
            "action_name": "Tradução alterada",
            "url": "https://translate-dev.freebsd.org/api/changes/93206/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26353/?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:39:06.702594Z",
            "action": 5,
            "target": "Las banderas de clonación implementadas son:",
            "id": 93207,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93207/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26354/?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:39:17.958904Z",
            "action": 5,
            "target": "<literal>CLONE_VM</literal> - los procesos comparten su espacio de memoria",
            "id": 93208,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93208/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26355/?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:39:34.397243Z",
            "action": 5,
            "target": "<literal>CLONE_FS</literal> - compartir umask, cwd y espacio de nombres",
            "id": 93209,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93209/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26356/?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:39:44.369987Z",
            "action": 5,
            "target": "<literal>CLONE_FILES</literal> - compartir archivos abiertos",
            "id": 93210,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93210/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26357/?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:39:54.642072Z",
            "action": 5,
            "target": "<literal>CLONE_SIGHAND</literal> - compartir manejadores de señales y señales bloqueadas",
            "id": 93211,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93211/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26358/?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:40:43.974369Z",
            "action": 5,
            "target": "<literal>CLONE_PARENT</literal> - Compartir padre",
            "id": 93212,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93212/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26359/?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:40:53.909924Z",
            "action": 5,
            "target": "<literal>CLONE_THREAD</literal> - ser hilo (más explicación a continuación)",
            "id": 93213,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93213/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26360/?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:41:03.149328Z",
            "action": 5,
            "target": "<literal>CLONE_NEWNS</literal> - nuevo espacio de nombres",
            "id": 93214,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93214/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26361/?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:41:23.026394Z",
            "action": 5,
            "target": "<literal>CLONE_SYSVSEM</literal> -  compartir estructuras de deshacer SysV",
            "id": 93215,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93215/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26361/?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:41:26.403485Z",
            "action": 2,
            "target": "<literal>CLONE_SYSVSEM</literal> - compartir estructuras de deshacer SysV",
            "id": 93216,
            "action_name": "Tradução alterada",
            "url": "https://translate-dev.freebsd.org/api/changes/93216/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26362/?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:41:36.803219Z",
            "action": 5,
            "target": "<literal>CLONE_SETTLS</literal> -  configurar TLS en la dirección proporcionada",
            "id": 93217,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93217/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26362/?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:41:40.045258Z",
            "action": 2,
            "target": "<literal>CLONE_SETTLS</literal> - configurar TLS en la dirección proporcionada",
            "id": 93218,
            "action_name": "Tradução alterada",
            "url": "https://translate-dev.freebsd.org/api/changes/93218/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26363/?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:41:52.619821Z",
            "action": 5,
            "target": "<literal>CLONE_PARENT_SETTID</literal> - Establecer TID en el padre",
            "id": 93219,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93219/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26364/?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:42:07.479247Z",
            "action": 5,
            "target": "<literal>CLONE_CHILD_CLEARTID</literal> - TID claro en el niño",
            "id": 93220,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93220/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26481/?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:42:52.924633Z",
            "action": 37,
            "target": "{ 0, (sy_call_t *)linux_fork, AUE_FORK, NULL, 0, 0 }, /* 2 = linux_fork */\n{ AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0 }, /* 6 = close */\n{ AS(close_args), (sy_call_t *)close, AUE_CLOSE, NULL, 0, 0 }, /* 6 = close */",
            "id": 93221,
            "action_name": "Marcada para edição",
            "url": "https://translate-dev.freebsd.org/api/changes/93221/?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-17T18:45:23.538117Z",
            "action": 5,
            "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. Último byte del <varname>flags</varname> El parámetro es la señal de salida del proceso recién creado. los <varname>stack</varname> parameter if 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> lo hace la rutina). los <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>tonto</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": 93222,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93222/?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-17T18:45:28.118232Z",
            "action": 2,
            "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. Último byte del <varname>flags</varname> El parámetro es la señal de salida del proceso recién creado. los <varname>stack</varname> parameter if 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> lo hace la rutina). los <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>tonto</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": 93223,
            "action_name": "Tradução alterada",
            "url": "https://translate-dev.freebsd.org/api/changes/93223/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26536/?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:46:46.014484Z",
            "action": 37,
            "target": "TLS",
            "id": 93225,
            "action_name": "Marcada para edição",
            "url": "https://translate-dev.freebsd.org/api/changes/93225/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26537/?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:46:54.289864Z",
            "action": 5,
            "target": "Esta sección trata sobre TLS, también conocido como almacenamiento local de subprocesos.",
            "id": 93226,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93226/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26538/?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:47:04.067902Z",
            "action": 5,
            "target": "Introducción al subproceso",
            "id": 93227,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93227/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26539/?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:50:06.296791Z",
            "action": 5,
            "target": "Los subprocesos en ciencias de la computación son entidades dentro de un proceso que se pueden programar de forma independiente entre sí. Los subprocesos del proceso comparten datos de todo el proceso (descriptores de archivo, etc.) pero también tienen su propia pila para sus propios datos. A veces existe la necesidad de datos de todo el proceso específicos para un hilo dado. Imagina un nombre del hilo en ejecución o algo así. Lo tradicional <trademark class=\"registered\">UNIX</trademark> API de subprocesos, <application>pthreads</application> proporciona una forma de hacerlo a través de <citerefentry><refentrytitle>pthread_key_create</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>pthread_setspecific</refentrytitle><manvolnum>3</manvolnum></citerefentry> y <citerefentry><refentrytitle>pthread_getspecific</refentrytitle><manvolnum>3</manvolnum></citerefentry> donde un hilo puede crear una clave para los datos locales del hilo y usar <citerefentry><refentrytitle>pthread_getspecific</refentrytitle><manvolnum>3</manvolnum></citerefentry> o <citerefentry><refentrytitle>pthread_getspecific</refentrytitle><manvolnum>3</manvolnum></citerefentry> para manipular esos datos. Puede ver fácilmente que esta no es la forma más cómoda de lograrlo. Entonces, varios productores de compiladores C / C ++ introdujeron una mejor manera. Definieron un nuevo hilo de palabra clave modificadora que especifica que una variable es específica del hilo. También se desarrolló un nuevo método para acceder a tales variables (al menos en i386). los <application>pthreads</application> El método tiende a implementarse en el espacio de usuario como una tabla de búsqueda trivial. El rendimiento de esta solución no es muy bueno. Por lo tanto, el nuevo método usa (en i386) registros de segmento para direccionar un segmento, donde el área TLS se almacena, por lo que el acceso real de una variable de subproceso es simplemente agregar el registro de segmento a la dirección, por lo que se direcciona a través de ella. Los registros de segmento suelen ser <varname>%gs</varname> and <varname>%fs</varname> actuando como selectores de segmento. Cada hilo tiene su propia área donde se almacenan los datos locales del hilo y el segmento se debe cargar en cada cambio de contexto. Este método es muy rápido y se utiliza casi exclusivamente en todo el i386. <trademark class=\"registered\">UNIX</trademark> mundo. Tanto FreeBSD como <trademark class=\"registered\">Linux</trademark> implementar este enfoque y produce muy buenos resultados. El único inconveniente es la necesidad de volver a cargar el segmento en cada cambio de contexto que puede ralentizar los cambios de contexto. FreeBSD intenta evitar esta sobrecarga usando solo 1 descriptor de segmento para esto mientras <trademark class=\"registered\">Linux</trademark> utiliza 3. Lo interesante es que casi nada utiliza más de 1 descriptor (solo <application>Wine</application> parece usar 2) entonces<trademark class=\"registered\">Linux</trademark> paga este precio innecesario por los cambios de contexto.",
            "id": 93228,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93228/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26540/?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:50:46.946599Z",
            "action": 5,
            "target": "Segmentos en i386",
            "id": 93229,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93229/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26541/?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:51:15.502472Z",
            "action": 5,
            "target": "La arquitectura i386 implementa los llamados segmentos. Un segmento es una descripción de un área de la memoria. La dirección base (parte inferior) del área de memoria, el final de la misma (techo), tipo, protección, etc. Se puede acceder a la memoria descrita por un segmento utilizando registros de selector de segmento (<varname>%cs</varname>, <varname>%ds</varname>, <varname>%ss</varname>, <varname>%es</varname>, <varname>%fs</varname>, <varname>%gs</varname>). Por ejemplo, supongamos que tenemos un segmento cuya dirección base es 0x1234 y longitud y este código:",
            "id": 93230,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93230/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26542/?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:51:18.740706Z",
            "action": 37,
            "target": "mov %edx,%gs:0x10",
            "id": 93231,
            "action_name": "Marcada para edição",
            "url": "https://translate-dev.freebsd.org/api/changes/93231/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26543/?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:52:24.529609Z",
            "action": 5,
            "target": "Esto cargará el contenido del <varname>%edx</varname> registrarse en la ubicación de memoria 0x1244. Algunos registros de segmento tienen un uso especial, por ejemplo <varname>%cs</varname> se utiliza para el segmento de código y<varname>%ss</varname>se utiliza para el segmento de pila pero <varname>%fs</varname> y <varname>%gs</varname> generalmente no se utilizan. Los segmentos se almacenan en una tabla GDT global o en una tabla LDT local. Se accede a LDT a través de una entrada en el GDT. El LDT puede almacenar más tipos de segmentos. LDT puede ser por proceso. Ambas tablas definen hasta 8191 entradas.",
            "id": 93232,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93232/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26544/?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:52:36.083811Z",
            "action": 5,
            "target": "Implementación en <trademark class=\"registered\">Linux</trademark> i386",
            "id": 93233,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93233/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26545/?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:54:14.186268Z",
            "action": 5,
            "target": "Hay dos formas principales de configurar TLS en <trademark class=\"registered\">Linux</trademark>. se puede configurar al clonar un proceso usando el <function>clone</function> syscall o puede llamar <function>set_thread_area</function>. Cuando pasa un proceso <literal>CLONE_SETTLS</literal>bandera a <function>clonar</function>, el kernel espera la memoria apuntada por el <varname>%esi</varname> registrar un<trademark class=\"registered\">Linux</trademark> representación en el espacio de usuario de un segmento, que se traduce a la representación de máquina de un segmento y se carga en una ranura GDT. La ranura GDT se puede especificar con un número o se puede usar -1, lo que significa que el sistema debe elegir la primera ranura libre. En la práctica, la gran mayoría de los programas utilizan solo una entrada TLS y no se preocupa por el número de la entrada. Aprovechamos esto en la emulación y de hecho dependemos de ello.",
            "id": 93234,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93234/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26546/?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:54:26.261152Z",
            "action": 5,
            "target": "Emulation of  <trademark class=\"registered\">Linux</trademark> TLS",
            "id": 93235,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93235/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26546/?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:54:30.649923Z",
            "action": 2,
            "target": "Emulation of <trademark class=\"registered\">Linux</trademark> TLS",
            "id": 93236,
            "action_name": "Tradução alterada",
            "url": "https://translate-dev.freebsd.org/api/changes/93236/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26547/?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:54:44.968838Z",
            "action": 37,
            "target": "i386",
            "id": 93237,
            "action_name": "Marcada para edição",
            "url": "https://translate-dev.freebsd.org/api/changes/93237/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26548/?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-17T19:29:31.062688Z",
            "action": 5,
            "target": "La carga de TLS para el hilo actual se realiza llamando <function>set_thread_area</function>mientras carga TLS para un segundo proceso en <function>clone</function>se hace en el bloque separado en <function>clone</function>. Esas dos funciones son muy similares. La única diferencia es la carga real del segmento GDT, que ocurre en el siguiente cambio de contexto para el proceso recién creado mientras <function>set_thread_area</function>debe cargar esto directamente. El código básicamente hace esto. Copia el <trademark class=\"registered\">Linux</trademark> descriptor de segmento de formulario del área de usuario. El código busca el número del descriptor, pero debido a que este difiere entre FreeBSD y <trademark class=\"registered\">Linux</trademark> lo fingimos un poco. Solo admitimos índices de 6, 3 y -1. El 6 es genuino <trademark class=\"registered\">Linux</trademark> número, 3 es uno genuino de FreeBSD y -1 significa autoselección. Luego establecemos el número de descriptor en constante 3 y lo copiamos en el espacio de usuario. Confiamos en el proceso del espacio de usuario utilizando el número del descriptor, pero esto funciona la mayor parte del tiempo (nunca he visto un caso en el que esto no haya funcionado) ya que el proceso del espacio de usuario normalmente pasa en 1. Luego, convertimos el descriptor del <trademark class=\"registered\">Linux</trademark>formulario a un formulario dependiente de la máquina (es decir, formulario independiente del sistema operativo) y cópielo en el descriptor de segmento definido de FreeBSD. Finalmente podemos cargarlo. Asignamos el descriptor a los subprocesos PCB (bloque de control de proceso) y cargamos el <varname>%gs</varname> segmento usando<function>load_gs</function>. Esta carga debe hacerse en un tramo crítico para que nada nos interrumpa. los <literal>CLONE_SETTLS</literal> El caso funciona exactamente así, solo la carga usando <function>load_gs</function> no se realiza. El segmento utilizado para esto (segmento número 3) se comparte para este uso entre los procesos FreeBSD y <trademark class=\"registered\">Linux</trademark> procesos para que el <trademark class=\"registered\">Linux</trademark> La capa de emulación no agrega ninguna sobrecarga sobre FreeBSD simple.",
            "id": 93238,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93238/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26549/?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-17T19:29:34.765378Z",
            "action": 37,
            "target": "amd64",
            "id": 93239,
            "action_name": "Marcada para edição",
            "url": "https://translate-dev.freebsd.org/api/changes/93239/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26550/?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-17T19:29:45.943505Z",
            "action": 5,
            "target": "La implementación de amd64 es similar a la de i386, pero inicialmente no se utilizó un descriptor de segmento de 32 bits para este propósito (por lo tanto, ni siquiera los usuarios nativos de TLS de 32 bits funcionaron), por lo que tuvimos que agregar dicho segmento e implementar su carga en cada cambio de contexto (cuando un se establece el uso de señalización de bandera de 32 bits). Aparte de esto, la carga de TLS es exactamente la misma, solo que los números de segmento son diferentes y el formato del descriptor y la carga difieren ligeramente.",
            "id": 93240,
            "action_name": "Nova tradução",
            "url": "https://translate-dev.freebsd.org/api/changes/93240/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/26551/?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-17T19:29:56.326036Z",
            "action": 37,
            "target": "Futexes",
            "id": 93241,
            "action_name": "Marcada para edição",
            "url": "https://translate-dev.freebsd.org/api/changes/93241/?format=api"
        }
    ]
}