рдПрдХ рдирдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдЬреЗрдиреЛрдб рдУрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдВрдкрдирд┐рдпреЛрдВ рдиреЗ рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдирд▓ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░реБрдЪрд┐ рджрд┐рдЦрд╛рдИ рд╣реИред рд╢реИрдХреНрд╖рдгрд┐рдХ рд╢реНрд░реЗрдгреА рдХреЗ рдпреЗ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдУрдПрд╕ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реИрдорд╕рдВрдЧ рдиреЙрдХреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо OKL4 рдорд╛рдЗрдХреНрд░реЛрд╡рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдирд┐рд░реНрдорд╛рддрд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдордп рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдирд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдирд▓ рдУрдПрд╕ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рд╕рд╛рд░реНрддрд╛рдХреЛрд╡ рдиреЗ " рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдФрд░ FOSDEM'13 " рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рдЬреЗрдиреЛрдб рдУрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдирдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ Genas рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд░реНрдиреЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ Fiasco.OC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред



рддреЛ Genode OS рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИред рдЬреАрдиреЛрдб рдПрдХ рдПрдХрд▓ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдУрдПрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдЗрдХреНрд░реЛрдХреЗрд░реНрдирд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреЛрдбреЗрд░реЗрд░реЛ, рдлрд╛рд╕рдХреЛ, рдлрд╛рд╕рдХреЛ.рдУрд╕реА, рдиреЛрд╡рд╛, рдУрдХреЗрдПрд▓ 4, рдкрд┐рд╕реНрддрд╛ред рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдкрд░ рдХрд╛рдо рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдЖрд░рдПрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХреЛрд░ (рдмреЗрд╕-рдПрдЪрдбрдмреНрд▓реНрдпреВ) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдпреЗ рдХреЛрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Fiasco.OC рдХрд░реНрдиреЗрд▓ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ: x86, amd64, ARM (рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдлрд┐рд▓рд╣рд╛рд▓ Genode рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдФрд░ рдиреЛрд╡рд╛ рдХреЛрд░ x86 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдЗрдХреНрд░реЛ рд╣рд╛рдЗрдкрд░рд╡рд╛рдЗрдЬрд╝рд░ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рдиред рдЬреЗрдиреЛрдб рдврд╛рдВрдЪреЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рд╕рдорд░реНрдерд┐рдд рдЧреБрдард▓реА рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреЗрдиреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдиреЙрд░реНрдорди рдлрд╝реЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реА рдЧрдИ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ " Ksys labs рд╕рдорд░ рд╕реНрдХреВрд▓ рдСрдлрд╝ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ " рднреА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, ARM рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП Genode + Fiasco.OC рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: Realview PBXA9, рдмрд╣реБрдореБрдЦреА рдПрдХреНрд╕рдкреНрд░реЗрд╕ A9X4, рдкрд╛рдВрдбрд╛рдмреЛрд░реНрдб (TI OMAP4), рдлреНрд░реАрд╕реНрдХреЗрд▓ iMX53, Arndale (Samsung Exynos 5)ред рдпреЗ рд╕рднреА рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХрд╛рдлреА рдорд╣рдВрдЧреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЕрдм рдХрдИ рдПрдХрд▓-рдмреЛрд░реНрдб рдкреАрд╕реА рд╣реИрдВ, рдЬрд┐рдирдХреА рдХреАрдордд $ 100 рд╕реЗ рдХрдо рд╣реИ, рдЬреЛ рдЙрддреНрд╕рд╛рд╣реА рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдУрдПрд╕ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдЙрдирдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдЖрдорддреМрд░ рдкрд░ рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░рд▓реЗрдЦрди рднреА рд╣реЛрддрд╛ рд╣реИред рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ " рд╣реЛрдо рд░рдЪрдирд╛рддреНрдордХрддрд╛ (DIY) рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдиреА рдХрдВрдкреНрдпреВрдЯрд░ рдЪреБрдирдирд╛ "ред рд╡рд░реНрдгрд┐рдд рдмреЛрд░реНрдбреЛрдВ рдХреЗ рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Fiasco.OC рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдФрд░ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдлреЛрдЯреЛ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдСрд▓рд╡рд┐рдирд░ рдП 10 рдПрд╕рдУрд╕реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХреНрдпреВрдмреАрдмреЛрд░реНрдб рдорд┐рдиреА-рдкреАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдпрд╣ рдордВрдЪ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:
- рдмрд╣реБрдд рдкреБрд░рд╛рдиреА рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдП 8 рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдирд╣реАрдВ;
- рдпреВ-рдмреВрдЯ рд▓реЛрдбрд░, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореИрдиреБрдЕрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ "рд▓реАрдХ" рдкреНрд░рд▓реЗрдЦрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐;
- рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ (рдПрд╕рдПрдЯреАрдП, рдПрдЪрдбреАрдПрдордЖрдИ, рдЖрджрд┐);
- рдЗрд╕ рдЪрд┐рдк (рдХреНрдпреВрдмреАрдмреЛрд░реНрдб, рдореЗрд▓реЗ A1000 / A2000, рдФрд░ рдЕрдиреНрдп) рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд╕реНрддреА "рд╣реИрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред

рдЗрд╕ рдПрд╕рдУрд╕реА рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

CPU: ARM Cortex-A8, NEON, VFPv3, Trustzone рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде 1Ghz рддрдХ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде
рдЬреАрдкреАрдпреВ: рдУрдкрди рдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдорд╛рд▓реА 400 рдПрдордкреА
VPU: рдлреБрд▓рдПрдЪрдбреА рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕реЗрдбрд░рдПрдХреНрд╕ред
рдкрд░рд┐рдзреАрдп: 4xUSB рд╣реЛрд╕реНрдЯ, USB OTG, 4xSD / MMC, 8xUART, 4xSPI, 3xI2C, GPIO, SATA, HDMI, LCD- рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдЕрдиреНрдп

Fiasco.OC рдХрд░реНрдиреЗрд▓ рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдП 8 рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдирдП рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдкреЛрд░реНрдЯ, рддрдерд╛рдХрдерд┐рдд рдмреЛрд░реНрдб рд╕рдкреЛрд░реНрдЯ рдкреИрдХреЗрдЬ (рдмреАрдПрд╕рдкреА) рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдмреАрдПрд╕рдкреА рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХрд░реНрдиреЗрд▓ / рдлрд┐рдпрд╛рд╕реНрдХреЛ / src / kern / arm / bsp рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
Fiasco.OC рдореЗрдВ рдПрдЖрд░рдПрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рдмреАрдПрд╕рдкреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдмрд╛рдзрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░;
- рдЯрд╛рдЗрдорд░ рдЪрд╛рд▓рдХ;
- UART рдбреНрд░рд╛рдЗрд╡рд░;
- рд░реАрд╕реЗрдЯ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреАрдПрд╕рдкреА рдореЗрдВ рдПрдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореИрдиреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ A10 рдореЗрдВ рдореЗрдореЛрд░реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рд╣реИ:

рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдПрд╕ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рднреМрддрд┐рдХ рдкрддреЗ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ Mem_layout рд╡рд░реНрдЧ, mem_layout-arm-sun4i.cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ:
EXTENSION class Mem_layout { public: enum Virt_layout_sun4i : Address { Timer_map_base = Devices1_map_base + 0x020C00, Intc_map_base = Devices1_map_base + 0x020400, Uart_base = Devices1_map_base + 0x028000, Watchdog_map_base = Timer_map_base + 0x90, }; enum Phys_layout_sun4i : Address { Devices1_phys_base = 0x01c00000, Sdram_phys_base = 0x40000000, Flush_area_phys_base = 0xe0000000, }; }; 

рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдмрд╛рдзрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЪрд╛рд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рди: рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдиреНрдпрд╛рд╕, рдорд╛рд╕реНрдХрд┐рдВрдЧ рд╡реНрдпрд╡рдзрд╛рди, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдпред Pic-arm-sun4i.cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛрдбред

рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдЯрд╛рдЗрдо рд╕реНрд▓реЙрдЯ рдпрд╛ IPC рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рд╕рдорд╛рдкреНрддрд┐ред A10 рдореЗрдВ 6 рдЯрд╛рдЗрдорд░ рд╣реИрдВред рдЯрд╛рдЗрдорд░ рдЯрд╛рдЗрдорд░ 0 рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реБрдХрд╛рд╡рдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдЯрд╛рдЗрдорд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, SoC рдореЗрдВ рдЕрд▓рд╛рд░реНрдо рдШрдбрд╝реА рдХреЗ рд╕рд╛рде рд╡реЙрдЪрдбреЙрдЧ рдФрд░ RTC рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо рдореЛрдб рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╣рд░ 1 рдПрдордПрд╕ рдореЗрдВ рдПрдХ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЯрд╛рдЗрдорд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЯрд╛рдЗрдорд░-рдЖрд░реНрдо- sun4i.cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

UART рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдФрд░ JDB рдХрд░реНрдиреЗрд▓ рдбреАрдмрдЧрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Fiasco.OC рдореЗрдВ UART рдореЙрдбреНрдпреВрд▓ рдХреА рдХреЛрдИ рд╢реБрд░реБрдЖрдд рдирд╣реАрдВ рд╣реИ; рдРрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдмреВрдЯрд▓реЛрдбрд░ рдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, U- рдмреВрдЯред UART рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛрдб uart-arm-sun4i.cpp рдФрд░ рдХрд░реНрдиреЗрд▓ / fiasco / src / lib / uart / uart_sun4i.cc рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИред

рдПрдХ рдкреВрд░реНрдг рдкреНрд░реЛрд╕реЗрд╕рд░ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЛрдб рд▓реВрдк рд╣реЛрдиреЗ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░реАрд╕реЗрдЯ-рдЖрд░реНрдо-рд╕рди 4i.cpp рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИред

рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЪрдпрдирд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдмреАрдПрд╕рдкреА рдорд┐рд▓рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд░реНрдиреЗрд▓ рдХреЛ рдЕрднреА рднреА рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ARM рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ Genode + Fiasco.OC рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

1. рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ, ROM- рдмреВрдЯ SD рдХрд╛рд░реНрдб рдкрд░ рдмреВрдЯрд▓реЛрдбрд░ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ SD рдХрд╛рд░реНрдб рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ NAND рд╕реЗ рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИред
2. рдпреВ-рдмреВрдЯ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдИрдПрд▓рдПрдл рдпрд╛ рдпреВ-рдмреВрдЯ-рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреАрдиреЛрдб рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
3. рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдореЗрдВ Fiasco.OC рдХреЛрд░ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ: sigma0, рд░реВрдЯ рдХрд╛рд░реНрдп (Genode рдореЗрдВ рдпрд╣ рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ рд╣реИ) рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдоред
4. рдкрд╣рд▓рд╛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╣реИ, рдЬреЛ рдХрд░реНрдиреЗрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:
- рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рдХреА рд╕реНрдХреИрдирд┐рдВрдЧ (рд╕рднреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛; рдПрдЖрд░рдПрдо рдкрд░, рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рдХрд╛ рдореВрд▓реНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ);
- рдореЗрдореЛрд░реА рдореЗрдВ рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ (sigma0 рдФрд░ рд░реВрдЯ рдХрд╛рд░реНрдп рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХрд░реНрдиреЗрд▓ рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗ);
- рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛ рд╕реАрдзреЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред
7. рдХрд░реНрдиреЗрд▓ рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рд╕реНрдЯрдо рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, sigma0 рдФрд░ рд░реВрдЯ рдЯрд╛рд╕реНрдХ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
8. рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ (рдЬреЛ рд░реВрдЯ рдХрд╛рд░реНрдп рд╣реИ) рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЬреЗрдиреЛрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рддрджрдиреБрд╕рд╛рд░, рдХреНрдпреВрдмрдмреЛрд░реНрдб рдкрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди l4 / mk / platform / cubieboard.conf рдФрд░ l4 / pkg / bootstrap / server / src / sun4i.cc рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ UART рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рд╕реНрд░реЛрдд рдХреЛрдб рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╢рд╛рдЦрд╛ рдореЗрдВ Github https://github.com/Ksys-labs/genode рдкрд░ рд╣реИред R47-sun4i рд╢рд╛рдЦрд╛ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА https://github.com/Ksys-labs/foc рдореЗрдВ Fiasco.OC рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг, рдЗрди рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рдкреИрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдЬреЗрдиреЛрдб рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 git clone git://github.com/Ksys-labs/genode.git git checkout tutorials cd genode 

рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рдЯреВрд▓рдЪрд┐рди рдмрдирд╛рдПрдБ:
 ./tools/tool_chain arm 

рдФрд░ Fiasco.OC рдХрд░реНрдиреЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
 make prepare -C base-foc 

рдЕрдм рд╕рдм рдХреБрдЫ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
1. рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ:
 ./tools/create_builddir foc_cubieboard BUILD_DIR=_build.foc_cubieboard cd _build.foc_cubieboard 

2. рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП hello_tutorial repository рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрди рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред
 echo 'REPOSITORIES += $(GENODE_DIR)/hello_tutorial' >> etc/build.conf 

3. рдпреВ-рдмреВрдЯ-рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдкреАрдврд╝реА рдЪрд╛рд▓реВ рдХрд░реЗрдВ
 echo 'SPECS += uboot' >> etc/spec.conf 

4. рдЫрд╡рд┐ рдПрдХрддреНрд░ рдХрд░реЗрдВ
 make run/hello 

рд╢реЛрд░реНрдЯ рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдлреЙрд░реНрдо / EL / hello рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ ELF (hello.elf) рдФрд░ u-boot-image (uImage) рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИред
рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдиреЗрдХреНрдЯреЗрдб рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЖрдк рд╣реЗрд▓реЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рд░рдирд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓
L4 рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд░
рдмрд┐рд▓реНрдб: # 4 рдЧреБред рдЕрдкреНрд░реИрд▓ред 18 22:48:37 рдПрдордПрд╕рдХреЗ 2013, 4.7.2
1024 рдПрдордмреА рд░реИрдо рддрдХ рд╕реНрдХреИрди
рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░ 1024MB (40,000,000 - 80,000,000) рд╣реИ
RAM: 0000000040000000 - 000000007fffffff: 1048576kB
рдХреБрд▓ рд░реИрдо: 1024MB
mod07: 4117e000-411b8e3c: рдЬреАрдиреЛрдб / рдЯрд╛рдЗрдорд░
mod06: 41148000-4117ddc0: genode / hello_server
mod05: 4111c000-41147c28: genode / hello_client
mod04: 410d6000-4111b738: рдЬреАрдиреЛрдб / рдЗрдирд┐рдЯ
mod03: 410d5000-410d51a4: рдЬреАрдиреЛрдб / рдХреЙрдиреНрдлрд┐рдЧ
mod02: 4106e000-410d431c: рдЬреАрдиреЛрдб / рдХреЛрд░
mod01: 41064000-4106d374: sigma0
mod00: 41015000-41063d20: /home/vanner/projects/genode/_build.foc_cubieboard/kernel/fiasco.oc/fiasco
41100000 рдХреЗ рдкреАрдЫреЗ 8 рдореЙрдбреНрдпреВрд▓ рддрдХ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 00 {41015000-41063d1f} -> {412a4000-412f2d1f} [322848]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 01 {41064000-4106d373} -> {412f3000-412fc373} [[7287]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 02 {4106e000-410d431b} -> {412fd000-4136331b} [418588]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 03 {410d5000-410d51a3} -> {411b9000-411b91a3} 420]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 04 {410d6000-4111b737} -> {411ba000-411ff737} [284472]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 05 {4111c000-41147c27} -> {41100000-4112bc27} [179240]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 06 {41148000-4117ddbf} -> {4112c000-41161dbf} [220,1008]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 07 {4117e000-411b8e3b} -> {41162000-4119ce3b} [241212]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 03 {411b9000-411b91a3} -> {4119d000-4119d1a3} [420]
рдореВрд╡рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ 04 {411ba000-411ff737} -> {4119e000-411e3737} [[24444]
рд╕реНрдХреИрдирд┐рдВрдЧ /home/vanner/projects/genode/_build.foc_cubieboard/kernel/fiasco.oc/fiasco -serial_esc
рд╕реНрдХреИрди sigma0
рд╕реНрдХреИрдирд┐рдВрдЧ рдЬреАрдиреЛрдб / рдХреЛрд░
[0x4100e000-0x4100e19c] рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд mbi
рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ cts / genode / _build.foc_cubieboard / рдХрд░реНрдиреЗрд▓ / fiasco.oc / fiasco
рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ sigma0
рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬреАрдиреЛрдб / рдХреЛрд░
рдХрд░реНрдиреЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкреГрд╖реНрда рдвреВрдВрдвреЗрдВ ...
0x40002000 рдкрд░ рдХрд░реНрдиреЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкреГрд╖реНрда рдорд┐рд▓рд╛
рд╕реВрдЪреА рдХреЗ рдХреНрд╖реЗрддреНрд░ 'рдХреНрд╖реЗрддреНрд░'
[рекрежрежрежрезрежрежреж, рекрежрежрежрез репff] {a00} рдХреЗрд░реНрди рд╕реЗрдВрдЯ / рдЬреАрдиреЛрдб / _build.foc_cubieboard / рдХрд░реНрдиреЗрд▓ / fiasco.oc / fiasco
[40002000, 40060fff] {5f000} рдХреЗрд░реНрди cts / рдЬреАрдиреЛрдб / _build.foc_cubieboard / рдХрд░реНрдиреЗрд▓ / fiasco.oc / fiasco
[рекрежреж реп режрежрежреж, рекрежреж реп рем3рей рдмреА] {рем }рей рд╕реА} рд╕рд┐рдЧреНрдорд╛ реж рд╕рд┐рдЧреНрдорд╛ реж
[40098000, 4009e17b] {617c} рд╕рд┐рдЧреНрдорд╛ реж рд╕рд┐рдЧреНрдорд╛ реж
[40100000, 4024743f] {147440} рд░реВрдЯ рдЬреАрдиреЛрдб / рдХреЛрд░
[41000000, 410143f3] {143f4} рдмреВрдЯ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк
[4100e000, 4100e299] {29a} рд░реВрдЯ рдорд▓реНрдЯреАрдмреВрдЯ рдЬрд╛рдирдХрд╛рд░реА
[41100000, 411e3737] {e3738} рд░реВрдЯ рдореЙрдбреНрдпреВрд▓
рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг: (87) рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ
рд╕рд┐рдЧреНрдорд╛ 0 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЖрдИрдкреА: 40090100 рдПрд╕рдкреА: 41013 рдбреА 24
Roottask config ip: 4014af84 sp: 00000000
рдХрд░реНрдиреЗрд▓ рд╕реЗрдВрдЯ / рдЬреАрдиреЛрдб / _build.foc_cubieboard / рдХрд░реНрдиреЗрд▓ / fiasco.oc / fiasco рдХреЛ 40001198 рдкрд░ рд╢реБрд░реВ рдХрд░рдирд╛
рдирдорд╕реНрдХрд╛рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реЗ :: рдЪрд░рдг 2
рдмреВрдЯ_рд▓реЛрдХ: рдЖрдХрд╛рд░ = 0x180
Boot_alloc: рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХ @ 0xf13e1000 (рдЖрдХрд╛рд░ = 400) рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
Boot_alloc: @ 0xf13e1000
Boot_alloc: рд╢реЗрд╖ рдирд┐: рд╢реБрд▓реНрдХ рдмреНрд▓реЙрдХ @ 0xf13e1180 (рдЖрдХрд╛рд░ = 280)
рдХреИрд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: рдЪрд╛рд▓реВ
ID_PFR [01]: 00001131 00000011 ID_ [DA] FR0: 00000400 00000000
ID_MMFR [04]: 01100003 20000000 01202000 00000211
FPU0: Arch: VFPv3 (3), рднрд╛рдЧ: VFPv3 (30), r: 3, v: c, i: 41, t: hard, p: dbl / sngl
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк :: рд╕реНрдЯреЗрдЬ 2 рд╕рдорд╛рдкреНрдд
рд╕реАрд░рд┐рдпрд▓ ESC: рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ uart рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд IRQ 1
рдзреАрдореЗ рдЯрд╛рдЗрдорд░ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ред
Fiasco.OC (рдмрд╛рдВрд╣) рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
L4 / Fiasco.OC рдмрд╛рдВрд╣ рдорд╛рдЗрдХреНрд░реЛ рдХрд░реНрдиреЗрд▓ 1998-2013 рдЯреАрдпреВ рдбреНрд░реЗрд╕рдбреЗрди
Rev: 8991035 рд╕рди 4i рдХреЗ рд▓рд┐рдП gcc 4.7.2 рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд []
рдмрд┐рд▓реНрдб: # 3 рдЧреБред рдЕрдкреНрд░реИрд▓ред 18 22:48:33 рдПрдордПрд╕рдХреЗ 2013

рдЯрд╛рдЗрдорд░ рд▓реВрдк рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдирд╛ ... рдХрд┐рдпрд╛ред
рд╕рд┐рдЧреНрдорд╛0: рдирдорд╕реНрдХрд╛рд░!
рдХрд┐рдк @ 40002000
рд░рдЦрд░рдЦрд╛рд╡ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП 4KB рдЖрд╡рдВрдЯрд┐рдд
рд╕рд┐рдЧреНрдорд╛0: рд╕рднреА рд╕рдВрд╕рд╛рдзрди рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреА рдбрдВрдк
RAM: ------------------------
[реж: рекрежрежрежрежрежрежрежрежрежрежрежрежрежреж]
[0: 40061000; 4008ffff]
[0: 40097000; 40097fff]
[реж: рекрежреж реп рдПрдл режрежрежреж;
[4: 40100000; 40247fff]
[реж: рекрежреирек 0режрежреж; рекрезрежреж рдбрдл]
[4: 4100e000; 4100efff]
[реж: рекрезрежреж рдПрдл режрежреж; рекрежрек рдПрдлрдПрдл]
[4: 41100000; 411e3fff]
[0: 411e4000; 7effffff]
IOMEM: ----------------------
[0: 0; 3fffffff]
[0: 80000000

рдХрд┐рдк @ 40002000
рдЬрд╛рджреВ: 4be6344c
рд╕рдВрд╕реНрдХрд░рдг: 87014444
sigma0 esp: 41013d24 eip: 40090100
sigma1 esp: 00000000 eip: 00000000
рд░реВрдЯ esp: 00000000 eip: 4014af84
MBI @ 4100e000
mod [3] [рекрезрез реп рдбреА режрежреж рдЯреА резрез реп рдбреА рез рдП рек) рд╡рд┐рдиреНрдпрд╛рд╕
mod [рек] [рекрезрез реп рдИ режрежреж,резрез38рей inрей in) init
mod [рел] [рекрезрез00000,4112bc28) hello_client
mod [рем] [рекрезрезреи c000,41161dc0) hello_server
mod [ce] [рекрезрезремреирежрежреж,рекрезрез репрд╕реА рей рд╕реА) рдЯрд╛рдЗрдорд░
: ram_alloc: рдПрд▓реЛрдХреЗрдЯрд░ 40230784 рдбрдВрдк:
рдмреНрд▓реЙрдХ: [50000000,5000001c) рдЖрдХрд╛рд░ = 0000001c рдХрд╛ рд▓рд╛рдн = 00000000 max_avail = 00000000
рдмреНрд▓реЙрдХ: [релрежрежрежрежрежреж рд╕реА, релрежрежрежрежрежрей =) рдЖрдХрд╛рд░ = режрежрежрежрежрежрежреж рд╕реА рдХрд╛ рд▓рд╛рдн = режрежрежрежрежреж рдЕрдзрд┐рдХрддрдо_рд╡реЗрд▓ = рдбреАрдЖрд░ режреж
рдмреНрд▓реЙрдХ: [50000038,50000054) рдЖрдХрд╛рд░ = 0000001c рдХрд╛ рд▓рд╛рдн = 00000000 max_avail = 00000000
рдмреНрд▓реЙрдХ: [50000054,50000070) рдЖрдХрд╛рд░ = 0000001c рдХрд╛ рд▓рд╛рдн = 00000000 рдореИрдХреНрд╕_рд╡реЗрд▓ = 2eff3858
рдмреНрд▓реЙрдХ: [релрежрежрежрежреж :реж,режрежреж,режрежрежc рд╕реА) рдЖрдХрд╛рд░ = режрежрежрежрежрежрежреж рд╕реА рдП рд╕реА рдПрд╕ = режрежрежрежрежреж рдореИрдХреНрд╕_рд╡реЗрд▓ = режрежрежрежрежреж
рдмреНрд▓реЙрдХ: [релрежрежрежрежреж: рд╕реА, релрежрежрежрежреж рдП =) рдЖрдХрд╛рд░ = режрежрежрежрежрежрежреж рд╕реА рдЙрдкрд▓рдмреНрдз = 00000000 рдореИрдХреНрд╕_рд╡реЗрд▓ = реирежрежреж8рел 2рел
рдмреНрд▓реЙрдХ: [500000a8,7f000000) рдЖрдХрд╛рд░ = 2effff58 рдлрд╛рдпрджрд╛ = 2effff58 max_avail = 2effff58
=> рдореЗрдо_рд╕рд╛рдЗрдЬ = 788529152 (752 рдПрдордмреА) / рдореЗрдо_рд╡реЗрд▓ = 788528984 (751 рдПрдордмреА)
: Region_alloc: рдПрд▓реЛрдХреЗрдЯрд░ 402318f4 рдбрдВрдк:
рдмреНрд▓реЙрдХ: [00001000,40000000) рдЖрдХрд╛рд░ = 3ffff000 рд▓рд╛рдн = 3ffff000 max_avail = 3ffff000
рдмреНрд▓реЙрдХ: [7f000000, bfff0000) рдЖрдХрд╛рд░ = 40ff0000 рд▓рд╛рдн = 40ff0000 max_avail = 40ff0000
рдмреНрд▓реЙрдХ: [bfff1000, c0000000) рдЖрдХрд╛рд░ = 0000f000 рд▓рд╛рдн = 0000f000 max_avail = 40000000
=> рдореЗрдо_рд╕рд╛рдЗрдЬ = 2164252672 (2063 рдПрдордмреА) / рдореЗрдо_рд╡реЗрд▓ = 2164252672 (2063 рдПрдордмреА)
: io_mem: рдПрд▓реЛрдХреЗрдЯрд░ 40230be0 рдбрдВрдк:
рдмреНрд▓реЙрдХ: [00000000,40000000) рдЖрдХрд╛рд░ = 40,000,000 рдХрд╛ рд▓рд╛рдн = 40,000,000 рдореИрдХреНрд╕_рд╡реЗрд▓ = 40,000,000
рдмреНрд▓реЙрдХ: [40001000,40002000) рдЖрдХрд╛рд░ = 00001000 рдХрд╛ рд▓рд╛рдн = 00001000 рдореИрдХреНрд╕_рд╡реЗрд▓ = 40000000
рдмреНрд▓реЙрдХ: [40003000,40061000) рдХрд╛ рдЖрдХрд╛рд░ = 0005e000 рд▓рд╛рдн = 0005e000 max_avail = 0005e000
рдмреНрд▓реЙрдХ: [40090000,40097000) рдЖрдХрд╛рд░ = 00007000 рд▓рд╛рдн = 00007000 рдореИрдХреНрд╕_рд╡реЗрд▓ = 0005000
рдмреНрд▓реЙрдХ: [40098000,4009f000) рдЖрдХрд╛рд░ = 00007000 рд▓рд╛рдн = 00007000 рдореИрдХреНрд╕_рд╡реЗрд▓ = = рдУрдлрд╝реНрдлрд╝
рдмреНрд▓реЙрдХ: [7f000000, ffffffff) рдЖрдХрд╛рд░ = 80ffffff рд▓рд╛рдн = 80ffffff max_avail = 80ffffffff
=> mem_size = 3238449151 (3088 рдПрдордмреА) / рдореЗрдо_рд╡реЗрд▓ = 3238449151 (3088 рдПрдордмреА)
: io_port: рдПрд▓реЛрдХреЗрдЯрд░ 4023103c рдбрдВрдк:
: irq: рдПрд▓реЛрдХреЗрдЯрд░ 40231498 рдбрдВрдк:
рдмреНрд▓реЙрдХ: [00000000,00000100) рдЖрдХрд╛рд░ = 00000100 рд▓рд╛рдн = 00000100 рдореИрдХреНрд╕_рд╡реЗрд▓ = 00000100
=> рдореЗрдо_рд╕рд╛рдЗрдЬрд╝ = 256 (0 рдПрдордмреА) / рдореЗрдо_рд╡реЗрд▓ = 256 (0 рдПрдордмреА)
: rom_fs: Rom_fs 402321a8 рдбрдВрдк:
рд░реЛрдо: [4119e000,411e3738) init
рд░реЛрдо: [41100000,4112bc28) рд╣реИрд▓реЛ_рдХреНрд▓реАрдпрд░
рд░реЛрдо: [4119d000,4119d1a4) рд╡рд┐рдиреНрдпрд╛рд╕
рд░реЛрдо: [рекрезрезреи рд╕реА режрежреж,резрезремрез рдбреАрдПрд╕ реж) рд╣реЗрд▓реНрд▓реЛ_рд╕рд░реНрд╡рд░
рд░реЛрдо: [40002000,40003000) l4v2_kip
рд░реЛрдо: [40002000,40003000) рдХрд┐рдк
рд░реЛрдо: [41162000,4119ce3c) рдЯрд╛рдЗрдорд░
: рдХреЛрд░ рд░реЗрдВрдЬ: рдЕрд▓реЛрдХреЗрдЯрд░ 40233f08 рдбрдВрдк:
рдмреНрд▓реЙрдХ: [40100000,40248000) рдЖрдХрд╛рд░ = 00148000 рд▓рд╛рдн = 00148000 рдореИрдХреНрд╕_рд╡реЗрд▓ = 00148000
рдмреНрд▓реЙрдХ: [41100000,411e4000) рдЖрдХрд╛рд░ = 000e4000 рд▓рд╛рдн = 000e4000 max_avail = 100000000
рдмреНрд▓реЙрдХ: [50000000,7f000000) рдЖрдХрд╛рд░ = 2f000000 рдХрд╛ рд▓рд╛рдн = 2f000000 max_avail = 2f000000
=> рдореЗрдо_рд╕рд╛рдЗрдЬ = 790806528 (754 рдПрдордмреА) / рдореЗрдо_рд╡реЗрд▓ = 790806528 (754 рдПрдордмреА)
int main (): - рд╕реНрдерд╛рдиреАрдп рд╕реЗрд╡рд╛рдПрдВ рдмрдирд╛рдПрдВ - int main (): - init рд╢реБрд░реВ рдХрд░реЗрдВ - int main (): init рдореЗрдВ 751 MB рдЯреНрд░рд╛рдВрд╕рдлрд░
int main (): - init рдирд┐рд░реНрдорд┐рдд, рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ - [init] "ld.lib.so" рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрд╛
[init -> hello_server] рдирдорд╕реНрдХрд╛рд░ :: Root_component :: Root_component (Genode :: Rpc_entrypoint *, Genode :: Allocator *): рд░реВрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдмрдирд╛рдирд╛ред
[init -> hello_server] virtual Hello :: Session_component * Hello :: Root_component :: _ create_session (const char *): рд╣реЗрд▓реЛ рд╕рддреНрд░ рдмрдирд╛рдирд╛ред
[init -> hello_client] рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдирдорд╕реНрдХрд╛рд░ :: Session_client :: say_hello (): рдирдорд╕реНрддреЗ рдХрд╣ рд░рд╣рд╛ рд╣реИред
[init -> hello_server] рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдирдорд╕реНрдХрд╛рд░ :: рд╕рддреНрд░_рдХрдВрдкрдиреА :: say_hello (): рдореИрдВ рдпрд╣рд╛рдВ рд╣реВрдВ ... рдирдорд╕реНрдХрд╛рд░ред
[init -> hello_client] int main (): рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ 2 + 5 = 7
[init -> hello_client] рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдирдорд╕реНрдХрд╛рд░ :: Session_client :: say_hello (): рдирдорд╕реНрддреЗ рдХрд╣ рд░рд╣рд╛ рд╣реИред
[init -> hello_server] рдЖрднрд╛рд╕реА рд╢реВрдиреНрдп рдирдорд╕реНрдХрд╛рд░ :: рд╕рддреНрд░_рдХрдВрдкрдиреА :: say_hello (): рдореИрдВ рдпрд╣рд╛рдВ рд╣реВрдВ ... рдирдорд╕реНрдХрд╛рд░ред
[init -> hello_client] int main (): рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ 2 + 5 = 7
...

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдирдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдиреНрдпреВрдХреНрд▓рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рдорд░реНрдерди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдВрдбреЛрдмрд╛рд░реНрдб рдФрд░ рдЧрдорд╕реНрдЯрд┐рдХреНрд╕ рдУрд╡рд░реЛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛, рдЬреИрд╕реЗ: GPIO, UART, SPI, I2Cред рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдПрд▓рд╕реАрдбреА, рдЯрдЪрд╕реНрдХреНрд░реАрди рдФрд░ рд╕реНрдорд╛рд░реНрдЯрдХрд╛рд░реНрдб рд░реАрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдХреНрдпреВрдмрд╛рдИрдмреЛрд░реНрдб рдХреЛ рдЬреЗрдиреЛрдб рдХреЗ рд╕рд╛рде рдорд┐рдиреА-рдкреАрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рдЖрдкрдХреЛ (рдпрд╛ рдкреЛрд░реНрдЯ) рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдлреНрд░реЗрдордмрдлрд╝рд░, рдпреВрдПрд╕рдмреА, рдИрдерд░рдиреЗрдЯред

рдЬреЗрдиреЛрдб рд▓реИрдмреНрд╕ рдиреЗ рдЕрдкрдиреЗ рдврд╛рдВрдЪреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЖрдзреБрдирд┐рдХ рдУрдПрд╕ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИ рдФрд░ рд╡реЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рдУрдПрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред рдЬреАрдиреЛрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдмрд╣реБрдд рдорд╛рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдЖрд░рдПрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХрд▓-рдмреЛрд░реНрдб рдкреАрд╕реА рдЗрд╕ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддреЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Genode рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд╛рдЗрдВрд╕ рдореЗрдВ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдЫрд╛рддреНрд░ рд╣реИрдВ рдФрд░ рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдЖрдк рд╣рдорд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рддреАрди рд╡реНрдпрд╛рдЦреНрдпрд╛рдиреЛрдВ ( 1 , 2 , 3 ) рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирд╕реЗ рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдЖрдкрдХреЛ Github рдкрд░ рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдФрд░ edu@ksyslabs.org рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In177201/


All Articles