You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ru/embox_quick_start_ru.md
+32-23Lines changed: 32 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,10 +17,8 @@
17
17
Зайдите в PowerShell под именем администратора и установите WSL2 (обратите внимание на требования к версии Windows):
18
18
19
19
[Алгоритм установки WSL2](https://learn.microsoft.com/ru-ru/windows/wsl/install-manual)
20
-
```
21
-
Перед тем как перейти к следующему шагу обязательно обновите WSL1 до WSL2
22
-
(инструкция по ссылкам выше), в противном случае Embox не запустится под Windows.
23
-
```
20
+
21
+
Перед тем как перейти к следующему шагу обязательно обновите WSL1 до WSL2 (инструкция по ссылкам выше), в противном случае Embox не запустится под Windows.
24
22
25
23
### Скачайте Ubuntu из Microsoft Store
26
24
Убедитесь, что у Вас стоит WSL версии 2, для этого введите в PowerShell команду:
@@ -61,7 +59,7 @@
61
59
62
60
63
61
## Настройка окружения
64
-
Необходимые пакеты: **make**, **gcc** (кросс-компилятор под выбранную архитектуру, см. “Установка кросс-компилятора”).
62
+
Необходимые пакеты: **make**, **gcc** (кросс-компилятор под выбранную архитектуру, см. следующий абзац «Установка кросс-компилятора»).
65
63
Дополнительные пакеты (рекомендуется установить сразу): **build-essential**, **gcc-multilib**, **curl**, **libmpc-dev**, **python**.
66
64
67
65
Пример установки для Ubuntu/Debian:
@@ -80,19 +78,19 @@
80
78
```
81
79
$ sudo apt-get install gcc
82
80
```
83
-
Обычно эти пакеты уже установлены в Вашей ОС, но на всякий случай стоит это проверить. Вам также понадобится *gcc-multilib*.
81
+
Обычно эти пакеты уже установлены в Вашей ОС, но на всякий случай стоит это проверить. Вам также понадобится `gcc-multilib`.
84
82
Обратите внимание, что требуется установить другие пакеты, если Вы уже настроили окружение на Windows и MacOS самостоятельно.
85
83
86
84
### ARM:
87
85
```
88
86
$ sudo apt install arm-none-eabi-gcc
89
87
```
90
-
Или для Debian:
88
+
### Или для Debian:
91
89
```
92
90
$ sudo apt install gcc-arm-none-eabi
93
91
```
94
92
Вы можете также скачать архив с набором ARM-инструментов(тулчейном) по ссылке: [https://launchpad.net/gcc-arm-embedded](https://launchpad.net/gcc-arm-embedded).
95
-
Затем нужно распаковать архив и настроить переменную окружения *PATH*:
93
+
Затем нужно распаковать архив и настроить переменную окружения `PATH`:
96
94
```
97
95
$ export PATH=$PATH:<путь к тулчейну>/gcc-arm-none-eabi-<version>/bin
98
96
```
@@ -106,7 +104,7 @@
106
104
```
107
105
$ ./crosstool.sh ARCH
108
106
```
109
-
После должен появиться архив с тулчейном — *ARCH-elf-toolchain.tar.bz2*. Затем его нужно распаковать и добавить в переменную окружения *PATH*, как показано выше для ARM.
107
+
После должен появиться архив с тулчейном — `ARCH-elf-toolchain.tar.bz2`. Затем его нужно распаковать и добавить в переменную окружения `PATH`, как показано выше для ARM.
@@ -115,7 +113,7 @@ QEMU может быть установлен следующим способо
115
113
```
116
114
$ sudo apt-get install qemu-system-<ARCH>
117
115
```
118
-
где <ARCH> это i386, arm, sparc, mips, ppc или misc (для microblaze).
116
+
где <ARCH> -- это i386, arm, sparc, mips, ppc или misc (для microblaze).
119
117
Примечание: Все пакеты QEMU можно установить единым пакетом:
120
118
```
121
119
$ sudo apt-get install qemu-system
@@ -159,17 +157,25 @@ Embox kernel start
159
157
```
160
158
Если все unit-тесты прошли успешно, и система загружена, появится консоль, в которой можно выполнять команды. Начать можно с команды ***'help'*** которая выведет список доступных команд для вашей конфигурации.
161
159
162
-
Для выхода из эмулятора qemu нажмите последовательно: ***ctrl+’A’***, затем ***‘x’***.
160
+
Для выхода из эмулятора qemu нажмите последовательно: ***ctrl+"A"***, затем ***"x"***.
163
161
164
162
## Особенности системы сборки Mybuild
165
163
***Embox*** - модульная и настраиваемая система. Для этих целей был разработан декларативный язык описания ***Mybuild***.
166
164
Он позволяет описывать как отдельные единицы системы (модули), так и всю систему в целом.
167
165
168
-
***Модуль*** является базовым понятием для системы сборки. Он содержит: список файлов, относящихся к данному модулю; параметры, которые можно задать модулю в момент конфигурации; список зависимостей.
169
-
170
-
***Конфигурация*** является детализированным описанием системы. Конфигурация включает в себя: список модулей, необходимых для сборки; параметры модулей; описания правил сборки (компилятор, флаги компилятора, карта памяти устройства, и так далее).
166
+
***Модуль*** -- это базовое понятие для системы сборки.
167
+
Модуль содержит:
168
+
* список файлов, относящихся к данному модулю;
169
+
* параметры, которые можно задать модулю в момент конфигурации;
170
+
* список зависимостей.
171
+
172
+
***Конфигурация*** -- это детализированное описание системы.
173
+
Конфигурация включает в себя:
174
+
* список модулей, необходимых для сборки;
175
+
* параметры модулей;
176
+
* описания правил сборки (компилятор, флаги компилятора, карта памяти устройства, и т. д.).
171
177
172
-
На основе конфигурации и описания модулей строится граф с параметрами системы, и по нему генерируются различные файлы для сборки: линкерскрипты, makefile-ы, заголовочные файлы. Нет необходимости добавлять все модули, т. к. они будут подтягиваться по зависимостям.
178
+
На основе конфигурации и описания модулей строится граф с параметрами системы, и по нему генерируются различные файлы для сборки: `линкер`, `скрипты`, `makefile-ы`, `заголовочные файлы`. Нет необходимости добавлять все модули, т. к. они будут подтягиваться по зависимостям.
173
179
174
180
Текущая конфигурация находится в папке ***conf/***. Вы можете настроить её с помощью команды:
175
181
```
@@ -183,7 +189,7 @@ Embox kernel start
183
189
```
184
190
$ make confload
185
191
```
186
-
После того, как Вы настроили какую-либо конфигурацию, Вы можете кастомизировать её под свои требования.
192
+
После того, как Вы настроили какую-либо конфигурацию, Вы можете кастомизировать её под свои требования:
187
193
```
188
194
include <PACKAGE_NAME><MODULE_NAME>
189
195
```
@@ -194,6 +200,7 @@ Embox kernel start
194
200
195
201
## Создание и запуск "Hello world"
196
202
Приложение в Embox -- это обычный модуль Embox со специальными аттрибутами. Эти аттрибуты определяют Ваш модуль как выполняемую программу.
203
+
197
204
Исходный код в Embox -- это обычный POSIX-код, написанный на C, поэтому он может компилироваться и под Linux.
198
205
199
206
### Создание и запуск примера
@@ -221,7 +228,7 @@ Embox kernel start
221
228
source "hello_world.c"
222
229
}
223
230
```
224
-
* Добавить программу в файл конфигурации *conf/mods.conf*:
231
+
* Добавить программу в файл конфигурации ***conf/mods.conf***:
225
232
```
226
233
include embox.cmd.hello_world
227
234
```
@@ -233,15 +240,15 @@ Embox kernel start
233
240
```
234
241
$ ./scripts/qemu/auto_qemu
235
242
```
236
-
* Наберите **help** в консоли Embox, чтобы проверить, появилась ли **hello_world** в списке команд, и Вы увидите:
243
+
* Наберите ***help*** в консоли Embox, чтобы проверить, появилась ли ***hello_world*** в списке команд, и Вы увидите:
237
244
```
238
245
root@embox:/#hello_world
239
246
Hello, world!
240
247
root@embox:/#
241
248
```
242
249
243
250
### Файл описания модуля
244
-
Разберем немного подробнее файл описания модуля.
251
+
Разберем немного подробнее файл описания модуля:
245
252
```
246
253
package embox.cmd
247
254
@@ -253,16 +260,18 @@ Embox kernel start
253
260
```
254
261
Первая строка содержит в себе пакет с названием **embox.cmd.**. В Embox все модули распределены по пакетам. Полное имя модуля состояит из имени пакета + имени модуля.
255
262
256
-
Строка ***source "hello_world.c"*** содержит названия необходимых для сборки модуля файлов.
263
+
Строка source «hello_world.c» содержит названия необходимых для сборки модуля файлов.
В первую очередь модуль будет представлять из себя приложение, а во вторую -- устанавливает имя, с помощью которого это приложение можно вызвать.
268
+
260
269
И наконец, устанавливается строка, которая будет отображаться при вызове команды ***'help'***.
261
270
262
271
Строка ***@AutoCmd*** показывает, что в приложении есть стандартная функция входа в приложение ***main()***, которая будет заменена на другой символ в процессе сборки.
263
272
264
273
## Отладка
265
-
Для отладки можно использовать тот же 'auto_qemu' скрипт, добавив флаги *-s -S -no-kvm*:
274
+
Для отладки можно использовать тот же «auto_qemu» скрипт, добавив флаги `-s`, `-S`, `-no-kvm`:
266
275
```
267
276
$ sudo ./scripts/qemu/auto_qemu -s -S -no-kvm
268
277
```
@@ -275,7 +284,7 @@ Embox kernel start
275
284
```
276
285
Система начала загружаться.
277
286
278
-
В любой момент в gdb терминале Вы можете нажать *ctrl + C* и посмотреть стек текущего потока (`backtrace`) или установить брейкпоинты (`break <function name>`, `break <file name>:<line number>`).
287
+
В любой момент в gdb терминале Вы можете нажать `ctrl + C` и посмотреть стек текущего потока (`backtrace`) или установить брейкпоинты (`break <function name>`, `break <file name>:<line number>`).
279
288
280
289
## Подключение внешнего репозитория для модулей и темплейтов
281
290
Embox допускает подключение внешнего репозитория для модулей и темлейтов. Для того, чтобы это сделать, достаточно указать корневую папку репозитория:
0 commit comments