Знакомство с компьютером
Прежде чем писать первую программу, стоит понять, как устроен компьютер изнутри. Не в смысле транзисторов и микросхем, а в смысле того, что происходит, когда ты открываешь файл, запускаешь программу или создаёшь папку.
Что такое операционная система
Когда ты включаешь компьютер, первой запускается операционная система (ОС). На обычном ПК это Windows, macOS, Linux или ChromeOS. На смартфоне — Android или iOS.
Операционная система — это программа-посредник между тобой и железом. Она делает несколько важных вещей:
Управляет железом. Ты не думаешь о том, как именно сигнал с клавиатуры превращается в букву на экране. ОС это делает за тебя.
Даёт тебе интерфейс. Окна, кнопки, папки, значки — всё это придумала и нарисовала операционная система. Ты общаешься с ней, а она уже разговаривает с железом.
Запускает программы. Когда ты открываешь браузер, ОС загружает его файлы в оперативную память, выделяет ресурсы процессора и следит за тем, чтобы браузер не мешал другим программам.
Хранит и организует файлы. ОС управляет жёстким диском: знает, где на диске лежит каждый файл, и помогает тебе найти его по имени.
Что такое файл
Файл — это именованный блок данных, сохранённый на диске. Диск, по сути, это огромная лента с миллиардами ячеек, каждая из которых хранит один бит (ноль или единицу). Файл — это просто фрагмент этой ленты, у которого есть имя и который ОС умеет найти.
Файлы бывают очень разными:
- Текстовые — внутри просто символы. Например,
.txt,.lua,.md,.json. Их можно открыть любым редактором. - Программы — набор инструкций для процессора.
.exeна Windows,.appна macOS. Внутри не текст, а бинарный код — люди его не читают. - Данные — картинки, музыка, видео, архивы. Каждый формат имеет свою внутреннюю структуру.
Расширение файла (.txt, .lua, .png) — это просто подсказка системе и тебе, что внутри. Ничто не мешает переименовать .txt в .jpg, но картинкой он от этого не станет.
Что такое папка
Представь библиотеку. Если все книги лежат в одной куче — найти нужную почти невозможно. Поэтому книги расставляют по полкам, полки по секциям, секции по этажам.
Папки (директории) — это то же самое для файлов. Папка содержит файлы и другие папки. Вложенная папка называется подпапкой.
Типичная структура папок на Windows:
C:\
├── Windows\ ← системные файлы ОС
│ ├── System32\
│ └── ...
├── Users\
│ └── Nikita\ ← твоя личная папка
│ ├── Desktop\
│ ├── Documents\
│ │ └── Projects\
│ │ └── mycode.lua
│ └── Downloads\
└── Program Files\ ← установленные программы
Каждый элемент в этом дереве — это либо файл, либо папка. Папки образуют дерево с единственным корнем.
Путь к файлу
Чтобы найти файл, нужно знать его путь — адрес в этом дереве.
Абсолютный путь начинается от корня и описывает весь маршрут:
C:\Users\Nikita\Documents\Projects\mycode.lua
Относительный путь описывает маршрут от текущей папки:
Projects\mycode.lua ← если ты уже в Documents
..\..\Desktop\ ← две папки вверх, потом в Desktop
.. означает "родительская папка" — на один уровень вверх.
На Linux и macOS разделитель — /, путь начинается с /. На Windows — \, путь начинается с буквы диска C:\. В программах часто используют / как универсальный разделитель.
Как запускается программа
Когда ты двойным кликом открываешь .exe или запускаешь скрипт, происходит следующее:
- ОС находит файл на диске по пути.
- Загружает его в оперативную память (RAM). Диск медленный, а RAM быстрая — программы всегда работают именно в ней.
- Передаёт управление процессору. Процессор начинает выполнять инструкции из этого файла одну за другой.
- Программа работает. Она может читать файлы, рисовать окна, отправлять запросы в интернет — для всего этого она обращается к ОС.
- Программа завершается. ОС освобождает занятую память.
Интерпретируемые языки (как Lua, Python) работают немного иначе. Файл с кодом — это просто текст. Запускается не он сам, а специальная программа — интерпретатор. Интерпретатор читает твой текст строку за строкой и выполняет его. Это медленнее, но удобнее для разработки.
Терминал и командная строка
До того как появились окна и кнопки, все компьютеры управлялись через терминал — текстовый интерфейс, где ты пишешь команды, а компьютер их выполняет.
Сегодня терминал всё ещё жив и очень полезен:
- Быстрее мыши для многих операций
- Позволяет автоматизировать действия (скрипты)
- Работает на серверах, где нет никакого графического интерфейса
- Удалённое управление другими компьютерами
Терминал на Windows называется cmd или PowerShell. На Linux/macOS — bash или zsh. Ты пишешь команду, нажимаешь Enter, программа выполняется и выводит результат.
CraftOS — операционная система в Minecraft
Компьютеры в ComputerCraft работают точно так же, как настоящие. У них есть своя мини-операционная система — CraftOS.
Когда ты открываешь компьютер правой кнопкой мыши, ты попадаешь в терминал CraftOS. Здесь есть всё, что мы только что обсуждали:
Своя файловая система. У каждого компьютера есть внутренний "диск" — набор файлов и папок, которые хранятся в мире Minecraft. Ты можешь создавать файлы, организовывать их по папкам, перемещать и удалять.
Свои программы. В CraftOS уже встроены базовые программы: edit (текстовый редактор), lua (интерактивная консоль Lua), gps (определение координат). Ты можешь скачивать чужие программы через pastebin и создавать свои.
Свой интерпретатор. Когда ты запускаешь .lua файл, встроенный интерпретатор Lua читает его и выполняет команду за командой.
Структура диска CraftOS:
/
├── rom/ ← только для чтения, системные программы
│ ├── programs/ ← встроенные утилиты (edit, lua, gps...)
│ └── apis/ ← встроенные API (turtle, redstone...)
├── programs/ ← место для твоих программ (создаётся тобой)
├── my_miner.lua ← твой скрипт в корне
└── ... ← всё, что ты создашь
Команды терминала CraftOS
Теперь, когда ты понимаешь, что такое файлы, папки и пути, команды терминала становятся очевидными:
Навигация:
dir — показать содержимое текущей папки
cd programs — войти в папку programs
cd .. — выйти на уровень вверх
cd / — перейти в корень диска
Файлы:
edit my_script.lua — создать или открыть файл в редакторе
delete my_script.lua — удалить файл
copy source dest — скопировать файл
rename old_name new_name — переименовать
Папки:
mkdir programs — создать папку
delete programs — удалить папку (с содержимым!)
Компьютер:
label set Miner-01 — дать компьютеру имя
label get — проверить текущее имя
reboot — перезагрузить
shutdown — выключить
Запуск программ:
my_script — запустить файл my_script.lua
programs/my_script — запустить файл из папки programs
lua — открыть интерактивную консоль Lua
Почему важно давать компьютеру имя
Данные компьютера в ComputerCraft хранятся в папке внутри мира Minecraft. Если у компьютера нет имени (label), данные привязаны к конкретному блоку. Сломал его кетпогой — все файлы исчезли.
Если задать имя через label set, данные привязываются к имени. Ты можешь перенести блок в другое место — программы останутся. Это работает как флешка с именем.
label set Miner-01
Делай это всегда, прежде чем начать писать программы на новом компьютере.
Редактор edit
edit — это простой текстовый редактор, встроенный в CraftOS. Запускается командой:
edit my_program.lua
Если файл существует — откроется для редактирования. Если нет — создастся новый.
Внутри редактора работает клавиатура:
- Стрелки — перемещение курсора
Ctrl— открыть меню внизу экрана- В меню:
Save(сохранить),Exit(выйти),Find(поиск по тексту)
Горячие клавиши при работающей программе:
Ctrl + T(зажать) — принудительно завершить программуCtrl + R(зажать) — перезагрузить компьютер
Интерактивная консоль lua
Команда lua запускает интерпретатор в интерактивном режиме. Каждая строка выполняется сразу:
> print("Привет!")
Привет!
> 2 + 2
4
> x = 10
> print(x * 5)
50
> exit()
Это удобно для быстрых экспериментов. Но код здесь не сохраняется — для программ используй edit.
Как программа запускается в CraftOS
Запись my_program в терминале запускает следующий процесс:
- CraftOS ищет файл
my_programилиmy_program.luaв текущей папке - Если не находит — ищет в
/rom/programs/(встроенные программы) - Находит файл — передаёт его интерпретатору Lua
- Интерпретатор читает файл сверху вниз и выполняет каждую строку
- Когда файл заканчивается — программа завершается, возвращается терминал
Если программа содержит ошибку, интерпретатор остановится на строке с ошибкой и выведет её описание:
my_program:5: attempt to perform arithmetic on a nil value (global 'x')
Это значит: файл my_program, строка 5, ошибка — попытка математической операции с nil.
🚀 Задания
Задание 1
Присвой компьютеру имя командой label set. Выбери осмысленное имя (например, по роли робота или номеру). Проверь через label get.
Задание 2
Создай структуру папок для своих программ: папку programs, внутри неё — mining и building. Проверь структуру через dir на каждом уровне.
Задание 3
Создай файл programs/mining/test.lua через редактор edit. Напиши внутри print("Шахтёр запущен"). Сохрани. Запусти его — сначала перейдя в папку programs/mining и написав test, а потом из корня написав programs/mining/test.
Задание 4
Используй интерактивную консоль lua: вычисли несколько математических выражений, создай переменную, выведи её значение. Выйди из консоли через exit().
Задание 5
Создай файл с бесконечным циклом без паузы (while true do end) и запусти его. Дождись ошибки или зависания, затем зажми Ctrl + T чтобы завершить. Запомни это ощущение — оно понадобится, когда программа уйдёт в бесконечный цикл случайно.