Translation components API.

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

GET /api/translations/freebsd-doc/boooks_design-44bsd/es/units/?format=api&page=4
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 393,
    "next": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/units/?format=api&page=5",
    "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/units/?format=api&page=3",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The system defines a set of <emphasis>signals</emphasis> that may be delivered to a process. Signals in 4.4BSD are modeled after hardware interrupts. A process may specify a user-level subroutine to be a <emphasis>handler</emphasis> to which a signal should be delivered. When a signal is generated, it is blocked from further occurrence while it is being <emphasis>caught</emphasis> by the handler. Catching a signal involves saving the current process context and building a new one in which to run the handler. The signal is then delivered to the handler, which can either abort the process or return to the executing process (perhaps after setting a global variable). If the handler returns, the signal is unblocked and can be generated (and caught) again."
            ],
            "previous_source": "",
            "target": [
                "El sistema define un conjunto de <emphasis>signals</emphasis> que se puede entregar a un proceso. Las señales en 4.4BSD se modelan a partir de las interrupciones de hardware. Un proceso puede especificar una subrutina a nivel de usuario para ser un <emphasis>handler</emphasis> al que se debe enviar una señal. Cuando se genera una señal, se bloquea para que no vuelva a ocurrir mientras se está <emphasis>caught</emphasis> por el manejador. La captura de una señal implica guardar el contexto del proceso actual y crear uno nuevo en el que ejecutar el controlador. Luego, la señal se envía al controlador, que puede abortar el proceso o regresar al proceso en ejecución (quizás después de establecer una variable global). Si el manejador regresa, la señal se desbloquea y se puede generar (y capturar) nuevamente."
            ],
            "id_hash": -5920543852016939532,
            "content_hash": -5920543852016939532,
            "location": "book.translate.xml:761",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 151,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 120,
            "source_unit": "https://translate-dev.freebsd.org/api/units/104997/?format=api",
            "priority": 100,
            "id": 227370,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=2dd600bc27684df4",
            "url": "https://translate-dev.freebsd.org/api/units/227370/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.650777Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Alternatively, a process may specify that a signal is to be <emphasis>ignored</emphasis>, or that a default action, as determined by the kernel, is to be taken. The default action of certain signals is to terminate the process. This termination may be accompanied by creation of a <emphasis>core file</emphasis> that contains the current memory image of the process for use in postmortem debugging."
            ],
            "previous_source": "",
            "target": [
                "Alternativamente, un proceso puede especificar que una señal debe ser <emphasis>ignored</emphasis>, o que se debe tomar una acción predeterminada, según lo determine el kernel. La acción predeterminada de ciertas señales es terminar el proceso. Esta terminación puede ir acompañada de la creación de un <emphasis>core file</emphasis>  que contiene la imagen de memoria actual del proceso para su uso en la depuración post mortem."
            ],
            "id_hash": 281099976653964804,
            "content_hash": 281099976653964804,
            "location": "book.translate.xml:780",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 152,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 62,
            "source_unit": "https://translate-dev.freebsd.org/api/units/104998/?format=api",
            "priority": 100,
            "id": 227371,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=83e6aaf07ed48604",
            "url": "https://translate-dev.freebsd.org/api/units/227371/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.657297Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Some signals cannot be caught or ignored. These signals include <emphasis>SIGKILL</emphasis>, which kills runaway processes, and the job-control signal <emphasis>SIGSTOP</emphasis>."
            ],
            "previous_source": "",
            "target": [
                "Algunas señales no se pueden captar ni ignorar. Estas señales incluyen <emphasis>SIGKILL</emphasis>,que mata los procesos fuera de control, y la señal de control del trabajo<emphasis>SIGSTOP</emphasis>."
            ],
            "id_hash": 4587800578520321518,
            "content_hash": 4587800578520321518,
            "location": "book.translate.xml:789",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 153,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/104999/?format=api",
            "priority": 100,
            "id": 227372,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=bfab2451a7090dee",
            "url": "https://translate-dev.freebsd.org/api/units/227372/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.663788Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "A process may choose to have signals delivered on a special stack so that sophisticated software stack manipulations are possible. For example, a language supporting coroutines needs to provide a stack for each coroutine. The language run-time system can allocate these stacks by dividing up the single stack provided by 4.4BSD. If the kernel does not support a separate signal stack, the space allocated for each coroutine must be expanded by the amount of space required to catch a signal."
            ],
            "previous_source": "",
            "target": [
                "Un proceso puede optar por que las señales se envíen en una pila especial para que sean posibles manipulaciones sofisticadas de la pila de software. Por ejemplo, un lenguaje que admita corrutinas debe proporcionar una pila para cada corrutina. El sistema de tiempo de ejecución del lenguaje puede asignar estas pilas dividiendo la pila única proporcionada por 4.4BSD. Si el núcleo no admite una pila de señales separada, el espacio asignado para cada corrutina debe expandirse por la cantidad de espacio requerida para captar una señal."
            ],
            "id_hash": -8577835401393644031,
            "content_hash": -8577835401393644031,
            "location": "book.translate.xml:797",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 154,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 80,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105000/?format=api",
            "priority": 100,
            "id": 227373,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=08f5682656295e01",
            "url": "https://translate-dev.freebsd.org/api/units/227373/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.670801Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "All signals have the same <emphasis>priority</emphasis>. If multiple signals are pending simultaneously, the order in which signals are delivered to a process is implementation specific. Signal handlers execute with the signal that caused their invocation to be blocked, but other signals may yet occur. Mechanisms are provided so that processes can protect critical sections of code against the occurrence of specified signals."
            ],
            "previous_source": "",
            "target": [
                "Todas las señales tienen lo mismo <emphasis>prioridad</emphasis>. Si hay varias señales pendientes simultáneamente, el orden en el que se envían las señales a un proceso es específico de la implementación. Los manejadores de señales se ejecutan con la señal que provocó el bloqueo de su invocación, pero aún pueden ocurrir otras señales. Se proporcionan mecanismos para que los procesos puedan proteger secciones críticas de código contra la aparición de señales específicas."
            ],
            "id_hash": -4490976021440988472,
            "content_hash": -4490976021440988472,
            "location": "book.translate.xml:808",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 155,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 62,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105001/?format=api",
            "priority": 100,
            "id": 227374,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=41acd91a4b367ac8",
            "url": "https://translate-dev.freebsd.org/api/units/227374/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.677198Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The detailed design and implementation of signals is described in Section 4.7."
            ],
            "previous_source": "",
            "target": [
                "El diseño detallado y la implementación de señales se describen en la Sección 4.7."
            ],
            "id_hash": 7711061836758774770,
            "content_hash": 7711061836758774770,
            "location": "book.translate.xml:816",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 156,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105002/?format=api",
            "priority": 100,
            "id": 227375,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=eb0331e2b513f3f2",
            "url": "https://translate-dev.freebsd.org/api/units/227375/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.683967Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Process Groups and Sessions"
            ],
            "previous_source": "",
            "target": [
                "Grupos de procesos y sesiones"
            ],
            "id_hash": 2308526301125704726,
            "content_hash": 2308526301125704726,
            "location": "book.translate.xml:821",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 157,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105003/?format=api",
            "priority": 100,
            "id": 227376,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=a0098870953e7c16",
            "url": "https://translate-dev.freebsd.org/api/units/227376/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.690478Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Processes are organized into <emphasis>process groups</emphasis>. Process groups are used to control access to terminals and to provide a means of distributing signals to collections of related processes. A process inherits its process group from its parent process. Mechanisms are provided by the kernel to allow a process to alter its process group or the process group of its descendents. Creating a new process group is easy; the value of a new process group is ordinarily the process identifier of the creating process."
            ],
            "previous_source": "",
            "target": [
                "Los procesos se organizan en <emphasis>process groups</emphasis>. Los grupos de procesos se utilizan para controlar el acceso a terminales y para proporcionar un medio de distribuir señales a colecciones de procesos relacionados. Un proceso hereda su grupo de procesos de su proceso padre. El kernel proporciona mecanismos para permitir que un proceso altere su grupo de procesos o el grupo de procesos de sus descendientes. Crear un nuevo grupo de procesos es fácil; el valor de un nuevo grupo de procesos es normalmente el identificador de proceso del proceso de creación."
            ],
            "id_hash": 6778163262426771024,
            "content_hash": 6778163262426771024,
            "location": "book.translate.xml:823",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 158,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 83,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105004/?format=api",
            "priority": 100,
            "id": 227377,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=de10df932e8cee50",
            "url": "https://translate-dev.freebsd.org/api/units/227377/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.697577Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The group of processes in a process group is sometimes referred to as a <emphasis>job</emphasis> and is manipulated by high-level system software, such as the shell. A common kind of job created by a shell is a <emphasis>pipeline</emphasis> of several processes connected by pipes, such that the output of the first process is the input of the second, the output of the second is the input of the third, and so forth. The shell creates such a job by forking a process for each stage of the pipeline, then putting all those processes into a separate process group."
            ],
            "previous_source": "",
            "target": [
                "El grupo de procesos en un grupo de procesos a veces se denomina un <emphasis>job</emphasis> y es manipulado por software de sistema de alto nivel, como el shell. Un tipo común de trabajo creado por un shell es un <emphasis>pipeline</emphasis> de varios procesos conectados por tuberías, de modo que la salida del primer proceso es la entrada del segundo, la salida del segundo es la entrada del tercero, y así sucesivamente. El caparazón crea un trabajo de este tipo mediante la bifurcación de un proceso para cada etapa de la tubería y luego coloca todos esos procesos en un grupo de procesos separado."
            ],
            "id_hash": -8050179747542142411,
            "content_hash": -8050179747542142411,
            "location": "book.translate.xml:835",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 159,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 98,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105005/?format=api",
            "priority": 100,
            "id": 227378,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=1048042bd9b4f235",
            "url": "https://translate-dev.freebsd.org/api/units/227378/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.705825Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "A user process can send a signal to each process in a process group, as well as to a single process. A process in a specific process group may receive software interrupts affecting the group, causing the group to suspend or resume execution, or to be interrupted or terminated."
            ],
            "previous_source": "",
            "target": [
                "Un proceso de usuario puede enviar una señal a cada proceso en un grupo de procesos, así como a un solo proceso. Un proceso en un grupo de procesos específico puede recibir interrupciones de software que afecten al grupo, haciendo que el grupo suspenda o reanude la ejecución, o que se interrumpa o finalice."
            ],
            "id_hash": 8974610558363381714,
            "content_hash": 8974610558363381714,
            "location": "book.translate.xml:848",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 160,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 49,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105006/?format=api",
            "priority": 100,
            "id": 227379,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=fc8c38c0d8b82fd2",
            "url": "https://translate-dev.freebsd.org/api/units/227379/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.714282Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "A terminal has a process-group identifier assigned to it. This identifier is normally set to the identifier of a process group associated with the terminal. A job-control shell may create a number of process groups associated with the same terminal; the terminal is the <emphasis>controlling terminal</emphasis> for each process in these groups. A process may read from a descriptor for its controlling terminal only if the terminal's process-group identifier matches that of the process. If the identifiers do not match, the process will be blocked if it attempts to read from the terminal. By changing the process-group identifier of the terminal, a shell can arbitrate a terminal among several different jobs. This arbitration is called <emphasis>job control</emphasis> and is described, with process groups, in Section 4.8."
            ],
            "previous_source": "",
            "target": [
                "Un terminal tiene asignado un identificador de grupo de procesos. Este identificador normalmente se establece en el identificador de un grupo de procesos asociado con el terminal. Un shell de control de trabajos puede crear varios grupos de procesos asociados con el mismo terminal; la terminal es la <emphasis>controlando terminal</emphasis> para cada proceso en estos grupos. Un proceso puede leer de un descriptor para su terminal de control solo si el identificador del grupo de procesos del terminal coincide con el del proceso. Si los identificadores no coinciden, el proceso se bloqueará si intenta leer desde el terminal. Al cambiar el identificador de grupo de procesos del terminal, un shell puede arbitrar un terminal entre varios trabajos diferentes. Este arbitraje se llama <emphasis>job control</emphasis> y se describe, con grupos de procesos, en la Sección 4.8."
            ],
            "id_hash": -2707929651269380516,
            "content_hash": -2707929651269380516,
            "location": "book.translate.xml:854",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 161,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 126,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105007/?format=api",
            "priority": 100,
            "id": 227380,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=5a6b80545357565c",
            "url": "https://translate-dev.freebsd.org/api/units/227380/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.721124Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Just as a set of related processes can be collected into a process group, a set of process groups can be collected into a <emphasis>session</emphasis>. The main uses for sessions are to create an isolated environment for a daemon process and its children, and to collect together a user's login shell and the jobs that that shell spawns."
            ],
            "previous_source": "",
            "target": [
                "Así como un conjunto de procesos relacionados se puede recopilar en un grupo de procesos, un conjunto de grupos de procesos se puede recopilar en un <emphasis>session</emphasis>. Los usos principales de las sesiones son crear un entorno aislado para un proceso daemon y sus hijos, y recopilar el shell de inicio de sesión de un usuario y los trabajos que genera ese shell."
            ],
            "id_hash": 6663889622362046490,
            "content_hash": 6663889622362046490,
            "location": "book.translate.xml:873",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 162,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 58,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105008/?format=api",
            "priority": 100,
            "id": 227381,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=dc7ae44e034d401a",
            "url": "https://translate-dev.freebsd.org/api/units/227381/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.729053Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Memory Management"
            ],
            "previous_source": "",
            "target": [
                "Gestión de la memoria"
            ],
            "id_hash": 2099002242228381739,
            "content_hash": 2099002242228381739,
            "location": "book.translate.xml:884",
            "context": "",
            "note": "(itstool) path: sect1/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 163,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105009/?format=api",
            "priority": 100,
            "id": 227382,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=9d21276b16c5682b",
            "url": "https://translate-dev.freebsd.org/api/units/227382/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.737169Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Each process has its own private address space. The address space is initially divided into three logical segments: <emphasis>text</emphasis>, <emphasis>data</emphasis>, and <emphasis>stack</emphasis>. The text segment is read-only and contains the machine instructions of a program. The data and stack segments are both readable and writable. The data segment contains the initialized and uninitialized data portions of a program, whereas the stack segment holds the application's run-time stack. On most machines, the stack segment is extended automatically by the kernel as the process executes. A process can expand or contract its data segment by making a system call, whereas a process can change the size of its text segment only when the segment's contents are overlaid with data from the filesystem, or when debugging takes place. The initial contents of the segments of a child process are duplicates of the segments of a parent process."
            ],
            "previous_source": "",
            "target": [
                "Cada proceso tiene su propio espacio de direcciones privadas. El espacio de direcciones se divide inicialmente en tres segmentos lógicos: <emphasis>text</emphasis>,<emphasis>data</emphasis>, y <emphasis>stack</emphasis>. El segmento de texto es de solo lectura y contiene las instrucciones de máquina de un programa. Los segmentos de datos y de pila son tanto legibles como de escritura. El segmento de datos contiene las porciones de datos inicializadas y no inicializadas de un programa, mientras que el segmento de pila contiene la pila de tiempo de ejecución de la aplicación. En la mayoría de las máquinas, el núcleo amplía automáticamente el segmento de la pila a medida que se ejecuta el proceso. Un proceso puede expandir o contraer su segmento de datos al realizar una llamada al sistema, mientras que un proceso puede cambiar el tamaño de su segmento de texto solo cuando el contenido del segmento se superpone con datos del sistema de archivos o cuando se realiza la depuración. El contenido inicial de los segmentos de un proceso hijo son duplicados de los segmentos de un proceso padre."
            ],
            "id_hash": 8645971490330735625,
            "content_hash": 8645971490330735625,
            "location": "book.translate.xml:886",
            "context": "",
            "note": "(itstool) path: sect1/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 164,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 144,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105010/?format=api",
            "priority": 100,
            "id": 227383,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=f7fca9431b517409",
            "url": "https://translate-dev.freebsd.org/api/units/227383/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.745548Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The entire contents of a process address space do not need to be resident for a process to execute. If a process references a part of its address space that is not resident in main memory, the system <emphasis>pages</emphasis> the necessary information into memory. When system resources are scarce, the system uses a two-level approach to maintain available resources. If a modest amount of memory is available, the system will take memory resources away from processes if these resources have not been used recently. Should there be a severe resource shortage, the system will resort to <emphasis>swapping</emphasis> the entire context of a process to secondary storage. The <emphasis>demand paging</emphasis> and <emphasis>swapping</emphasis> done by the system are effectively transparent to processes. A process may, however, advise the system about expected future memory utilization as a performance aid."
            ],
            "previous_source": "",
            "target": [
                "No es necesario que todo el contenido de un espacio de direcciones de proceso sea residente para que se ejecute un proceso. Si un proceso hace referencia a una parte de su espacio de direcciones que no reside en la memoria principal, el sistema<emphasis>pages</emphasis> la información necesaria en la memoria. Cuando los recursos del sistema son escasos, el sistema utiliza un enfoque de dos niveles para mantener los recursos disponibles. Si hay una cantidad modesta de memoria disponible, el sistema quitará recursos de memoria a los procesos si estos recursos no se han utilizado recientemente. Si hubiera una grave escasez de recursos, el sistema recurrirá a <emphasis>swapping</emphasis> todo el contexto de un proceso al almacenamiento secundario. los <emphasis>demand paging</emphasis> y <emphasis>swapping</emphasis> realizadas por el sistema son efectivamente transparentes a los procesos. Sin embargo, un proceso puede informar al sistema sobre la utilización de memoria futura esperada como ayuda para el rendimiento."
            ],
            "id_hash": -3719784895136210557,
            "content_hash": -3719784895136210557,
            "location": "book.translate.xml:907",
            "context": "",
            "note": "(itstool) path: sect1/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 165,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 136,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105011/?format=api",
            "priority": 100,
            "id": 227384,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=4c60ab589c8ae183",
            "url": "https://translate-dev.freebsd.org/api/units/227384/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.752672Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "BSD Memory-Management Design Decisions"
            ],
            "previous_source": "",
            "target": [
                "Decisiones de diseño de gestión de memoria BSD"
            ],
            "id_hash": 4126043840189051448,
            "content_hash": 4126043840189051448,
            "location": "book.translate.xml:930",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 166,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105012/?format=api",
            "priority": 100,
            "id": 227385,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=b942a7030e283238",
            "url": "https://translate-dev.freebsd.org/api/units/227385/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.760382Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The support of large sparse address spaces, mapped files, and shared memory was a requirement for 4.2BSD. An interface was specified, called <emphasis>mmap</emphasis>, that allowed unrelated processes to request a shared mapping of a file into their address spaces. If multiple processes mapped the same file into their address spaces, changes to the file's portion of an address space by one process would be reflected in the area mapped by the other processes, as well as in the file itself. Ultimately, 4.2BSD was shipped without the <emphasis>mmap</emphasis> interface, because of pressure to make other features, such as networking, available."
            ],
            "previous_source": "",
            "target": [
                "El soporte de grandes espacios de direcciones dispersos, archivos mapeados y memoria compartida era un requisito para 4.2BSD. Se especificó una interfaz, llamada <emphasis>mmap</emphasis>, que permitía a los procesos no relacionados solicitar un mapeo compartido de un archivo en sus espacios de direcciones. Si varios procesos mapearon el mismo archivo en sus espacios de direcciones, los cambios en la porción del archivo de un espacio de direcciones por un proceso se reflejarían en el área mapeada por los otros procesos, así como en el archivo mismo. Finalmente, 4.2BSD se envió sin el <emphasis>mmap</emphasis> interfaz, debido a la presión para hacer disponibles otras funciones, como redes."
            ],
            "id_hash": -3435962928514170696,
            "content_hash": -3435962928514170696,
            "location": "book.translate.xml:932",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 167,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 99,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105013/?format=api",
            "priority": 100,
            "id": 227386,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=505101ebc88080b8",
            "url": "https://translate-dev.freebsd.org/api/units/227386/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.769114Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Further development of the <emphasis>mmap</emphasis> interface continued during the work on 4.3BSD. Over 40 companies and research groups participated in the discussions leading to the revised architecture that was described in the Berkeley Software Architecture Manual <xref linkend=\"biblio-mckusick-1\"/>. Several of the companies have implemented the revised interface <xref linkend=\"biblio-gingell\"/>."
            ],
            "previous_source": "",
            "target": [
                "Un mayor desarrollo de la <emphasis>mmap</emphasis> La interfaz continuó durante el trabajo en 4.3BSD. Más de 40 empresas y grupos de investigación participaron en los debates que llevaron a la arquitectura revisada que se describe en el Manual de arquitectura de software de Berkeley. <xref linkend=\"biblio-mckusick-1\"/>. Varias de las empresas han implementado la interfaz revisada <xref linkend=\"biblio-gingell\"/>."
            ],
            "id_hash": -3502033690224437583,
            "content_hash": -3502033690224437583,
            "location": "book.translate.xml:947",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 168,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 49,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105014/?format=api",
            "priority": 100,
            "id": 227387,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=4f6646e9ceb8d6b1",
            "url": "https://translate-dev.freebsd.org/api/units/227387/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.776380Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Once again, time pressure prevented 4.3BSD from providing an implementation of the interface. Although the latter could have been built into the existing 4.3BSD virtual-memory system, the developers decided not to put it in because that implementation was nearly 10 years old. Furthermore, the original virtual-memory design was based on the assumption that computer memories were small and expensive, whereas disks were locally connected, fast, large, and inexpensive. Thus, the virtual-memory system was designed to be frugal with its use of memory at the expense of generating extra disk traffic. In addition, the 4.3BSD implementation was riddled with VAX memory-management hardware dependencies that impeded its portability to other computer architectures. Finally, the virtual-memory system was not designed to support the tightly coupled multiprocessors that are becoming increasingly common and important today."
            ],
            "previous_source": "",
            "target": [
                "Una vez más, la presión del tiempo impidió que 4.3BSD proporcionara una implementación de la interfaz. Aunque este último podría haberse integrado en el sistema de memoria virtual 4.3BSD existente, los desarrolladores decidieron no incluirlo porque esa implementación tenía casi 10 años. Además, el diseño original de la memoria virtual se basaba en la suposición de que las memorias de las computadoras eran pequeñas y caras, mientras que los discos estaban conectados localmente, eran rápidos, grandes y económicos. Por lo tanto, el sistema de memoria virtual fue diseñado para ser frugal con el uso de memoria a expensas de generar tráfico de disco adicional. Además, la implementación de 4.3BSD estaba plagada de dependencias de hardware de administración de memoria VAX que impedían su portabilidad a otras arquitecturas de computadora. Por último, el sistema de memoria virtual no fue diseñado para admitir los multiprocesadores estrechamente acoplados que son cada vez más comunes e importantes en la actualidad."
            ],
            "id_hash": 4046228440876158589,
            "content_hash": 4046228440876158589,
            "location": "book.translate.xml:957",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 169,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 131,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105015/?format=api",
            "priority": 100,
            "id": 227388,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=b827175442818e7d",
            "url": "https://translate-dev.freebsd.org/api/units/227388/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.783268Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Attempts to improve the old implementation incrementally seemed doomed to failure. A completely new design, on the other hand, could take advantage of large memories, conserve disk transfers, and have the potential to run on multiprocessors. Consequently, the virtual-memory system was completely replaced in 4.4BSD. The 4.4BSD virtual-memory system is based on the Mach 2.0 VM system <xref linkend=\"biblio-tevanian\"/>. with updates from Mach 2.5 and Mach 3.0. It features efficient support for sharing, a clean separation of machine-independent and machine-dependent features, as well as (currently unused) multiprocessor support. Processes can map files anywhere in their address space. They can share parts of their address space by doing a shared mapping of the same file. Changes made by one process are visible in the address space of the other process, and also are written back to the file itself. Processes can also request private mappings of a file, which prevents any changes that they make from being visible to other processes mapping the file or being written back to the file itself."
            ],
            "previous_source": "",
            "target": [
                "Los intentos de mejorar gradualmente la antigua implementación parecían condenados al fracaso. Un diseño completamente nuevo, por otro lado, podría aprovechar grandes memorias, conservar transferencias de disco y tener el potencial de ejecutarse en multiprocesadores. En consecuencia, el sistema de memoria virtual fue reemplazado por completo en 4.4BSD. El sistema de memoria virtual 4.4BSD se basa en el sistema Mach 2.0 VM <xref linkend=\"biblio-tevanian\"/>. con actualizaciones de Mach 2.5 y Mach 3.0. Cuenta con un soporte eficiente para compartir, una clara separación de las características independientes y dependientes de la máquina, así como soporte multiprocesador (actualmente sin usar). Los procesos pueden asignar archivos en cualquier lugar de su espacio de direcciones. Pueden compartir partes de su espacio de direcciones haciendo un mapeo compartido del mismo archivo. Los cambios realizados por un proceso son visibles en el espacio de direcciones del otro proceso y también se escriben en el archivo. Los procesos también pueden solicitar asignaciones privadas de un archivo, lo que evita que los cambios que realicen sean visibles para otros procesos que asignan el archivo o que se vuelvan a escribir en el propio archivo."
            ],
            "id_hash": 6352878556772309966,
            "content_hash": 6352878556772309966,
            "location": "book.translate.xml:979",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 170,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 171,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105016/?format=api",
            "priority": 100,
            "id": 227389,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=d829f5636d9c1bce",
            "url": "https://translate-dev.freebsd.org/api/units/227389/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.791778Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Another issue with the virtual-memory system is the way that information is passed into the kernel when a system call is made. 4.4BSD always copies data from the process address space into a buffer in the kernel. For read or write operations that are transferring large quantities of data, doing the copy can be time consuming. An alternative to doing the copying is to remap the process memory into the kernel. The 4.4BSD kernel always copies the data for several reasons:"
            ],
            "previous_source": "",
            "target": [
                "Otro problema con el sistema de memoria virtual es la forma en que la información se pasa al kernel cuando se realiza una llamada al sistema. 4.4BSD siempre copia los datos del espacio de direcciones del proceso en un búfer en el kernel. Para operaciones de lectura o escritura que transfieren grandes cantidades de datos, realizar la copia puede llevar mucho tiempo. Una alternativa a la copia es reasignar la memoria del proceso al kernel. El kernel 4.4BSD siempre copia los datos por varias razones:"
            ],
            "id_hash": 2204772824729782358,
            "content_hash": 2204772824729782358,
            "location": "book.translate.xml:1004",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 171,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 81,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105017/?format=api",
            "priority": 100,
            "id": 227390,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=9e98ed33e4740856",
            "url": "https://translate-dev.freebsd.org/api/units/227390/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.799362Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Often, the user data are not page aligned and are not a multiple of the hardware page length."
            ],
            "previous_source": "",
            "target": [
                "A menudo, los datos del usuario no están alineados con la página y no son un múltiplo de la longitud de la página del hardware."
            ],
            "id_hash": -215577539149090868,
            "content_hash": -215577539149090868,
            "location": "book.translate.xml:1017",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 172,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105018/?format=api",
            "priority": 100,
            "id": 227391,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=7d021d5ecd772fcc",
            "url": "https://translate-dev.freebsd.org/api/units/227391/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.806765Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "If the page is taken away from the process, it will no longer be able to reference that page. Some programs depend on the data remaining in the buffer even after those data have been written."
            ],
            "previous_source": "",
            "target": [
                "Si la página se quita del proceso, ya no podrá hacer referencia a esa página. Algunos programas dependen de los datos que quedan en el búfer incluso después de que se hayan escrito."
            ],
            "id_hash": -5118490590502434074,
            "content_hash": -5118490590502434074,
            "location": "book.translate.xml:1022",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 173,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 36,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105019/?format=api",
            "priority": 100,
            "id": 227392,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=38f777ed46ec4ae6",
            "url": "https://translate-dev.freebsd.org/api/units/227392/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.814173Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "If the process is allowed to keep a copy of the page (as it is in current 4.4BSD semantics), the page must be made <emphasis>copy-on-write</emphasis>. A copy-on-write page is one that is protected against being written by being made read-only. If the process attempts to modify the page, the kernel gets a write fault. The kernel then makes a copy of the page that the process can modify. Unfortunately, the typical process will immediately try to write new data to its output buffer, forcing the data to be copied anyway."
            ],
            "previous_source": "",
            "target": [
                "Si al proceso se le permite mantener una copia de la página (como está en la semántica 4.4BSD actual), la página debe hacerse <emphasis>copy-on-write</emphasis>. Una página de copia en escritura es aquella que está protegida contra la escritura al convertirse en solo lectura. Si el proceso intenta modificar la página, el kernel tiene un error de escritura. El kernel luego hace una copia de la página que el proceso puede modificar. Desafortunadamente, el proceso típico intentará inmediatamente escribir nuevos datos en su búfer de salida, lo que obligará a copiar los datos de todos modos."
            ],
            "id_hash": -3134167655583548399,
            "content_hash": -3134167655583548399,
            "location": "book.translate.xml:1029",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 174,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 90,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105020/?format=api",
            "priority": 100,
            "id": 227393,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=5481331f6e6c7c11",
            "url": "https://translate-dev.freebsd.org/api/units/227393/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.821890Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "When pages are remapped to new virtual-memory addresses, most memory-management hardware requires that the hardware address-translation cache be purged selectively. The cache purges are often slow. The net effect is that remapping is slower than copying for blocks of data less than 4 to 8 Kbyte."
            ],
            "previous_source": "",
            "target": [
                "Cuando las páginas se reasignan a nuevas direcciones de memoria virtual, la mayoría del hardware de administración de memoria requiere que la caché de traducción de direcciones del hardware se purgue de forma selectiva. Las purgas de caché suelen ser lentas. El efecto neto es que la reasignación es más lenta que la copia de bloques de datos de menos de 4 a 8 Kbyte."
            ],
            "id_hash": 2447156447171678116,
            "content_hash": 2447156447171678116,
            "location": "book.translate.xml:1044",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 175,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 46,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105021/?format=api",
            "priority": 100,
            "id": 227394,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=a1f60bd2b7798fa4",
            "url": "https://translate-dev.freebsd.org/api/units/227394/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.828961Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The biggest incentives for memory mapping are the needs for accessing big files and for passing large quantities of data between processes. The <emphasis>mmap</emphasis> interface provides a way for both of these tasks to be done without copying."
            ],
            "previous_source": "",
            "target": [
                "Los mayores incentivos para el mapeo de memoria son las necesidades de acceder a archivos grandes y pasar grandes cantidades de datos entre procesos. los <emphasis>mmap</emphasis> La interfaz proporciona una forma de realizar ambas tareas sin realizar copias."
            ],
            "id_hash": -7864817062787047181,
            "content_hash": -7864817062787047181,
            "location": "book.translate.xml:1053",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 176,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 38,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105022/?format=api",
            "priority": 100,
            "id": 227395,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=12da8e8d0d25a0f3",
            "url": "https://translate-dev.freebsd.org/api/units/227395/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.835824Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Memory Management Inside the Kernel"
            ],
            "previous_source": "",
            "target": [
                "Gestión de la memoria dentro del kernel"
            ],
            "id_hash": 746676589466998513,
            "content_hash": 746676589466998513,
            "location": "book.translate.xml:1063",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 177,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 5,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105023/?format=api",
            "priority": 100,
            "id": 227396,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=8a5cba66ed47d6f1",
            "url": "https://translate-dev.freebsd.org/api/units/227396/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.842503Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The kernel often does allocations of memory that are needed for only the duration of a single system call. In a user process, such short-term memory would be allocated on the run-time stack. Because the kernel has a limited run-time stack, it is not feasible to allocate even moderate-sized blocks of memory on it. Consequently, such memory must be allocated through a more dynamic mechanism. For example, when the system must translate a pathname, it must allocate a 1-Kbyte buffer to hold the name. Other blocks of memory must be more persistent than a single system call, and thus could not be allocated on the stack even if there was space. An example is protocol-control blocks that remain throughout the duration of a network connection."
            ],
            "previous_source": "",
            "target": [
                "El kernel a menudo realiza asignaciones de memoria que son necesarias solo durante la duración de una única llamada al sistema. En un proceso de usuario, dicha memoria a corto plazo se asignaría en la pila de tiempo de ejecución. Debido a que el kernel tiene una pila de tiempo de ejecución limitada, no es factible asignarle bloques de memoria de tamaño moderado. En consecuencia, dicha memoria debe asignarse mediante un mecanismo más dinámico. Por ejemplo, cuando el sistema debe traducir un nombre de ruta, debe asignar un búfer de 1 Kbyte para contener el nombre. Otros bloques de memoria deben ser más persistentes que una sola llamada al sistema y, por lo tanto, no se podrían asignar en la pila incluso si hubiera espacio. Un ejemplo son los bloques de control de protocolo que permanecen durante la duración de una conexión de red."
            ],
            "id_hash": -2941272869182277737,
            "content_hash": -2941272869182277737,
            "location": "book.translate.xml:1065",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 178,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 125,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105024/?format=api",
            "priority": 100,
            "id": 227397,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=572e7fe8b4e57797",
            "url": "https://translate-dev.freebsd.org/api/units/227397/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.848847Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Demands for dynamic memory allocation in the kernel have increased as more services have been added. A generalized memory allocator reduces the complexity of writing code inside the kernel. Thus, the 4.4BSD kernel has a single memory allocator that can be used by any part of the system. It has an interface similar to the C library routines <emphasis>malloc</emphasis> and <emphasis>free</emphasis> that provide memory allocation to application programs <xref linkend=\"biblio-mckusick-2\"/>. Like the C library interface, the allocation routine takes a parameter specifying the size of memory that is needed. The range of sizes for memory requests is not constrained; however, physical memory is allocated and is not paged. The free routine takes a pointer to the storage being freed, but does not require the size of the piece of memory being freed."
            ],
            "previous_source": "",
            "target": [
                "Las demandas de asignación de memoria dinámica en el kernel han aumentado a medida que se han agregado más servicios. Un asignador de memoria generalizado reduce la complejidad de escribir código dentro del kernel. Por lo tanto, el núcleo 4.4BSD tiene un único asignador de memoria que puede ser utilizado por cualquier parte del sistema. Tiene una interfaz similar a las rutinas de la biblioteca C <emphasis>malloc</emphasis> y <emphasis>free</emphasis> que proporcionan asignación de memoria a programas de aplicación <xref linkend=\"biblio-mckusick-2\"/>. Al igual que la interfaz de la biblioteca C, la rutina de asignación toma un parámetro que especifica el tamaño de memoria que se necesita. El rango de tamaños para las solicitudes de memoria no está restringido; sin embargo, la memoria física está asignada y no paginada. La rutina libre toma un puntero al almacenamiento que se libera, pero no requiere el tamaño de la pieza de memoria que se libera."
            ],
            "id_hash": 3028587596066806213,
            "content_hash": 3028587596066806213,
            "location": "book.translate.xml:1081",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 179,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 132,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105025/?format=api",
            "priority": 100,
            "id": 227398,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=aa07b45f5ab759c5",
            "url": "https://translate-dev.freebsd.org/api/units/227398/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.857305Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "I/O System"
            ],
            "previous_source": "",
            "target": [
                "Sistema de E/S"
            ],
            "id_hash": -2445547610031488352,
            "content_hash": -2445547610031488352,
            "location": "book.translate.xml:1105",
            "context": "",
            "note": "(itstool) path: sect1/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 180,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105026/?format=api",
            "priority": 100,
            "id": 227399,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=5e0fab67dec482a0",
            "url": "https://translate-dev.freebsd.org/api/units/227399/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.864238Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The basic model of the UNIX I/O system is a sequence of bytes that can be accessed either randomly or sequentially. There are no <emphasis>access methods</emphasis> and no <emphasis>control blocks</emphasis> in a typical UNIX user process."
            ],
            "previous_source": "",
            "target": [
                "El modelo básico del sistema de E/S de UNIX es una secuencia de bytes a la que se puede acceder de forma aleatoria o secuencial. No existen <emphasis>access methods</emphasis> y no<emphasis>control blocks</emphasis> en un proceso de usuario típico de UNIX."
            ],
            "id_hash": 2687434724243936780,
            "content_hash": 2687434724243936780,
            "location": "book.translate.xml:1107",
            "context": "",
            "note": "(itstool) path: sect1/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 181,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 36,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105027/?format=api",
            "priority": 100,
            "id": 227400,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=a54bafa49f9c160c",
            "url": "https://translate-dev.freebsd.org/api/units/227400/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.871382Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Different programs expect various levels of structure, but the kernel does not impose structure on I/O. For instance, the convention for text files is lines of ASCII characters separated by a single newline character (the ASCII line-feed character), but the kernel knows nothing about this convention. For the purposes of most programs, the model is further simplified to being a stream of data bytes, or an <emphasis>I/O stream</emphasis>. It is this single common data form that makes the characteristic UNIX tool-based approach work <xref linkend=\"biblio-kernighan\"/>. An I/O stream from one program can be fed as input to almost any other program. (This kind of traditional UNIX I/O stream should not be confused with the Eighth Edition stream I/O system or with the System V, Release 3 STREAMS, both of which can be accessed as traditional I/O streams.)"
            ],
            "previous_source": "",
            "target": [
                "Los diferentes programas esperan varios niveles de estructura, pero el núcleo no impone una estructura a la E/S. Por ejemplo, la convención para archivos de texto son líneas de caracteres ASCII separadas por un carácter de nueva línea (el carácter de avance de línea ASCII), pero el núcleo no sabe nada sobre esta convención. Para los propósitos de la mayoría de los programas, el modelo se simplifica aún más para ser un flujo de bytes de datos o un <emphasis>I/O stream</emphasis>. Es este único formulario de datos común el que hace que el enfoque basado en herramientas característico de UNIX funcione. <xref linkend=\"biblio-kernighan\"/>. Un flujo de E / S de un programa se puede alimentar como entrada a casi cualquier otro programa. (Este tipo de flujo de E / S tradicional de UNIX no debe confundirse con el sistema de E / S de flujo de la octava edición o con los STREAMS de System V, versión 3, a los cuales se puede acceder como flujos de E/S tradicionales)."
            ],
            "id_hash": -8831105074891159117,
            "content_hash": -8831105074891159117,
            "location": "book.translate.xml:1116",
            "context": "",
            "note": "(itstool) path: sect1/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 182,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 137,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105028/?format=api",
            "priority": 100,
            "id": 227401,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=05719cb93cf689b3",
            "url": "https://translate-dev.freebsd.org/api/units/227401/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.878406Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Descriptors and I/O"
            ],
            "previous_source": "",
            "target": [
                "Descriptores y E/S"
            ],
            "id_hash": 4647983525829485304,
            "content_hash": 4647983525829485304,
            "location": "book.translate.xml:1142",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 183,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105029/?format=api",
            "priority": 100,
            "id": 227402,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=c080f46402ef22f8",
            "url": "https://translate-dev.freebsd.org/api/units/227402/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.885407Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "UNIX processes use <emphasis>descriptors</emphasis> to reference I/O streams. Descriptors are small unsigned integers obtained from the <emphasis>open</emphasis> and <emphasis>socket</emphasis> system calls. The <emphasis>open</emphasis> system call takes as arguments the name of a file and a permission mode to specify whether the file should be open for reading or for writing, or for both. This system call also can be used to create a new, empty file. A <emphasis>read</emphasis> or <emphasis>write</emphasis> system call can be applied to a descriptor to transfer data. The <emphasis>close</emphasis> system call can be used to deallocate any descriptor."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2047044968279792695,
            "content_hash": -2047044968279792695,
            "location": "book.translate.xml:1144",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 184,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 92,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105030/?format=api",
            "priority": 100,
            "id": 227403,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=63976f72726ea3c9",
            "url": "https://translate-dev.freebsd.org/api/units/227403/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.892878Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Descriptors represent underlying objects supported by the kernel, and are created by system calls specific to the type of object. In 4.4BSD, three kinds of objects can be represented by descriptors: files, pipes, and sockets."
            ],
            "previous_source": "",
            "target": [
                "Los descriptores representan objetos subyacentes admitidos por el kernel y se crean mediante llamadas al sistema específicas para el tipo de objeto. En 4.4BSD, se pueden representar tres tipos de objetos mediante descriptores: archivos, tuberías y sockets."
            ],
            "id_hash": -3053734917565836924,
            "content_hash": -3053734917565836924,
            "location": "book.translate.xml:1168",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 185,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 35,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105031/?format=api",
            "priority": 100,
            "id": 227404,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=559ef44598481184",
            "url": "https://translate-dev.freebsd.org/api/units/227404/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.900194Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "A <emphasis>file</emphasis> is a linear array of bytes with at least one name. A file exists until all its names are deleted explicitly and no process holds a descriptor for it. A process acquires a descriptor for a file by opening that file's name with the <emphasis>open</emphasis> system call. I/O devices are accessed as files."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8200502402517358495,
            "content_hash": 8200502402517358495,
            "location": "book.translate.xml:1175",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 186,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 55,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105032/?format=api",
            "priority": 100,
            "id": 227405,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=f1ce097ca9c8d79f",
            "url": "https://translate-dev.freebsd.org/api/units/227405/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.906972Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "A <emphasis>pipe</emphasis> is a linear array of bytes, as is a file, but it is used solely as an I/O stream, and it is unidirectional. It also has no name, and thus cannot be opened with <emphasis>open</emphasis>. Instead, it is created by the <emphasis>pipe</emphasis> system call, which returns two descriptors, one of which accepts input that is sent to the other descriptor reliably, without duplication, and in order. The system also supports a named pipe or FIFO. A FIFO has properties identical to a pipe, except that it appears in the filesystem; thus, it can be opened using the <emphasis>open</emphasis> system call. Two processes that wish to communicate each open the FIFO: One opens it for reading, the other for writing."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4571814326271342348,
            "content_hash": -4571814326271342348,
            "location": "book.translate.xml:1188",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 187,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 121,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105033/?format=api",
            "priority": 100,
            "id": 227406,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=408da717bf8e08f4",
            "url": "https://translate-dev.freebsd.org/api/units/227406/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.913546Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "A <emphasis>socket</emphasis> is a transient object that is used for interprocess communication; it exists only as long as some process holds a descriptor referring to it. A socket is created by the <emphasis>socket</emphasis> system call, which returns a descriptor for it. There are different kinds of sockets that support various communication semantics, such as reliable delivery of data, preservation of message ordering, and preservation of message boundaries."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1487511404518636145,
            "content_hash": 1487511404518636145,
            "location": "book.translate.xml:1215",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 188,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105034/?format=api",
            "priority": 100,
            "id": 227407,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=94a4b3bdc1acfa71",
            "url": "https://translate-dev.freebsd.org/api/units/227407/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.920876Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "In systems before 4.2BSD, pipes were implemented using the filesystem; when sockets were introduced in 4.2BSD, pipes were reimplemented as sockets."
            ],
            "previous_source": "",
            "target": [
                "En los sistemas anteriores a 4.2BSD, las tuberías se implementaron utilizando el sistema de archivos; cuando se introdujeron los enchufes en 4.2BSD, las tuberías se volvieron a implementar como enchufes."
            ],
            "id_hash": 4428544576870493657,
            "content_hash": 4428544576870493657,
            "location": "book.translate.xml:1230",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 189,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 21,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105035/?format=api",
            "priority": 100,
            "id": 227408,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=bd7559d448592dd9",
            "url": "https://translate-dev.freebsd.org/api/units/227408/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.929233Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The kernel keeps for each process a <emphasis>descriptor table</emphasis>, which is a table that the kernel uses to translate the external representation of a descriptor into an internal representation. (The descriptor is merely an index into this table.) The descriptor table of a process is inherited from that process's parent, and thus access to the objects to which the descriptors refer also is inherited. The main ways that a process can obtain a descriptor are by opening or creation of an object, and by inheritance from the parent process. In addition, socket IPC allows passing of descriptors in messages between unrelated processes on the same machine."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 531689082859934876,
            "content_hash": 531689082859934876,
            "location": "book.translate.xml:1234",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 190,
            "has_suggestion": true,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 106,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105036/?format=api",
            "priority": 100,
            "id": 227409,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=8760f06762d1d49c",
            "url": "https://translate-dev.freebsd.org/api/units/227409/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.937424Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Every valid descriptor has an associated <emphasis>file offset</emphasis> in bytes from the beginning of the object. Read and write operations start at this offset, which is updated after each data transfer. For objects that permit random access, the file offset also may be set with the <emphasis>lseek</emphasis> system call. Ordinary files permit random access, and some devices do, as well. Pipes and sockets do not."
            ],
            "previous_source": "",
            "target": [
                "Cada descriptor válido tiene asociado un <emphasis>file offset</emphasis> en bytes desde el principio del objeto. Las operaciones de lectura y escritura comienzan en este desplazamiento, que se actualiza después de cada transferencia de datos. Para los objetos que permiten el acceso aleatorio, el desplazamiento del archivo también se puede establecer con el <emphasis>lseek</emphasis> llamada al sistema. Los archivos ordinarios permiten el acceso aleatorio, y algunos dispositivos también lo hacen. Las tuberías y los enchufes no."
            ],
            "id_hash": -8115492540738280083,
            "content_hash": -8115492540738280083,
            "location": "book.translate.xml:1251",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 191,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 65,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105037/?format=api",
            "priority": 100,
            "id": 227410,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=0f5ffa882bf6656d",
            "url": "https://translate-dev.freebsd.org/api/units/227410/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.945161Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "When a process terminates, the kernel reclaims all the descriptors that were in use by that process. If the process was holding the final reference to an object, the object's manager is notified so that it can do any necessary cleanup actions, such as final deletion of a file or deallocation of a socket."
            ],
            "previous_source": "",
            "target": [
                "Cuando un proceso termina, el kernel recupera todos los descriptores que estaban en uso por ese proceso. Si el proceso contenía la referencia final a un objeto, se notifica al administrador del objeto para que pueda realizar las acciones de limpieza necesarias, como la eliminación final de un archivo o la desasignación de un socket."
            ],
            "id_hash": -5276947107755711563,
            "content_hash": -5276947107755711563,
            "location": "book.translate.xml:1263",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 192,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 54,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105038/?format=api",
            "priority": 100,
            "id": 227411,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=36c484905fb223b5",
            "url": "https://translate-dev.freebsd.org/api/units/227411/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.952461Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Descriptor Management"
            ],
            "previous_source": "",
            "target": [
                "Gestión de descriptores"
            ],
            "id_hash": -327692760473909406,
            "content_hash": -327692760473909406,
            "location": "book.translate.xml:1272",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 193,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105039/?format=api",
            "priority": 100,
            "id": 227412,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=7b73cd2ba87c4762",
            "url": "https://translate-dev.freebsd.org/api/units/227412/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.958666Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Most processes expect three descriptors to be open already when they start running. These descriptors are 0, 1, 2, more commonly known as <emphasis>standard input</emphasis>, <emphasis>standard output</emphasis>, and <emphasis>standard error</emphasis>, respectively. Usually, all three are associated with the user's terminal by the login process (see Section 14.6) and are inherited through <emphasis>fork</emphasis> and <emphasis>exec</emphasis> by processes run by the user. Thus, a program can read what the user types by reading standard input, and the program can send output to the user's screen by writing to standard output. The standard error descriptor also is open for writing and is used for error output, whereas standard output is used for ordinary output."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8442873946439007102,
            "content_hash": 8442873946439007102,
            "location": "book.translate.xml:1274",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 194,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 111,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105040/?format=api",
            "priority": 100,
            "id": 227413,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=f52b1d1f3ce5bb7e",
            "url": "https://translate-dev.freebsd.org/api/units/227413/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.968041Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "These (and other) descriptors can be mapped to objects other than the terminal; such mapping is called <emphasis>I/O redirection</emphasis>, and all the standard shells permit users to do it. The shell can direct the output of a program to a file by closing descriptor 1 (standard output) and opening the desired output file to produce a new descriptor 1. It can similarly redirect standard input to come from a file by closing descriptor 0 and opening the file."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8901134778408029004,
            "content_hash": -8901134778408029004,
            "location": "book.translate.xml:1297",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 195,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 78,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105041/?format=api",
            "priority": 100,
            "id": 227414,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=0478d1144b1d34b4",
            "url": "https://translate-dev.freebsd.org/api/units/227414/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.977015Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Pipes allow the output of one program to be input to another program without rewriting or even relinking of either program. Instead of descriptor 1 (standard output) of the source program being set up to write to the terminal, it is set up to be the input descriptor of a pipe. Similarly, descriptor 0 (standard input) of the sink program is set up to reference the output of the pipe, instead of the terminal keyboard. The resulting set of two processes and the connecting pipe is known as a <emphasis>pipeline</emphasis>. Pipelines can be arbitrarily long series of processes connected by pipes."
            ],
            "previous_source": "",
            "target": [
                "Las tuberías permiten que la salida de un programa se introduzca en otro programa sin tener que volver a escribir o incluso volver a vincular ninguno de los programas. En lugar de configurar el descriptor 1 (salida estándar) del programa fuente para escribir en el terminal, se configura para ser el descriptor de entrada de una tubería. De manera similar, el descriptor 0 (entrada estándar) del programa de sumidero está configurado para hacer referencia a la salida de la tubería, en lugar del teclado del terminal. El conjunto resultante de dos procesos y la tubería de conexión se conoce como <emphasis>pipeline</emphasis>. Las Pipelines pueden ser series arbitrariamente largas de procesos conectados por tuberías."
            ],
            "id_hash": 8316320529691551706,
            "content_hash": 8316320529691551706,
            "location": "book.translate.xml:1308",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 196,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 101,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105042/?format=api",
            "priority": 100,
            "id": 227415,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=f3698175c28da7da",
            "url": "https://translate-dev.freebsd.org/api/units/227415/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.985506Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "The <emphasis>open</emphasis>, <emphasis>pipe</emphasis>, and <emphasis>socket</emphasis> system calls produce new descriptors with the lowest unused number usable for a descriptor. For pipelines to work, some mechanism must be provided to map such descriptors into 0 and 1. The <emphasis>dup</emphasis> system call creates a copy of a descriptor that points to the same file-table entry. The new descriptor is also the lowest unused one, but if the desired descriptor is closed first, <emphasis>dup</emphasis> can be used to do the desired mapping. Care is required, however: If descriptor 1 is desired, and descriptor 0 happens also to have been closed, descriptor 0 will be the result. To avoid this problem, the system provides the <emphasis>dup2</emphasis> system call; it is like <emphasis>dup</emphasis>, but it takes an additional argument specifying the number of the desired descriptor (if the desired descriptor was already open, <emphasis>dup2</emphasis> closes it before reusing it)."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -397534721569479975,
            "content_hash": -397534721569479975,
            "location": "book.translate.xml:1320",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 197,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 144,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105043/?format=api",
            "priority": 100,
            "id": 227416,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=7a7bac46e6f7a2d9",
            "url": "https://translate-dev.freebsd.org/api/units/227416/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.992460Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Devices"
            ],
            "previous_source": "",
            "target": [
                "Dispositivos"
            ],
            "id_hash": -8812935440247938565,
            "content_hash": -8812935440247938565,
            "location": "book.translate.xml:1353",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 198,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105044/?format=api",
            "priority": 100,
            "id": 227417,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=05b229e8f79221fb",
            "url": "https://translate-dev.freebsd.org/api/units/227417/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:05.999926Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Hardware devices have filenames, and may be accessed by the user via the same system calls used for regular files. The kernel can distinguish a <emphasis>device special file</emphasis> or <emphasis>special file</emphasis>, and can determine to what device it refers, but most processes do not need to make this determination. Terminals, printers, and tape drives are all accessed as though they were streams of bytes, like 4.4BSD disk files. Thus, device dependencies and peculiarities are kept in the kernel as much as possible, and even in the kernel most of them are segregated in the device drivers."
            ],
            "previous_source": "",
            "target": [
                "Los dispositivos de hardware tienen nombres de archivo y el usuario puede acceder a ellos a través de las mismas llamadas al sistema que se utilizan para los archivos normales. El kernel puede distinguir un <emphasis>device special file</emphasis> o <emphasis>special file</emphasis>, y puede determinar a qué dispositivo se refiere, pero la mayoría de los procesos no necesitan hacer esta determinación. Se accede a los terminales, impresoras y unidades de cinta como si fueran flujos de bytes, como archivos de disco 4.4BSD. Por lo tanto, las dependencias y peculiaridades de los dispositivos se mantienen en el kernel tanto como sea posible, e incluso en el kernel la mayoría de ellas están segregadas en los controladores de dispositivos."
            ],
            "id_hash": -8724886687911583279,
            "content_hash": -8724886687911583279,
            "location": "book.translate.xml:1355",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 199,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 96,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105045/?format=api",
            "priority": 100,
            "id": 227418,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=06eaf9c8a57ee1d1",
            "url": "https://translate-dev.freebsd.org/api/units/227418/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:06.007276Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_design-44bsd/es/?format=api",
            "source": [
                "Hardware devices can be categorized as either <emphasis>structured</emphasis> or <emphasis>unstructured</emphasis>; they are known as <emphasis>block</emphasis> or <emphasis>character</emphasis> devices, respectively. Processes typically access devices through <emphasis>special files</emphasis> in the filesystem. I/O operations to these files are handled by kernel-resident software modules termed <emphasis>device drivers</emphasis>. Most network-communication hardware devices are accessible through only the interprocess-communication facilities, and do not have special files in the filesystem name space, because the <emphasis>raw-socket</emphasis> interface provides a more natural interface than does a special file."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8380253724143157604,
            "content_hash": -8380253724143157604,
            "location": "book.translate.xml:1369",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 200,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 79,
            "source_unit": "https://translate-dev.freebsd.org/api/units/105046/?format=api",
            "priority": 100,
            "id": 227419,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_design-44bsd/es/?checksum=0bb35ba36ccd7e9c",
            "url": "https://translate-dev.freebsd.org/api/units/227419/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-12-14T21:38:06.014378Z"
        }
    ]
}