Translation components API.

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

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

{
    "count": 384,
    "next": null,
    "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/units/?format=api&page=7",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "The other possible goal is to share our code with NetBSD and DragonflyBSD. NetBSD has some support for 2.6 emulation but its far from finished and not really tested. DragonflyBSD has expressed some interest in porting the 2.6 improvements."
            ],
            "previous_source": "",
            "target": [
                "El otro objetivo posible es compartir nuestro código con NetBSD y DragonflyBSD. NetBSD tiene algo de soporte para la emulación 2.6 pero está lejos de estar terminado y no se ha probado realmente. DragonflyBSD ha expresado cierto interés en portar las mejoras 2.6."
            ],
            "id_hash": -1991435282088369090,
            "content_hash": -1991435282088369090,
            "location": "article.translate.xml:2488",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 367,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 39,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99762/?format=api",
            "priority": 100,
            "id": 26632,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=645d002979f1643e",
            "url": "https://translate-dev.freebsd.org/api/units/26632/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.189028Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Generally, as <trademark class=\"registered\">Linux</trademark> develops we would like to keep up with their development, implementing newly added syscalls. Splice comes to mind first. Some already implemented syscalls are also heavily crippled, for example <function>mremap</function> and others. Some performance improvements can also be made, finer grained locking and others."
            ],
            "previous_source": "",
            "target": [
                "Generalmente, como <trademark class=\"registered\">Linux</trademark> desarrolla nos gustaría mantenernos al día con su desarrollo, implementando syscalls recién agregadas. El empalme viene a la mente primero. Algunas llamadas al sistema ya implementadas también están muy paralizadas, por ejemplo <function>mremap</function> y otros. También se pueden realizar algunas mejoras de rendimiento, bloqueo de grano más fino y otros."
            ],
            "id_hash": -7907797100486367201,
            "content_hash": -7907797100486367201,
            "location": "article.translate.xml:2494",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 368,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 48,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99763/?format=api",
            "priority": 100,
            "id": 26633,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=1241dc6f35a5681f",
            "url": "https://translate-dev.freebsd.org/api/units/26633/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.199634Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Team"
            ],
            "previous_source": "",
            "target": [
                "Equipo"
            ],
            "id_hash": 6029147700739703130,
            "content_hash": 6029147700739703130,
            "location": "article.translate.xml:2504",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 369,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99764/?format=api",
            "priority": 100,
            "id": 26634,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=d3abd5e3d8f4015a",
            "url": "https://translate-dev.freebsd.org/api/units/26634/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.206563Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "I cooperated on this project with (in alphabetical order):"
            ],
            "previous_source": "",
            "target": [
                "Colaboré en este proyecto con (en orden alfabético):"
            ],
            "id_hash": -3419698842384574517,
            "content_hash": -3419698842384574517,
            "location": "article.translate.xml:2506",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 370,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 9,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99765/?format=api",
            "priority": 100,
            "id": 26635,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=508aca056cda57cb",
            "url": "https://translate-dev.freebsd.org/api/units/26635/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.218626Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "John Baldwin <email>jhb@FreeBSD.org</email>"
            ],
            "previous_source": "",
            "target": [
                "John Baldwin <email>jhb@FreeBSD.org</email>"
            ],
            "id_hash": 7289691257666997114,
            "content_hash": 7289691257666997114,
            "location": "article.translate.xml:2511",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 371,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99766/?format=api",
            "priority": 100,
            "id": 26636,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=e52a2f938f830b7a",
            "url": "https://translate-dev.freebsd.org/api/units/26636/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.229108Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Konstantin Belousov <email>kib@FreeBSD.org</email>"
            ],
            "previous_source": "",
            "target": [
                "Konstantin Belousov <email>kib@FreeBSD.org</email>"
            ],
            "id_hash": 7879725352630538415,
            "content_hash": 7879725352630538415,
            "location": "article.translate.xml:2514",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 372,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99767/?format=api",
            "priority": 100,
            "id": 26637,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=ed5a6875ab2ed0af",
            "url": "https://translate-dev.freebsd.org/api/units/26637/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.242750Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Emmanuel Dreyfus"
            ],
            "previous_source": "",
            "target": [
                "Emmanuel Dreyfus"
            ],
            "id_hash": -5702711952170210450,
            "content_hash": -5702711952170210450,
            "location": "article.translate.xml:2517",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 373,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99768/?format=api",
            "priority": 100,
            "id": 26638,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=30dbe5b19a852b6e",
            "url": "https://translate-dev.freebsd.org/api/units/26638/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.260786Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Scot Hetzel"
            ],
            "previous_source": "",
            "target": [
                "Scot Hetzel"
            ],
            "id_hash": -5697318032288310568,
            "content_hash": -5697318032288310568,
            "location": "article.translate.xml:2520",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 374,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99769/?format=api",
            "priority": 100,
            "id": 26639,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=30ef0f6f71071ad8",
            "url": "https://translate-dev.freebsd.org/api/units/26639/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.268432Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Jung-uk Kim <email>jkim@FreeBSD.org</email>"
            ],
            "previous_source": "",
            "target": [
                "Jung-uk Kim <email>jkim@FreeBSD.org</email>"
            ],
            "id_hash": 7776649536946762751,
            "content_hash": 7776649536946762751,
            "location": "article.translate.xml:2523",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 375,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/92660/?format=api",
            "priority": 100,
            "id": 26640,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=ebec358d286af3ff",
            "url": "https://translate-dev.freebsd.org/api/units/26640/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.284856Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Alexander Leidinger <email>netchild@FreeBSD.org</email>"
            ],
            "previous_source": "",
            "target": [
                "Alexander Leidinger <email>netchild@FreeBSD.org</email>"
            ],
            "id_hash": -3270767660179108347,
            "content_hash": -3270767660179108347,
            "location": "article.translate.xml:2526",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 376,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99864/?format=api",
            "priority": 100,
            "id": 26641,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=529be62470304e05",
            "url": "https://translate-dev.freebsd.org/api/units/26641/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.297855Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Suleiman Souhlal <email>ssouhlal@FreeBSD.org</email>"
            ],
            "previous_source": "",
            "target": [
                "Suleiman Souhlal <email>ssouhlal@FreeBSD.org</email>"
            ],
            "id_hash": -6700935541971760227,
            "content_hash": -6700935541971760227,
            "location": "article.translate.xml:2529",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 377,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99770/?format=api",
            "priority": 100,
            "id": 26642,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=23017ea0adfbcb9d",
            "url": "https://translate-dev.freebsd.org/api/units/26642/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.310783Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Li Xiao"
            ],
            "previous_source": "",
            "target": [
                "Li Xiao"
            ],
            "id_hash": 1472523759977861085,
            "content_hash": 1472523759977861085,
            "location": "article.translate.xml:2532",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 378,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99771/?format=api",
            "priority": 100,
            "id": 26643,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=946f748ed4cd8fdd",
            "url": "https://translate-dev.freebsd.org/api/units/26643/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.317141Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "David Xu <email>davidxu@FreeBSD.org</email>"
            ],
            "previous_source": "",
            "target": [
                "David Xu <email>davidxu@FreeBSD.org</email>"
            ],
            "id_hash": -811384674237455933,
            "content_hash": -811384674237455933,
            "location": "article.translate.xml:2535",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 379,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99772/?format=api",
            "priority": 100,
            "id": 26644,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=74bd61f00be161c3",
            "url": "https://translate-dev.freebsd.org/api/units/26644/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.324689Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "I would like to thank all those people for their advice, code reviews and general support."
            ],
            "previous_source": "",
            "target": [
                "Me gustaría agradecer a todas esas personas por sus consejos, revisiones de código y apoyo general."
            ],
            "id_hash": 6105629533442303045,
            "content_hash": 6105629533442303045,
            "location": "article.translate.xml:2539",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 380,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99773/?format=api",
            "priority": 100,
            "id": 26645,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=d4bb8db62ef66445",
            "url": "https://translate-dev.freebsd.org/api/units/26645/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.331099Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Literatures"
            ],
            "previous_source": "",
            "target": [
                "Literaturas"
            ],
            "id_hash": -8352359870499648768,
            "content_hash": -8352359870499648768,
            "location": "article.translate.xml:2545",
            "context": "",
            "note": "(itstool) path: sect1/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 381,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99774/?format=api",
            "priority": 100,
            "id": 26646,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=0c1674f352a40b00",
            "url": "https://translate-dev.freebsd.org/api/units/26646/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.341415Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Marshall Kirk McKusick - George V. Nevile-Neil. Design and Implementation of the FreeBSD operating system. Addison-Wesley, 2005."
            ],
            "previous_source": "",
            "target": [
                "Marshall Kirk McKusick - George V. Nevile-Neil. Diseño e implementación del sistema operativo FreeBSD. Addison-Wesley, 2005."
            ],
            "id_hash": -4541284509752953622,
            "content_hash": -4541284509752953622,
            "location": "article.translate.xml:2549",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 382,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 17,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99775/?format=api",
            "priority": 100,
            "id": 26647,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=40fa1dcc9430f4ea",
            "url": "https://translate-dev.freebsd.org/api/units/26647/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.355878Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "<uri xlink:href=\"https://tldp.org\">https://tldp.org</uri>"
            ],
            "previous_source": "",
            "target": [
                "<uri xlink:href=\"https://tldp.org\">https://tldp.org</uri>"
            ],
            "id_hash": -4316275689989314937,
            "content_hash": -4316275689989314937,
            "location": "article.translate.xml:2554",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 383,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99776/?format=api",
            "priority": 100,
            "id": 26648,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=44198220e9886687",
            "url": "https://translate-dev.freebsd.org/api/units/26648/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.363880Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "<uri xlink:href=\"https://www.kernel.org\">https://www.kernel.org</uri>"
            ],
            "previous_source": "",
            "target": [
                "<uri xlink:href=\"https://www.kernel.org\">https://www.kernel.org</uri>"
            ],
            "id_hash": -1572520075519227031,
            "content_hash": -1572520075519227031,
            "location": "article.translate.xml:2557",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 384,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99777/?format=api",
            "priority": 100,
            "id": 26649,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=6a2d4952a8818b69",
            "url": "https://translate-dev.freebsd.org/api/units/26649/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.372231Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Common <trademark class=\"registered\">UNIX</trademark> API defines a syscall as a way to issue commands from a user space process to the kernel. The most common implementation is either by using an interrupt or specialized instruction (think of <literal>SYSENTER</literal>/<literal>SYSCALL</literal> instructions for ia32). Syscalls are defined by a number. For example in FreeBSD, the syscall number 85 is the <citerefentry><refentrytitle>swapon</refentrytitle><manvolnum>2</manvolnum></citerefentry> syscall and the syscall number 132 is <citerefentry><refentrytitle>mkfifo</refentrytitle><manvolnum>2</manvolnum></citerefentry>. Some syscalls need parameters, which are passed from the user-space to the kernel-space in various ways (implementation dependant). Syscalls are synchronous."
            ],
            "previous_source": "",
            "target": [
                "Común <trademark class=\"registered\">UNIX</trademark> La API define una llamada al sistema como una forma de emitir comandos desde un proceso de espacio de usuario al kernel. La implementación más común es usar una interrupción o una instrucción especializada (piense en <literal>SYSENTER</literal><literal>SYSCALL</literal>instrucciones para ia32). Las llamadas al sistema se definen mediante un número. Por ejemplo, en FreeBSD, el número de llamada al sistema 85 es el<citerefentry>swapon</refentrytitle><manvolnum>2</manvolnum></citerefentry>syscall y el número de syscall 132 es <citerefentry><refentrytitle>mkfifo</refentrytitle><manvolnum>2</manvolnum></citerefentry> Algunas llamadas al sistema necesitan parámetros, que se pasan del espacio del usuario al espacio del kernel de varias formas (según la implementación). Las llamadas al sistema son sincrónicas."
            ],
            "id_hash": 7585162182570993511,
            "content_hash": 7585162182570993511,
            "location": "article.translate.xml:159",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 27,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 86,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157257/?format=api",
            "priority": 100,
            "id": 157258,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=e943e8d12fdee767",
            "url": "https://translate-dev.freebsd.org/api/units/157258/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.264935Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "FreeBSD is a modern <trademark class=\"registered\">UNIX</trademark>-based operating system with all the features of <trademark class=\"registered\">UNIX</trademark>. Preemptive multitasking, multiuser facilities, TCP/IP networking, memory protection, symmetric multiprocessing support, virtual memory with merged VM and buffer cache, they are all there. One of the interesting and extremely useful features is the ability to emulate other <trademark class=\"registered\">UNIX</trademark>-like operating systems. As of December 2006 and 7-CURRENT development, the following emulation functionalities are supported:"
            ],
            "previous_source": "",
            "target": [
                "FreeBSD es un moderno<trademark class=\"registered\">UNIX</trademark>sistema operativo basado en todas las características de<trademark class=\"registered\">UNIX</trademark>Multitarea preventiva, instalaciones multiusuario, redes TCP / IP, protección de memoria, soporte de multiprocesamiento simétrico, memoria virtual con VM fusionada y caché de búfer, todo está ahí. Una de las características interesantes y extremadamente útiles es la capacidad de emular otros<trademark class=\"registered\">UNIX</trademark>como los sistemas operativos. A diciembre de 2006 y al desarrollo 7-CURRENT, se admiten las siguientes funcionalidades de emulación:"
            ],
            "id_hash": -3860507369092682608,
            "content_hash": -3860507369092682608,
            "location": "article.translate.xml:271",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 47,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 69,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157259/?format=api",
            "priority": 100,
            "id": 157260,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=4a6cb9006c73ec90",
            "url": "https://translate-dev.freebsd.org/api/units/157260/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.286054Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "<trademark class=\"registered\">Linux</trademark> follows the traditional <trademark class=\"registered\">UNIX</trademark> scheme of dividing the run of a process in two halves: the kernel and user space. The kernel can be entered in two ways: via a trap or via a syscall. The return is handled only in one way. The further description applies to <trademark class=\"registered\">Linux</trademark> 2.6 on the <trademark>i386</trademark> architecture. This information was taken from [2]."
            ],
            "previous_source": "",
            "target": [
                "<trademark class=\"registered\">Linux</trademark>Sigue lo tradicional<trademark class=\"registered\">UNIX</trademark> esquema de dividir la ejecución de un proceso en dos mitades: el kernel y el espacio de usuario. El kernel se puede ingresar de dos maneras: a través de una trampa o mediante una llamada al sistema. La devolución se gestiona de una sola forma. La descripción adicional se aplica a<trademark class=\"registered\">Linux</trademark> 2.6 sobre el<trademark>i386</trademark> arquitectura. Esta información se tomó de [2]."
            ],
            "id_hash": 3680077036248708024,
            "content_hash": 3680077036248708024,
            "location": "article.translate.xml:493",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 76,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 64,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157261/?format=api",
            "priority": 100,
            "id": 157262,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=b31242910bad33b8",
            "url": "https://translate-dev.freebsd.org/api/units/157262/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.308429Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "In the 2.6 version, the <trademark class=\"registered\">Linux</trademark> operating system redefined some of the traditional <trademark class=\"registered\">UNIX</trademark> primitives, notably PID, TID and thread. PID is defined not to be unique for every process, so for some processes (threads) <citerefentry><refentrytitle>getppid</refentrytitle><manvolnum>2</manvolnum></citerefentry> returns the same value. Unique identification of process is provided by TID. This is because <firstterm>NPTL</firstterm> (New <trademark class=\"registered\">POSIX</trademark> Thread Library) defines threads to be normal processes (so called 1:1 threading). Spawning a new process in <trademark class=\"registered\">Linux</trademark> 2.6 happens using the <literal>clone</literal> syscall (fork variants are reimplemented using it). This clone syscall defines a set of flags that affect behavior of the cloning process regarding thread implementation. The semantic is a bit fuzzy as there is no single flag telling the syscall to create a thread."
            ],
            "previous_source": "",
            "target": [
                "En la versión 2.6, el <trademark class=\"registered\">Linux</trademark> sistema operativo redefinió algunos de los tradicionales <trademark class=\"registered\">UNIX</trademark> primitivas, en particular PID, TID e hilo. PID se define para no ser único para cada proceso, por lo que para algunos procesos (subprocesos) <citerefentry><refentrytitle>getppid</refentrytitle><manvolnum>2</manvolnum></citerefentry> devuelve el mismo valor. TID proporciona la identificación única del proceso. Esto es porque <firstterm>NPTL</firstterm> (New <trademark class=\"registered\">POSIX</trademark> Thread Library) define los subprocesos como procesos normales (llamados subprocesos 1: 1). Generando un nuevo proceso en <trademark class=\"registered\">Linux</trademark> 2.6 sucede usando el <literal>clone</literal> syscall (las variantes de la bifurcación se vuelven a implementar usándolo). Esta llamada al sistema de clonación define un conjunto de indicadores que afectan el comportamiento del proceso de clonación con respecto a la implementación del hilo. La semántica es un poco difusa ya que no hay una sola bandera que le diga al syscall que cree un hilo."
            ],
            "id_hash": 5434135134896333711,
            "content_hash": 5434135134896333711,
            "location": "article.translate.xml:571",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 87,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 125,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157263/?format=api",
            "priority": 100,
            "id": 157264,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=cb69ed1d28f7238f",
            "url": "https://translate-dev.freebsd.org/api/units/157264/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.326580Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "The solution <trademark class=\"registered\">Linux</trademark> 2.6 implements is called futexes. Futexes implement the check for contention in userspace and call kernel primitives only in a case of contention. Thus the typical case takes place without any kernel intervention. This yields reasonably fast and flexible synchronization primitives implementation."
            ],
            "previous_source": "",
            "target": [
                "La solución <trademark class=\"registered\">Linux</trademark> 2.6 implementos se llama futexes. Los futexes implementan la verificación de contención en el espacio de usuario y llaman a las primitivas del núcleo solo en caso de contención. Por tanto, el caso típico tiene lugar sin ninguna intervención del núcleo. Esto produce una implementación de primitivas de sincronización razonablemente rápida y flexible."
            ],
            "id_hash": 1309720183494923947,
            "content_hash": 1309720183494923947,
            "location": "article.translate.xml:2024",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 294,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 46,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157265/?format=api",
            "priority": 100,
            "id": 157266,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=922d0f91545fd6ab",
            "url": "https://translate-dev.freebsd.org/api/units/157266/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.370708Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "This infrastructure is necessary to avoid races when opening files outside the working directory. Imagine that a process consists of two threads, thread A and thread B. Thread A issues <literal>open(./tmp/foo/bah., flags, mode)</literal> and before returning it gets preempted and thread B runs. Thread B does not care about the needs of thread A and renames or removes <filename>/tmp/foo/</filename>. We got a race. To avoid this we can open <filename>/tmp/foo</filename> and use it as <varname>dirfd</varname> for <function>openat</function> syscall. This also enables user to implement per-thread working directories."
            ],
            "previous_source": "",
            "target": [
                "Esta infraestructura es necesaria para evitar carreras al abrir archivos fuera del directorio de trabajo. Imagine que un proceso consta de dos subprocesos, el subproceso A y el subproceso B. Problemas del subproceso A <literal>abrir(./tmp/foo/bah., flags, mode)</literal> y antes de regresar se reemplaza y se ejecuta el hilo B. El hilo B no se preocupa por las necesidades del hilo A y cambia el nombre o elimina<filename>/tmp/foo/</filename>. Tenemos una carrera. Para evitar esto podemos abrir <filename>/tmp/foo</filename> and use it as <varname>dirfd</varname>para <function>openat</function>syscall. Esto también permite al usuario implementar directorios de trabajo por subproceso."
            ],
            "id_hash": 8222897637007509107,
            "content_hash": 8222897637007509107,
            "location": "article.translate.xml:2318",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 349,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 87,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157267/?format=api",
            "priority": 100,
            "id": 157268,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=f21d99d5863b4673",
            "url": "https://translate-dev.freebsd.org/api/units/157268/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.395014Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "The ioctl interface is quite fragile due to its generality. We have to bear in mind that devices differ between <trademark class=\"registered\">Linux</trademark> and FreeBSD so some care must be applied to do ioctl emulation work right. The ioctl handling is implemented in <filename>linux_ioctl.c</filename>, where <function>linux_ioctl</function> function is defined. This function simply iterates over sets of ioctl handlers to find a handler that implements a given command. The ioctl syscall has three parameters, the file descriptor, command and an argument. The command is a 16-bit number, which in theory is divided into high 8 bits determining class of the ioctl command and low 8 bits, which are the actual command within the given set. The emulation takes advantage of this division. We implement handlers for each set, like <function>sound_handler</function> or <function>disk_handler</function>. Each handler has a maximum command and a minimum command defined, which is used for determining what handler is used. There are slight problems with this approach because <trademark class=\"registered\">Linux</trademark> does not use the set division consistently so sometimes ioctls for a different set are inside a set they should not belong to (SCSI generic ioctls inside cdrom set, etc.). FreeBSD currently does not implement many <trademark class=\"registered\">Linux</trademark> ioctls (compared to NetBSD, for example) but the plan is to port those from NetBSD. The trend is to use <trademark class=\"registered\">Linux</trademark> ioctls even in the native FreeBSD drivers because of the easy porting of applications."
            ],
            "previous_source": "",
            "target": [
                "La interfaz ioctl es bastante frágil debido a su generalidad. Tenemos que tener en cuenta que los dispositivos difieren entre <trademark class=\"registered\">Linux</trademark> y FreeBSD, por lo que se debe tener cuidado para que la emulación de ioctl funcione correctamente. El manejo de ioctl se implementa en <filename>linux_ioctl.c</filename>, donde <function>linux_ioctl</function> la función está definida. Esta función simplemente itera sobre conjuntos de manejadores ioctl para encontrar un manejador que implemente un comando dado. El syscall ioctl tiene tres parámetros, el descriptor de archivo, el comando y un argumento. El comando es un número de 16 bits, que en teoría se divide en 8 bits altos que determinan la clase del comando ioctl y 8 bits bajos, que son el comando real dentro del conjunto dado. La emulación aprovecha esta división. Implementamos controladores para cada conjunto, como <function>sound_handler</function> o <function>disk_handler</function>.Cada controlador tiene un comando máximo y un comando mínimo definido, que se utiliza para determinar qué controlador se utiliza. Hay leves problemas con este enfoque porque <trademark class=\"registered\">Linux</trademark> no usa la división de conjuntos de manera consistente, por lo que a veces los ioctls de un conjunto diferente están dentro de un conjunto al que no deberían pertenecer (ioctls genéricos SCSI dentro del conjunto cdrom, etc.). FreeBSD actualmente no implementa muchos <trademark class=\"registered\">Linux</trademark>ioctls (en comparación con NetBSD, por ejemplo) pero el plan es portarlos de NetBSD. La tendencia es usar <trademark class=\"registered\">Linux</trademark> ioctls incluso en los controladores nativos de FreeBSD debido a la fácil migración de las aplicaciones."
            ],
            "id_hash": 8688480580634056386,
            "content_hash": 8688480580634056386,
            "location": "article.translate.xml:2392",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 356,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 234,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157269/?format=api",
            "priority": 100,
            "id": 157270,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=f893af0df69296c2",
            "url": "https://translate-dev.freebsd.org/api/units/157270/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.413206Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "As of April 2007 the <trademark class=\"registered\">Linux</trademark> emulation layer is capable of emulating the <trademark class=\"registered\">Linux</trademark> 2.6.16 kernel quite well. The remaining problems concern futexes, unfinished *at family of syscalls, problematic signals delivery, missing <function>epoll</function> and <function>inotify</function> and probably some bugs we have not discovered yet. Despite this we are capable of running basically all the <trademark class=\"registered\">Linux</trademark> programs included in FreeBSD Ports Collection with Fedora Core 4 at 2.6.16 and there are some rudimentary reports of success with Fedora Core 6 at 2.6.16. The Fedora Core 6 linux_base was recently committed enabling some further testing of the emulation layer and giving us some more hints where we should put our effort in implementing missing stuff."
            ],
            "previous_source": "",
            "target": [
                "En abril de 2007 el <trademark class=\"registered\">Linux</trademark> La capa de emulación es capaz de emular la <trademark class=\"registered\">Linux</trademark> 2.6.16 kernel bastante bien. Los problemas restantes se refieren a futexes, inacabados * en la familia de llamadas al sistema, entrega de señales problemáticas, falta<function>epoll</function> y <function>inotify</function> y probablemente algunos errores que aún no hemos descubierto. A pesar de esto, somos capaces de ejecutar básicamente todos los <trademark class=\"registered\">Linux</trademark> programas incluidos en FreeBSD Ports Collection con Fedora Core 4 en 2.6.16 y hay algunos informes rudimentarios de éxito con Fedora Core 6 en 2.6.16. Fedora Core 6 linux_base se comprometió recientemente para permitir algunas pruebas adicionales de la capa de emulación y darnos algunas pistas más sobre dónde deberíamos poner nuestro esfuerzo en implementar las cosas que faltan."
            ],
            "id_hash": 8521607958261139229,
            "content_hash": 8521607958261139229,
            "location": "article.translate.xml:2440",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 361,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 116,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157271/?format=api",
            "priority": 100,
            "id": 157272,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=f642d549e34c071d",
            "url": "https://translate-dev.freebsd.org/api/units/157272/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.430597Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "We are able to run the most used applications like <package>www/linux-firefox</package>, <package>net-im/skype</package> and some games from the Ports Collection. Some of the programs exhibit bad behavior under 2.6 emulation but this is currently under investigation and hopefully will be fixed soon. The only big application that is known not to work is the <trademark class=\"registered\">Linux</trademark> <trademark>Java</trademark> Development Kit and this is because of the requirement of <function>epoll</function> facility which is not directly related to the <trademark class=\"registered\">Linux</trademark> kernel 2.6."
            ],
            "previous_source": "",
            "target": [
                "Somos capaces de ejecutar las aplicaciones más utilizadas como <package>www/linux-firefox</package>, <package>net-im/skype</package> y algunos juegos de la colección Ports. Algunos de los programas exhiben un mal comportamiento en la emulación 2.6, pero esto está actualmente bajo investigación y es de esperar que se solucione pronto. La única gran aplicación que se sabe que no funciona es la <trademark class=\"registered\">Linux</trademark> <trademark>Java</trademark> Kit de desarrollo y esto se debe al requisito de <function>epoll</function> instalación que no está directamente relacionada con la <trademark class=\"registered\">Linux</trademark> kernel 2.6."
            ],
            "id_hash": -4525776641760329227,
            "content_hash": -4525776641760329227,
            "location": "article.translate.xml:2455",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 362,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 79,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157273/?format=api",
            "priority": 100,
            "id": 157274,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=4131361f771d81f5",
            "url": "https://translate-dev.freebsd.org/api/units/157274/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.447639Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "We hope to enable 2.6.16 emulation by default some time after FreeBSD 7.0 is released at least to expose the 2.6 emulation parts for some wider testing. Once this is done we can switch to Fedora Core 6 linux_base, which is the ultimate plan."
            ],
            "previous_source": "",
            "target": [
                "Esperamos habilitar la emulación 2.6.16 por defecto algún tiempo después del lanzamiento de FreeBSD 7.0 al menos para exponer las partes de la emulación 2.6 para pruebas más amplias. Una vez hecho esto, podemos cambiar a Fedora Core 6 linux_base, que es el plan definitivo."
            ],
            "id_hash": 5542595398051776702,
            "content_hash": 5542595398051776702,
            "location": "article.translate.xml:2466",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 363,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 44,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157275/?format=api",
            "priority": 100,
            "id": 157276,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=cceb41260a9748be",
            "url": "https://translate-dev.freebsd.org/api/units/157276/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.465687Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "We hope to be able to run the most important programs flawlessly soon, so we will be able to switch to the 2.6 emulation by default and make the Fedora Core 6 the default linux_base because our currently used Fedora Core 4 is not supported any more."
            ],
            "previous_source": "",
            "target": [
                "Esperamos poder ejecutar los programas más importantes sin problemas pronto, por lo que podremos cambiar a la emulación 2.6 por defecto y hacer que Fedora Core 6 sea la linux_base predeterminada porque nuestro Fedora Core 4 que usamos actualmente ya no es compatible."
            ],
            "id_hash": 1783364911372651517,
            "content_hash": 1783364911372651517,
            "location": "article.translate.xml:2482",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 366,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 47,
            "source_unit": "https://translate-dev.freebsd.org/api/units/157277/?format=api",
            "priority": 100,
            "id": 157278,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=98bfc8f02f434bfd",
            "url": "https://translate-dev.freebsd.org/api/units/157278/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-04-18T18:14:55.483728Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "$FreeBSD$"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -6157127918850188850,
            "content_hash": -6157127918850188850,
            "location": "article.translate.xml:54, article.translate.xml:56",
            "context": "",
            "note": "(itstool) path: info/pubdate\n(itstool) path: info/releaseinfo",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 14,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/229205/?format=api",
            "priority": 100,
            "id": 229210,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=2a8d7cc7984b59ce",
            "url": "https://translate-dev.freebsd.org/api/units/229210/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-01-09T14:33:00.618119Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "There are currently two ways to implement threading in FreeBSD. The first way is M:N threading followed by the 1:1 threading model. The default library used is M:N threading (<literal>libpthread</literal>) and you can switch at runtime to 1:1 threading (<literal>libthr</literal>). The plan is to switch to 1:1 library by default soon. Although those two libraries use the same kernel primitives, they are accessed through different API(es). The M:N library uses the <literal>kse_*</literal> family of syscalls while the 1:1 library uses the <literal>thr_*</literal> family of syscalls. Due to this, there is no general concept of thread ID shared between kernel and userspace. Of course, both threading libraries implement the pthread thread ID API. Every kernel thread (as described by <literal>struct thread</literal>) has td tid identifier but this is not directly accessible from userland and solely serves the kernel's needs. It is also used for 1:1 threading library as pthread's thread ID but handling of this is internal to the library and cannot be relied on."
            ],
            "previous_source": "There are currently two ways to implement threading in FreeBSD. The first way is M:N threading followed by the 1:1 threading model. The default library used is M:N threading (<literal>libpthread</literal>) and you can switch at runtime to 1:1 threading (<literal>libthr</literal>). The plan is to switch to 1:1 library by default soon. Although those two libraries use the same kernel primitives, they are accessed through different API(es). The M:N library uses the <literal>kse_*</literal> family of syscalls while the 1:1 library uses the <literal>thr_*</literal> family of syscalls. Because of this, there is no general concept of thread ID shared between kernel and userspace. Of course, both threading libraries implement the pthread thread ID API. Every kernel thread (as described by <literal>struct thread</literal>) has td tid identifier but this is not directly accessible from userland and solely serves the kernel's needs. It is also used for 1:1 threading library as pthread's thread ID but handling of this is internal to the library and cannot be relied on.",
            "target": [
                "Actualmente hay dos formas de implementar subprocesos en FreeBSD. La primera forma es el subproceso M: N seguido del modelo de subprocesamiento 1: 1. La biblioteca predeterminada utilizada es el subproceso M: N(<literal>libpthread</literal>) y puede cambiar en tiempo de ejecución a subprocesos 1: 1 (<literal>libthr</literal>). el plan es cambiar pronto a la biblioteca 1: 1 por defecto. Aunque esas dos bibliotecas usan las mismas primitivas del kernel, se accede a ellas a través de diferentes API (s). La biblioteca M: N usa la <literal>kse_*</literal> familia de llamadas al sistema, mientras que la biblioteca 1: 1 utiliza la <literal>thr_*</literal> familia de llamadas al sistema. Debido a esto, no existe un concepto general de ID de hilo compartido entre el kernel y el espacio de usuario. Por supuesto, ambas bibliotecas de subprocesos implementan la API de ID de subprocesos pthread. Cada hilo del kernel (como lo describe <literal>struct thread</literal>) tiene un identificador td tid pero no es directamente accesible desde el área de usuario y solo sirve a las necesidades del kernel. También se usa para la biblioteca de subprocesos 1: 1 como ID de subproceso de pthread, pero el manejo de esto es interno a la biblioteca y no se puede confiar en él."
            ],
            "id_hash": -3103700627613132461,
            "content_hash": -3103700627613132461,
            "location": "article.translate.xml:413",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 68,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 164,
            "source_unit": "https://translate-dev.freebsd.org/api/units/229206/?format=api",
            "priority": 100,
            "id": 229211,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=54ed70b929f65953",
            "url": "https://translate-dev.freebsd.org/api/units/229211/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-01-09T14:33:00.713149Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "As there is a difference in view as what to the idea of a process ID and thread ID is between FreeBSD and <trademark class=\"registered\">Linux</trademark> we have to translate the view somehow. We do it by PID mangling. This means that we fake what a PID (=TGID) and TID (=PID) is between kernel and userland. The rule of thumb is that in kernel (in Linuxulator) PID = PID and TGID = shared -&gt; group pid and to userland we present <literal>PID = shared -&gt; group_pid</literal> and <literal>TID = proc -&gt; p_pid</literal>. The PID member of <literal>linux_emuldata structure</literal> is a FreeBSD PID."
            ],
            "previous_source": "Because of the described different view knowing what a process ID and thread ID is between FreeBSD and <trademark class=\"registered\">Linux</trademark> we have to translate the view somehow. We do it by PID mangling. This means that we fake what a PID (=TGID) and TID (=PID) is between kernel and userland. The rule of thumb is that in kernel (in Linuxulator) PID = PID and TGID = shared -&gt; group pid and to userland we present <literal>PID = shared -&gt; group_pid</literal> and <literal>TID = proc -&gt; p_pid</literal>. The PID member of <literal>linux_emuldata structure</literal> is a FreeBSD PID.",
            "target": [
                "Debido a la vista diferente descrita, saber qué ID de proceso e ID de subproceso es entre FreeBSD y <trademark class=\"registered\">Linux</trademark> tenemos que traducir la vista de alguna manera. Lo hacemos mediante la manipulación de PID. Esto significa que falsificamos lo que es un PID (= TGID) y TID (= PID) entre el kernel y el área de usuario. La regla general es que en el kernel (en Linuxulator) PID = PID y TGID = compartido -&gt; pid de grupo y al área de usuario presentamos <literal>PID = shared -&gt; group_pid</literal> y <literal>TID = proc -&gt; p_pid</literal>. El miembro PID de<literal>linux_emuldata structure</literal> es un PID de FreeBSD."
            ],
            "id_hash": 7924950461666399546,
            "content_hash": 7924950461666399546,
            "location": "article.translate.xml:1704",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 261,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 101,
            "source_unit": "https://translate-dev.freebsd.org/api/units/229207/?format=api",
            "priority": 100,
            "id": 229212,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=edfb1474ea31953a",
            "url": "https://translate-dev.freebsd.org/api/units/229212/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-01-09T14:33:01.082251Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "The locking is implemented to be per-subsystem because we do not expect a lot of contention on these. There are two locks: <literal>emul_lock</literal> used to protect manipulating of <literal>linux_emuldata</literal> and <literal>emul_shared_lock</literal> used to manipulate <literal>linux_emuldata_shared</literal>. The <literal>emul_lock</literal> is a nonsleepable blocking mutex while <literal>emul_shared_lock</literal> is a sleepable blocking <literal>sx_lock</literal>. Due to the per-subsystem locking we can coalesce some locks and that is why the em find offers the non-locking access."
            ],
            "previous_source": "The locking is implemented to be per-subsystem because we do not expect a lot of contention on these. There are two locks: <literal>emul_lock</literal> used to protect manipulating of <literal>linux_emuldata</literal> and <literal>emul_shared_lock</literal> used to manipulate <literal>linux_emuldata_shared</literal>. The <literal>emul_lock</literal> is a nonsleepable blocking mutex while <literal>emul_shared_lock</literal> is a sleepable blocking <literal>sx_lock</literal>. Because of the per-subsystem locking we can coalesce some locks and that is why the em find offers the non-locking access.",
            "target": [
                "el bloqueo se implementa para ser por subsistema porque no esperamos mucha contención sobre estos. Hay dos candados:<literal>emul_lock</literal> utilizado para proteger la manipulación de <literal>linux_emuldata</literal> y <literal>emul_shared_lock</literal> usado para manipular <literal>linux_emuldata_shared</literal>. El <literal>emul_lock</literal> es un mutex de bloqueo que no se puede dormir mientras <literal>emul_shared_lock</literal> es un bloqueo dormible <literal>sx_lock</literal>. Debido al bloqueo por subsistema, podemos fusionar algunos bloqueos y es por eso que em find ofrece acceso sin bloqueo."
            ],
            "id_hash": -7958131764761216928,
            "content_hash": -7958131764761216928,
            "location": "article.translate.xml:1796",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 270,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 70,
            "source_unit": "https://translate-dev.freebsd.org/api/units/229208/?format=api",
            "priority": 100,
            "id": 229213,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=118f0952eda7b860",
            "url": "https://translate-dev.freebsd.org/api/units/229213/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-01-09T14:33:01.109664Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "Threaded programs should be written with as little contention on locks as possible. Otherwise, instead of doing useful work the thread just waits on a lock. As a result of this, the most well written threaded programs show little locks contention."
            ],
            "previous_source": "Threaded programs should be written with as little contention on locks as possible. Otherwise, instead of doing useful work the thread just waits on a lock. Because of this, the most well written threaded programs show little locks contention.",
            "target": [
                "Los programas con subprocesos deben escribirse con la menor contención posible sobre los bloqueos. De lo contrario, en lugar de hacer un trabajo útil, el hilo solo espera un bloqueo. Debido a esto, los programas con subprocesos mejor escritos muestran poca contención de bloqueos."
            ],
            "id_hash": 1626607788193262355,
            "content_hash": 1626607788193262355,
            "location": "article.translate.xml:2000",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 289,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 41,
            "source_unit": "https://translate-dev.freebsd.org/api/units/229209/?format=api",
            "priority": 100,
            "id": 229214,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=9692df2a4c24ab13",
            "url": "https://translate-dev.freebsd.org/api/units/229214/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-01-09T14:33:01.150066Z"
        }
    ]
}