Основы программировния морских роботов

Основы Linux

logo
smtu logo

Организационное объявление

  • результат выполнения ДЗ - попадание в ТГ-группу курса

  • запись на практику с катамаранами - в этой группе

  • дни для практики:

    • пт - 17:00

    • сб - 19:00

План занятия

  • Основные сведения об операционных системах, об операционной системе Linux и конкретно об Linux Ubuntu

  • Установка Ubuntu Linux 24.04 LTS

  • Основы работы в терминале (ls, cd, pwd, mkdir, rm, cp, mv, cat, nano, echo и др.)

  • Работа с файлами и каталогами

  • Редактирование текстовых файлов

  • Домашнее задание

ОС, нужны или нет?

Операционная система (ОС) — это комплекс программ, управляющих аппаратурой компьютера, обеспечивающих взаимодействие между устройствами и прикладными программами, а также позволяющих пользователю работать с оборудованием. Она выступает посредником между аппаратным обеспечением и приложениями, управляя всеми процессами и распределяя ресурсы компьютера.

AndrewTanenbaum2
tanenbaum book

Главное, чтобы не начала обновляться ОС…​

sausage

ОС не нужны!

  • ОС - это тоже программа, потребляющая часть ресурсов компьютера, а значит на слабых процессорах она может не запуститься или работать медленно

  • Иногда требуется выполнять операции с высочайшей и точнейшей скоростью реагирования - управлять руками космической ракеты, или как некоторые станки с циркулярной пилой должны сбросить пилу за миллисекунды и спасти человеку руку.

  • Иногда ОС - это стрельба из пушек по воробьям. Например не надо ставить целую ОС на что-то вроде датчика открытия двери, это будет работать но будет неоправданно дорого

ОС нужны!

  • скрывает за собой разнообразие “железа” в компьютере

  • позволяет пользоваться наработками других людей

  • обеспечивает пользователю интерфейс работы с компьютером

Сочетание систем

  • Высокого уровня - с ОС

    • для "многоярусных" задач

    • для большой вычислительной мощи

    • для упрощения переиспользования

  • Нижнего уровня - без ОС или с "малыми" ОС

    • обычно на микроконтроллерах

    • для быстрой обеспечения быстрой реакции

    • для удешевления систем

    • для повышения надёжности

brains

Установка ОС Linux

Мы работаем с Ubuntu 24. 04 LTS (Noble Numbat)

  • Об Ubuntu

    • LTS

    • Noble Numbat (Благородный Намбат)

  • Варианты работы:

    • Нативная установка (рекомендуем)

    • На виртуальной машине

Пару слов о Linux

  • Одна из ОС семейства unix (70-е)

    • Создатель – Линус Торвальдс (90-е)

    • OpenSource: стоимость, гибкость

      • LFS, AstraLinux, Android

      • Робототехника

      • Top-500 суперкомпьютерах планеты

  • На 2008-й год: $10,8 млрд, 73 тыс. человеко-лет

tux
Ingenuity

Дистрибутивы

+-----------------------------------------------------------+
|                      Пользователь                         |
| (графическая среда, терминал, приложения, скрипты)        |
+-----------------------------------------------------------+
|         Системные утилиты и библиотеки (glibc, bash)      |
+-----------------------------------------------------------+
|                 Ядро (Linux Kernel)                       |
|  управление процессами, памятью, устройствами, файлами    |
+-----------------------------------------------------------+
|                   Аппаратное обеспечение                  |
|      процессор, память, диски, устройства ввода-вывода    |
+-----------------------------------------------------------+

Его величество терминал

Запускаем

  • Ctrl + Alt + T

  • меню "Пуск"

  • контекстное меню

Зачем он нужен?

  • у большинства роботов отсутствуют экран и клавиатур

  • требует минимального объёма ресурсов

    • может функционировать через простейшие каналы связи (UART, RS-232)

    • самое простое, что только можно представить в плане коммуникаций

  • удобно для автоматизации

Основы команд

Установка приложений

$ sudo apt install <имя_пакета>
$ sudo apt remove <имя_пакета>
  • sudo — (сокр. superuser do) — временно предоставляет права администратора, необходимые для изменения системных файлов

  • apt — инструмент управления пакетами

  • install — подкоманда, обозначающая установку

  • remove — подкоманда, обозначающая удаление

  • <имя_пакета> — имя программы, которую нужно установить

Установим то что пригодится далее

$ sudo apt install cmatrix
$ sudo apt install cowsay
$ sudo apt install tree
$ sudo apt install git
sudo

Тестовый пример - cmatrix

  • Запуск

    $ cmatrix
  • Остановка: Ctrl + C

Параметры команд

  • параметры

    $ cmatrix -C blue
  • РеГиСтР ВаЖеН

Справка

  • -h и --help

  • man

    • PageUp / PageDown — пролистывание страницы вверх и вниз

    • стрелки ↑ и ↓ — построчная прокрутка

    • q — выход из справки (quit)

Практика

$ cowsay "Привет, Linux!"
$ cowsay -f tux "Привет!"

Повышение удобства

Поиск в истории

  • стрелка ↑ — показывает предыдущую введённую команду;

  • стрелка ↓ — возвращает к более поздним командам или пустой строке.

  • Ctrl + R

Автодополнение команд и имён файлов

TAB

Работа с каталогами и файлами

Базовые команды

  • pwd

  • cd

  • ls

  • mkdir

    • mkdir folder1 folder2 folder3

    • mkdir -p

Специальные обозначения каталогов

  • / — корневой каталог

  • . — текущий каталог

  • .. — родительский каталог (на уровень выше)

  • ~ — домашний каталог пользователя

Абсолютные и относительные пути

  • Абсолютный путь начинается от корня файловой системы /

  • Относительный путь задаётся относительно текущего каталога

Создание файлов

  • командой touch

  • перенаправление вывода

Команда tree

$ tree -L 2 ~/project

Удаление файлов и каталогов

  • rm

  • rm -r

Вывод и запись данных в файл

  • cat

  • > и >>

  • echo

  • date

Комбинирование команд (pipes)

$ ls | grep txt > text_files.txt

Текстовый редактор nano

$ nano файл.txt
  • Ctrl + O — сохранить файл (Write Out). После нажатия нужно подтвердить имя файла клавишей Enter.

  • Ctrl + X — выйти из редактора (Exit). Если в файле есть несохранённые изменения, редактор предложит сохранить их.

  • Ctrl + G — справка по доступным командам.

  • Ctrl + K — вырезать строку.

  • Ctrl + U — вставить ранее вырезанную строку.

  • Ctrl + W — поиск текста по файлу.

Сегодня я многое понял

  • зачем нужен терминал

  • как с ним работать

    • как ходить по файловой системе

    • как работать с файлами

    • как редактировать файлы

KyleBroflovski

Дополнительные материалы

Видеокурс "LPIC 101"

https://www.youtube.com/playlist?list=PLmxB7JSpraiep6kr802UDqiAIU-76nGfc

https://www.youtube.com/playlist?list=PLmxB7JSpraiep6kr802UDqiAIU-76nGfc

Конспекты к курсу

https://github.com/ksemaev

https://www.youtube.com/playlist?list=PLmxB7JSpraiep6kr802UDqiAIU-76nGfc

Домашнее задание

  1. Получить папку

    $ git clone http://sdb.smtu.ru/gitlab/marinerobotics/lesson-01.git
  2. Исследовать папку, вступить в телеграм-группу для прохождения курса

  3. Зарегистрироваться на http://sdb.smtu.ru/gitlab и прислать в группу свой логин

  4. Для очного участия - записаться в гугл-документе в группе