Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/documentation/booksarch-handbookboot_index/pl/units/?format=api&page=6
https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/units/?format=api&page=5", "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The next step is to initialize the Interrupt Descriptor Table (IDT). This table is referenced by the processor when a software or hardware interrupt occurs. For example, to make a system call, user application issues the `INT 0x80` instruction. This is a software interrupt, so the processor's hardware looks up a record with index 0x80 in the IDT. This record points to the routine that handles this interrupt, in this particular case, this will be the kernel's syscall gate. The IDT may have a maximum of 256 (0x100) records. The kernel allocates NIDT records for the IDT, where NIDT is the maximum (256):" ], "previous_source": "", "target": [ "" ], "id_hash": 7186970414472126712, "content_hash": 7186970414472126712, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1444", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 251, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 103, "source_unit": "https://translate-dev.freebsd.org/api/units/1436699/?format=api", "priority": 100, "id": 1524317, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=e3bd3f8385da60f8", "url": "https://translate-dev.freebsd.org/api/units/1524317/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.468401Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/i386/i386/machdep.c:\nstatic struct gate_descriptor idt0[NIDT];\nstruct gate_descriptor *idt = &idt0[0];\t/* interrupt descriptor table */\n" ], "previous_source": "", "target": [ "" ], "id_hash": 8306039280822336251, "content_hash": 8306039280822336251, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1450", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 252, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1131150/?format=api", "priority": 100, "id": 1524318, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=f344fab7f7db3afb", "url": "https://translate-dev.freebsd.org/api/units/1524318/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.472232Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "For each interrupt, an appropriate handler is set. The syscall gate for `INT 0x80` is set as well:" ], "previous_source": "", "target": [ "" ], "id_hash": -277368198141816850, "content_hash": -277368198141816850, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1454", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 253, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/1436701/?format=api", "priority": 100, "id": 1524319, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=7c269717e5c44fee", "url": "https://translate-dev.freebsd.org/api/units/1524319/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.475489Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/i386/i386/machdep.c:\n\tsetidt(IDT_SYSCALL, &IDTVEC(int0x80_syscall),\n\t\t\tSDT_SYS386IGT, SEL_UPL, GSEL(GCODE_SEL, SEL_KPL));\n" ], "previous_source": "", "target": [ "" ], "id_hash": 6744683379925620864, "content_hash": 6744683379925620864, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1460", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 254, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1436703/?format=api", "priority": 100, "id": 1524320, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=dd99edcc96f29880", "url": "https://translate-dev.freebsd.org/api/units/1524320/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.478953Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "So when a userland application issues the `INT 0x80` instruction, control will transfer to the function `_Xint0x80_syscall`, which is in the kernel code segment and will be executed with supervisor privileges." ], "previous_source": "", "target": [ "" ], "id_hash": 2990709025732895162, "content_hash": 2990709025732895162, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1463", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 255, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/1131156/?format=api", "priority": 100, "id": 1524321, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=a9812203715d21ba", "url": "https://translate-dev.freebsd.org/api/units/1524321/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.482058Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "Console and DDB are then initialized:" ], "previous_source": "", "target": [ "" ], "id_hash": -6863308999037175752, "content_hash": -6863308999037175752, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1465", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 256, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1131158/?format=api", "priority": 100, "id": 1524322, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=20c0a0d428a5b838", "url": "https://translate-dev.freebsd.org/api/units/1524322/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.485254Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/i386/i386/machdep.c:\n\tcninit();\n/* skipped */\n kdb_init();\n#ifdef KDB\n\tif (boothowto & RB_KDB)\n\t\tkdb_enter(KDB_WHY_BOOTFLAGS, \"Boot flags requested debugger\");\n#endif\n" ], "previous_source": "", "target": [ "" ], "id_hash": 2012254997938625272, "content_hash": 2012254997938625272, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1476", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 257, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/1436705/?format=api", "priority": 100, "id": 1524323, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=9becf7425da2daf8", "url": "https://translate-dev.freebsd.org/api/units/1524323/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.488242Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The Task State Segment is another x86 protected mode structure, the TSS is used by the hardware to store task information when a task switch occurs." ], "previous_source": "", "target": [ "" ], "id_hash": -8437846211166343488, "content_hash": -8437846211166343488, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1479", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 258, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/1131162/?format=api", "priority": 100, "id": 1524324, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=0ae6bf939a0deec0", "url": "https://translate-dev.freebsd.org/api/units/1524324/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.491107Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The Local Descriptors Table is used to reference userland code and data. Several selectors are defined to point to the LDT, they are the system call gates and the user code and data selectors:" ], "previous_source": "", "target": [ "" ], "id_hash": 2783708399809134021, "content_hash": 2783708399809134021, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1482", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 259, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 34, "source_unit": "https://translate-dev.freebsd.org/api/units/1436707/?format=api", "priority": 100, "id": 1524325, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=a6a1b80a78e4fdc5", "url": "https://translate-dev.freebsd.org/api/units/1524325/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.493474Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/x86/include/segments.h:\n#define\tLSYS5CALLS_SEL\t0\t/* forced by intel BCS */\n#define\tLSYS5SIGR_SEL\t1\n#define\tLUCODE_SEL\t3\n#define\tLUDATA_SEL\t5\n#define\tNLDT\t\t(LUDATA_SEL + 1)\n" ], "previous_source": "", "target": [ "" ], "id_hash": -3364917455224861351, "content_hash": -3364917455224861351, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1491", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 260, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://translate-dev.freebsd.org/api/units/1436709/?format=api", "priority": 100, "id": 1524326, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=514d69670ecf8d59", "url": "https://translate-dev.freebsd.org/api/units/1524326/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.496107Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "Next, proc0's Process Control Block (`struct pcb`) structure is initialized. proc0 is a `struct proc` structure that describes a kernel process. It is always present while the kernel is running, therefore it is linked with thread0:" ], "previous_source": "", "target": [ "" ], "id_hash": -2411460706721938861, "content_hash": -2411460706721938861, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1496", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 261, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/1436711/?format=api", "priority": 100, "id": 1524327, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=5e88c5438206c253", "url": "https://translate-dev.freebsd.org/api/units/1524327/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.498902Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/i386/i386/machdep.c:\nregister_t\ninit386(int first)\n{\n /* ... skipped ... */\n" ], "previous_source": "", "target": [ "" ], "id_hash": 8385406470627532957, "content_hash": 8385406470627532957, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1504", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 262, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1436713/?format=api", "priority": 100, "id": 1524328, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=f45ef2c1db04209d", "url": "https://translate-dev.freebsd.org/api/units/1524328/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.501885Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ " proc_linkup0(&proc0, &thread0);\n /* ... skipped ... */\n}\n" ], "previous_source": "", "target": [ "" ], "id_hash": 5116111209993946715, "content_hash": 5116111209993946715, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1508", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 263, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1436715/?format=api", "priority": 100, "id": 1524329, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=c700140a0715465b", "url": "https://translate-dev.freebsd.org/api/units/1524329/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.504287Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The structure `struct pcb` is a part of a proc structure. It is defined in [.filename]#/usr/include/machine/pcb.h# and has a process's information specific to the i386 architecture, such as registers values." ], "previous_source": "", "target": [ "" ], "id_hash": 8257741692319495952, "content_hash": 8257741692319495952, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1512", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 264, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://translate-dev.freebsd.org/api/units/1436717/?format=api", "priority": 100, "id": 1524330, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=f299645159a2f710", "url": "https://translate-dev.freebsd.org/api/units/1524330/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.506487Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "`mi_startup()`" ], "previous_source": "", "target": [ "" ], "id_hash": 5207437461491031566, "content_hash": 5207437461491031566, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1513", "context": "", "note": "type: Title ===", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 265, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1131174/?format=api", "priority": 100, "id": 1524331, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=c84488c7f23c1e0e", "url": "https://translate-dev.freebsd.org/api/units/1524331/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.508836Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "This function performs a bubble sort of all the system initialization objects and then calls the entry of each object one by one:" ], "previous_source": "", "target": [ "" ], "id_hash": -8539288599434478753, "content_hash": -8539288599434478753, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1516", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 266, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1131176/?format=api", "priority": 100, "id": 1524332, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=097e5a430c2a3b5f", "url": "https://translate-dev.freebsd.org/api/units/1524332/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.511374Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/kern/init_main.c:\n\tfor (sipp = sysinit; sipp < sysinit_end; sipp++) {\n" ], "previous_source": "", "target": [ "" ], "id_hash": -843137760784888106, "content_hash": -843137760784888106, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1521", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 267, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 10, "source_unit": "https://translate-dev.freebsd.org/api/units/1436719/?format=api", "priority": 100, "id": 1524333, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=744c92ac77b2ced6", "url": "https://translate-dev.freebsd.org/api/units/1524333/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.514227Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "\t\t/* ... skipped ... */\n" ], "previous_source": "", "target": [ "" ], "id_hash": 7114685996316246216, "content_hash": 7114685996316246216, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1523", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 268, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1131180/?format=api", "priority": 100, "id": 1524334, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=e2bc7137eae040c8", "url": "https://translate-dev.freebsd.org/api/units/1524334/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.516982Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "\t\t/* Call function */\n\t\t(*((*sipp)->func))((*sipp)->udata);\n\t\t/* ... skipped ... */\n\t}\n" ], "previous_source": "", "target": [ "" ], "id_hash": -8991004866845434978, "content_hash": -8991004866845434978, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1528", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 269, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1131182/?format=api", "priority": 100, "id": 1524335, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=033988b5c1de9b9e", "url": "https://translate-dev.freebsd.org/api/units/1524335/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.519775Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "Although the sysinit framework is described in the link:/books/developers-handbook[Developers' Handbook], I will discuss the internals of it." ], "previous_source": "", "target": [ "" ], "id_hash": 1444415877660473320, "content_hash": 1444415877660473320, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1531", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 270, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 17, "source_unit": "https://translate-dev.freebsd.org/api/units/1131184/?format=api", "priority": 100, "id": 1524336, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=940b98967fe2f7e8", "url": "https://translate-dev.freebsd.org/api/units/1524336/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.522422Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "Every system initialization object (sysinit object) is created by calling a SYSINIT() macro. Let us take as example an `announce` sysinit object. This object prints the copyright message:" ], "previous_source": "", "target": [ "" ], "id_hash": -10745820838869193, "content_hash": -10745820838869193, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1535", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 271, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 28, "source_unit": "https://translate-dev.freebsd.org/api/units/1436721/?format=api", "priority": 100, "id": 1524337, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=7fd9d2bb9e144737", "url": "https://translate-dev.freebsd.org/api/units/1524337/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.524886Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/kern/init_main.c:\nstatic void\nprint_caddr_t(void *data __unused)\n{\n\tprintf(\"%s\", (char *)data);\n}\n/* ... skipped ... */\nSYSINIT(announce, SI_SUB_COPYRIGHT, SI_ORDER_FIRST, print_caddr_t, copyright);\n" ], "previous_source": "", "target": [ "" ], "id_hash": 8837472577090343749, "content_hash": 8837472577090343749, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1546", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 272, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 21, "source_unit": "https://translate-dev.freebsd.org/api/units/1436723/?format=api", "priority": 100, "id": 1524338, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=faa5027c65b9d345", "url": "https://translate-dev.freebsd.org/api/units/1524338/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.548305Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The subsystem ID for this object is SI_SUB_COPYRIGHT (0x0800001). So, the copyright message will be printed out first, just after the console initialization." ], "previous_source": "", "target": [ "" ], "id_hash": 2283709589131675783, "content_hash": 2283709589131675783, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1550", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 273, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1436725/?format=api", "priority": 100, "id": 1524339, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=9fb15dc58e58c887", "url": "https://translate-dev.freebsd.org/api/units/1524339/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.551885Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "Let us take a look at what exactly the macro `SYSINIT()` does. It expands to a `C_SYSINIT()` macro. The `C_SYSINIT()` macro then expands to a static `struct sysinit` structure declaration with another `DATA_SET` macro call:" ], "previous_source": "", "target": [ "" ], "id_hash": 4615136525243812842, "content_hash": 4615136525243812842, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1554", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 274, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 35, "source_unit": "https://translate-dev.freebsd.org/api/units/1436727/?format=api", "priority": 100, "id": 1524340, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=c00c4237b9168bea", "url": "https://translate-dev.freebsd.org/api/units/1524340/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.555487Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "/usr/include/sys/kernel.h:\n #define C_SYSINIT(uniquifier, subsystem, order, func, ident) \\\n static struct sysinit uniquifier ## _sys_init = { \\ subsystem, \\\n order, \\ func, \\ (ident) \\ }; \\ DATA_WSET(sysinit_set,uniquifier ##\n _sys_init);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -4337549903764371273, "content_hash": -4337549903764371273, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1562", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 275, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://translate-dev.freebsd.org/api/units/1436729/?format=api", "priority": 100, "id": 1524341, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=43cded58069848b7", "url": "https://translate-dev.freebsd.org/api/units/1524341/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.559245Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "#define\tSYSINIT(uniquifier, subsystem, order, func, ident)\t\\\n\tC_SYSINIT(uniquifier, subsystem, order,\t\t\t\\\n\t(sysinit_cfunc_t)(sysinit_nfunc_t)func, (void *)(ident))\n" ], "previous_source": "", "target": [ "" ], "id_hash": -2672645011271876147, "content_hash": -2672645011271876147, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1566", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 276, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 14, "source_unit": "https://translate-dev.freebsd.org/api/units/1436731/?format=api", "priority": 100, "id": 1524342, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=5ae8db85c46b81cd", "url": "https://translate-dev.freebsd.org/api/units/1524342/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.562746Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The `DATA_SET()` macro expands to a `_MAKE_SET()`, and that macro is the point where all the sysinit magic is hidden:" ], "previous_source": "", "target": [ "" ], "id_hash": -2385931087557404755, "content_hash": -2385931087557404755, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1569", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 277, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1436733/?format=api", "priority": 100, "id": 1524343, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=5ee378512b9457ad", "url": "https://translate-dev.freebsd.org/api/units/1524343/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.565890Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "/usr/include/linker_set.h:\n#define TEXT_SET(set, sym) _MAKE_SET(set, sym)\n#define DATA_SET(set, sym) _MAKE_SET(set, sym)\n" ], "previous_source": "", "target": [ "" ], "id_hash": 8956736948686896211, "content_hash": 8956736948686896211, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1575", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 278, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1436735/?format=api", "priority": 100, "id": 1524344, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=fc4cb8cccd193c53", "url": "https://translate-dev.freebsd.org/api/units/1524344/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.569362Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "After executing these macros, various sections were made in the kernel, including`set.sysinit_set`. Running objdump on a kernel binary, you may notice the presence of such small sections:" ], "previous_source": "", "target": [ "" ], "id_hash": -6992113184431442186, "content_hash": -6992113184431442186, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1579", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 279, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 27, "source_unit": "https://translate-dev.freebsd.org/api/units/1436737/?format=api", "priority": 100, "id": 1524345, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=1ef7061ac4a376f6", "url": "https://translate-dev.freebsd.org/api/units/1524345/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.572654Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "% llvm-objdump -h /kernel\nSections:\nIdx Name Size VMA Type\n 10 set_sysctl_set 000021d4 01827078 DATA\n 16 set_kbddriver_set 00000010 0182a4d0 DATA\n 20 set_scterm_set 0000000c 0182c75c DATA\n 21 set_cons_set 00000014 0182c768 DATA\n 33 set_scrndr_set 00000024 0182c828 DATA\n 41 set_sysinit_set 000014d8 018fabb0 DATA\n" ], "previous_source": "", "target": [ "" ], "id_hash": -8574511370304156779, "content_hash": -8574511370304156779, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1591", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 280, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 40, "source_unit": "https://translate-dev.freebsd.org/api/units/1436739/?format=api", "priority": 100, "id": 1524346, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=09013756a2790b95", "url": "https://translate-dev.freebsd.org/api/units/1524346/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.576572Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "This screen dump shows that the size of set.sysinit_set section is 0x14d8 bytes, so `0x14d8/sizeof(void *)` sysinit objects are compiled into the kernel. The other sections such as `set.sysctl_set` represent other linker sets." ], "previous_source": "", "target": [ "" ], "id_hash": 4704716232418067035, "content_hash": 4704716232418067035, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1595", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 281, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 33, "source_unit": "https://translate-dev.freebsd.org/api/units/1436741/?format=api", "priority": 100, "id": 1524347, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=c14a827c9a4b025b", "url": "https://translate-dev.freebsd.org/api/units/1524347/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.579824Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "By defining a variable of type `struct sysinit` the content of `set.sysinit_set` section will be \"collected\" into that variable:" ], "previous_source": "", "target": [ "" ], "id_hash": 2320165597606611715, "content_hash": 2320165597606611715, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1597", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 282, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/1436743/?format=api", "priority": 100, "id": 1524348, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=a032e251796c8b03", "url": "https://translate-dev.freebsd.org/api/units/1524348/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.585723Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/kern/init_main.c:\n SET_DECLARE(sysinit_set, struct sysinit);\n" ], "previous_source": "", "target": [ "" ], "id_hash": -3840119093180254934, "content_hash": -3840119093180254934, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1602", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 283, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1436745/?format=api", "priority": 100, "id": 1524349, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=4ab52807d3cbb52a", "url": "https://translate-dev.freebsd.org/api/units/1524349/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.589371Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The `struct sysinit` is defined as follows:" ], "previous_source": "", "target": [ "" ], "id_hash": 8065507834668769113, "content_hash": 8065507834668769113, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1605", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 284, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1436747/?format=api", "priority": 100, "id": 1524350, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=efee70a48a8fdf59", "url": "https://translate-dev.freebsd.org/api/units/1524350/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.592852Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/sys/kernel.h:\n struct sysinit {\n\tenum sysinit_sub_id\tsubsystem;\t/* subsystem identifier*/\n\tenum sysinit_elem_order\torder;\t\t/* init order within subsystem*/\n\tsysinit_cfunc_t func;\t\t\t/* function\t\t*/\n\tconst void\t*udata;\t\t\t/* multiplexer/argument */\n};\n" ], "previous_source": "", "target": [ "" ], "id_hash": -266988184645425778, "content_hash": -266988184645425778, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1615", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 285, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 30, "source_unit": "https://translate-dev.freebsd.org/api/units/1436749/?format=api", "priority": 100, "id": 1524351, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=7c4b77a91efba58e", "url": "https://translate-dev.freebsd.org/api/units/1524351/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.596054Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "Returning to the `mi_startup()` discussion, it is must be clear now, how the sysinit objects are being organized. The `mi_startup()` function sorts them and calls each. The very last object is the system scheduler:" ], "previous_source": "", "target": [ "" ], "id_hash": -5764470494903486789, "content_hash": -5764470494903486789, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1620", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 286, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 34, "source_unit": "https://translate-dev.freebsd.org/api/units/1436751/?format=api", "priority": 100, "id": 1524352, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=30007ca0590eb6bb", "url": "https://translate-dev.freebsd.org/api/units/1524352/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.599080Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "/usr/include/sys/kernel.h:\nenum sysinit_sub_id {\n\tSI_SUB_DUMMY\t\t= 0x0000000,\t/* not executed; for linker*/\n\tSI_SUB_DONE\t\t= 0x0000001,\t/* processed*/\n\tSI_SUB_TUNABLES\t\t= 0x0700000,\t/* establish tunable values */\n\tSI_SUB_COPYRIGHT\t= 0x0800001,\t/* first use of console*/\n...\n\tSI_SUB_LAST\t\t= 0xfffffff\t/* final initialization */\n};\n" ], "previous_source": "", "target": [ "" ], "id_hash": -4020755177944712359, "content_hash": -4020755177944712359, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1632", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 287, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 42, "source_unit": "https://translate-dev.freebsd.org/api/units/1436753/?format=api", "priority": 100, "id": 1524353, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=48336877f1cafb59", "url": "https://translate-dev.freebsd.org/api/units/1524353/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.602042Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The system scheduler sysinit object is defined in the file [.filename]#sys/vm/vm_glue.c#, and the entry point for that object is `scheduler()`. That function is actually an infinite loop, and it represents a process with PID 0, the swapper process. The thread0 structure, mentioned before, is used to describe it." ], "previous_source": "", "target": [ "" ], "id_hash": 9024181217344328284, "content_hash": 9024181217344328284, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1637", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 288, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/1436755/?format=api", "priority": 100, "id": 1524354, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=fd3c5501488f925c", "url": "https://translate-dev.freebsd.org/api/units/1524354/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.604994Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The first user process, called _init_, is created by the sysinit object `init`:" ], "previous_source": "", "target": [ "" ], "id_hash": 2724087034332987299, "content_hash": 2724087034332987299, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1639", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 289, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1131232/?format=api", "priority": 100, "id": 1524355, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=a5cde6b992aa3fa3", "url": "https://translate-dev.freebsd.org/api/units/1524355/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.608207Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/kern/init_main.c:\nstatic void\ncreate_init(const void *udata __unused)\n{\n\tstruct fork_req fr;\n\tstruct ucred *newcred, *oldcred;\n\tstruct thread *td;\n\tint error;\n" ], "previous_source": "", "target": [ "" ], "id_hash": 4373904580847336475, "content_hash": 4373904580847336475, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1650", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 290, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1436757/?format=api", "priority": 100, "id": 1524356, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=bcb33b0ad6dbfc1b", "url": "https://translate-dev.freebsd.org/api/units/1524356/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.611221Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "\tbzero(&fr, sizeof(fr));\n\tfr.fr_flags = RFFDG | RFPROC | RFSTOPPED;\n\tfr.fr_procp = &initproc;\n\terror = fork1(&thread0, &fr);\n\tif (error)\n\t\tpanic(\"cannot fork init: %d\\n\", error);\n\tKASSERT(initproc->p_pid == 1, (\"create_init: initproc->p_pid != 1\"));\n\t/* divorce init's credentials from the kernel's */\n\tnewcred = crget();\n\tsx_xlock(&proctree_lock);\n\tPROC_LOCK(initproc);\n\tinitproc->p_flag |= P_SYSTEM | P_INMEM;\n\tinitproc->p_treeflag |= P_TREE_REAPER;\n\toldcred = initproc->p_ucred;\n\tcrcopy(newcred, oldcred);\n#ifdef MAC\n\tmac_cred_create_init(newcred);\n#endif\n#ifdef AUDIT\n\taudit_cred_proc1(newcred);\n#endif\n\tproc_set_cred(initproc, newcred);\n\ttd = FIRST_THREAD_IN_PROC(initproc);\n\tcrcowfree(td);\n\ttd->td_realucred = crcowget(initproc->p_ucred);\n\ttd->td_ucred = td->td_realucred;\n\tPROC_UNLOCK(initproc);\n\tsx_xunlock(&proctree_lock);\n\tcrfree(oldcred);\n\tcpu_fork_kthread_handler(FIRST_THREAD_IN_PROC(initproc), start_init, NULL);\n}\nSYSINIT(init, SI_SUB_CREATE_INIT, SI_ORDER_FIRST, create_init, NULL);\n" ], "previous_source": "", "target": [ "" ], "id_hash": 658938301461247435, "content_hash": 658938301461247435, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1683", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 291, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 88, "source_unit": "https://translate-dev.freebsd.org/api/units/1436759/?format=api", "priority": 100, "id": 1524357, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=892504e4db7f35cb", "url": "https://translate-dev.freebsd.org/api/units/1524357/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.615997Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "The function `create_init()` allocates a new process by calling `fork1()`, but does not mark it runnable. When this new process is scheduled for execution by the scheduler, the `start_init()` will be called. That function is defined in [.filename]#init_main.c#. It tries to load and exec the [.filename]#init# binary, probing [.filename]#/sbin/init# first, then [.filename]#/sbin/oinit#, [.filename]#/sbin/init.bak#, and finally [.filename]#/rescue/init#:" ], "previous_source": "", "target": [ "" ], "id_hash": 4040839099632815195, "content_hash": 4040839099632815195, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1689", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 292, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 56, "source_unit": "https://translate-dev.freebsd.org/api/units/1436761/?format=api", "priority": 100, "id": 1524358, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=b813f1c0781f8c5b", "url": "https://translate-dev.freebsd.org/api/units/1524358/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.619522Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookboot_index/pl/?format=api", "source": [ "sys/kern/init_main.c:\nstatic char init_path[MAXPATHLEN] =\n#ifdef\tINIT_PATH\n __XSTRING(INIT_PATH);\n#else\n \"/sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init\";\n#endif\n" ], "previous_source": "", "target": [ "" ], "id_hash": 1813822175094227308, "content_hash": 1813822175094227308, "location": "documentation/content/en/books/arch-handbook/boot/_index.adoc:1699", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 293, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 11, "source_unit": "https://translate-dev.freebsd.org/api/units/1436763/?format=api", "priority": 100, "id": 1524359, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookboot_index/pl/?checksum=992bfda88037c16c", "url": "https://translate-dev.freebsd.org/api/units/1524359/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2023-04-15T04:16:31.658475Z" } ] }{ "count": 293, "next": null, "previous": "