Kerla рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ Rust рднрд╛рд╖рд╛рдорд╛ рд▓рд┐рдирдХреНрд╕-рдХрдореНрдкреНрдпрд╛рдЯрд┐рдмрд▓ рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ

Kerla рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ Rust рднрд╛рд╖рд╛рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫред рдирдпрд╛рдБ рдХрд░реНрдиреЗрд▓ рд╕реБрд░реБрдорд╛ рдПрдмреАрдЖрдИ рд╕реНрддрд░рдорд╛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдирдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ, рдЬрд╕рд▓реЗ рд▓рд┐рдирдХреНрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВрд▓рд╛рдИ рдХреЗрд░реНрд▓рд╛-рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред рдХреЛрдб Apache 2.0 рд░ MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред рд╕реА рднрд╛рд╖рд╛рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо Resea рдмрдирд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рдЪрд┐рдд рдЬрд╛рдкрд╛рдиреА рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╕реЗрдпрд╛ рдиреБрдЯрд╛рд▓реЗ рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫред

рдпрд╕рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд╣рд╛рд▓рдХреЛ рдЪрд░рдгрдорд╛, Kerla рд▓реЗ x86_64 рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдЪрд▓реНрди рд╕рдХреНрдЫ рд░ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд╣рд░реВ рдЬрд╕реНрддреИ рд░рд╛рдЗрдЯ, рд╕реНрдЯреЗрдЯ, mmap, рдкрд╛рдЗрдк рд░ рдкреЛрд▓, рд╕рд┐рдЧреНрдирд▓рд╣рд░реВ, рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдЗрдкрд╣рд░реВ рд░ рд╕рдиреНрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд╣рд░реВ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рдлреЛрд░реНрдХ, wait4, рд░ execve рдЬрд╕реНрддрд╛ рдХрд▓рд╣рд░реВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╣рд╛рдБ tty рд░ рд╕реНрдпреВрдбреЛ-рдЯрд░реНрдорд┐рдирд▓ (pty) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЫред рд╣рд╛рд▓ рд╕рдорд░реНрдерд┐рдд рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ initramfs (рд░реВрдЯ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ), tmpfs рд░ devfs рд╣реБрдиреНред TCP рд░ UDP рд╕рдХреЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреНрдпрд╛рдХ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, smoltcp рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдмреБрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдЧрд░реЗрдХреЛ рдЫ рдЬреБрди QEMU рдорд╛ рдЪрд▓реНрдЫ рд╡рд╛ virtio-net рдбреНрд░рд╛рдЗрднрд░рдХреЛ рд╕рд╛рде Firecracker рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдорд╛ рдЪрд▓реНрдЫ, рдЬрд╕рдорд╛ рддрдкрд╛рдЗрдБ рдкрд╣рд┐рд▓реЗ рдиреИ SSH рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред musl рд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реА рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ BusyBox рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

Kerla рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ Rust рднрд╛рд╖рд╛рдорд╛ рд▓рд┐рдирдХреНрд╕-рдХрдореНрдкреНрдпрд╛рдЯрд┐рдмрд▓ рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ

рдПрдЙрдЯрд╛ рдбрдХрд░-рдЖрдзрд╛рд░рд┐рдд рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреЗрд░реНрд▓рд╛ рдХрд░реНрдиреЗрд▓рд╕рдБрдЧ рдЖрдлреНрдиреИ рдмреБрдЯ рдЗрдирд┐рдЯреНрд░рд╛рдореНрдлрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЕрд▓рдЧ рд░реВрдкрдорд╛, рдорд╛рдЫрд╛ рдЬрд╕реНрддреИ nsh рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЦреЛрд▓ рд░ Wayland рдкреНрд░реЛрдЯреЛрдХрд▓ рдорд╛ рдЖрдзрд╛рд░рд┐рдд Kazari GUI рд╕реНрдЯреНрдпрд╛рдХ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫред

Kerla рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ Rust рднрд╛рд╖рд╛рдорд╛ рд▓рд┐рдирдХреНрд╕-рдХрдореНрдкреНрдпрд╛рдЯрд┐рдмрд▓ рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ

рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирд╛рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░ рдореЗрдореЛрд░реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдмрдврд╛рдПрд░ рдХреЛрдбрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдХрдо рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд░рд╕реНрдЯрд▓реЗ рд╕рдиреНрджрд░реНрдн рдЬрд╛рдБрдЪ, рд╡рд╕реНрддреБ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд░ рд╡рд╕реНрддреБ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ (рд╕реНрдХреЛрдкрд╣рд░реВ) рдорд╛рд░реНрдлрдд рдХрдореНрдкрд╛рдЗрд▓ рд╕рдордпрдорд╛ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рд░ рд░рдирдЯрд╛рдЗрдордорд╛ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪрд╣рд░реВрдХреЛ рд╢реБрджреНрдзрддрд╛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реЗрд░ред рдердк рд░реВрдкрдорд╛, рд░рд╕реНрдЯрд▓реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдУрднрд░рдлреНрд▓реЛрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЪрд░ рдорд╛рдирд╣рд░реВ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд░ рдЪрд░рд╣рд░реВрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдХрдо рдЧрд░реНрди рдмрд▓рд┐рдпреЛ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд░ рдЗрдирдкреБрдЯ рдорд╛рдирд╣рд░реВрдХреЛ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрджрдЫред рдврд╛рдБрдЪрд╛ рдорд┐рд▓рд╛рдЙрди рдзрдиреНрдпрд╡рд╛рдж ..

рдУрдПрд╕ рдХрд░реНрдиреЗрд▓ рдЬрд╕реНрддрд╛ рддрд▓реНрд▓реЛ рд╕реНрддрд░рдХрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐, рд░рд╕реНрдЯрд▓реЗ рдХрдЪреНрдЪрд╛ рдкреЛрдЗрдиреНрдЯрд░реНрд╕, рд╕рдВрд░рдЪрдирд╛ рдкреНрдпрд╛рдХрд┐рдВрдЧ, рдПрд╕реЗрдореНрдмрд▓рд░ рдЗрдирд▓рд╛рдЗрди рдЗрдиреНрд╕рд░реНрдЯрд╣рд░реВ, рд░ рдПрд╕реЗрдореНрдмрд▓рд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдЗрдореНрдмреЗрдбрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдмрд┐рдирд╛ рдХрд╛рдо рдЧрд░реНрди, рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ, рднреЗрдХреНрдЯрд░рд╣рд░реВ рд░ рдмрд┐рдЯ рдлреНрд▓реНрдпрд╛рдЧрд╣рд░реВрд╕рдБрдЧ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдЯреИ рдХреНрд░реЗрдЯ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЫрдиреНред рдЕрд░реНрдХреЛ рдлрд╛рдЗрджрд╛ рднрдиреЗрдХреЛ рдХреЛрдб рдЧреБрдгрд╕реНрддрд░ (рд▓рд┐рдиреНрдЯрд░, рд░рд╕реНрдЯ-рд╡рд┐рд╢реНрд▓реЗрд╖рдХ) рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ рдорд╛рддреНрд░ рдирднрдИ QEMU рдорд╛ рдкрдирд┐ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреЗ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдирд┐рд░реНрдорд┐рдд рдЙрдкрдХрд░рдгрд╣рд░реВ рд╣реЛред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди