Картинок поки не буде, тому що колись, спробую все пояснити текстом.
Отже, формально, Linux - це його ядро. Однак, ми все в повсякденному житті стикаємося з різними "збірками" цієї операційної системи. Часто змусити програму працювати не під тим дистрибутивом, для якого вона була розроблена - завдання нетривіальне.
Linux у вбудованих системах має ті ж вади. У наш (вбудований) дистрибутив входять:
1) Завантажувач (в нашому випадку U-Boot).
2) Власне ядро.
3) Коренева файлова система з необхідними утилітами.
U-Boot вміє дуже багато всього, але в 99% випадків вся його діяльність полягає тільки в ініціалізації системи (настройці Clock-ів, тестуванні пам'яті може бути), завантаженні ядра і передачі управління йому. В останньому відсотку випадків U-Boot використовується для перепрошивки всього пристрою: завантаженні нових образів.
Третій обов'язковий компонент - коренева файлова система. Обов'язкова вона тому, що весь Linux побудований навколо файлової системи - так склалося історично. Практично будь-які операції - це операції над файлами. Вбудовувані системи відрізняються від великих тим, що у них обмежені ресурси, тому КФС може займати всього лише кілька мегабайт.
З нашої точки зору КФС це ще один спосіб, який також прошивається у флеш-пам'ять. На працюючій системі частина даних (або всі дані), що відносяться до файлової системи буде зберігатися в ОЗУ. Це говорить про те, що в загальному випадку ми повинні потурбуватися про те, щоб коректно завершити роботу, закрити всі відкриті файли і т.д. З іншого боку, тому що на непрацюючій системі образ файлової системи зберігається в незалежній пам'яті, значить ми можемо його зчитувати, записувати на інші копії нашої системи, тобто розглядати його як ще одну прошивку, яка відповідає за зберігання всього, що є на КФС.
Опис того, що знаходиться в даній області