Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/documentation/booksarch-handbookboot_index/el/units/?format=api&page=3
https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/units/?format=api&page=4", "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/units/?format=api&page=2", "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " part4:\n\t.byte 0x80, 0x00, 0x01, 0x00\n\t.byte 0xa5, 0xfe, 0xff, 0xff\n\t.byte 0x00, 0x00, 0x00, 0x00\n\t.byte 0x50, 0xc3, 0x00, 0x00\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1717010194754291289, "content_hash": 1717010194754291289, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:579", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 101, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://translate-dev.freebsd.org/api/units/1130848/?format=api", "priority": 100, "id": 1619720, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=97d40bacce0dc659", "url": "https://translate-dev.freebsd.org/api/units/1619720/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.073868Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/boot1.S# [[boot-boot2-make-fake-partition]]" ], "previous_source": "", "target": [ "" ], "id_hash": 1297518756750365749, "content_hash": 1297518756750365749, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:581", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 102, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436487/?format=api", "priority": 100, "id": 1619721, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=9201b66f49831435", "url": "https://translate-dev.freebsd.org/api/units/1619721/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.074502Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "In particular, the LBA for this fake partition is hardcoded to zero. This is used as an argument to the BIOS for reading absolute sector one from the hard drive. Alternatively, CHS addressing could be used. In this case, the fake partition holds cylinder 0, head 0 and sector 1, which is equivalent to absolute sector one." ], "previous_source": "", "target": [ "" ], "id_hash": -4766588281638931913, "content_hash": -4766588281638931913, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:586", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 103, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 57, "source_unit": "https://translate-dev.freebsd.org/api/units/1436489/?format=api", "priority": 100, "id": 1619722, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=3dd9ad365a5f3237", "url": "https://translate-dev.freebsd.org/api/units/1619722/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.075124Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Let us now proceed to take a look at `nread`:" ], "previous_source": "", "target": [ "" ], "id_hash": 7527118739572067444, "content_hash": 7527118739572067444, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:588", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 104, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1130854/?format=api", "priority": 100, "id": 1619723, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=e875b29cfe610c74", "url": "https://translate-dev.freebsd.org/api/units/1619723/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.075794Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "nread:\n mov $MEM_BUF,%bx\t\t# Transfer buffer\n mov 0x8(%si),%ax\t\t# Get\n mov 0xa(%si),%cx\t\t# LBA\n push %cs\t\t\t# Read from\n callw xread.1\t\t# disk\n jnc return\t\t# If success, return\n" ], "previous_source": "", "target": [ "" ], "id_hash": 3166050743707279503, "content_hash": 3166050743707279503, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:598", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 105, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 29, "source_unit": "https://translate-dev.freebsd.org/api/units/1436491/?format=api", "priority": 100, "id": 1619724, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=abf012607f88a08f", "url": "https://translate-dev.freebsd.org/api/units/1619724/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.076499Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/boot1.S# [[boot-boot1-nread]]" ], "previous_source": "", "target": [ "" ], "id_hash": -4254986199812818215, "content_hash": -4254986199812818215, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:600", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 106, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436493/?format=api", "priority": 100, "id": 1619725, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=44f340985bf7bad9", "url": "https://translate-dev.freebsd.org/api/units/1619725/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.077150Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Recall that `%si` points to the fake partition. The word footnote:[In the context of 16-bit real mode, a word is 2 bytes.] at offset `0x8` is copied to register `%ax` and word at offset `0xa` to `%cx`. They are interpreted by the BIOS as the lower 4-byte value denoting the LBA to be read (the upper four bytes are assumed to be zero). Register `%bx` holds the memory address where the MBR will be loaded. The instruction pushing `%cs` onto the stack is very interesting. In this context, it accomplishes nothing. However, as we will see shortly, [.filename]#boot2#, in conjunction with the BTX server, also uses `xread.1`. This mechanism will be discussed in the next section." ], "previous_source": "", "target": [ "" ], "id_hash": -648026375823057690, "content_hash": -648026375823057690, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:609", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 107, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 116, "source_unit": "https://translate-dev.freebsd.org/api/units/1436495/?format=api", "priority": 100, "id": 1619726, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=7701bf71cffb9ce6", "url": "https://translate-dev.freebsd.org/api/units/1619726/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.077796Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "The code at `xread.1` further calls the `read` function, which actually calls the BIOS asking for the disk sector:" ], "previous_source": "", "target": [ "" ], "id_hash": -2948312912357782036, "content_hash": -2948312912357782036, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:611", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 108, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/1130862/?format=api", "priority": 100, "id": 1619727, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=57157d06ec378dec", "url": "https://translate-dev.freebsd.org/api/units/1619727/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.078499Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "xread.1:\n\tpushl $0x0\t\t# absolute\n\tpush %cx\t\t# block\n\tpush %ax\t\t# number\n\tpush %es\t\t# Address of\n\tpush %bx\t\t# transfer buffer\n\txor %ax,%ax\t\t# Number of\n\tmovb %dh,%al\t\t# blocks to\n\tpush %ax\t\t# transfer\n\tpush $0x10\t\t# Size of packet\n\tmov %sp,%bp\t\t# Packet pointer\n\tcallw read\t\t# Read from disk\n\tlea 0x10(%bp),%sp\t# Clear stack\n\tlret\t\t\t# To far caller\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1132779577228333401, "content_hash": 1132779577228333401, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:628", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 109, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 64, "source_unit": "https://translate-dev.freebsd.org/api/units/1130864/?format=api", "priority": 100, "id": 1619728, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=8fb8710615831159", "url": "https://translate-dev.freebsd.org/api/units/1619728/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.079227Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/boot1.S# [[boot-boot1-xread1]]" ], "previous_source": "", "target": [ "" ], "id_hash": 2250317972501826059, "content_hash": 2250317972501826059, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:630", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 110, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436497/?format=api", "priority": 100, "id": 1619729, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=9f3abc45f6a60a0b", "url": "https://translate-dev.freebsd.org/api/units/1619729/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.079894Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Note the long return instruction at the end of this block. This instruction pops out the `%cs` register pushed by `nread`, and returns. Finally, `nread` also returns." ], "previous_source": "", "target": [ "" ], "id_hash": 9058264340938275794, "content_hash": 9058264340938275794, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:634", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 111, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 27, "source_unit": "https://translate-dev.freebsd.org/api/units/1436499/?format=api", "priority": 100, "id": 1619730, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=fdb56b6ce336bbd2", "url": "https://translate-dev.freebsd.org/api/units/1619730/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.080513Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "With the MBR loaded to memory, the actual loop for searching the FreeBSD slice begins:" ], "previous_source": "", "target": [ "" ], "id_hash": -4025098682110746457, "content_hash": -4025098682110746457, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:636", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 112, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1130870/?format=api", "priority": 100, "id": 1619731, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=4823fa1312e560a7", "url": "https://translate-dev.freebsd.org/api/units/1619731/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.081137Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "\tmov $0x1,%cx\t\t # Two passes\nmain.1:\n\tmov $MEM_BUF+PRT_OFF,%si # Partition table\n\tmovb $0x1,%dh\t\t # Partition\nmain.2:\n\tcmpb $PRT_BSD,0x4(%si)\t # Our partition type?\n\tjne main.3\t\t # No\n\tjcxz main.5\t\t # If second pass\n\ttestb $0x80,(%si)\t # Active?\n\tjnz main.5\t\t # Yes\nmain.3:\n\tadd $0x10,%si\t\t # Next entry\n\tincb %dh\t\t # Partition\n\tcmpb $0x1+PRT_NUM,%dh\t\t # In table?\n\tjb main.2\t\t # Yes\n\tdec %cx\t\t\t # Do two\n\tjcxz main.1\t\t # passes\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1607329214550244567, "content_hash": 1607329214550244567, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:656", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 113, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 68, "source_unit": "https://translate-dev.freebsd.org/api/units/1436501/?format=api", "priority": 100, "id": 1619732, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=964e6167965ffcd7", "url": "https://translate-dev.freebsd.org/api/units/1619732/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.081901Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/boot1.S# [[boot-boot1-find-part]]" ], "previous_source": "", "target": [ "" ], "id_hash": -7530428471526949976, "content_hash": -7530428471526949976, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:658", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 114, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436503/?format=api", "priority": 100, "id": 1619733, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=177e8b33fc25fba8", "url": "https://translate-dev.freebsd.org/api/units/1619733/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.082565Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "If a FreeBSD slice is identified, execution continues at `main.5`. Note that when a FreeBSD slice is found `%si` points to the appropriate entry in the partition table, and `%dh` holds the partition number. We assume that a FreeBSD slice is found, so we continue execution at `main.5`:" ], "previous_source": "", "target": [ "" ], "id_hash": -2037657837001374581, "content_hash": -2037657837001374581, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:662", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 115, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/1436505/?format=api", "priority": 100, "id": 1619734, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=63b8c8fe43be048b", "url": "https://translate-dev.freebsd.org/api/units/1619734/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.083185Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "main.5:\n\tmov %dx,MEM_ARG\t\t\t # Save args\n\tmovb $NSECT,%dh\t\t\t # Sector count\n\tcallw nread\t\t\t # Read disk\n\tmov $MEM_BTX,%bx\t\t\t # BTX\n\tmov 0xa(%bx),%si\t\t # Get BTX length and set\n\tadd %bx,%si\t\t\t # %si to start of boot2.bin\n\tmov $MEM_USR+SIZ_PAG*2,%di\t\t\t # Client page 2\n\tmov $MEM_BTX+(NSECT-1)*SIZ_SEC,%cx\t\t\t # Byte\n\tsub %si,%cx\t\t\t # count\n\trep\t\t\t\t # Relocate\n\tmovsb\t\t\t\t # client\n" ], "previous_source": "", "target": [ "" ], "id_hash": -4517682918668327486, "content_hash": -4517682918668327486, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:677", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 116, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 56, "source_unit": "https://translate-dev.freebsd.org/api/units/1436507/?format=api", "priority": 100, "id": 1619735, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=414df75238eca5c2", "url": "https://translate-dev.freebsd.org/api/units/1619735/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.083964Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/boot1.S# [[boot-boot1-main5]]" ], "previous_source": "", "target": [ "" ], "id_hash": 4243642389778874410, "content_hash": 4243642389778874410, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:679", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 117, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436509/?format=api", "priority": 100, "id": 1619736, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=bae472450c8f402a", "url": "https://translate-dev.freebsd.org/api/units/1619736/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.084633Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Recall that at this point, register `%si` points to the FreeBSD slice entry in the MBR partition table, so a call to `nread` will effectively read sectors at the beginning of this partition. The argument passed on register `%dh` tells `nread` to read 16 disk sectors. Recall that the first 512 bytes, or the first sector of the FreeBSD slice, coincides with the [.filename]#boot1# program. Also recall that the file written to the beginning of the FreeBSD slice is not [.filename]#/boot/boot1#, but [.filename]#/boot/boot#. Let us look at the size of these files in the filesystem:" ], "previous_source": "", "target": [ "" ], "id_hash": -1271988009702216039, "content_hash": -1271988009702216039, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:685", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 118, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 95, "source_unit": "https://translate-dev.freebsd.org/api/units/1436511/?format=api", "priority": 100, "id": 1619737, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=6e58fda4fb24ae99", "url": "https://translate-dev.freebsd.org/api/units/1619737/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.085275Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "-r--r--r-- 1 root wheel 512B Jan 8 00:15 /boot/boot0\n-r--r--r-- 1 root wheel 512B Jan 8 00:15 /boot/boot1\n-r--r--r-- 1 root wheel 7.5K Jan 8 00:15 /boot/boot2\n-r--r--r-- 1 root wheel 8.0K Jan 8 00:15 /boot/boot\n" ], "previous_source": "", "target": [ "" ], "id_hash": -7059506890091554890, "content_hash": -7059506890091554890, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:692", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 119, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/1130884/?format=api", "priority": 100, "id": 1619738, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=1e0797e2e6ab97b6", "url": "https://translate-dev.freebsd.org/api/units/1619738/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.086036Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Both [.filename]#boot0# and [.filename]#boot1# are 512 bytes each, so they fit _exactly_ in one disk sector. [.filename]#boot2# is much bigger, holding both the BTX server and the [.filename]#boot2# client. Finally, a file called simply [.filename]#boot# is 512 bytes larger than [.filename]#boot2#. This file is a concatenation of [.filename]#boot1# and [.filename]#boot2#. As already noted, [.filename]#boot0# is the file written to the absolute first disk sector (the MBR), and [.filename]#boot# is the file written to the first sector of the FreeBSD slice; [.filename]#boot1# and [.filename]#boot2# are _not_ written to disk. The command used to concatenate [.filename]#boot1# and [.filename]#boot2# into a single [.filename]#boot# is merely `cat boot1 boot2 > boot`." ], "previous_source": "", "target": [ "" ], "id_hash": -7526841166043570449, "content_hash": -7526841166043570449, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:700", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 120, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 107, "source_unit": "https://translate-dev.freebsd.org/api/units/1436513/?format=api", "priority": 100, "id": 1619739, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=178b49d6a12f9eef", "url": "https://translate-dev.freebsd.org/api/units/1619739/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.086699Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "So [.filename]#boot1# occupies exactly the first 512 bytes of [.filename]#boot# and, because [.filename]#boot# is written to the first sector of the FreeBSD slice, [.filename]#boot1# fits exactly in this first sector. When `nread` reads the first 16 sectors of the FreeBSD slice, it effectively reads the entire [.filename]#boot# file footnote:[512*16=8192 bytes, exactly the size of boot]. We will see more details about how [.filename]#boot# is formed from [.filename]#boot1# and [.filename]#boot2# in the next section." ], "previous_source": "", "target": [ "" ], "id_hash": -8185380937923487860, "content_hash": -8185380937923487860, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:704", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 121, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 73, "source_unit": "https://translate-dev.freebsd.org/api/units/1436515/?format=api", "priority": 100, "id": 1619740, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=0e67af67abd1178c", "url": "https://translate-dev.freebsd.org/api/units/1619740/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.087414Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Recall that `nread` uses memory address `0x8c00` as the transfer buffer to hold the sectors read. This address is conveniently chosen. Indeed, because [.filename]#boot1# belongs to the first 512 bytes, it ends up in the address range `0x8c00`-`0x8dff`. The 512 bytes that follows (range `0x8e00`-`0x8fff`) is used to store the _bsdlabel_ footnote:[Historically known as disklabel. If you ever wondered where FreeBSD stored this information, it is in this region - see man:bsdlabel[8]]." ], "previous_source": "", "target": [ "" ], "id_hash": 9019789556625545225, "content_hash": 9019789556625545225, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:710", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 122, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 72, "source_unit": "https://translate-dev.freebsd.org/api/units/1436517/?format=api", "priority": 100, "id": 1619741, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=fd2cbad017719809", "url": "https://translate-dev.freebsd.org/api/units/1619741/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.088122Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Starting at address `0x9000` is the beginning of the BTX server, and immediately following is the [.filename]#boot2# client. The BTX server acts as a kernel, and executes in protected mode in the most privileged level. In contrast, the BTX clients ([.filename]#boot2#, for example), execute in user mode. We will see how this is accomplished in the next section. The code after the call to `nread` locates the beginning of [.filename]#boot2# in the memory buffer, and copies it to memory address `0xc000`. This is because the BTX server arranges [.filename]#boot2# to execute in a segment starting at `0xa000`. We explore this in detail in the following section." ], "previous_source": "", "target": [ "" ], "id_hash": -7199653477764174426, "content_hash": -7199653477764174426, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:718", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 123, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 106, "source_unit": "https://translate-dev.freebsd.org/api/units/1436519/?format=api", "priority": 100, "id": 1619742, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=1c15b14eaff5eda6", "url": "https://translate-dev.freebsd.org/api/units/1619742/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.088827Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "The last code block of [.filename]#boot1# enables access to memory above 1MB footnote:[This is necessary for legacy reasons. Interested readers should see .] and concludes with a jump to the starting point of the BTX server:" ], "previous_source": "", "target": [ "" ], "id_hash": -8599564056970783237, "content_hash": -8599564056970783237, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:721", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 124, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/1436521/?format=api", "priority": 100, "id": 1619743, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=08a8360d790a15fb", "url": "https://translate-dev.freebsd.org/api/units/1619743/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.089539Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "seta20:\n\tcli\t\t\t# Disable interrupts\nseta20.1:\n\tdec %cx\t\t\t# Timeout?\n\tjz seta20.3\t\t# Yes\n" ], "previous_source": "", "target": [ "" ], "id_hash": 3202310976436006258, "content_hash": 3202310976436006258, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:729", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 125, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/1130896/?format=api", "priority": 100, "id": 1619744, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=ac70e4ddd2cd6d72", "url": "https://translate-dev.freebsd.org/api/units/1619744/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.090214Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "\tinb $0x64,%al\t\t# Get status\n\ttestb $0x2,%al\t\t# Busy?\n\tjnz seta20.1\t\t# Yes\n\tmovb $0xd1,%al\t\t# Command: Write\n\toutb %al,$0x64\t\t# output port\nseta20.2:\n\tinb $0x64,%al\t\t# Get status\n\ttestb $0x2,%al\t\t# Busy?\n\tjnz seta20.2\t\t# Yes\n\tmovb $0xdf,%al\t\t# Enable\n\toutb %al,$0x60\t\t# A20\nseta20.3:\n\tsti\t\t\t# Enable interrupts\n\tjmp 0x9010\t\t# Start BTX\n" ], "previous_source": "", "target": [ "" ], "id_hash": -6673018759217782225, "content_hash": -6673018759217782225, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:744", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 126, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 55, "source_unit": "https://translate-dev.freebsd.org/api/units/1130898/?format=api", "priority": 100, "id": 1619745, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=2364accb2d4e622f", "url": "https://translate-dev.freebsd.org/api/units/1619745/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.090926Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/boot1.S# [[boot-boot1-seta20]]" ], "previous_source": "", "target": [ "" ], "id_hash": 3441020157834176854, "content_hash": 3441020157834176854, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:746", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 127, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436523/?format=api", "priority": 100, "id": 1619746, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=afc0f59a2caa2956", "url": "https://translate-dev.freebsd.org/api/units/1619746/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.091600Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Note that right before the jump, interrupts are enabled." ], "previous_source": "", "target": [ "" ], "id_hash": 8456204836039797873, "content_hash": 8456204836039797873, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:748", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 128, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/1130902/?format=api", "priority": 100, "id": 1619747, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=f55a797ed817ac71", "url": "https://translate-dev.freebsd.org/api/units/1619747/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.092212Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "The BTX Server" ], "previous_source": "", "target": [ "" ], "id_hash": 1528600652462258696, "content_hash": 1528600652462258696, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:750", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 129, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1130904/?format=api", "priority": 100, "id": 1619748, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=9536ae31cd717a08", "url": "https://translate-dev.freebsd.org/api/units/1619748/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.092834Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Next in our boot sequence is the BTX Server. Let us quickly remember how we got here:" ], "previous_source": "", "target": [ "" ], "id_hash": 2878380189992046253, "content_hash": 2878380189992046253, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:754", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 130, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1436525/?format=api", "priority": 100, "id": 1619749, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=a7f20f8850ff4ead", "url": "https://translate-dev.freebsd.org/api/units/1619749/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.093458Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "The BIOS loads the absolute sector one (the MBR, or [.filename]#boot0#), to address `0x7c00` and jumps there." ], "previous_source": "", "target": [ "" ], "id_hash": -3898519468744210008, "content_hash": -3898519468744210008, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:756", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 131, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1130908/?format=api", "priority": 100, "id": 1619750, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=49e5ad32cb8e89a8", "url": "https://translate-dev.freebsd.org/api/units/1619750/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.094073Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#boot0# relocates itself to `0x600`, the address it was linked to execute, and jumps over there. It then reads the first sector of the FreeBSD slice (which consists of [.filename]#boot1#) into address `0x7c00` and jumps over there." ], "previous_source": "", "target": [ "" ], "id_hash": 2041011441855066527, "content_hash": 2041011441855066527, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:758", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 132, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 37, "source_unit": "https://translate-dev.freebsd.org/api/units/1436527/?format=api", "priority": 100, "id": 1619751, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=9c532117b647719f", "url": "https://translate-dev.freebsd.org/api/units/1619751/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.094690Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#boot1# loads the first 16 sectors of the FreeBSD slice into address `0x8c00`. This 16 sectors, or 8192 bytes, is the whole file [.filename]#boot#. The file is a concatenation of [.filename]#boot1# and [.filename]#boot2#. [.filename]#boot2#, in turn, contains the BTX server and the [.filename]#boot2# client. Finally, a jump is made to address `0x9010`, the entry point of the BTX server." ], "previous_source": "", "target": [ "" ], "id_hash": -5495341132959939807, "content_hash": -5495341132959939807, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:763", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 133, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 59, "source_unit": "https://translate-dev.freebsd.org/api/units/1436529/?format=api", "priority": 100, "id": 1619752, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=33bca05aea548321", "url": "https://translate-dev.freebsd.org/api/units/1619752/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.095343Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Before studying the BTX Server in detail, let us further review how the single, all-in-one [.filename]#boot# file is created. The way [.filename]#boot# is built is defined in its [.filename]#Makefile# ([.filename]#stand/i386/boot2/Makefile#). Let us look at the rule that creates the [.filename]#boot# file:" ], "previous_source": "", "target": [ "" ], "id_hash": -3831755033042836894, "content_hash": -3831755033042836894, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:767", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 134, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 41, "source_unit": "https://translate-dev.freebsd.org/api/units/1436531/?format=api", "priority": 100, "id": 1619753, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=4ad2df19552aa262", "url": "https://translate-dev.freebsd.org/api/units/1619753/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.095999Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot: boot1 boot2\n\tcat boot1 boot2 > boot\n" ], "previous_source": "", "target": [ "" ], "id_hash": 6662575332834900755, "content_hash": 6662575332834900755, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:772", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 135, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1130916/?format=api", "priority": 100, "id": 1619754, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=dc7638f722e77b13", "url": "https://translate-dev.freebsd.org/api/units/1619754/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.096649Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/Makefile# [[boot-boot1-make-boot]]" ], "previous_source": "", "target": [ "" ], "id_hash": 6590127160931882684, "content_hash": 6590127160931882684, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:774", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 136, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436533/?format=api", "priority": 100, "id": 1619755, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=db74d5bca3ff96bc", "url": "https://translate-dev.freebsd.org/api/units/1619755/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.097289Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "This tells us that [.filename]#boot1# and [.filename]#boot2# are needed, and the rule simply concatenates them to produce a single file called [.filename]#boot#. The rules for creating [.filename]#boot1# are also quite simple:" ], "previous_source": "", "target": [ "" ], "id_hash": 8283236322369440866, "content_hash": 8283236322369440866, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:777", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 137, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/1436535/?format=api", "priority": 100, "id": 1619756, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=f2f3f78c79718c62", "url": "https://translate-dev.freebsd.org/api/units/1619756/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.097890Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot1: boot1.out\n\t${OBJCOPY} -S -O binary boot1.out ${.TARGET}\n" ], "previous_source": "", "target": [ "" ], "id_hash": 8684464014956762904, "content_hash": 8684464014956762904, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:782", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 138, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1436537/?format=api", "priority": 100, "id": 1619757, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=f8856a0264291718", "url": "https://translate-dev.freebsd.org/api/units/1619757/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.098529Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot1.out: boot1.o\n\t${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} boot1.o\n" ], "previous_source": "", "target": [ "" ], "id_hash": -6298642693100211816, "content_hash": -6298642693100211816, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:785", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 139, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1436539/?format=api", "priority": 100, "id": 1619758, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=2896b9d79ea6f198", "url": "https://translate-dev.freebsd.org/api/units/1619758/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.099218Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/Makefile# [[boot-boot1-make-boot1]]" ], "previous_source": "", "target": [ "" ], "id_hash": -748263729694515537, "content_hash": -748263729694515537, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:787", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 140, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436541/?format=api", "priority": 100, "id": 1619759, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=759da21a313fdeaf", "url": "https://translate-dev.freebsd.org/api/units/1619759/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.099838Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "To apply the rule for creating [.filename]#boot1#, [.filename]#boot1.out# must be resolved. This, in turn, depends on the existence of [.filename]#boot1.o#. This last file is simply the result of assembling our familiar [.filename]#boot1.S#, without linking. Now, the rule for creating [.filename]#boot1.out# is applied. This tells us that [.filename]#boot1.o# should be linked with `start` as its entry point, and starting at address `0x7c00`. Finally, [.filename]#boot1# is created from [.filename]#boot1.out# applying the appropriate rule. This rule is the [.filename]#objcopy# command applied to [.filename]#boot1.out#. Note the flags passed to [.filename]#objcopy#: `-S` tells it to strip all relocation and symbolic information; `-O binary` indicates the output format, that is, a simple, unformatted binary file." ], "previous_source": "", "target": [ "" ], "id_hash": -2868983152350088472, "content_hash": -2868983152350088472, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:796", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 141, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 109, "source_unit": "https://translate-dev.freebsd.org/api/units/1436543/?format=api", "priority": 100, "id": 1619760, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=582f53060197b2e8", "url": "https://translate-dev.freebsd.org/api/units/1619760/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.100456Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "Having [.filename]#boot1#, let us take a look at how [.filename]#boot2# is constructed:" ], "previous_source": "", "target": [ "" ], "id_hash": -5840807931751039804, "content_hash": -5840807931751039804, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:798", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 142, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/1130930/?format=api", "priority": 100, "id": 1619761, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=2ef14821cab1fcc4", "url": "https://translate-dev.freebsd.org/api/units/1619761/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.101259Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot2: boot2.ld\n\t@set -- `ls -l ${.ALLSRC}`; x=$$((${BOOT2SIZE}-$$5)); \\\n\t echo \"$$x bytes available\"; test $$x -ge 0\n\t${DD} if=${.ALLSRC} of=${.TARGET} bs=${BOOT2SIZE} conv=sync\n" ], "previous_source": "", "target": [ "" ], "id_hash": -6377382996493302407, "content_hash": -6377382996493302407, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:805", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 143, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 22, "source_unit": "https://translate-dev.freebsd.org/api/units/1436545/?format=api", "priority": 100, "id": 1619762, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=277efbf419668579", "url": "https://translate-dev.freebsd.org/api/units/1619762/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.101912Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot2.ld: boot2.ldr boot2.bin ${BTXKERN}\n\tbtxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l boot2.ldr \\\n\t -o ${.TARGET} -P 1 boot2.bin\n" ], "previous_source": "", "target": [ "" ], "id_hash": -2281190368371778643, "content_hash": -2281190368371778643, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:809", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 144, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1436547/?format=api", "priority": 100, "id": 1619763, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=605795723c285bad", "url": "https://translate-dev.freebsd.org/api/units/1619763/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.102553Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot2.ldr:\n\t${DD} if=/dev/zero of=${.TARGET} bs=512 count=1\n" ], "previous_source": "", "target": [ "" ], "id_hash": 7296190777348969641, "content_hash": 7296190777348969641, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:812", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 145, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1436549/?format=api", "priority": 100, "id": 1619764, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=e54146dae95dd4a9", "url": "https://translate-dev.freebsd.org/api/units/1619764/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.103182Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot2.bin: boot2.out\n\t${OBJCOPY} -S -O binary boot2.out ${.TARGET}\n" ], "previous_source": "", "target": [ "" ], "id_hash": -2069264386640733563, "content_hash": -2069264386640733563, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:815", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 146, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1436551/?format=api", "priority": 100, "id": 1619765, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=63487f00f7e99a85", "url": "https://translate-dev.freebsd.org/api/units/1619765/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.103818Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot2.out: ${BTXCRT} boot2.o sio.o ashldi3.o\n\t${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC}\n" ], "previous_source": "", "target": [ "" ], "id_hash": 4161564845431391143, "content_hash": 4161564845431391143, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:818", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 147, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/1436553/?format=api", "priority": 100, "id": 1619766, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=b9c0d92d91b103a7", "url": "https://translate-dev.freebsd.org/api/units/1619766/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.104436Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ " boot2.h: boot1.out\n\t${NM} -t d ${.ALLSRC} | awk '/([0-9])+ T xread/ \\\n\t { x = $$1 - ORG1; \\\n\t printf(\"#define XREADORG %#x\\n\", REL1 + x) }' \\\n\t ORG1=`printf \"%d\" ${ORG1}` \\\n\t REL1=`printf \"%d\" ${REL1}` > ${.TARGET}\n" ], "previous_source": "", "target": [ "" ], "id_hash": -3055019303337076933, "content_hash": -3055019303337076933, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:825", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 148, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/1130946/?format=api", "priority": 100, "id": 1619767, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=559a64213aa1d73b", "url": "https://translate-dev.freebsd.org/api/units/1619767/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.105102Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "[.filename]#stand/i386/boot2/Makefile# [[boot-boot1-make-boot2]]" ], "previous_source": "", "target": [ "" ], "id_hash": 1377249562745952991, "content_hash": 1377249562745952991, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:827", "context": "", "note": "type: Block title", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 149, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1436555/?format=api", "priority": 100, "id": 1619768, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=931cf92e2a88dadf", "url": "https://translate-dev.freebsd.org/api/units/1619768/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.105743Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/el/?format=api", "source": [ "The mechanism for building [.filename]#boot2# is far more elaborate. Let us point out the most relevant facts. The dependency list is as follows:" ], "previous_source": "", "target": [ "" ], "id_hash": 2907433623225116402, "content_hash": 2907433623225116402, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:831", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 150, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1436557/?format=api", "priority": 100, "id": 1619769, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/el/?checksum=a8594779e05c26f2", "url": "https://translate-dev.freebsd.org/api/units/1619769/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2024-02-17T12:25:46.106348Z" } ] }{ "count": 293, "next": "