Translation components API.

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

GET /api/translations/documentation/booksarch-handbookboot_index/es/units/?format=api&page=5
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 293,
    "next": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/units/?format=api&page=6",
    "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/units/?format=api&page=4",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "A `Task-State Segment (TSS)` is created.  This is necessary because the processor works in the _least_ privileged level when executing the client ([.filename]#boot2#), but in the _most_ privileged level when executing the BTX server."
            ],
            "previous_source": "",
            "target": [
                "Se crea un `Segmento de Estado de Tarea (TSS)`. Esto es necesario porque el procesador trabaja en el nivel de _menor_ privilegio cuando está ejecutando el cliente ([.filename]#boot2#), pero en el nivel de _mayor_ privilegio cuando ejecuta el servidor BTX."
            ],
            "id_hash": 713019170290830367,
            "content_hash": 713019170290830367,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:888",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 163,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 34,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436581/?format=api",
            "priority": 100,
            "id": 1436873,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=89e527285b3a8c1f",
            "url": "https://translate-dev.freebsd.org/api/units/1436873/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.199960Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "The GDT (Global Descriptor Table) is set up.  Entries (descriptors) are provided for supervisor code and data, user code and data, and real-mode code and data.  footnote:[Real-mode code and data are necessary when switching back to real mode from protected mode, as suggested by the Intel manuals.]"
            ],
            "previous_source": "",
            "target": [
                "Se configura la Tabla de Descriptor Global (GDT). Se proporcionan entradas (descriptores) para código y datos de supervisor, código y datos de usuario, y código y datos en modo real. footnote:[El código y los datos en modo real son necesarios cuando se cambia de modo protegido a modo real, como sugieren los manuales de Intel.]"
            ],
            "id_hash": 7714283688006376561,
            "content_hash": 7714283688006376561,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:891",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 164,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 47,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436583/?format=api",
            "priority": 100,
            "id": 1436874,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=eb0ea4246835dc71",
            "url": "https://translate-dev.freebsd.org/api/units/1436874/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.259623Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Let us now start studying the actual implementation.  Recall that [.filename]#boot1# made a jump to address `0x9010`, the BTX server's entry point.  Before studying program execution there, note that the BTX server has a special header at address range `0x9000-0x900f`, right before its entry point.  This header is defined as follows:"
            ],
            "previous_source": "",
            "target": [
                "Estudiemos ahora la implementación real. Recuerda que [.filename]#boot1# saltó a la dirección `0x9010`, el punto de entrada del servidor BTX. Antes de estudiar la ejecución del programa allí, fíjate en que el servidor BTX tiene un encabezado especial en el rango de direcciones `0x9000-0x900f`, justo antes de su punto de entrada. Este encabezado se define de la siguiente manera:"
            ],
            "id_hash": 2484842257955112798,
            "content_hash": 2484842257955112798,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:896",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 165,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 51,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436585/?format=api",
            "priority": 100,
            "id": 1436875,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=a27beede4c4b475e",
            "url": "https://translate-dev.freebsd.org/api/units/1436875/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.272586Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-header]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-header]]"
            ],
            "id_hash": 4715238116266201311,
            "content_hash": 4715238116266201311,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:914",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 167,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436587/?format=api",
            "priority": 100,
            "id": 1436876,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=c16fe415976dd0df",
            "url": "https://translate-dev.freebsd.org/api/units/1436876/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.289381Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Note the first two bytes are `0xeb` and `0xe`.  In the IA-32 architecture, these two bytes are interpreted as a relative jump past the header into the entry point, so in theory, [.filename]#boot1# could jump here (address `0x9000`) instead of address `0x9010`.  Note that the last field in the BTX header is a pointer to the client's ([.filename]#boot2#) entry pointb2.  This field is patched at link time."
            ],
            "previous_source": "",
            "target": [
                "Date cuenta de que los dos primeros bytes son ``0xeb y `0xe`. En la arquitectura IA-32, estos dos bytes se interpretan como un salto relativo hacia el punto de entrada pasada la cabecera, de forma que en teoría, [.filename]#boot1# podría saltar aquí (dirección `0x9000`) en lugar de a la dirección `0x9010`. Fíjate que el último campo del encabezado de BTX es un punto al punto de entrada del cliente ([.filename]#boot2#) pointb2. Este campo se parchea en tiempo de enlazado."
            ],
            "id_hash": -1903558726486881404,
            "content_hash": -1903558726486881404,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:919",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 168,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436589/?format=api",
            "priority": 100,
            "id": 1436877,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=6595336c7aa78b84",
            "url": "https://translate-dev.freebsd.org/api/units/1436877/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.306440Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "/*\n * Initialization routine.\n */\ninit:\t\tcli\t\t\t\t# Disable interrupts\n\t\txor %ax,%ax\t\t\t# Zero/segment\n\t\tmov %ax,%ss\t\t\t# Set up\n\t\tmov $MEM_ESP0,%sp\t\t#  stack\n\t\tmov %ax,%es\t\t\t# Address\n\t\tmov %ax,%ds\t\t\t#  data\n\t\tpushl $0x2\t\t\t# Clear\n\t\tpopfl\t\t\t\t#  flags\n"
            ],
            "previous_source": "",
            "target": [
                "/*\n * Initialization routine.\n */\ninit:\t\tcli\t\t\t\t# Disable interrupts\n\t\txor %ax,%ax\t\t\t# Zero/segment\n\t\tmov %ax,%ss\t\t\t# Set up\n\t\tmov $MEM_ESP0,%sp\t\t#  stack\n\t\tmov %ax,%es\t\t\t# Address\n\t\tmov %ax,%ds\t\t\t#  data\n\t\tpushl $0x2\t\t\t# Clear\n\t\tpopfl\t\t\t\t#  flags\n"
            ],
            "id_hash": 4009622884313927171,
            "content_hash": 4009622884313927171,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:935",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 170,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 38,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436591/?format=api",
            "priority": 100,
            "id": 1436878,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=b7a50ac4f6cf0e03",
            "url": "https://translate-dev.freebsd.org/api/units/1436878/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.361287Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-init]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-init]]"
            ],
            "id_hash": -845051223314216961,
            "content_hash": -845051223314216961,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:937",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 171,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436593/?format=api",
            "priority": 100,
            "id": 1436879,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=7445c663c158c7ff",
            "url": "https://translate-dev.freebsd.org/api/units/1436879/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.365921Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "This code disables interrupts, sets up a working stack (starting at address `0x1800`) and clears the flags in the EFLAGS register.  Note that the `popfl` instruction pops out a doubleword (4 bytes) from the stack and places it in the EFLAGS register.  As the value actually popped is `2`, the EFLAGS register is effectively cleared (IA-32 requires that bit 2 of the EFLAGS register always be 1)."
            ],
            "previous_source": "",
            "target": [
                "Este código deshabilita interrupciones, configura una pila funcional (empezando en la dirección `0x1800`) y borra los flags en el registro EFLAGS. Date cuenta de que la instrucción `popfl` saca una palabra doble (4 bytes) de la pila y la coloca en el registro EFLAGS. Como el valor que se ha sacado es en realidad `2`, el registro EFLAGS se borra de forma efectiva (IA-32 requiere que el bit 2 del registro EFLAGS sea siempre 1)."
            ],
            "id_hash": 8615059423826275749,
            "content_hash": 8615059423826275749,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:941",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 172,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436595/?format=api",
            "priority": 100,
            "id": 1436880,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=f78ed6e6c40beda5",
            "url": "https://translate-dev.freebsd.org/api/units/1436880/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.370450Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Our next code block clears (sets to `0`) the memory range `0x5e00-0x8fff`.  This range is where the various data structures will be created:"
            ],
            "previous_source": "",
            "target": [
                "Nuestro siguiente bloque de código borra (establece a `0`) el rango de memoria `0x5e00-0x8fff`. Este rango es donde se crearán varias estructuras de datos:"
            ],
            "id_hash": -7323480016215307486,
            "content_hash": -7323480016215307486,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:944",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 173,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436597/?format=api",
            "priority": 100,
            "id": 1436881,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=1a5dc5ba09d08b22",
            "url": "https://translate-dev.freebsd.org/api/units/1436881/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.374787Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "/*\n * Initialize memory.\n */\n\t\tmov $MEM_IDT,%di\t\t# Memory to initialize\n\t\tmov $(MEM_ORG-MEM_IDT)/2,%cx\t# Words to zero\n\t\trep\t\t\t\t# Zero-fill\n\t\tstosw\t\t\t\t#  memory\n"
            ],
            "previous_source": "",
            "target": [
                "/*\n * Initialize memory.\n */\n\t\tmov $MEM_IDT,%di\t\t# Memory to initialize\n\t\tmov $(MEM_ORG-MEM_IDT)/2,%cx\t# Words to zero\n\t\trep\t\t\t\t# Zero-fill\n\t\tstosw\t\t\t\t#  memory\n"
            ],
            "id_hash": -7912490346943382555,
            "content_hash": -7912490346943382555,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:954",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 174,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436599/?format=api",
            "priority": 100,
            "id": 1436882,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=12312ff39dbb7be5",
            "url": "https://translate-dev.freebsd.org/api/units/1436882/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.456263Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-clear-mem]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-clear-mem]]"
            ],
            "id_hash": 6178617644590937169,
            "content_hash": 6178617644590937169,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:956",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 175,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436601/?format=api",
            "priority": 100,
            "id": 1436883,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=d5bedc0314cdb451",
            "url": "https://translate-dev.freebsd.org/api/units/1436883/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.461870Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Recall that [.filename]#boot1# was originally loaded to address `0x7c00`, so, with this memory initialization, that copy effectively disappeared.  However, also recall that [.filename]#boot1# was relocated to `0x700`, so _that_ copy is still in memory, and the BTX server will make use of it."
            ],
            "previous_source": "",
            "target": [
                "Recuerda que [.filename]#boot1# se cargaba originalmente en la dirección `0x7c00`, de forma que, con esta inicialización de memoria, esa copia desaparece. Sin embargo, recuerda también que [.filename]#boot1# fue recolocado en `0x700`, de forma que _esa_ copia todavía está en memoria, y el servidor BTX hará uso de ella."
            ],
            "id_hash": -2197081322727841956,
            "content_hash": -2197081322727841956,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:959",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 176,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 43,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436603/?format=api",
            "priority": 100,
            "id": 1436884,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=6182662d78295f5c",
            "url": "https://translate-dev.freebsd.org/api/units/1436884/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.466797Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Next, the real-mode IVT (Interrupt Vector Table is updated.  The IVT is an array of segment/offset pairs for exception and interrupt handlers.  The BIOS normally maps hardware interrupts to interrupt vectors `0x8` to `0xf` and `0x70` to `0x77` but, as will be seen, the 8259A Programmable Interrupt Controller, the chip controlling the actual mapping of hardware interrupts to interrupt vectors, is programmed to remap these interrupt vectors from `0x8-0xf` to `0x20-0x27` and from `0x70-0x77` to `0x28-0x2f`.  Thus, interrupt handlers are provided for interrupt vectors `0x20-0x2f`.  The reason the BIOS-provided handlers are not used directly is because they work in 16-bit real mode, but not 32-bit protected mode.  Processor mode will be switched to 32-bit protected mode shortly.  However, the BTX server sets up a mechanism to effectively use the handlers provided by the BIOS:"
            ],
            "previous_source": "",
            "target": [
                "Depués se actualiza la IVT (Tabla de Vector de Interrupciones) en modo real. La IVT es un array de pares segmento/desplazamiento para manejadores de interrupción y excepción. La BIOS normalmente mapea las interrupciones hardware a los vectores de interrupción `0x8` a `0xf` y `0x70` a `0x77` pero, como veremos, el Controlador Programable de Interrupciones 8259A, el chip que controla el mapeo real de las interrupciones hardware a vectores de interrupción, se programa para remapear estos vectores de interrupción desde `0x8-0xf` a `0x20-0x27` y desde `0x70-0x77` a `0x28-0x2f`. Por lo tanto, se proporcionan manejadores de interrupción para los vectores de interrupción `0x20-0x2f`. La razón de que no se usen directamente los manejadores proporcionados por la BIOS es porque funcionan en modo real de 16 bits, no es modo protegido de 32 bits. El modo del procesador cambiará a modo protegido de 32 bits en breve. Sin embargo, el servidor BTX configura un mecanismo para usar los manejadores proporcionados por la BIOS de forma efectiva:"
            ],
            "id_hash": -2941132973058430840,
            "content_hash": -2941132973058430840,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:967",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 177,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 134,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436605/?format=api",
            "priority": 100,
            "id": 1436885,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=572eff24cfa9e888",
            "url": "https://translate-dev.freebsd.org/api/units/1436885/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.470937Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-ivt]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-ivt]]"
            ],
            "id_hash": -5811669437052233427,
            "content_hash": -5811669437052233427,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:984",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 179,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436607/?format=api",
            "priority": 100,
            "id": 1436886,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=2f58cd704481d92d",
            "url": "https://translate-dev.freebsd.org/api/units/1436886/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.551454Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "The next block creates the IDT (Interrupt Descriptor Table).  The IDT is analogous, in protected mode, to the IVT in real mode.  That is, the IDT describes the various exception and interrupt handlers used when the processor is executing in protected mode.  In essence, it also consists of an array of segment/offset pairs, although the structure is somewhat more complex, because segments in protected mode are different than in real mode, and various protection mechanisms apply:"
            ],
            "previous_source": "",
            "target": [
                "El siguiente bloque crea el IDT (Tabla de Descriptores de Interrupciones). La IDT es análoga, en modo protegido, al IVT en modo real. Es decir, la IDT describe los diversos manejadores de excepciones e interrupciones que se utilizan cuando el procesador se ejecuta en modo protegido. En esencia, también consta de una matriz de pares de segmento/desplazamiento, aunque la estructura es algo más compleja, porque los segmentos en modo protegido son diferentes a los del modo real, y se aplican varios mecanismos de protección:"
            ],
            "id_hash": 2062662935155350859,
            "content_hash": 2062662935155350859,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:989",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 180,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 76,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436609/?format=api",
            "priority": 100,
            "id": 1436887,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=9ca00d02d54c9d4b",
            "url": "https://translate-dev.freebsd.org/api/units/1436887/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.562112Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "/*\n * Create IDT.\n */\n\t\tmov $MEM_IDT,%di\t\t# IDT's address\n\t\tmov $idtctl,%si\t\t\t# Control string\ninit.1:\t\tlodsb\t\t\t\t# Get entry\n\t\tcbw\t\t\t\t#  count\n\t\txchg %ax,%cx\t\t\t#  as word\n\t\tjcxz init.4\t\t\t# If done\n\t\tlodsb\t\t\t\t# Get segment\n\t\txchg %ax,%dx\t\t\t#  P:DPL:type\n\t\tlodsw\t\t\t\t# Get control\n\t\txchg %ax,%bx\t\t\t#  set\n\t\tlodsw\t\t\t\t# Get handler offset\n\t\tmov $SEL_SCODE,%dh\t\t# Segment selector\ninit.2:\t\tshr %bx\t\t\t\t# Handle this int?\n\t\tjnc init.3\t\t\t# No\n\t\tmov %ax,(%di)\t\t\t# Set handler offset\n\t\tmov %dh,0x2(%di)\t\t#  and selector\n\t\tmov %dl,0x5(%di)\t\t# Set P:DPL:type\n\t\tadd $0x4,%ax\t\t\t# Next handler\ninit.3:\t\tlea 0x8(%di),%di\t\t# Next entry\n\t\tloop init.2\t\t\t# Till set done\n\t\tjmp init.1\t\t\t# Continue\n"
            ],
            "previous_source": "",
            "target": [
                "/*\n * Create IDT.\n */\n\t\tmov $0x5e00,%di\t\t\t#Dirección de IDT\n\t\tmov $idtctl,%si\t\t\t# Cadena de control\ninit.1:\t\tlodsb\t\t\t\t# Obtener entrada\n\t\tcbw\t\t\t\t#  contar\n\t\txchg %ax,%cx\t\t\t#  como palabra\n\t\tjcxz init.4\t\t\t# Si esta hecho\n\t\tlodsb\t\t\t\t# Obtener segmento\n\t\txchg %ax,%dx\t\t\t#  P:DPL:tipo\n\t\tlodsw\t\t\t\t# Toma el control\n\t\txchg %ax,%bx\t\t\t#  conjunto\n\t\tlodsw\t\t\t\t# Obtener compensación de controlador\n\t\tmov $SEL_SCODE,%dh\t\t# Selector de segmento\ninit.2:\t\tshr %bx\t\t\t\t# Maneja este int?\n\t\tjnc init.3\t\t\t# No\n\t\tmov %ax,(%di)\t\t\t# Establecer compensación de controlador\n\t\tmov %dh,0x2(%di)\t\t#  y selector\n\t\tmov %dl,0x5(%di)\t\t# Conjunto P:DPL:tipo\n\t\tadd $0x4,%ax\t\t\t# Siguiente controlador\ninit.3:\t\tlea 0x8(%di),%di\t\t# Entrada siguiente\n\t\tloop init.2\t\t\t#Hasta que esté listo\n\t\tjmp init.1\t\t\t# Seguir\n"
            ],
            "id_hash": 2102150803069793179,
            "content_hash": 2102150803069793179,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1016",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 181,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 107,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436611/?format=api",
            "priority": 100,
            "id": 1436888,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=9d2c57048946f39b",
            "url": "https://translate-dev.freebsd.org/api/units/1436888/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.581090Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-idt]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-idt]]"
            ],
            "id_hash": 6200636464354194657,
            "content_hash": 6200636464354194657,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1018",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 182,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436613/?format=api",
            "priority": 100,
            "id": 1436889,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=d60d16030f2a74e1",
            "url": "https://translate-dev.freebsd.org/api/units/1436889/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.676586Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Each entry in the `IDT` is 8 bytes long.  Besides the segment/offset information, they also describe the segment type, privilege level, and whether the segment is present in memory or not.  The construction is such that interrupt vectors from `0` to `0xf` (exceptions) are handled by function `intx00`; vector `0x10` (also an exception) is handled by `intx10`; hardware interrupts, which are later configured to start at interrupt vector `0x20` all the way to interrupt vector `0x2f`, are handled by function `intx20`.  Lastly, interrupt vector `0x30`, which is used for system calls, is handled by `intx30`, and vectors `0x31` and `0x32` are handled by `intx31`.  It must be noted that only descriptors for interrupt vectors `0x30`, `0x31` and `0x32` are given privilege level 3, the same privilege level as the [.filename]#boot2# client, which means the client can execute a software-generated interrupt to this vectors through the `int` instruction without failing (this is the way [.filename]#boot2# use the services provided by the BTX server).  Also, note that _only_ software-generated interrupts are protected from code executing in lesser privilege levels.  Hardware-generated interrupts and processor-generated exceptions are _always_ handled adequately, regardless of the actual privileges involved."
            ],
            "previous_source": "",
            "target": [
                "Cada entrada en la `IDT` ocupa 8 bytes. Además de la información de segmento/desplazamiento, también describe el tipo de segmento, nivel de privilegio, y si el segmento está en memoria o no. Se construye de tal forma que los vectores de interrupción de `0` a `0xf` (excepciones) son manejados por `intx00`; el vector `0x10` (también excepción) es manejado por `intx10`; las interrupciones hardware, que se configuran posteriormente para empezar en el vector de interrupción `0x20` hasta el vector `0x2f`, se manejan con la función `intx20`. Por último, el vector de interrupción `0x30`, que se usa para llamadas al sistema, es manejado por `intx30`, y los vectores `0x31` y `0x32` son manejados por `intx31`. Hay que fijarse en que sólo a los descriptores para los vectores de interrupción `0x30`, `0x31` y `0x32` se les da nivel de privilegios 3, el mismo nivel de privilegio que el cliente [.filename]#boot2#, lo que significa que el cliente puede ejecutar interrupciones generadas por software en estos vectores mediante la instrucción `int` sin que fallen (esta es la forma en la que [.filename]#boot2# usa los servicios proporcionados por el servidor BTX). También, fíjate que _sólo_ las interrupciones generadas por software están protegidas respecto de código que se ejecuta en niveles menores de privilegio. Las interrupciones generadas por hardware y las excepciones generadas por el procesador _siempre_ se manejan de forma adecuada, independientemente de los niveles de privilegio involucrados."
            ],
            "id_hash": 1987533812313852570,
            "content_hash": 1987533812313852570,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1026",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 183,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 192,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436615/?format=api",
            "priority": 100,
            "id": 1436890,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=9b952378ce0b8a9a",
            "url": "https://translate-dev.freebsd.org/api/units/1436890/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.686838Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "The next step is to initialize the TSS (Task-State Segment).  The TSS is a hardware feature that helps the operating system or executive software implement multitasking functionality through process abstraction.  The IA-32 architecture demands the creation and use of _at least_ one TSS if multitasking facilities are used or different privilege levels are defined.  Since the [.filename]#boot2# client is executed in privilege level 3, but the BTX server runs in privilege level 0, a TSS must be defined:"
            ],
            "previous_source": "",
            "target": [
                "El siguiente paso es inicializar el TSS (Segmento de Estado de Tarea). El TSS es una característica hardware que ayuda al sistema operativo o al software ejecutivo a implementar funcionalidad de multitarea mediante la abstracción de procesos. La arquitectura IA-32 exige la creación y el uso de _al menos_ un TSS si se usan las facilidades multitarea o si se definen diferentes niveles de privilegio. Como el cliente [.filename]#boot2# se ejecuta en nivel de privilegio 3, pero el servidor BTX se ejecuta en nivel de privilegio 0, se tiene que definir un TSS:"
            ],
            "id_hash": 263740875526728261,
            "content_hash": 263740875526728261,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1031",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 184,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 78,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436617/?format=api",
            "priority": 100,
            "id": 1436891,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=83a8feedce856a45",
            "url": "https://translate-dev.freebsd.org/api/units/1436891/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.750901Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-tss]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-tss]]"
            ],
            "id_hash": -1774189083797871128,
            "content_hash": -1774189083797871128,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1042",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 186,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436619/?format=api",
            "priority": 100,
            "id": 1436892,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=6760d06da7da25e8",
            "url": "https://translate-dev.freebsd.org/api/units/1436892/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.758417Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Note that a value is given for the Privilege Level 0 stack pointer and stack segment in the TSS.  This is needed because, if an interrupt or exception is received while executing [.filename]#boot2# in Privilege Level 3, a change to Privilege Level 0 is automatically performed by the processor, so a new working stack is needed.  Finally, the I/O Map Base Address field of the TSS is given a value, which is a 16-bit offset from the beginning of the TSS to the I/O Permission Bitmap and the Interrupt Redirection Bitmap."
            ],
            "previous_source": "",
            "target": [
                "Ten en cuenta que se proporciona un valor para el puntero de pila de nivel de privilegio 0 y el segmento de pila en el TSS. Esto es necesario porque, si se recibe una interrupción o excepción durante la ejecución de [.filename]#boot2# en el nivel de privilegio 3, el procesador realiza automáticamente un cambio al nivel de privilegio 0, por lo que se necesita una nueva pila de trabajo. Finalmente, se le da un valor al campo de la Dirección Base del Aapa de E/S del TSS, que es un desplazamiento de 16 bits desde el comienzo de la TSS al mapa de bits de permisos de E/S y al mapa de bits de redirección de interrupciones."
            ],
            "id_hash": 1374034531120360570,
            "content_hash": 1374034531120360570,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1046",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 187,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 91,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436621/?format=api",
            "priority": 100,
            "id": 1436893,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=93118d20488cac7a",
            "url": "https://translate-dev.freebsd.org/api/units/1436893/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.762064Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "After the IDT and TSS are created, the processor is ready to switch to protected mode.  This is done in the next block:"
            ],
            "previous_source": "",
            "target": [
                "Después de haber creado la IDT y el TSS, el procesaodor está listo para cambiar a modo protegido. Esto se hace en el siguiente bloque:"
            ],
            "id_hash": -4908171658769530752,
            "content_hash": -4908171658769530752,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1049",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 188,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436623/?format=api",
            "priority": 100,
            "id": 1436894,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=3be2abe186670080",
            "url": "https://translate-dev.freebsd.org/api/units/1436894/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.768927Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-prot]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-prot]]"
            ],
            "id_hash": -77355964023659756,
            "content_hash": -77355964023659756,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1069",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 190,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436625/?format=api",
            "priority": 100,
            "id": 1436895,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=7eed2d291b1ca314",
            "url": "https://translate-dev.freebsd.org/api/units/1436895/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.857069Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "First, a call is made to `setpic` to program the 8259A PIC (Programmable Interrupt Controller).  This chip is connected to multiple hardware interrupt sources.  Upon receiving an interrupt from a device, it signals the processor with the appropriate interrupt vector.  This can be customized so that specific interrupts are associated with specific interrupt vectors, as explained before.  Next, the IDTR (Interrupt Descriptor Table Register) and GDTR (Global Descriptor Table Register) are loaded with the instructions `lidt` and `lgdt`, respectively.  These registers are loaded with the base address and limit address for the IDT and GDT.  The following three instructions set the Protection Enable (PE) bit of the `%cr0` register.  This effectively switches the processor to 32-bit protected mode.  Next, a long jump is made to `init.8` using segment selector SEL_SCODE, which selects the Supervisor Code Segment.  The processor is effectively executing in CPL 0, the most privileged level, after this jump.  Finally, the Supervisor Data Segment is selected for the stack by assigning the segment selector SEL_SDATA to the `%ss` register.  This data segment also has a privilege level of `0`."
            ],
            "previous_source": "",
            "target": [
                "Primero, se hace una llamada a `setpic` para programar el PIC (Controlador de interrupción programable) 8259A . Este chip está conectado a múltiples fuentes de interrupción de hardware. Al recibir una interrupción de un dispositivo, envía una señal al procesador con el vector de interrupción apropiado. Esto se puede personalizar para que las interrupciones específicas se asocien con vectores de interrupción específicos, como se explicó antes. A continuación, la IDTR (Registro de tabla de descriptores de interrupción) y el GDTR (Registro de tabla de descriptor global) se cargan con las instrucciones `lidt` y `lgdt`, respectivamente. Estos registros se cargan con la dirección base y la dirección límite para la IDT y la GDT. Las siguientes tres instrucciones establecen el bit de habilitación de protección (PE) del`%cr0`Registrarse. Esto cambia efectivamente el procesador al modo protegido de 32 bits. A continuación, se realiza un salto de largo a `init.8` utilizando el selector de segmento SEL_SCODE, que selecciona el segmento de código de supervisor. El procesador se está ejecutando efectivamente en CPL 0, el nivel más privilegiado, después de este salto. Finalmente, el segmento de datos del supervisor se selecciona para la pila asignando el selector de segmento SEL_SDATA al registro `%ss`. Este segmento de datos también tiene un nivel de privilegio de `0`."
            ],
            "id_hash": -2992351916285555756,
            "content_hash": -2992351916285555756,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1082",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 191,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 181,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436627/?format=api",
            "priority": 100,
            "id": 1436896,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=567907c94ad70bd4",
            "url": "https://translate-dev.freebsd.org/api/units/1436896/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.864391Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "/*\n * Launch user task.\n */\n\t\tmovb $SEL_TSS,%cl\t\t# Set task\n\t\tltr %cx\t\t\t\t#  register\n\t\tmovl $MEM_USR,%edx\t\t# User base address\n\t\tmovzwl %ss:BDA_MEM,%eax\t\t# Get free memory\n\t\tshll $0xa,%eax\t\t\t# To bytes\n\t\tsubl $ARGSPACE,%eax\t\t# Less arg space\n\t\tsubl %edx,%eax\t\t\t# Less base\n\t\tmovb $SEL_UDATA,%cl\t\t# User data selector\n\t\tpushl %ecx\t\t\t# Set SS\n\t\tpushl %eax\t\t\t# Set ESP\n\t\tpush $0x202\t\t\t# Set flags (IF set)\n\t\tpush $SEL_UCODE\t\t\t# Set CS\n\t\tpushl btx_hdr+0xc\t\t# Set EIP\n\t\tpushl %ecx\t\t\t# Set GS\n\t\tpushl %ecx\t\t\t# Set FS\n\t\tpushl %ecx\t\t\t# Set DS\n\t\tpushl %ecx\t\t\t# Set ES\n\t\tpushl %edx\t\t\t# Set EAX\n\t\tmovb $0x7,%cl\t\t\t# Set remaining\ninit.9:\t\tpush $0x0\t\t\t#  general\n\t\tloop init.9\t\t\t#  registers\n#ifdef BTX_SERIAL\n\t\tcall sio_init\t\t\t# setup the serial console\n#endif\n\t\tpopa\t\t\t\t#  and initialize\n\t\tpopl %es\t\t\t# Initialize\n\t\tpopl %ds\t\t\t#  user\n\t\tpopl %fs\t\t\t#  segment\n\t\tpopl %gs\t\t\t#  registers\n\t\tiret\t\t\t\t# To user mode\n"
            ],
            "previous_source": "",
            "target": [
                "/*\n * Launch user task.\n */\n\t\tmovb $SEL_TSS,%cl\t\t# Set task\n\t\tltr %cx\t\t\t\t#  register\n\t\tmovl $MEM_USR,%edx\t\t# User base address\n\t\tmovzwl %ss:BDA_MEM,%eax\t\t# Get free memory\n\t\tshll $0xa,%eax\t\t\t# To bytes\n\t\tsubl $ARGSPACE,%eax\t\t# Less arg space\n\t\tsubl %edx,%eax\t\t\t# Less base\n\t\tmovb $SEL_UDATA,%cl\t\t# User data selector\n\t\tpushl %ecx\t\t\t# Set SS\n\t\tpushl %eax\t\t\t# Set ESP\n\t\tpush $0x202\t\t\t# Set flags (IF set)\n\t\tpush $SEL_UCODE\t\t\t# Set CS\n\t\tpushl btx_hdr+0xc\t\t# Set EIP\n\t\tpushl %ecx\t\t\t# Set GS\n\t\tpushl %ecx\t\t\t# Set FS\n\t\tpushl %ecx\t\t\t# Set DS\n\t\tpushl %ecx\t\t\t# Set ES\n\t\tpushl %edx\t\t\t# Set EAX\n\t\tmovb $0x7,%cl\t\t\t# Set remaining\ninit.9:\t\tpush $0x0\t\t\t#  general\n\t\tloop init.9\t\t\t#  registers\n#ifdef BTX_SERIAL\n\t\tcall sio_init\t\t\t# setup the serial console\n#endif\n\t\tpopa\t\t\t\t#  and initialize\n\t\tpopl %es\t\t\t# Initialize\n\t\tpopl %ds\t\t\t#  user\n\t\tpopl %fs\t\t\t#  segment\n\t\tpopl %gs\t\t\t#  registers\n\t\tiret\t\t\t\t# To user mode\n"
            ],
            "id_hash": 5593170204071011698,
            "content_hash": 5593170204071011698,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1120",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 193,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 150,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436629/?format=api",
            "priority": 100,
            "id": 1436897,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=cd9eeeaaadf3a572",
            "url": "https://translate-dev.freebsd.org/api/units/1436897/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.955200Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-end]]"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-end]]"
            ],
            "id_hash": -8226378526713168460,
            "content_hash": -8226378526713168460,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1122",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 194,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436631/?format=api",
            "priority": 100,
            "id": 1436898,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=0dd60850af5c3db4",
            "url": "https://translate-dev.freebsd.org/api/units/1436898/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.971104Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Note that the client's environment include a stack segment selector and stack pointer (registers `%ss` and `%esp`).  Indeed, once the TR is loaded with the appropriate stack segment selector (instruction `ltr`), the stack pointer is calculated and pushed onto the stack along with the stack's segment selector.  Next, the value `0x202` is pushed onto the stack; it is the value that the EFLAGS will get when control is passed to the client.  Also, the User Mode code segment selector and the client's entry point are pushed.  Recall that this entry point is patched in the BTX header at link time.  Finally, segment selectors (stored in register `%ecx`) for the segment registers `%gs, %fs, %ds and %es` are pushed onto the stack, along with the value at `%edx` (`0xa000`).  Keep in mind the various values that have been pushed onto the stack (they will be popped out shortly).  Next, values for the remaining general purpose registers are also pushed onto the stack (note the `loop` that pushes the value `0` seven times).  Now, values will be started to be popped out of the stack.  First, the `popa` instruction pops out of the stack the latest seven values pushed.  They are stored in the general purpose registers in order `%edi, %esi, %ebp, %ebx, %edx, %ecx, %eax`.  Then, the various segment selectors pushed are popped into the various segment registers.  Five values still remain on the stack.  They are popped when the `iret` instruction is executed.  This instruction first pops the value that was pushed from the BTX header.  This value is a pointer to [.filename]#boot2#'s entry point.  It is placed in the register `%eip`, the instruction pointer register.  Next, the segment selector for the User Code Segment is popped and copied to register `%cs`.  Remember that this segment's privilege level is 3, the least privileged level.  This means that we must provide values for the stack of this privilege level.  This is why the processor, besides further popping the value for the EFLAGS register, does two more pops out of the stack.  These values go to the stack pointer (`%esp`) and the stack segment (`%ss`).  Now, execution continues at ``boot0``'s entry point."
            ],
            "previous_source": "",
            "target": [
                "Ten en cuenta que el entorno del cliente incluye un selector de segmento de pila y un puntero de pila (registra `%ss` y `%esp`). De hecho, una vez que el TR se carga con el selector de segmento de pila apropiado (instrucción `ltr`), el puntero de la pila se calcula y se inserta en la pila junto con el selector de segmento de la pila. A continuación, el valor `0x202` se empuja hacia la pila; es el valor que obtendrá EFLAGS cuando el control se pase al cliente. Además, se empujan el selector de segmento de código del modo de usuario y el punto de entrada del cliente. Recuerda que este punto de entrada está parcheado en el encabezado de BTX en el momento de enlazado. Finalmente, los selectores de segmento (almacenados en el registro `%ecx`) para los registros de segmento `%gs`, `%fs`, `%ds` y `%es` se colocan en la pila, junto con el valor en `%edx` (`0xa000`). Ten en cuenta los diversos valores que se han introducido en la pila (aparecerán en breve). A continuación, los valores de los registros de propósito general restantes también se insertan en la pila (ten en cuenta el`loop` que empuja el valor `0` siete veces). Ahora, los valores comenzarán a salir de la pila. Primero la instrucción `popa`saca de la pila con los últimos siete valores insertados. Se almacenan en los registros de propósito general en orden `%edi`, `%esi`, `%ebp`, `%ebx`, `%edx`, `%ecx`, `%eax`. Luego, los diversos selectores de segmento empujados se introducen en los distintos registros de segmento. Aún quedan cinco valores en la pila. Se sacan cuando el `iret` se ejecuta la instrucción. Esta instrucción primero muestra el valor que fue empujado desde elBTX encabezamiento. Este valor es un puntero al punto de entrada de [.filename]#boot2#. Se coloca en el registro `%eip`, el registro de puntero de instrucción. A continuación, el selector de segmento para el segmento de código de usuario se abre y se copia para registrar `%cs`. Recuerda que el nivel de privilegio de este segmento es 3, el nivel menos privilegiado. Esto significa que debemos proporcionar valores para la pila de este nivel de privilegio. Esta es la razón por la que el procesador, además de extraer el valor del registro EFLAGS, extrae dos valores más de la pila. Estos valores van al puntero de la pila(`%esp`) y el segmento de pila (`%ss`). Ahora, la ejecución continúa en el punto de entrada de `boot0`."
            ],
            "id_hash": 959775574751909898,
            "content_hash": 959775574751909898,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1146",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 195,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 360,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436633/?format=api",
            "priority": 100,
            "id": 1436899,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=8d51ceccd52f180a",
            "url": "https://translate-dev.freebsd.org/api/units/1436899/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:20.981506Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "It is important to note how the User Code Segment is defined.  This segment's _base address_ is set to `0xa000`.  This means that code memory addresses are _relative_ to address 0xa000; if code being executed is fetched from address `0x2000`, the _actual_ memory addressed is `0xa000+0x2000=0xc000`."
            ],
            "previous_source": "",
            "target": [
                "Es importante fijarse en cómo se define el Segmento de Código de usuario. La _dirección base_ de este segmento es `0xa000`. Esto significa que las direcciones de memoria de código son _relativas_ a la dirección 0xa000; si el código que se está ejecutando se ha leído de la dirección `0x20000`, la dirección de memoria _que realmente se accede_ es `0xa000+0x2000=0xc000`."
            ],
            "id_hash": -8602585956441729498,
            "content_hash": -8602585956441729498,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1150",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 196,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 46,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436635/?format=api",
            "priority": 100,
            "id": 1436900,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=089d79a6ac86d626",
            "url": "https://translate-dev.freebsd.org/api/units/1436900/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.152585Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "`boot2` defines an important structure, `struct bootinfo`.  This structure is initialized by `boot2` and passed to the loader, and then further to the kernel.  Some nodes of this structures are set by `boot2`, the rest by the loader.  This structure, among other information, contains the kernel filename, BIOS harddisk geometry, BIOS drive number for boot device, physical memory available, `envp` pointer etc.  The definition for it is:"
            ],
            "previous_source": "",
            "target": [
                "`boot2` define una estructura importante, `struct bootinfo`. Esta estructura es inicializada por `boot2` y pasada al cargador, y posteriormente al kernel. Algunos nodos de esta estructura están escritos por `boot2`, el resto por el cargador. Esta estructura, entre otra información, contiene el nombre del kernel, la geometría de disco de la BIOS, el número de unidad de la BIOS para el dispositivo de arranque, la memoria física disponible, el puntero `envp`etc. Su definición es:"
            ],
            "id_hash": 6493341310408820575,
            "content_hash": 6493341310408820575,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1159",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 198,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436637/?format=api",
            "priority": 100,
            "id": 1436901,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=da1cfb84c449875f",
            "url": "https://translate-dev.freebsd.org/api/units/1436901/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.175216Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "`boot2` enters into an infinite loop waiting for user input, then calls `load()`.  If the user does not press anything, the loop breaks by a timeout, so `load()` will load the default file ([.filename]#/boot/loader#).  Functions `ino_t lookup(char *filename)` and `int xfsread(ino_t inode, void *buf, size_t nbyte)` are used to read the content of a file into memory.  [.filename]#/boot/loader# is an ELF binary, but where the ELF header is prepended with [.filename]#a.out#'s `struct exec` structure.  `load()` scans the loader's ELF header, loading the content of [.filename]#/boot/loader# into memory, and passing the execution to the loader's entry:"
            ],
            "previous_source": "",
            "target": [
                "`boot2` entra en un bucle infinito esperando la entrada del usuario, después llama a `load()`. Si el usuario no presiona nada, el bucle se finaliza por timeout, de forma que `load()` cargará el fichero por defecto ([.filename]#/boot/loader#). Las funciones `ino_t lookup(char *filename)` y `int xfsread(ino_t inode, void *buf, size_t nbyte)` se usan para leer el contenido desde un fichero a memoria. [.filename]#/boot/loader# es un binario ELF, pero donde la cabecera ELF tiene como prefijo la estructura `struct exec` de [.filename]#a.out#. `load()` escanea la cabecera ELF del cargador, cargando el contenido de [.filename]#/boot/loader# en memoria, pasando la ejecución a la entrada del cargador:"
            ],
            "id_hash": -5080383871093235622,
            "content_hash": -5080383871093235622,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1191",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 200,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 95,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436639/?format=api",
            "priority": 100,
            "id": 1436902,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=397ed9c948dd205a",
            "url": "https://translate-dev.freebsd.org/api/units/1436902/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.254672Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "stand/i386/boot2/boot2.c:\n    __exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK),\n\t   MAKEBOOTDEV(dev_maj[dsk.type], dsk.slice, dsk.unit, dsk.part),\n\t   0, 0, 0, VTOP(&bootinfo));\n"
            ],
            "previous_source": "",
            "target": [
                "stand/i386/boot2/boot2.c:\n    __exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK),\n\t   MAKEBOOTDEV(dev_maj[dsk.type], dsk.slice, dsk.unit, dsk.part),\n\t   0, 0, 0, VTOP(&bootinfo));\n"
            ],
            "id_hash": -8991716493474534716,
            "content_hash": -8991716493474534716,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1198",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 201,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 15,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436641/?format=api",
            "priority": 100,
            "id": 1436903,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=0337017d456deac4",
            "url": "https://translate-dev.freebsd.org/api/units/1436903/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.271276Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "loader is a BTX client as well.  I will not describe it here in detail, there is a comprehensive man page written by Mike Smith, man:loader[8].  The underlying mechanisms and BTX were discussed above."
            ],
            "previous_source": "",
            "target": [
                "El cargador también es un cliente BTX. No lo describiré aquí en detalle, hay una página de manual muy completa escrita por Mike Smith, man:loader[8]. Los mecanismos subyacentes y BTX se han discutido arriba."
            ],
            "id_hash": 8168764292188005769,
            "content_hash": 8168764292188005769,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1206",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 203,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 34,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436643/?format=api",
            "priority": 100,
            "id": 1436904,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=f15d47d801c2e589",
            "url": "https://translate-dev.freebsd.org/api/units/1436904/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.278282Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "The main task for the loader is to boot the kernel.  When the kernel is loaded into memory, it is being called by the loader:"
            ],
            "previous_source": "The main task for the loader is to boot the kernel. When the kernel is loaded into memory, it is being called by the loader:",
            "target": [
                "La tarea principal del cargador es arrancar el núcleo. Cuando el núcleo se carga en la memoria, el cargador lo llama:"
            ],
            "id_hash": 1361752339450843361,
            "content_hash": 1361752339450843361,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1209",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 204,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 25,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436645/?format=api",
            "priority": 100,
            "id": 1436905,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=92e5ea89b10650e1",
            "url": "https://translate-dev.freebsd.org/api/units/1436905/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.358241Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "stand/common/boot.c:\n    /* Call the exec handler from the loader matching the kernel */\n    file_formats[fp->f_loader]->l_exec(fp);\n"
            ],
            "previous_source": "",
            "target": [
                "stand/common/boot.c:\n    /* Call the exec handler from the loader matching the kernel */\n    file_formats[fp->f_loader]->l_exec(fp);\n"
            ],
            "id_hash": 592432761214301662,
            "content_hash": 592432761214301662,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1215",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 205,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 14,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436647/?format=api",
            "priority": 100,
            "id": 1436906,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=8838be751d7b75de",
            "url": "https://translate-dev.freebsd.org/api/units/1436906/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.367271Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Let us take a look at the command that links the kernel.  This will help identify the exact location where the loader passes execution to the kernel.  This location is the kernel's actual entry point.  This command is now excluded from [.filename]#sys/conf/Makefile.i386#.  The content that interests us can be found in [.filename]#/usr/obj/usr/src/i386.i386/sys/GENERIC/#."
            ],
            "previous_source": "Let us take a look at the command that links the kernel. This will help identify the exact location where the loader passes execution to the kernel. This location is the kernel's actual entry point.",
            "target": [
                "Echemos un vistazo al comando que enlaza el kernel. Esto ayudará a identificar la ubicación exacta donde el cargador pasa la ejecución al kernel. Esta ubicación es el punto de entrada real del kernel. Este comando ya no está en [.filename]#sys/conf/Makefile.i386#. El contenido que nos interesa se puede encontrar en [.filename]#/usr/obj/usr/src/i386.i386/sys/GENERIC/#."
            ],
            "id_hash": 498460647728415104,
            "content_hash": 498460647728415104,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1225",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 207,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 52,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436649/?format=api",
            "priority": 100,
            "id": 1436907,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=86eae351725d0180",
            "url": "https://translate-dev.freebsd.org/api/units/1436907/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.458649Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "/usr/obj/usr/src/i386.i386/sys/GENERIC/kernel.meta:\nld -m elf_i386_fbsd -Bdynamic -T /usr/src/sys/conf/ldscript.i386 --build-id=sha1 --no-warn-mismatch \\\n--warn-common --export-dynamic  --dynamic-linker /red/herring -X -o kernel locore.o\n<lots of kernel .o files>\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/obj/usr/src/i386.i386/sys/GENERIC/kernel.meta:\nld -m elf_i386_fbsd -Bdynamic -T /usr/src/sys/conf/ldscript.i386 --build-id=sha1 --no-warn-mismatch \\\n--warn-common --export-dynamic  --dynamic-linker /red/herring -X -o kernel locore.o\n<lots of kernel .o files>\n"
            ],
            "id_hash": 3795981866441073020,
            "content_hash": 3795981866441073020,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1232",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 208,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436651/?format=api",
            "priority": 100,
            "id": 1436908,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=b4ae0965430b617c",
            "url": "https://translate-dev.freebsd.org/api/units/1436908/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.471528Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "A few interesting things can be seen here.  First, the kernel is an ELF dynamically linked binary, but the dynamic linker for kernel is [.filename]#/red/herring#, which is definitely a bogus file.  Second, taking a look at the file [.filename]#sys/conf/ldscript.i386# gives an idea about what ld options are used when compiling a kernel.  Reading through the first few lines, the string"
            ],
            "previous_source": "",
            "target": [
                "Aquí se pueden ver algunas cosas interesantes. Primero, el kernel es un binario ELF enlazado dinámicamente, pero el enlazador dinámico para el kernel es [.filename]#/red/herring#, que definitivamente es un archivo falso. En segundo lugar, echar un vistazo al archivo [.filename]#sys/conf/ldscript.i386# da una idea de qué opciones de ld se utilizan al compilar el kernel. Al leer las primeras líneas, la cadena"
            ],
            "id_hash": -3965535630150848726,
            "content_hash": -3965535630150848726,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1238",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 209,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 60,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436653/?format=api",
            "priority": 100,
            "id": 1436909,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=48f7965accb42f2a",
            "url": "https://translate-dev.freebsd.org/api/units/1436909/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.552072Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "says that a kernel's entry point is the symbol `btext`.  This symbol is defined in [.filename]#locore.s#:"
            ],
            "previous_source": "",
            "target": [
                "dice que el punto de entrada de un kernel es el símbolo 'btext'. Este símbolo se define en [.filename]#locore.s#:"
            ],
            "id_hash": -8640302545423053025,
            "content_hash": -8640302545423053025,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1247",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 211,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436655/?format=api",
            "priority": 100,
            "id": 1436910,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=08177a9cfc27cf1f",
            "url": "https://translate-dev.freebsd.org/api/units/1436910/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.561469Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "First, the register EFLAGS is set to a predefined value of 0x00000002.  Then all the segment registers are initialized:"
            ],
            "previous_source": "First, the register EFLAGS is set to a predefined value of 0x00000002. Then all the segment registers are initialized:",
            "target": [
                "Primero, el registro EFLAGS se establece en un valor predefinido de 0x00000002. Luego se inicializan todos los registros de segmento:"
            ],
            "id_hash": 4695363525195467022,
            "content_hash": 4695363525195467022,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1262",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 213,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 19,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436657/?format=api",
            "priority": 100,
            "id": 1436911,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=c129483fc29a090e",
            "url": "https://translate-dev.freebsd.org/api/units/1436911/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.652697Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "btext calls the routines `recover_bootinfo()`, `identify_cpu()`, which are also defined in [.filename]#locore.s#.  Here is a description of what they do:"
            ],
            "previous_source": "",
            "target": [
                "btext llama a las rutinas `recover_bootinfo()`, `identify_cpu()`, que también están definidas en [.filename]#locore.s#. Aquí hay una descripción de lo que hacen:"
            ],
            "id_hash": 3584395515303661745,
            "content_hash": 3584395515303661745,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1281",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 216,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436659/?format=api",
            "priority": 100,
            "id": 1436912,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=b1be54baf02d90b1",
            "url": "https://translate-dev.freebsd.org/api/units/1436912/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.761129Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "This routine parses the parameters to the kernel passed from the bootstrap.\nThe kernel may have been booted in 3 ways: by the loader, described above, by the old disk boot blocks, or by the old diskless boot procedure.\nThis function determines the booting method, and stores the `struct bootinfo` structure into the kernel memory."
            ],
            "previous_source": "",
            "target": [
                "Esta rutina parsea los parámetros pasados al kernel desde el arranque.\nEl kernel podría haber sido arrancado de 3 formas: por el cargador, descrito arriba, por los bloques de arranque de disco antiguos, o por el procedimiento antiguo de arranque sin disco.\nEsta función determina el método de arranque y almacena la estructura `struct bootinfo`en la memoria del kernel."
            ],
            "id_hash": -5739305461841263012,
            "content_hash": -5739305461841263012,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1291",
            "context": "",
            "note": "type: Table",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 218,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 55,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436661/?format=api",
            "priority": 100,
            "id": 1436913,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=3059e417317e065c",
            "url": "https://translate-dev.freebsd.org/api/units/1436913/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.768774Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "This function tries to find out what CPU it is running on, storing the value found in a variable `_cpu`."
            ],
            "previous_source": "",
            "target": [
                "Esta función intenta averiguar en qué CPU se está ejecutando, almacenando el valor encontrado en la variable `_cpu`."
            ],
            "id_hash": -3966896510099643946,
            "content_hash": -3966896510099643946,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1293",
            "context": "",
            "note": "type: Table",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 220,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436663/?format=api",
            "priority": 100,
            "id": 1436914,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=48f2c0a43ec621d6",
            "url": "https://translate-dev.freebsd.org/api/units/1436914/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.870920Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "sys/i386/i386/mpboot.s:\n\ttestl\t$CPUID_VME,%edx\n\tjz\t3f\n\torl\t$CR4_VME,%eax\n3:\tmovl\t%eax,%cr4\n"
            ],
            "previous_source": "",
            "target": [
                "sys/i386/i386/mpboot.s:\n\ttestl\t$CPUID_VME,%edx\n\tjz\t3f\n\torl\t$CR4_VME,%eax\n3:\tmovl\t%eax,%cr4\n"
            ],
            "id_hash": -8296947463390117843,
            "content_hash": -8296947463390117843,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1304",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 222,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 10,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436665/?format=api",
            "priority": 100,
            "id": 1436915,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=0cdb523dbc8dc02d",
            "url": "https://translate-dev.freebsd.org/api/units/1436915/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.959303Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "sys/i386/i386/mpboot.s:\n/* Now enable paging */\n\tmovl\tIdlePTD_nopae, %eax\n\tmovl\t%eax,%cr3\t\t\t/* load ptd addr into mmu */\n\tmovl\t%cr0,%eax\t\t\t/* get control word */\n\torl\t$CR0_PE|CR0_PG,%eax\t\t/* enable paging */\n\tmovl\t%eax,%cr0\t\t\t/* and let's page NOW! */\n"
            ],
            "previous_source": "",
            "target": [
                "sys/i386/i386/mpboot.s:\n/* Now enable paging */\n\tmovl\tIdlePTD_nopae, %eax\n\tmovl\t%eax,%cr3\t\t\t/* load ptd addr into mmu */\n\tmovl\t%cr0,%eax\t\t\t/* get control word */\n\torl\t$CR0_PE|CR0_PG,%eax\t\t/* enable paging */\n\tmovl\t%eax,%cr0\t\t\t/* and let's page NOW! */\n"
            ],
            "id_hash": -1922710570866274864,
            "content_hash": -1922710570866274864,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1317",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 224,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 39,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436667/?format=api",
            "priority": 100,
            "id": 1436916,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=655128ec39a08dd0",
            "url": "https://translate-dev.freebsd.org/api/units/1436916/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.968121Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "sys/i386/i386/mpboot.s:\n\tpushl\t$mp_begin\t\t\t\t/* jump to high mem */\n\tret\n"
            ],
            "previous_source": "",
            "target": [
                "sys/i386/i386/mpboot.s:\n\tpushl\t$mp_begin\t\t\t\t/* jump to high mem */\n\tret\n"
            ],
            "id_hash": -2441982590011346257,
            "content_hash": -2441982590011346257,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1326",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 226,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 10,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436669/?format=api",
            "priority": 100,
            "id": 1436917,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=5e1c55c5c6af72af",
            "url": "https://translate-dev.freebsd.org/api/units/1436917/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:21.977947Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "/* now running relocated at KERNBASE where the system is linked to run */\nmp_begin:\t/* now running relocated at KERNBASE */\n"
            ],
            "previous_source": "",
            "target": [
                "/* now running relocated at KERNBASE where the system is linked to run */\nmp_begin:\t/* now running relocated at KERNBASE */\n"
            ],
            "id_hash": 78101979324088725,
            "content_hash": 78101979324088725,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1329",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 227,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 22,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436671/?format=api",
            "priority": 100,
            "id": 1436918,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=811579561dde0195",
            "url": "https://translate-dev.freebsd.org/api/units/1436918/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:22.053852Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "The function `init386()` is called with a pointer to the first free physical page, after that `mi_startup()`.  `init386` is an architecture dependent initialization function, and `mi_startup()` is an architecture independent one (the 'mi_' prefix stands for Machine Independent).  The kernel never returns from `mi_startup()`, and by calling it, the kernel finishes booting:"
            ],
            "previous_source": "",
            "target": [
                "La función `init386()` se llama con un puntero a la primera página física libre, después de `mi_startup()`. `init386` es una función de inicialización dependiente de la arquitectura, y `mi_startup()` es una independiente de la arquitectura (el prefijo `mi_` significa Machine Independent). El kernel nunca vuelve de `mi_startup()`, y al llamarla, el kernel termina de arrancar:"
            ],
            "id_hash": 3875492701494615419,
            "content_hash": 3875492701494615419,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1334",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 228,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 52,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436673/?format=api",
            "priority": 100,
            "id": 1436919,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=b5c884142a349d7b",
            "url": "https://translate-dev.freebsd.org/api/units/1436919/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:22.076438Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "sys/i386/i386/locore.s:\n\tpushl\tphysfree\t\t\t/* value of first for init386(first) */\n\tcall\tinit386\t\t\t\t/* wire 386 chip for unix operation */\n\taddl\t$4,%esp\n\tmovl\t%eax,%esp\t\t\t/* Switch to true top of stack. */\n\tcall\tmi_startup\t\t\t/* autoconfiguration, mountroot etc */\n\t/* NOTREACHED */\n"
            ],
            "previous_source": "",
            "target": [
                "sys/i386/i386/locore.s:\n\tpushl\tphysfree\t\t\t/* value of first for init386(first) */\n\tcall\tinit386\t\t\t\t/* wire 386 chip for unix operation */\n\taddl\t$4,%esp\n\tmovl\t%eax,%esp\t\t\t/* Switch to true top of stack. */\n\tcall\tmi_startup\t\t\t/* autoconfiguration, mountroot etc */\n\t/* NOTREACHED */\n"
            ],
            "id_hash": 2500008019465070950,
            "content_hash": 2500008019465070950,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1344",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 229,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 42,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436675/?format=api",
            "priority": 100,
            "id": 1436920,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=a2b1d00c4fd7e966",
            "url": "https://translate-dev.freebsd.org/api/units/1436920/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:22.089733Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "Set up thread0's pcb."
            ],
            "previous_source": "Set up proc0's pcb.",
            "target": [
                "Configurar el pcb de thread0."
            ],
            "id_hash": -2458459466951419131,
            "content_hash": -2458459466951419131,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1360",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 239,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436679/?format=api",
            "priority": 100,
            "id": 1436922,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=5de1cc23e9aa1b05",
            "url": "https://translate-dev.freebsd.org/api/units/1436922/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:22.369389Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/es/?format=api",
            "source": [
                "`init386()` initializes the tunable parameters passed from bootstrap by setting the environment pointer (envp) and calling `init_param1()`.  The envp pointer has been passed from loader in the `bootinfo` structure:"
            ],
            "previous_source": "",
            "target": [
                "`init386()` inicializa los parámetros configurables pasados desde el arranque mediante el establecimiento del puntero al entorno (envp) y llamando a `init_param1()`. El puntero envp se ha pasado desde el cargador en la estructura `bootinfo`:"
            ],
            "id_hash": -3300174229056574904,
            "content_hash": -3300174229056574904,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1363",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 240,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 29,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436681/?format=api",
            "priority": 100,
            "id": 1436923,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/es/?checksum=52336d06142f2a48",
            "url": "https://translate-dev.freebsd.org/api/units/1436923/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-07-08T02:59:22.376067Z"
        }
    ]
}