Translation components API.

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

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

{
    "count": 293,
    "next": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/units/?format=api&page=5",
    "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/units/?format=api&page=3",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "      boot2: boot2.ld\n      boot2.ld: boot2.ldr boot2.bin ${BTXDIR}\n      boot2.bin: boot2.out\n      boot2.out: ${BTXDIR} boot2.o sio.o ashldi3.o\n      boot2.h: boot1.out\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6127018008328205948,
            "content_hash": 6127018008328205948,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:839",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 151,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 15,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436559/?format=api",
            "priority": 100,
            "id": 1497656,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=d5078a6a8ed2f67c",
            "url": "https://translate-dev.freebsd.org/api/units/1497656/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:53.975781Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/boot2/Makefile# [[boot-boot1-make-boot2-more]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5411787696251654737,
            "content_hash": -5411787696251654737,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:841",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 152,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436561/?format=api",
            "priority": 100,
            "id": 1497657,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=34e577c35d172daf",
            "url": "https://translate-dev.freebsd.org/api/units/1497657/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:53.980800Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Note that initially there is no header file [.filename]#boot2.h#, but its creation depends on [.filename]#boot1.out#, which we already have.  The rule for its creation is a bit terse, but the important thing is that the output, [.filename]#boot2.h#, is something like this:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8083181094166401972,
            "content_hash": -8083181094166401972,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:844",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 153,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 41,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436563/?format=api",
            "priority": 100,
            "id": 1497658,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=0fd2c59f130eec4c",
            "url": "https://translate-dev.freebsd.org/api/units/1497658/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:53.988745Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "#define XREADORG 0x725\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -6854537052693467801,
            "content_hash": -6854537052693467801,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:848",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 154,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1130958/?format=api",
            "priority": 100,
            "id": 1497659,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=20dfcade1273ed67",
            "url": "https://translate-dev.freebsd.org/api/units/1497659/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.080377Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/boot2/boot2.h# [[boot-boot1-make-boot2h]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6481360224549420923,
            "content_hash": 6481360224549420923,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:850",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 155,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436565/?format=api",
            "priority": 100,
            "id": 1497660,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=d9f26ac8d59d3f7b",
            "url": "https://translate-dev.freebsd.org/api/units/1497660/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.084666Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Recall that [.filename]#boot1# was relocated (i.e., copied from `0x7c00` to `0x700`).  This relocation will now make sense, because as we will see, the BTX server reclaims some memory, including the space where [.filename]#boot1# was originally loaded.  However, the BTX server needs access to [.filename]#boot1#'s `xread` function; this function, according to the output of [.filename]#boot2.h#, is at location `0x725`.  Indeed, the BTX server uses the `xread` function from [.filename]#boot1#'s relocated code.  This function is now accessible from within the [.filename]#boot2# client."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4109786936013546968,
            "content_hash": -4109786936013546968,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:856",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 156,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 80,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436567/?format=api",
            "priority": 100,
            "id": 1497661,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=46f71a8e685f1a28",
            "url": "https://translate-dev.freebsd.org/api/units/1497661/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.091306Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "The next rule directs the linker to link various files ([.filename]#ashldi3.o#, [.filename]#boot2.o# and [.filename]#sio.o#).  Note that the output file, [.filename]#boot2.out#, is linked to execute at address `0x2000` (${ORG2}).  Recall that [.filename]#boot2# will be executed in user mode, within a special user segment set up by the BTX server.  This segment starts at `0xa000`.  Also, remember that the [.filename]#boot2# portion of [.filename]#boot# was copied to address `0xc000`, that is, offset `0x2000` from the start of the user segment, so [.filename]#boot2# will work properly when we transfer control to it.  Next, [.filename]#boot2.bin# is created from [.filename]#boot2.out# by stripping its symbols and format information; boot2.bin is a _raw_ binary.  Now, note that a file [.filename]#boot2.ldr# is created as a 512-byte file full of zeros.  This space is reserved for the bsdlabel."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1142263363582956249,
            "content_hash": -1142263363582956249,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:865",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 157,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 128,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436569/?format=api",
            "priority": 100,
            "id": 1497662,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=7025dd85d5b1ed27",
            "url": "https://translate-dev.freebsd.org/api/units/1497662/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.177935Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Now that we have files [.filename]#boot1#, [.filename]#boot2.bin# and [.filename]#boot2.ldr#, only the BTX server is missing before creating the all-in-one [.filename]#boot# file.  The BTX server is located in [.filename]#stand/i386/btx/btx#; it has its own [.filename]#Makefile# with its own set of rules for building.  The important thing to notice is that it is also compiled as a _raw_ binary, and that it is linked to execute at address `0x9000`.  The details can be found in [.filename]#stand/i386/btx/btx/Makefile#."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1125302410182523761,
            "content_hash": -1125302410182523761,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:870",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 158,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 73,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436571/?format=api",
            "priority": 100,
            "id": 1497663,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=70621f6b882e048f",
            "url": "https://translate-dev.freebsd.org/api/units/1497663/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.182021Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Having the files that comprise the [.filename]#boot# program, the final step is to _merge_ them.  This is done by a special program called [.filename]#btxld# (source located in [.filename]#/usr/src/usr.sbin/btxld#).  Some arguments to this program include the name of the output file ([.filename]#boot#), its entry point (`0x2000`) and its file format (raw binary).  The various files are finally merged by this utility into the file [.filename]#boot#, which consists of [.filename]#boot1#, [.filename]#boot2#, the `bsdlabel` and the BTX server.  This file, which takes exactly 16 sectors, or 8192 bytes, is what is actually written to the beginning of the FreeBSD slice during installation.  Let us now proceed to study the BTX server program."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5459013127064563001,
            "content_hash": 5459013127064563001,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:877",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 159,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 109,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436573/?format=api",
            "priority": 100,
            "id": 1497664,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=cbc24f8416e0ad39",
            "url": "https://translate-dev.freebsd.org/api/units/1497664/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.274046Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "The BTX server prepares a simple environment and switches from 16-bit real mode to 32-bit protected mode, right before passing control to the client.  This includes initializing and updating the following data structures:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5260842659562456866,
            "content_hash": 5260842659562456866,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:880",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 160,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 33,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436575/?format=api",
            "priority": 100,
            "id": 1497665,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=c902448696710722",
            "url": "https://translate-dev.freebsd.org/api/units/1497665/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.279114Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Modifies the `Interrupt Vector Table (IVT)`.  The IVT provides exception and interrupt handlers for Real-Mode code."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8421621604464954732,
            "content_hash": 8421621604464954732,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:883",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 161,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436577/?format=api",
            "priority": 100,
            "id": 1497666,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=f4df9c3ac6e38d6c",
            "url": "https://translate-dev.freebsd.org/api/units/1497666/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.284495Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "The `Interrupt Descriptor Table (IDT)` is created.  Entries are provided for processor exceptions, hardware interrupts, two system calls and V86 interface.  The IDT provides exception and interrupt handlers for Protected-Mode code."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1716046534248688788,
            "content_hash": 1716046534248688788,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:886",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 162,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 31,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436579/?format=api",
            "priority": 100,
            "id": 1497667,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=97d09f3b1beeec94",
            "url": "https://translate-dev.freebsd.org/api/units/1497667/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.374663Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "A `Task-State Segment (TSS)` is created.  This is necessary because the processor works in the _least_ privileged level when executing the client ([.filename]#boot2#), but in the _most_ privileged level when executing the BTX server."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 713019170290830367,
            "content_hash": 713019170290830367,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:888",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 163,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 34,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436581/?format=api",
            "priority": 100,
            "id": 1497668,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=89e527285b3a8c1f",
            "url": "https://translate-dev.freebsd.org/api/units/1497668/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.378192Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "The GDT (Global Descriptor Table) is set up.  Entries (descriptors) are provided for supervisor code and data, user code and data, and real-mode code and data.  footnote:[Real-mode code and data are necessary when switching back to real mode from protected mode, as suggested by the Intel manuals.]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7714283688006376561,
            "content_hash": 7714283688006376561,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:891",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 164,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 47,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436583/?format=api",
            "priority": 100,
            "id": 1497669,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=eb0ea4246835dc71",
            "url": "https://translate-dev.freebsd.org/api/units/1497669/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.381520Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Let us now start studying the actual implementation.  Recall that [.filename]#boot1# made a jump to address `0x9010`, the BTX server's entry point.  Before studying program execution there, note that the BTX server has a special header at address range `0x9000-0x900f`, right before its entry point.  This header is defined as follows:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2484842257955112798,
            "content_hash": 2484842257955112798,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:896",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 165,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 51,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436585/?format=api",
            "priority": 100,
            "id": 1497670,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=a27beede4c4b475e",
            "url": "https://translate-dev.freebsd.org/api/units/1497670/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.387146Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "start:\t\t\t\t\t\t# Start of code\n/*\n * BTX header.\n */\nbtx_hdr:\t.byte 0xeb\t\t\t# Machine ID\n\t\t.byte 0xe\t\t\t# Header size\n\t\t.ascii \"BTX\"\t\t\t# Magic\n\t\t.byte 0x1\t\t\t# Major version\n\t\t.byte 0x2\t\t\t# Minor version\n\t\t.byte BTX_FLAGS\t\t\t# Flags\n\t\t.word PAG_CNT-MEM_ORG>>0xc\t# Paging control\n\t\t.word break-start\t\t# Text size\n\t\t.long 0x0\t\t\t# Entry address\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1844610216668505972,
            "content_hash": -1844610216668505972,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:912",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 166,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 54,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1130982/?format=api",
            "priority": 100,
            "id": 1497671,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=6666a0c7f66ad88c",
            "url": "https://translate-dev.freebsd.org/api/units/1497671/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.474891Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-header]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4715238116266201311,
            "content_hash": 4715238116266201311,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:914",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 167,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436587/?format=api",
            "priority": 100,
            "id": 1497672,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=c16fe415976dd0df",
            "url": "https://translate-dev.freebsd.org/api/units/1497672/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.478117Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Note the first two bytes are `0xeb` and `0xe`.  In the IA-32 architecture, these two bytes are interpreted as a relative jump past the header into the entry point, so in theory, [.filename]#boot1# could jump here (address `0x9000`) instead of address `0x9010`.  Note that the last field in the BTX header is a pointer to the client's ([.filename]#boot2#) entry pointb2.  This field is patched at link time."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1903558726486881404,
            "content_hash": -1903558726486881404,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:919",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 168,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436589/?format=api",
            "priority": 100,
            "id": 1497673,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=6595336c7aa78b84",
            "url": "https://translate-dev.freebsd.org/api/units/1497673/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.480972Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Immediately following the header is the BTX server's entry point:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4274543415999518301,
            "content_hash": -4274543415999518301,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:921",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 169,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 10,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1130988/?format=api",
            "priority": 100,
            "id": 1497674,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=44adc569205d29a3",
            "url": "https://translate-dev.freebsd.org/api/units/1497674/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.484068Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Initialization routine.\n */\ninit:\t\tcli\t\t\t\t# Disable interrupts\n\t\txor %ax,%ax\t\t\t# Zero/segment\n\t\tmov %ax,%ss\t\t\t# Set up\n\t\tmov $MEM_ESP0,%sp\t\t#  stack\n\t\tmov %ax,%es\t\t\t# Address\n\t\tmov %ax,%ds\t\t\t#  data\n\t\tpushl $0x2\t\t\t# Clear\n\t\tpopfl\t\t\t\t#  flags\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4009622884313927171,
            "content_hash": 4009622884313927171,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:935",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 170,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 38,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436591/?format=api",
            "priority": 100,
            "id": 1497675,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=b7a50ac4f6cf0e03",
            "url": "https://translate-dev.freebsd.org/api/units/1497675/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.585087Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-init]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -845051223314216961,
            "content_hash": -845051223314216961,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:937",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 171,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436593/?format=api",
            "priority": 100,
            "id": 1497676,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=7445c663c158c7ff",
            "url": "https://translate-dev.freebsd.org/api/units/1497676/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.589115Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "This code disables interrupts, sets up a working stack (starting at address `0x1800`) and clears the flags in the EFLAGS register.  Note that the `popfl` instruction pops out a doubleword (4 bytes) from the stack and places it in the EFLAGS register.  As the value actually popped is `2`, the EFLAGS register is effectively cleared (IA-32 requires that bit 2 of the EFLAGS register always be 1)."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8615059423826275749,
            "content_hash": 8615059423826275749,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:941",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 172,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436595/?format=api",
            "priority": 100,
            "id": 1497677,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=f78ed6e6c40beda5",
            "url": "https://translate-dev.freebsd.org/api/units/1497677/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.674265Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Our next code block clears (sets to `0`) the memory range `0x5e00-0x8fff`.  This range is where the various data structures will be created:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -7323480016215307486,
            "content_hash": -7323480016215307486,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:944",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 173,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436597/?format=api",
            "priority": 100,
            "id": 1497678,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=1a5dc5ba09d08b22",
            "url": "https://translate-dev.freebsd.org/api/units/1497678/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.691926Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Initialize memory.\n */\n\t\tmov $MEM_IDT,%di\t\t# Memory to initialize\n\t\tmov $(MEM_ORG-MEM_IDT)/2,%cx\t# Words to zero\n\t\trep\t\t\t\t# Zero-fill\n\t\tstosw\t\t\t\t#  memory\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -7912490346943382555,
            "content_hash": -7912490346943382555,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:954",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 174,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436599/?format=api",
            "priority": 100,
            "id": 1497679,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=12312ff39dbb7be5",
            "url": "https://translate-dev.freebsd.org/api/units/1497679/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.778511Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-clear-mem]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6178617644590937169,
            "content_hash": 6178617644590937169,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:956",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 175,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436601/?format=api",
            "priority": 100,
            "id": 1497680,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=d5bedc0314cdb451",
            "url": "https://translate-dev.freebsd.org/api/units/1497680/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.782087Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Recall that [.filename]#boot1# was originally loaded to address `0x7c00`, so, with this memory initialization, that copy effectively disappeared.  However, also recall that [.filename]#boot1# was relocated to `0x700`, so _that_ copy is still in memory, and the BTX server will make use of it."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2197081322727841956,
            "content_hash": -2197081322727841956,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:959",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 176,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 43,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436603/?format=api",
            "priority": 100,
            "id": 1497681,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=6182662d78295f5c",
            "url": "https://translate-dev.freebsd.org/api/units/1497681/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.786288Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Next, the real-mode IVT (Interrupt Vector Table is updated.  The IVT is an array of segment/offset pairs for exception and interrupt handlers.  The BIOS normally maps hardware interrupts to interrupt vectors `0x8` to `0xf` and `0x70` to `0x77` but, as will be seen, the 8259A Programmable Interrupt Controller, the chip controlling the actual mapping of hardware interrupts to interrupt vectors, is programmed to remap these interrupt vectors from `0x8-0xf` to `0x20-0x27` and from `0x70-0x77` to `0x28-0x2f`.  Thus, interrupt handlers are provided for interrupt vectors `0x20-0x2f`.  The reason the BIOS-provided handlers are not used directly is because they work in 16-bit real mode, but not 32-bit protected mode.  Processor mode will be switched to 32-bit protected mode shortly.  However, the BTX server sets up a mechanism to effectively use the handlers provided by the BIOS:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2941132973058430840,
            "content_hash": -2941132973058430840,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:967",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 177,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 134,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436605/?format=api",
            "priority": 100,
            "id": 1497682,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=572eff24cfa9e888",
            "url": "https://translate-dev.freebsd.org/api/units/1497682/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.876028Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Update real mode IDT for reflecting hardware interrupts.\n */\n\t\tmov $intr20,%bx\t\t\t# Address first handler\n\t\tmov $0x10,%cx\t\t\t# Number of handlers\n\t\tmov $0x20*4,%di\t\t\t# First real mode IDT entry\ninit.0:\t\tmov %bx,(%di)\t\t\t# Store IP\n\t\tinc %di\t\t\t\t# Address next\n\t\tinc %di\t\t\t\t#  entry\n\t\tstosw\t\t\t\t# Store CS\n\t\tadd $4,%bx\t\t\t# Next handler\n\t\tloop init.0\t\t\t# Next IRQ\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6524770693107043904,
            "content_hash": 6524770693107043904,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:982",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 178,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 60,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1131006/?format=api",
            "priority": 100,
            "id": 1497683,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=da8ca4602b864e40",
            "url": "https://translate-dev.freebsd.org/api/units/1497683/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.882420Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-ivt]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5811669437052233427,
            "content_hash": -5811669437052233427,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:984",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 179,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436607/?format=api",
            "priority": 100,
            "id": 1497684,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=2f58cd704481d92d",
            "url": "https://translate-dev.freebsd.org/api/units/1497684/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.889880Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "The next block creates the IDT (Interrupt Descriptor Table).  The IDT is analogous, in protected mode, to the IVT in real mode.  That is, the IDT describes the various exception and interrupt handlers used when the processor is executing in protected mode.  In essence, it also consists of an array of segment/offset pairs, although the structure is somewhat more complex, because segments in protected mode are different than in real mode, and various protection mechanisms apply:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2062662935155350859,
            "content_hash": 2062662935155350859,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:989",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 180,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 76,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436609/?format=api",
            "priority": 100,
            "id": 1497685,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=9ca00d02d54c9d4b",
            "url": "https://translate-dev.freebsd.org/api/units/1497685/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.975234Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Create IDT.\n */\n\t\tmov $MEM_IDT,%di\t\t# IDT's address\n\t\tmov $idtctl,%si\t\t\t# Control string\ninit.1:\t\tlodsb\t\t\t\t# Get entry\n\t\tcbw\t\t\t\t#  count\n\t\txchg %ax,%cx\t\t\t#  as word\n\t\tjcxz init.4\t\t\t# If done\n\t\tlodsb\t\t\t\t# Get segment\n\t\txchg %ax,%dx\t\t\t#  P:DPL:type\n\t\tlodsw\t\t\t\t# Get control\n\t\txchg %ax,%bx\t\t\t#  set\n\t\tlodsw\t\t\t\t# Get handler offset\n\t\tmov $SEL_SCODE,%dh\t\t# Segment selector\ninit.2:\t\tshr %bx\t\t\t\t# Handle this int?\n\t\tjnc init.3\t\t\t# No\n\t\tmov %ax,(%di)\t\t\t# Set handler offset\n\t\tmov %dh,0x2(%di)\t\t#  and selector\n\t\tmov %dl,0x5(%di)\t\t# Set P:DPL:type\n\t\tadd $0x4,%ax\t\t\t# Next handler\ninit.3:\t\tlea 0x8(%di),%di\t\t# Next entry\n\t\tloop init.2\t\t\t# Till set done\n\t\tjmp init.1\t\t\t# Continue\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2102150803069793179,
            "content_hash": 2102150803069793179,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1016",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 181,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 107,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436611/?format=api",
            "priority": 100,
            "id": 1497686,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=9d2c57048946f39b",
            "url": "https://translate-dev.freebsd.org/api/units/1497686/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.982817Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-idt]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6200636464354194657,
            "content_hash": 6200636464354194657,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1018",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 182,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436613/?format=api",
            "priority": 100,
            "id": 1497687,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=d60d16030f2a74e1",
            "url": "https://translate-dev.freebsd.org/api/units/1497687/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:54.986710Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Each entry in the `IDT` is 8 bytes long.  Besides the segment/offset information, they also describe the segment type, privilege level, and whether the segment is present in memory or not.  The construction is such that interrupt vectors from `0` to `0xf` (exceptions) are handled by function `intx00`; vector `0x10` (also an exception) is handled by `intx10`; hardware interrupts, which are later configured to start at interrupt vector `0x20` all the way to interrupt vector `0x2f`, are handled by function `intx20`.  Lastly, interrupt vector `0x30`, which is used for system calls, is handled by `intx30`, and vectors `0x31` and `0x32` are handled by `intx31`.  It must be noted that only descriptors for interrupt vectors `0x30`, `0x31` and `0x32` are given privilege level 3, the same privilege level as the [.filename]#boot2# client, which means the client can execute a software-generated interrupt to this vectors through the `int` instruction without failing (this is the way [.filename]#boot2# use the services provided by the BTX server).  Also, note that _only_ software-generated interrupts are protected from code executing in lesser privilege levels.  Hardware-generated interrupts and processor-generated exceptions are _always_ handled adequately, regardless of the actual privileges involved."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1987533812313852570,
            "content_hash": 1987533812313852570,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1026",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 183,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 192,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436615/?format=api",
            "priority": 100,
            "id": 1497688,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=9b952378ce0b8a9a",
            "url": "https://translate-dev.freebsd.org/api/units/1497688/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.077082Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "The next step is to initialize the TSS (Task-State Segment).  The TSS is a hardware feature that helps the operating system or executive software implement multitasking functionality through process abstraction.  The IA-32 architecture demands the creation and use of _at least_ one TSS if multitasking facilities are used or different privilege levels are defined.  Since the [.filename]#boot2# client is executed in privilege level 3, but the BTX server runs in privilege level 0, a TSS must be defined:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 263740875526728261,
            "content_hash": 263740875526728261,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1031",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 184,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 78,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436617/?format=api",
            "priority": 100,
            "id": 1497689,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=83a8feedce856a45",
            "url": "https://translate-dev.freebsd.org/api/units/1497689/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.081573Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Initialize TSS.\n */\ninit.4:\t\tmovb $_ESP0H,TSS_ESP0+1(%di)\t# Set ESP0\n\t\tmovb $SEL_SDATA,TSS_SS0(%di)\t# Set SS0\n\t\tmovb $_TSSIO,TSS_MAP(%di)\t# Set I/O bit map base\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 3041127439675892515,
            "content_hash": 3041127439675892515,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1040",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 185,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 24,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1131020/?format=api",
            "priority": 100,
            "id": 1497690,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=aa34414b36932323",
            "url": "https://translate-dev.freebsd.org/api/units/1497690/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.088330Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-tss]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1774189083797871128,
            "content_hash": -1774189083797871128,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1042",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 186,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436619/?format=api",
            "priority": 100,
            "id": 1497691,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=6760d06da7da25e8",
            "url": "https://translate-dev.freebsd.org/api/units/1497691/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.180865Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Note that a value is given for the Privilege Level 0 stack pointer and stack segment in the TSS.  This is needed because, if an interrupt or exception is received while executing [.filename]#boot2# in Privilege Level 3, a change to Privilege Level 0 is automatically performed by the processor, so a new working stack is needed.  Finally, the I/O Map Base Address field of the TSS is given a value, which is a 16-bit offset from the beginning of the TSS to the I/O Permission Bitmap and the Interrupt Redirection Bitmap."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1374034531120360570,
            "content_hash": 1374034531120360570,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1046",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 187,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 91,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436621/?format=api",
            "priority": 100,
            "id": 1497692,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=93118d20488cac7a",
            "url": "https://translate-dev.freebsd.org/api/units/1497692/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.184680Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "After the IDT and TSS are created, the processor is ready to switch to protected mode.  This is done in the next block:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4908171658769530752,
            "content_hash": -4908171658769530752,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1049",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 188,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 23,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436623/?format=api",
            "priority": 100,
            "id": 1497693,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=3be2abe186670080",
            "url": "https://translate-dev.freebsd.org/api/units/1497693/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.274681Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Bring up the system.\n */\n\t\tmov $0x2820,%bx\t\t\t# Set protected mode\n\t\tcallw setpic\t\t\t#  IRQ offsets\n\t\tlidt idtdesc\t\t\t# Set IDT\n\t\tlgdt gdtdesc\t\t\t# Set GDT\n\t\tmov %cr0,%eax\t\t\t# Switch to protected\n\t\tinc %ax\t\t\t\t#  mode\n\t\tmov %eax,%cr0\t\t\t#\n\t\tljmp $SEL_SCODE,$init.8\t\t# To 32-bit code\n\t\t.code32\ninit.8:\t\txorl %ecx,%ecx\t\t\t# Zero\n\t\tmovb $SEL_SDATA,%cl\t\t# To 32-bit\n\t\tmovw %cx,%ss\t\t\t#  stack\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8712478772718114542,
            "content_hash": -8712478772718114542,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1067",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 189,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 62,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1131028/?format=api",
            "priority": 100,
            "id": 1497694,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=07170eb787016912",
            "url": "https://translate-dev.freebsd.org/api/units/1497694/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.278530Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-prot]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -77355964023659756,
            "content_hash": -77355964023659756,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1069",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 190,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436625/?format=api",
            "priority": 100,
            "id": 1497695,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=7eed2d291b1ca314",
            "url": "https://translate-dev.freebsd.org/api/units/1497695/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.282085Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "First, a call is made to `setpic` to program the 8259A PIC (Programmable Interrupt Controller).  This chip is connected to multiple hardware interrupt sources.  Upon receiving an interrupt from a device, it signals the processor with the appropriate interrupt vector.  This can be customized so that specific interrupts are associated with specific interrupt vectors, as explained before.  Next, the IDTR (Interrupt Descriptor Table Register) and GDTR (Global Descriptor Table Register) are loaded with the instructions `lidt` and `lgdt`, respectively.  These registers are loaded with the base address and limit address for the IDT and GDT.  The following three instructions set the Protection Enable (PE) bit of the `%cr0` register.  This effectively switches the processor to 32-bit protected mode.  Next, a long jump is made to `init.8` using segment selector SEL_SCODE, which selects the Supervisor Code Segment.  The processor is effectively executing in CPL 0, the most privileged level, after this jump.  Finally, the Supervisor Data Segment is selected for the stack by assigning the segment selector SEL_SDATA to the `%ss` register.  This data segment also has a privilege level of `0`."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2992351916285555756,
            "content_hash": -2992351916285555756,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1082",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 191,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 181,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436627/?format=api",
            "priority": 100,
            "id": 1497696,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=567907c94ad70bd4",
            "url": "https://translate-dev.freebsd.org/api/units/1497696/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.375307Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Our last code block is responsible for loading the TR (Task Register) with the segment selector for the TSS we created earlier, and setting the User Mode environment before passing execution control to the [.filename]#boot2# client."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -2535906664500785762,
            "content_hash": -2535906664500785762,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1084",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 192,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 36,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1131034/?format=api",
            "priority": 100,
            "id": 1497697,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=5ccea6530ee28d9e",
            "url": "https://translate-dev.freebsd.org/api/units/1497697/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.384188Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/*\n * Launch user task.\n */\n\t\tmovb $SEL_TSS,%cl\t\t# Set task\n\t\tltr %cx\t\t\t\t#  register\n\t\tmovl $MEM_USR,%edx\t\t# User base address\n\t\tmovzwl %ss:BDA_MEM,%eax\t\t# Get free memory\n\t\tshll $0xa,%eax\t\t\t# To bytes\n\t\tsubl $ARGSPACE,%eax\t\t# Less arg space\n\t\tsubl %edx,%eax\t\t\t# Less base\n\t\tmovb $SEL_UDATA,%cl\t\t# User data selector\n\t\tpushl %ecx\t\t\t# Set SS\n\t\tpushl %eax\t\t\t# Set ESP\n\t\tpush $0x202\t\t\t# Set flags (IF set)\n\t\tpush $SEL_UCODE\t\t\t# Set CS\n\t\tpushl btx_hdr+0xc\t\t# Set EIP\n\t\tpushl %ecx\t\t\t# Set GS\n\t\tpushl %ecx\t\t\t# Set FS\n\t\tpushl %ecx\t\t\t# Set DS\n\t\tpushl %ecx\t\t\t# Set ES\n\t\tpushl %edx\t\t\t# Set EAX\n\t\tmovb $0x7,%cl\t\t\t# Set remaining\ninit.9:\t\tpush $0x0\t\t\t#  general\n\t\tloop init.9\t\t\t#  registers\n#ifdef BTX_SERIAL\n\t\tcall sio_init\t\t\t# setup the serial console\n#endif\n\t\tpopa\t\t\t\t#  and initialize\n\t\tpopl %es\t\t\t# Initialize\n\t\tpopl %ds\t\t\t#  user\n\t\tpopl %fs\t\t\t#  segment\n\t\tpopl %gs\t\t\t#  registers\n\t\tiret\t\t\t\t# To user mode\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5593170204071011698,
            "content_hash": 5593170204071011698,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1120",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 193,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 150,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436629/?format=api",
            "priority": 100,
            "id": 1497698,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=cd9eeeaaadf3a572",
            "url": "https://translate-dev.freebsd.org/api/units/1497698/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.390600Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "[.filename]#stand/i386/btx/btx/btx.S# [[btx-end]]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8226378526713168460,
            "content_hash": -8226378526713168460,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1122",
            "context": "",
            "note": "type: Block title",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 194,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436631/?format=api",
            "priority": 100,
            "id": 1497699,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=0dd60850af5c3db4",
            "url": "https://translate-dev.freebsd.org/api/units/1497699/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.482832Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "Note that the client's environment include a stack segment selector and stack pointer (registers `%ss` and `%esp`).  Indeed, once the TR is loaded with the appropriate stack segment selector (instruction `ltr`), the stack pointer is calculated and pushed onto the stack along with the stack's segment selector.  Next, the value `0x202` is pushed onto the stack; it is the value that the EFLAGS will get when control is passed to the client.  Also, the User Mode code segment selector and the client's entry point are pushed.  Recall that this entry point is patched in the BTX header at link time.  Finally, segment selectors (stored in register `%ecx`) for the segment registers `%gs, %fs, %ds and %es` are pushed onto the stack, along with the value at `%edx` (`0xa000`).  Keep in mind the various values that have been pushed onto the stack (they will be popped out shortly).  Next, values for the remaining general purpose registers are also pushed onto the stack (note the `loop` that pushes the value `0` seven times).  Now, values will be started to be popped out of the stack.  First, the `popa` instruction pops out of the stack the latest seven values pushed.  They are stored in the general purpose registers in order `%edi, %esi, %ebp, %ebx, %edx, %ecx, %eax`.  Then, the various segment selectors pushed are popped into the various segment registers.  Five values still remain on the stack.  They are popped when the `iret` instruction is executed.  This instruction first pops the value that was pushed from the BTX header.  This value is a pointer to [.filename]#boot2#'s entry point.  It is placed in the register `%eip`, the instruction pointer register.  Next, the segment selector for the User Code Segment is popped and copied to register `%cs`.  Remember that this segment's privilege level is 3, the least privileged level.  This means that we must provide values for the stack of this privilege level.  This is why the processor, besides further popping the value for the EFLAGS register, does two more pops out of the stack.  These values go to the stack pointer (`%esp`) and the stack segment (`%ss`).  Now, execution continues at ``boot0``'s entry point."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 959775574751909898,
            "content_hash": 959775574751909898,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1146",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 195,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 360,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436633/?format=api",
            "priority": 100,
            "id": 1497700,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=8d51ceccd52f180a",
            "url": "https://translate-dev.freebsd.org/api/units/1497700/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.486272Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "It is important to note how the User Code Segment is defined.  This segment's _base address_ is set to `0xa000`.  This means that code memory addresses are _relative_ to address 0xa000; if code being executed is fetched from address `0x2000`, the _actual_ memory addressed is `0xa000+0x2000=0xc000`."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8602585956441729498,
            "content_hash": -8602585956441729498,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1150",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 196,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 46,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436635/?format=api",
            "priority": 100,
            "id": 1497701,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=089d79a6ac86d626",
            "url": "https://translate-dev.freebsd.org/api/units/1497701/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.490391Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "boot2 Stage"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4194858380920747937,
            "content_hash": -4194858380920747937,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1152",
            "context": "",
            "note": "type: Title ==",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 197,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1131044/?format=api",
            "priority": 100,
            "id": 1497702,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=45c8de872226085f",
            "url": "https://translate-dev.freebsd.org/api/units/1497702/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.577651Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "`boot2` defines an important structure, `struct bootinfo`.  This structure is initialized by `boot2` and passed to the loader, and then further to the kernel.  Some nodes of this structures are set by `boot2`, the rest by the loader.  This structure, among other information, contains the kernel filename, BIOS harddisk geometry, BIOS drive number for boot device, physical memory available, `envp` pointer etc.  The definition for it is:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6493341310408820575,
            "content_hash": 6493341310408820575,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1159",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 198,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436637/?format=api",
            "priority": 100,
            "id": 1497703,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=da1cfb84c449875f",
            "url": "https://translate-dev.freebsd.org/api/units/1497703/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.580814Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "/usr/include/machine/bootinfo.h:\nstruct bootinfo {\n\tu_int32_t\tbi_version;\n\tu_int32_t\tbi_kernelname;\t\t/* represents a char * */\n\tu_int32_t\tbi_nfs_diskless;\t/* struct nfs_diskless * */\n\t\t\t\t/* End of fields that are always present. */\n#define\tbi_endcommon\tbi_n_bios_used\n\tu_int32_t\tbi_n_bios_used;\n\tu_int32_t\tbi_bios_geom[N_BIOS_GEOM];\n\tu_int32_t\tbi_size;\n\tu_int8_t\tbi_memsizes_valid;\n\tu_int8_t\tbi_bios_dev;\t\t/* bootdev BIOS unit number */\n\tu_int8_t\tbi_pad[2];\n\tu_int32_t\tbi_basemem;\n\tu_int32_t\tbi_extmem;\n\tu_int32_t\tbi_symtab;\t\t/* struct symtab * */\n\tu_int32_t\tbi_esymtab;\t\t/* struct symtab * */\n\t\t\t\t/* Items below only from advanced bootloader */\n\tu_int32_t\tbi_kernend;\t\t/* end of kernel space */\n\tu_int32_t\tbi_envp;\t\t/* environment */\n\tu_int32_t\tbi_modulep;\t\t/* preloaded modules */\n};\n"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5107725083092565108,
            "content_hash": 5107725083092565108,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1184",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 199,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 97,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1131048/?format=api",
            "priority": 100,
            "id": 1497704,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=c6e248e6b415bc74",
            "url": "https://translate-dev.freebsd.org/api/units/1497704/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.586414Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/ko/?format=api",
            "source": [
                "`boot2` enters into an infinite loop waiting for user input, then calls `load()`.  If the user does not press anything, the loop breaks by a timeout, so `load()` will load the default file ([.filename]#/boot/loader#).  Functions `ino_t lookup(char *filename)` and `int xfsread(ino_t inode, void *buf, size_t nbyte)` are used to read the content of a file into memory.  [.filename]#/boot/loader# is an ELF binary, but where the ELF header is prepended with [.filename]#a.out#'s `struct exec` structure.  `load()` scans the loader's ELF header, loading the content of [.filename]#/boot/loader# into memory, and passing the execution to the loader's entry:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5080383871093235622,
            "content_hash": -5080383871093235622,
            "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1191",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 200,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 95,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1436639/?format=api",
            "priority": 100,
            "id": 1497705,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/ko/?checksum=397ed9c948dd205a",
            "url": "https://translate-dev.freebsd.org/api/units/1497705/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2023-03-07T02:51:55.678266Z"
        }
    ]
}