И снова здраствуйте. Я продолжаю описывать нелёгкий путь от дуба до Мастера в OpenOS.
Начать предлагаю с вопросов, которые, к счастью, есть.
Начинает у нас ЛесхаИнц (@LeshaInc
). И его вопрос:
... Что же, приветствуем Вас на борту этой замечательнейшей операционки, работающая на чистом Луа. Основные принципы...
Что за глупости? OpenOS написана на чистом луа? Нет, друг мой, это не чистый луа.
Используются компоненты -component.gpu
,component.monitor
итд. А еще естьcomputer
в_G
... А эти компоненты - написаны на scala + eris либа, для lua. Так что не нужно вводить в заблуждения юных странников, которые только начинают ехать по пути "OpenOS".
Бедный человек не разделяет, что принадлежит самой ОС, а что — предоставляемому API компонентов. ОС принадлежит всё то, что написано именно для этой системы. То есть, например, в EEPROM этим кодом просто так Вы воспользоваться не сможете. АПИ компонентов предоставляет сам мод. И независимо от того, стоит ли на компьютере OpenOS, не стоит ли — API мода всё равно присутствует, следовательно, частью OpenOS считать это ошибочно.
Запомнил? Молодец. И больше не задавай глупых вопросов.
Сложность: средне
40%
Скучность: средне
35%
Дубовость: для начинающих
30%
Как и обещал, в этой части я поговорю о структуре ФС уже самой OpenOS и о первых инструментах, предоставляемых системой.
СТРУКТУРА ФАЙЛОВОЙ СИСТЕМЫ OPENOS
Файловая система OpenOS чрезвычайно похожа на оную из *nix. Сразу же после установки системы, у Вас появляются следующие папки:
/ // Корень |+ bin // здесь хранятся программы самой ОС |+ boot // здесь хранится загрузочный код ОС |+ etc // здесь хранятся файлы конфигурации | |+ rc.d // папка скрипта-демона |+ lib // здесь находятся бибилиотеки самой ОС |+ usr // все пользовательские файлы | |+ man // папка файлов справочной системы | |+ misc // папка различных файлов
Допустим, мы хотим узнать, какие программы есть в OpenOS. Для этого заходим
в директорию /bin/
(см. часть первую, если не помните,
как) и смотрим содержимое через ls
. Поразившись количеством программ,
можно выходить из директории. К ним мы вернёмся позже.
mkdir
Но вот, например, вам захотелось страстно создать в корне папку /kotiki/
.
Для этих целей присутствует утилита mkdir <имя папки>
. В нашем случае нужно
ввести mkdir /kotiki/
. Обратите внимание, что не рекомендуются в названии
папок пробелы и спецсимволы (могут возникнуть сложности с программами, но
если Вы решились так делать, то заключите путь в "кавычки"), и называть
папку так же, как файл на диске, не следует.
К слову, если нужно сделать две папки, можно обойтись одной командой:
mkdir <имя папки> [имя второй папки] [имя третьей папки] [...]
.
Тогда достаточно прописать, например, mkdir /kotiki/ /sobaki/
, чтобы
создать папку "kotiki" и "sobaki".
К слову, сразу же после установки, пропишите команду mkdir /usr/bin/ /usr/lib
.
Это понадобится.
rm
Предположим, что вы по ошибке прописали mkdir /koriki/
. Возникает вопрос —
как удалить папку? Для этого предназначена команда
rm <имя файла или папки> [имя второго файла или папки] [...]
.
Нужно удалить только одну папку, потому пишем: rm /koriki/
— и создаём
правильную папку. Напомню, что rm
может удалять ещё и файлы.
mv
Что, если Вам хочется не удалять всю папку, а только переименовать её?
Или перетащить с диска на дискету? Воспользуйтесь командой
mv <имя файла/папки> <место назначения>
.
Например, чтобы переименовать /koriki/
в обыкновенных котиков,
пропишем mv /koriki/ /kotiki/
cp
Куда же мы без копирования! Как в любой уважающей себя ОС, здесь тоже есть
такая функция. cp <путь к копируемому файлу> <путь в место вставки файла>
.
Например, cp ../cat1/ ./
.
edit
Но довольно возни с папками — мы пришли
программировать! А не в папках
копаться. Для создания и/или редактирования файла нужно прописать
edit <имя файла>
. Откроется редактор файлов. Управление такое же, как,
например, в блокноте. Стрелочками перемещаться, ввод стандартный. Вот только
для управления файлом вместо меню используются "горячие клавиши":
Ctrl
+S
— сохранение файлаCtrl
+W
— закрытие файла (файл НЕ сохраняется!!)Ctrl
+Del
— удаление строкиCtrl
+F
— поискF3
илиCtrl
+G
— поиск следующего совпадения
Внизу справа отображается текущая позиция курсора.
Запуск программ. PATH
Чтобы запустить свою программу, пропишите путь до неё (например,
myfirstprogram.lua
). Если у файла расширение .lua
, то писать его
необязательно. Кроме того, если программа находится в /bin
или /usr/bin
(Ваши программы советую сохранять в последнюю папку), то вызвать их можно,
просто прописав название программы без расширения, причём в любой папке.
Именно так и работают стандартные программы (например, cd
, mkdir
и др.)
То есть, при попытке запустить файл какой-либо, сначала обыскиваются директории
в PATH
(это /bin
и /usr/bin
) и, если программы такой не найдено,
система пытается запустить файл в текущей директории.
Если у Вас в текущей директории есть файл rm.lua
, то, чтобы не запускать
стандартную утилиту, пропишите ./rm.lua
. Если указана директория в пути, то
поиск в PATH
пропускается.
ДРУГИЕ СТАНДАРТНЫЕ ПРОГРАММЫ OPENOS
man. Справочная система
На этой команде я мог бы и закончить описание системы, так как для большинства
стандартных программ есть описание в man
. man
— это команда, которая
открывает файл справочной системы для чтения.
Начните с man man
. Вам расскажется о программе.
А теперь пропишите команду ls /usr/man/
.
Вы увидите список файлов справочной системы. Например, resolution
. Для
просмотра файла пропишите man <название файла справочной системы>
. В данном
случае — man resolution
. Для каждой изученной ранее команды прочитайте
справочную информацию, чтобы Вы могли использовать их на полную силу.
cat <имя файла>
Простой просмотр содержимого файла. Нет возможности управления курсором,
если содержимое больше высоты экрана — всё, ничего не поделать (на самом
деле, это не так, с помощью more
можно сделать это удобным, но для
использования потребуется пайпинг, о котором я поговорю в другой раз).
clear
Очистка терминала.
date
Выводит текущие время и дату.
echo
Просто выводит данную строку на экран (echo [строка]
) Строку желательно
заключить в "кавычки", чтобы избежать разных проблем. В простом виде
бессмысленна, нужна опять-таки для пайпинга.
install
Скопировать полностью содержимое всей файловой системы на другой накопитель, вместе со всеми Вашими файлами.
ln <путь к файлу> [место назначения]
Создать сиволическую ссылку на данный файл. Если место назначение не указано, то в текущую директорию вставляется ссылка с именем файла.
К слову, эти ссылки виртуальные и не хранятся на файловой системе. После перезагрузки компьюетра они стираются. Таким образом, они могут создаваться даже на системах только для чтения!
pwd
Выводит на экран текущую рабочую директорию. Полезно, опять же, при пайпинге.
reboot
Перезагрузка системы.
shutdown
Остановка системы.
resolution
Изменение расширения экрана. Синтаксис: resolution <ширина> <высота>
.
Максимальное разрешение зависит от монитора и видеокарты.
uptime
Время работы системы
which <файл>
Выводит путь до указанной программы или сиволической ссылки. Например,
which rm
выведет /bin/rm.lua
.
yes [строка]
Бесконечно повторяет заданную строку, или "y", если не задано. Сомнительная полезность.
Списка терминов тут не будет, так как придётся копировать информацию из статьи. Всё, что было изучено — это программы и структура ОС.
Да и на самом деле, я рассмотрел далеко не все программы и возможности, имеющиеся в OpenOS. В следующей части — о пайпинге и устройствах, а также о программах, с ними связанных, так что не пропустите, если Вам интересно.