Обучение — На каком языке пишут программы под Astra Linux


Содержание

Обучение — На каком языке пишут программы под Astra Linux?

Предполагается, что читатель этой книги должен иметь хотя бы начальные пользовательские навыки при работе с GNU/Linux (умение вводить команды в оболочку и знать основы операционной системы), а также знать язык C хотя бы на начальном уровне. Я посчитал бессмысленным писать еще одну книгу по языку C. Если вы знаете язык C на уровне книги Кернигана и Ритчи «Язык программирования Си», то у вас не будет проблем с изучением материала этой книги.

Если вы знаете язык C++, но не знаете C, ничего страшного. Эти два языка хотя и разные по своей сути, но имеют одну и ту же синтаксическую основу. C++-программисту не надо обладать феноменальной сообразительностью, чтобы разобраться в программе, написанной на C.

Большая часть материала этой книги относится и к другим современным Unix-подобным операционным системам (FreeBSD, например). Если вы еще не знаете Linux, то больших проблем не будет.

1.2. Условные обозначения

В книге используется достаточно мало условных обозначений. Листинги программ, а также вырезки из листингов и содержимое конфигурационных или иных файлов выделяются синим цветом:

Примеры команд, вводимых в оболочку выделяются оранжевым цветом и начинаются с символа $ (приглашение командной строки). Вывод команд выделяется жирным шрифтом:

Примеры команд, вводимых от имени суперпользователя (root) выделяются так же, как и обычные команды, только в качестве приглашения командной строки используется символ #

Некоторые вещи в основном тексте, на которые я хотел бы обратить ваше внимание, будут выделяться жирным шрифтом. Некоторые термины, которые следует запомнить, будут выделяться курсивом. Кроме того, жирным шрифтом могут быть отделены от основного текста имена файлов, имена функций и т. п.

1.3. Что нужно иметь

То, что нам нужно иметь, называют инструментарием. Инструментарий программиста зависит от того, какие программы и на каких языках он будет писать. Наш инструментарий будет состоять из: 1) Операционной системы Linux (GNU/Linux) с текстовым редактором; 2) Компилятора с линковщиком; 3) Дополнительных утилит. Ну и конечно же из терпения и усердия.

Для начала нужно иметь Linux (здесь правильнее будет сказать GNU/Linux). Подойдет практически любой современный дистрибутив. Посмотрите, какая версия ядра Linux у вас используется. Наберите в оболочке следующую команду: У меня ядро версии 2.6.10. У вас, скорее всего, будет что-то другое. Дистрибутивы, построенные на ядрах версий 2.4.x и 2.6.x достаточно современные для того, чтобы воспроизвести все примеры в этой книге. Версии 2.0.x и 2.2.x также могут использоваться, но некоторые возможности, описанные в этой книге в этих ядрах не реализованы.

Следующий шаг — компилятор. Мы будем использовать компилятор gcc (не обсуждается!). Практически все дистрибутивы Linux поставляются вместе с компилятором языка C. Вопросы о том, какие программы установлены, как устанавливать недостающие программы выходят за рамки этой книги. Поэтому не буду объяснять, как проверить присутствие в системе компилятора. На начальном этапе обучения версия компилятора не имеет значения. Если у вас есть компилятор gcc, то и линковщик (о том, что это такое, будет рассказано позже) тоже есть (вероятность 99%).

Многие программисты используют различные оболочки для программирования (KDevelop, Glade и прочие). Мы откажемся от этого подхода по двум причинам: 1) это претит идеологии Unix; 2) за всеми этими средами разработки стоят те самые утилиты, которые мы будем использовать непосредственно. Нам на начальном этапе потребуется лишь утилита make.

И, наконец, немаловажная деталь. Текстовый редактор. Здесь на вкус и цвет товарища нет. В мире Unix-систем есть два лагеря: любители Vi и любители Emacs. В настоящее время написано много клонов редактора Vi (Vim, Elvis, GVim) и много клонов (а точнее — расширений) редактора Emacs. И для Vi и для Emacs существуют как консольные так и графические версии. Нет смысла обсуждать преимущества и недостатки этих двух «гигантов». Вам придется самостоятельно выбрать наиболее удобный для вас текстовый редактор. Возможно вам не понравится ни один из них и вы будете использовать что-нибудь наподобие kate или nedit или pico. Между прочим, редактор Pico открывает свой третий лагерь поклонников. Этот редактор, изначально разработанный в Вашингтонском университете для почтовика pine, а затем ставший самостоятельным редактором, уверенно набирает силу в сообществе Unix. Если вы полный аскет, можете попробовать редактор ed (red), который мало напоминает текстовый редактор в современном понимании. Опять же повторюсь, выбор за вами. Я использую консольную версию редактора Vim, но с большим уважением отношусь и к Emacs. Очень важно попробовать оба редактора «в полную силу», а не просто «взглянуть». Только опытный пользователь сможет за видимой неуклюжестью ощутить мощь и удобство. Это одна из важнейших граней идеологии Unix.

Подавляющую часть работы мы будем проводить в командной строке. «Командная строка» — общий термин, подразумевающий собой сочетание терминальной программы и командной оболочки. Терминальная программа (или программа эмуляции терминала), это то, что вы видите на экране, когда работаете с командной строкой. Терминальная программа позволяет пользователю вводить команды и видеть результаты их выполнения. Программа konsole в KDE, например, является терминальной программой. Под терминальной программой запускается командная оболочка (командный интерпретатор или просто shell). Командная оболочка через интерфейс терминальной программы общается с пользователем и выполняет всю основную работу. Bash, Csh, Ksh — это все командные оболочки или, как их еще называют, командные интерпретаторы. В Linux я рекомендую использовать оболочку Bash (Bourne Again SHell). Однако не произойдет ничего страшного, если вы будете использовать другую командную оболочку, например C-Shell (csh), у которой достаточно своих поклонников. Как вы позже узнаете, любая командная оболочка — это не просто исполнитель команд, но и полноценный интерпретатор собственного языка программирования. Чтобы узнать, какая оболочка запущена под терминальной программой, просто наберите команду ps. В одной из строк (скорее всего — в первой) будет написана ваша командная оболочка: В моем случае это bash.

1.4. Обратная связь

Если вы заметили ошибки/опечатки. Или если что-то в этой книге плохо описано, сообщайте об этом по адресу zlp@lindevel.ru или форуме на сайте Lindevel.Ru (http://www.lindevel.ru).

Книга распространяется на условиях GNU Free Documentation License. В соответствии с условиями этой лицензии вы можете свободно скачивать и распространять книгу без каких-либо разрешений, но не нарушая и не изменяя условий Лицензии. Если вы хотите поместить копию книги на своем Интернет-ресурсе или просто распечатать — делайте это свободно, как завещал великий Столлман!

Вы также можете вносить самостоятельные изменения в эту книгу. В этом случае я просто прошу сообщать мне об этом.

Авторизованные курсы по Astra Linux Special Edition

Учебный Центр ФОРС имеет авторизацию АО «НПО РусБИТех» на проведение учебных курсов по Astra Linux Special Edition.
Astra Linux — операционная система специального назначения на базе ядра Linux, созданная для комплексной защиты информации и построения защищённых автоматизированных систем, востребована в первую очередь в российских силовых ведомствах, спецслужбах и государственных органах.
Операционная система предназначена для создания на ее основе автоматизированных систем в защищенном исполнении, обрабатывающих информацию до степени секретности «Особой Важности» включительно.
Сертифицирована в системах сертификации средств защиты информации Минобороны, ФСТЭК и ФСБ России.
Включена в Единый реестр российских программ Минкомсвязи России.

Почему выбирают обучение Astra Linux в Форс :

В штат наших преподавателей входят лучшие специалисты, стоявшие у истоков внедрения по Astra Linux в России. Все это, в совокупности с высокими требованиями к организации процесса обучения в авторизованных учебных центрах, служит получению наилучших результатов по усвоению программ слушателями на курсах по Astra Linux.

Высокий уровень профессионализма и огромный практический опыт наших преподавателей позволяет нам идти в ногу с последними разработками Oracle и оперативно внедрять новейшие учебные программы, удерживая лидерство на рынке. Все преподаватели Форс сертифицированы Русбиттех и участвуют в различных реальных проектах по созданию защищенных информационных систем.

  • Курс основан на программе вендора — авторитетной рекомендации разработчика Astra Linux
  • За счет большей интенсивности курса и отлаженной программе, дополнительно к основному материал, слушатели изучают и дополнительный , который, по нашему опыту работы с Astra Linux, необходим в реальной жизни. Список дополнительных материалов вы можете посмотреть на страничке описания каждого курса, перейдя по ссылке «подробная программа»
  • Каждая изучаемая тема состоит из трех основных блоков:
    1. Первое: это необходимая теория, глубокое понимание которой — основа для дальнейшего усвоения материала.
    2. Далее, преподаватель демонстрирует на своем экране практические примеры, особое внимание уделяется сложным случаям и спорным ситуациям.
    3. Наконец, на самостоятельной лабораторной работе слушатели закрепляют полученные знания.
      Данная методология обучения способствует максимальной усвояемости материала.
  • В конце курса слушатели сдают небольшой тест, который помогает выявляют материал, усвоенный слабее и, в случае наличия такового, преподаватель индивидуально консультирует слушателя по всем возникшим вопросам.

  • После окончания курса и получения диплома от УКЦ ФОРС установленного образца и сертификата РусБиТех, наши отношения со студентами не прекращаются. Форс поддерживает онлайн-ресурс, где слушатели всегда могут как задать вопрос преподавателю, так и коллективно обсудить с другими студентами возможные проблемы. В конце концов, преподаватели всегда проконсультирует по телефону или лично по всем возникшим вопросам. Такое отношения выгодно отличает УКЦ ФОРС и, справедливости ради, относится не только к курсам по Astra Linux , а и к остальным вендорам.
  • Мы не учим Вас «голой» теории, мы учим Вас именно работать с Астрой, — знать ее, чувствовать ее, доверять ей и решать любые возникшие с ней проблемы. Образование – это не просто запоминание неких фактов, образование должно давать метод. Мы в УКЦ ФОРС знаем это и реализуем в своей повседневной работе с вами, дорогие слушатели.
  • В зависимости от линейки пройденных курсов, слушателям предоставляется возможность бесплатной сдачи экзамена на статус сертифицированного специалиста по Astra Linux
  • Проводим обучение по всей России.
Цукерберг рекомендует:  Как дополненная реальность меняет жизнь человека

Линейка курсов Astra Linux.

На текущий момент авторизованное обучение можно пройти по следующим программам:

Astra Linux для пользователей

Код: astralinux1
Направление обучения: Пользователь Linux, Импортозамещение, Свободное программное обеспечение
Продолжительность: 2 дня / 16 часов
Цена для физ. лиц: 16000 руб.
Цена для юр. лиц: 16000 руб.

Аннотация

Astra Linux — отечественная операционная система (разработка «НПО РусБИТех»), сертифицированная ФСБ, Минобороны и ФСТЭК России, позволяющая обрабатывать информацию ограниченного доступа вплоть до степени секретности «Совершенно секретно» в автоматизированных системах министерств, ведомств и компаний с повышенными требованиями к информационной безопасности. OC Astra Linux включена в Единый реестр российского ПО Минкомсвязи России.

На платформе Astra Linux развернуты и функционируют десятки информационных систем — как в государственных, так и в коммерческих структурах.

Потребность в специалистах по операционной системе специального назначения заметно растет. В скором времени знание Astra Linux может стать конкурентным преимуществом для кандидатов при трудоустройстве в государственные учреждения и крупные организации с высоким вниманием к информационной безопасности.
Академия АйТи является авторизованным учебным центром Astra Linux.

Учебная программа данного курса разрабатывалась специально для тех пользователей, которые только начали работать с ОС Linux или переходят с другого дистрибутива Linux на ОС Astra Linux, а также с ОС Windows на Linux.
Пройдя обучение, слушатели получат начальные знания об операционной системе Astra Linux, научатся работать в основных приложениях и обеспечивать защиту информации в ОС, а также легко смогут применять приобретенные умения и навыки в реальных рабочих условиях.

Описание образовательной программы

После изучения курса слушатель будет:

Знать:

  • фундаментальные основы операционной системы Astra Linux;
  • особенности работы в Astra Linux Special Edition;
  • основные отличия работы в LibreOffice от MS Office;
  • основные принципы КСЗ (комплекс средство защиты)

Уметь:

  • работать в графической среде Fly Astra Linux;
  • редактировать и сохранять документы в LibreOffice;
  • различать дискретный и мандатный контроль

Владеть:

  • основными приемами работы с приложениями и организацией защиты информации в Astra Linux Special Edition

Цель курса

Формирование знаний и навыков, необходимых для работы с операционной системой Astra Linux.

Целевая аудитория

Пользователи OC Astra Linux

Необходимая подготовка

Начальные навыки работы на компьютере в любой операционной системе

Содержание

1. Введение в Astra Linux

История Linux.
Дистрибутивы Linux.
Версии и редакции Astra Linux.
Особенности и преимущества Astra Linux.

2. Основные приёмы работы и настройки Astra Linux

3. Приложения, съемные носители и печать в Astra Linux


Офисные приложения — Libre office Пакет офисных программ для работы с документами:

— текстовый редактор WRITER (Форматы: .odg, .doc (97/XP/2000/2003), .docx (2007-2013), .rtf, .pdf);

— табличный редактор CALC (Форматы: .ods, .xls (97/XP/2000/2003), .xlsx (2007-2013), .dbf, .csv);

— редактор презентаций IMPRESS (Форматы: .odp, .ppt (97/XP/2000/2003), .pptx (2007-2013), .pps);

— векторный редактор DRAW (Форматы:.odg, .vsd (Visio), .jpg, .gif, .png, .bmp, .tif, tiff, .eps)).

Приложения для работы с графикой (GIMP, EasyPaint, Inkscape, работа с изображениями (fly-image), распознавание текста (fly-ocr), сканирование (fly-scan), снимок экрана (fly-snapshot), фотокамеры (fly-photocamera)).

Приложения для работы с мультимедиа (VLC Media Pleer, QasMixer, Audacity, Clementine, guvcview, видеозапись, запись дисков, звукозапись).

Монтирование съемных носителей.

Контроль целостности данных на носителях.

Средства работы в сети: Firefox, Thunderbird, Psi.

4. Средства защиты информации (СЗИ) в Astra Linux

Комплекс средств защиты (КСЗ).

Дискреционное управление доступом. Списки контроля доступа (ACL).

Мандатный контроль целостности. Неиерархические уровни целостности.

Мандатное управление доступом, иерархические и неиерархические категории.

Получаемый документ

По результатам обучения слушатели получают Сертификат вендора и Удостоверение о повышении квалификации в Академии АйТи.

Обучение Astra Linux бесплатно

Приобретая лицензии на продукты Astra Linux стоимостью не менее 500 000 руб., вы получаете сертификат на обучение в авторизованном учебном центре Astra Linux на сумму 10% от стоимости лицензий.

Данная акция направлена на решение главной проблемы импортозамещения – отсутствие кадров и компетенций для работы с российскими программными продуктами.

Условия:

  • в акции принимают участие контракты общей стоимостью не менее 500 000 ₽ на любые операционные системы Astra Linux и ПК «СВ БРЕСТ», за исключением лицензий для школ (полный перечень артикулов, участвующих в акции, указан в полных правилах акции);
  • в акции не участвуют продукты, приобретённые в составе аппаратного обеспечения;
  • срок действия сертификата – 1 (один) год с момента выдачи;
  • срок действия акции – с 01.09.2020 г. до 31.12.2020 г.;
  • количество сертификатов ограничено.

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

Astra Linux. Базовое администрирование

Очное обучение

Очное обучение – это обучение в одном из 13 городов России, где есть классы Учебного центра Softline (Москва, Санкт-Петербург, Владивосток, Екатеринбург, Казань, Красноярск, Нижний Новгород, Новосибирск, Омск, Ростов-на-Дону, Самара, Уфа, Хабаровск).

Вы приезжаете в указанное администратором время по нужному адресу и проходите обучение на наших ПК. Все лабораторные работы и/или практические задания будут заранее настроены нашими техническими специалистами и готовы к работе. В стоимость очного обучения входит блокнот, ручка, учебники и пособия, чай/кофе/вода/печеньки и обед. Иногородним слушателям, желающим обучаться в наших классах очно, мы помогаем с подбором и бронированием гостиницы (командировку вы оформляете за свой счёт).

Дистанционное обучение

Если в вашем городе нет класса, вы можете пройти обучение в дистанционном формате. Стоимость дистанционного курса на 10% меньше, чем очного.


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

В курсе рассматривается Astra Linux Common Edition и Astra Linux Special Edition.

Место обучения Формат Дата и время (МСК) Стоимость
Место обучения Формат Дата и время (МСК) Стоимость
Очный Дистанционный 25 — 27 ноября 2020
пн, 10:00 — ср, 17:00
Очный 16 — 18 марта 2020
пн, 07:00 — ср, 14:00
Очный Дистанционный 21 — 23 мая 2020
чт, 10:00 — сб, 17:00
Очный Дистанционный 10 — 12 августа 2020
пн, 10:00 — ср, 17:00
Очный Дистанционный 19 — 21 октября 2020
пн, 10:00 — ср, 17:00

Профиль аудитории:

  • Курс будет интересен начинающим системным администраторам или тем, кто только планирует попробовать себя в этой профессии.

Предварительные требования:

  • Понимание принципов работы операционных систем.

По окончании курса слушатели смогут:

  • Использовать основные команды администрирования системы;
  • Уметь устанавливать ОС и понимать нюансы инсталляции ОС;
  • Управлять пользователями и группами;
  • Управлять запуском сервисов;
  • Использовать средства мониторинга системы;
  • Планировать и выполнять задачи по расписанию;
  • Удаленно подключаться к системы для администрирования в командной строке.

Модуль 1. Введение в операционные системы семейства Astra Linux

  • Введение в операционные системы семейства Astra Linux

Модуль 2. Установка и настройка операционной системы Astra Linux

  • Установка операционной системы Astra Linux Special Edition
  • Понятие и применение виртуальных консолей
  • Основы работы с командными интерпретаторами
  • Общие сведения о справочных системах
  • Лабораторная работа 2 — Установка и настройка операционной системы Astra Linux

Модуль 3. Основы командной строки операционной системы Astra Linux

  • Интерпретатор командной строки (Shell)
  • Использование консольного файлового менеджера.
  • Обзор основных команд интерпретатора.
  • Лабораторная работа 3 — Основы командной строки операционной системы Astra Linux

Модуль 4. Основные понятия о файлах, типы файлов в Linux

  • Файлы в ОС Astra Linux
  • Файловая система
  • Работа с файлами в командной строке
  • Создание, редактирование и сохранение текстовых файлов в редакторе vi/vim.
  • Команды поиска
  • Конвейеры и перенаправление ввода-вывода
  • Лабораторная работа 4 — Основные понятия о файлах, типы файлов в Linux


Модуль 5. Дискретное управление доступом

  • Введение в дискретное управление доступом
  • Разграничение прав доступа
  • Лабораторная работа 5 — Дискретное управление доступом

Модуль 6. Администрирование пользователей и групп

  • Пользователи и группы системы
  • Управление пользователями
  • Настройки операционной системы и среды пользователя
  • Утилиты администрирования учетных записей пользователей
  • Лабораторная работа 6 — Администрирование пользователей и групп

Модуль 7. Процессы в Linux

  • Основные характеристики процессов
  • Управление процессами
  • Лабораторная работа 7 — Процессы в Linux

Модуль 8. Планировщики и автоматизация задач

  • Планирование задач с помощью cron
  • Планирование задач с помощью утилиты at
  • Лабораторная работа 8 — Планировщики и автоматизация задач

Модуль 9. Архивирование файлов и выполнение удаленной передачи

  • Архивирование файлов
  • Удаленное копирование
  • Лабораторная работа 9 — Архивирование файлов и выполнение удаленной передачи

Модуль 10. Использование SSH

  • Общие принципы работы SSH
  • Настройка службы SSH
  • Конфигурация SSH в качестве сервера
  • Настройка клиента SSH
  • Генерация ключей
  • Подключение с использование открытого ключа
  • Лабораторная работа 10 — Использование SSH

Форум русскоязычного сообщества Ubuntu

За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Программирование под линукс с нуля (Прочитано 9176 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Страница сгенерирована за 0.064 секунд. Запросов: 22.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Astra Linux 2.12 Orel — избавляемся от стереотипов о российском ПО


Astra Linux 2.12 Orel — избавляемся от стереотипов о российском ПО

  • Автор: Уваров А.С.
  • 26.05.2020

Хорошо говорить об отечественном ПО у нас почему-то не принято. Да, многие образцы ведомственных программ представляют шедевры криворукости, но это не повод мазать всю отрасль одной краской. Сегодня существует определенный ажиотаж вокруг отечественной ОС и темы импортозамещения. Если отбросить отсюда всю информационную мишуру, то мы не видим в данной затее ничего плохого, особенно если речь идет об информационных структурах государственных и силовых ведомств. Сегодня мы решили рассмотреть отечественную ОС Astra Linux, недавно получившую допуск для работы с данными высшей степени секретности.

В отличие от недавно рассмотренного нами Эльбруса, который был выложен в виде мало к чему пригодного полуфабриката, Astra Linux является завершенным коммерческим продуктом. Существуют две основных редакции ОС: общего назначения ( Common Edition) — релиз «Орел» и специального назначения (Special Edition) — релиз «Смоленск». Понятно, что все доступы и сертификаты имеет ОС специального назначения и просто так получить ее не представляется возможным, в то же время «Орел» доступен всем желающим и бесплатен для некоммерческого применения.

Чтобы сразу пресечь спекуляции по поводу платного Linux, скажем, что свободное ПО не ставит знак равенства с бесплатным. Хотя мы и считаем, что финансирование отечественной ОС должно производиться государством, коммерческая модель здесь тоже имеет место и если деньги за систему пойдут отечественным разработчикам — ничего плохого в этом не будет. Тем более основные заказчики Astra Linux — это силовые ведомства, а там свои методы финансирования и взаимоотношений с подрядчиками.

С учетом того, что Astra Linux в полной мере поддерживает отечественную криптографию, цена лицензии на ОС общего назначения не так уж велика.

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

Инсталлятор представляет собой стандартный инсталлятор Debian, поэтому мы не будем подробно на нем останавливаться, все привычно и понятно. Сразу обратим внимание на предлагаемый выбор ПО, а именно на графическую оболочку Fly, которая является собственной разработкой. Это сразу ставит Astra Linux несколько особняком от других дистрибутивов на базе Debain, собственными графическими оболочками могут похвастаться немногие из них.

Что касается набора ПО, то для рабочей станции он достаточно сбалансирован, а что-то специализированное всегда можно поставить отдельно, специалисты обычно знают, что им нужно, а простому пользователю обилие «непонятных» пакетов ни к чему.

Отдельно предлагается ряд специфичных настроек, скажем, возможность использовать ядро Hardened, включающее в себя дополнительные настройки безопасности или возможность использовать службу ALD (Astra Linux Directory). Про нее следует сказать отдельно, это не очередная свободная реализация Active Directory, а полностью самостоятельная разработка с прицелом на создание собственной доменной системы. Процитируем разработчиков:

При разработке ALD задача имитации контроллера домена Microsft Windows не решалась. Таким образом, включение машины ОС Microsft Windows в домен ALD штатными средствами ОС Microsft Windows невозможно. Установив в ОС Microsft Windows клиента MIT Kerberos вы сможете получить билеты Kerberos на сервере ALD. Далее вы получите доступ к серверам печати, СУБД, WEB и электронной почты в сеансе с нулевыми мандатными атрибутами. Если вам необходимо получать доступ к ресурсам серверов, работающих под управлением Astra Linux, в ненулевом мандатном контексте, то вам необходимо самостоятельно разработать клиента ALD под Microsft Windows.

Может показаться, что разработчики изобретают очередной велосипед, но это не так, обычные, «гражданские» системы, в том числе и Active Directory, применяют дискреционное (избирательное) управление доступом. Это предполагает, что у каждого объекта системы есть свой владелец, который и устанавливает права доступа к нему, также может быть суперпользователь (Администратор, root и т.д.) который может изменить владельца и права доступа к любому объекту.

В структурах с конфиденциальной и секретной информацией применяется иной подход — мандатное (принудительное) управление доступом, основанное на имеющихся у субъекта уровнях доступа.

Простой пример: допустим Василий на некоторое время был переведен в отдел A, получил на файловом сервере свою папку и работал в ней с документами, потом вернулся в отдел B. При избирательном доступе Василий потеряет доступ к папкам отдела А, но сохранит доступ к собственной папке и файлам, так как является их владельцем. При мандатном доступе, покинув отдел А от потеряет право доступа к документам с отметкой «для служебного использования», в том числе и к тем, что он создал.

Astra Linux Directory как раз представляет реализацию домена с мандатной системой и никоим образом не заменяет и не подменяет Active Directory, представляя систему с принципиально иным подходом к разграничению прав доступа.

В остальном процесс установки ничем не отличается от Debian и каких-либо затруднений не вызывает. Окно входа в систему выполнено достаточно аккуратно, преимущественно в плоском стиле, в строгой цветовой гамме.

После входа в систему нас встречает рабочий стол. От былой аляповатости не осталось и следа, все строго и выверено. И если встречать по одежке, то здесь у Astra Linux все хорошо, а сам рабочий стол чем-то напоминает KDE и Windows одновременно, представляя собой классическое рабочее пространство, что не должно вызвать сложностей с его освоением.

Меню Пуск также выполнено в классическом стиле и ему не хватает интерактивного поиска, но в остальном впечатления только приятные. Набор прикладного софта преимущественно стандартный, входящий в актуальный Debain, подобран хорошо и закрывает большинство потребностей пользователя из коробки.

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

Файловый менеджер довольно прост, на уровне простых оболочек вроде XFCE или LXDE, но понятен и удобен в работе.

Но есть и интересные «фишки» вроде двухпанельного режима:

Также обращает внимание довольно скромное потребление системных ресурсов, на виртуальной машине с 2 ГБ памяти Astra Linux чувствует себя достаточно комфортно.

В качестве офисного пакета используется LibreOffice с плоской темой, отлично вписываясь в общий вид системы, некоторое недоумение вызвал только калькулятор. Нет, он очень крутой, но большинству этого не надо.

Даже если говорить за себя, то такой калькулятор нам нужен, но не на каждый день. Тем более что в репозиториях мы нашли более привычный вариант:

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

Панель управления также несет в себе сильное влияние Windows и в данном случае это хорошо, пользователь получает более-менее привычные инструменты, что позволяет решать многие задачи просто по аналогии.

Скажем настройка автозагрузки:


Или переменных окружения:

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

Одним из недостатков системы некоторые обозреватели ставят отсутствие магазина приложений. Да это так, и это можно было бы записать в недостаток, если бы не четкое позиционирование данной системы для государственных и силовых учреждений. Спросите любого системного администратора что он думает о магазине в Windows 10, узнаете много интересного, скорее всего в непечатной форме. Исходя из этого, отсутствие магазина становится не столь критичным. Нужное ПО установит администратор, а у пользователей будет меньше соблазнов.

Из графических инструментов доступен привычный Synaptic и простая утилита для обновления:

Второй из озвучиваемых недостатков — слабая поддержка Samba из коробки. Действительно, ее нужно настраивать руками. Хотя, учитывая стремление разработчиков к собственной экосистеме со своим доменом, это выглядит вполне обоснованным. Там, где будет применяться Astra Linux, особенно специальный выпуск, взаимодействие с Windows машинами будет далеко не самой главной задачей, а скорее наоборот.

Ну а при необходимости нормальный администратор все быстро настроит, Samba она везде одинаковая. Также можно скачать из репозитория графический инструмент управления, который поможет быстро расшарить папку.

В целом же система очень приятна, как по внешнему виду, так по комфорту работы. Существенных недостатков мы не обнаружили, а описанные выше явно притянуты за уши, особенно если учитывать назначение системы.

Так как у нас система общего назначения, то попробуем установить что-нибудь со стороны, для этого выпуска это вполне допустимо, в отличии от систем специального назначения. Попробуем скачать и установить Google Chrome. Никаких проблем у нас при этом не возникло, а все зависимости подтянулись из собственных репозиториев дистрибутива.

Как видим, система не ставит никаких палок в колеса и позволяет без проблем ставить сторонние пакеты, подключать сторонние репозитории и вам доступны все возможности экосистемы Debian.

Но мы пошли дальше, попробовав установить клиентскую часть 1С:Предприятие, что не вызвало у нас ни малейших затруднений.

За все время работы в Astra Linux у нас не возникло каких-либо серьезных проблем. По большинству ощущений это все тот же Debain, если вы умеете работать с ним или его производными, то и с Astra проблем не возникнет. Но в тоже время Astra Linux не просто еще один Debian, многие пакеты, такие как SSH, OpenVPN, веб-сервера скомпилированы с поддержкой отечественной криптографии, что важно для определенных сфер применения.

В заключение хочется сказать, что Astra Linux нам понравился. Это хорошая отечественная система с довольно специфичными областями применения, но в тоже время она выглядит очень достойно и в качестве дистрибутива общего назначения. И особенно приятно, что она идет против всех сложившихся стереотипов о российском ПО, представляя пример отличного современного дистрибутива с собственной графической оболочкой и внимательным подходом к мелочам.

Язык программирования Linux

(Для ленивых: первый абзац — введение)

В Бауманке учился на программиста (ИУ-7, если конкретнее)

Язык программирования Си у нас вела милая бабушка. Она когда-то Бауманку в своё время закончила и, видимо, спец.по лазерам. Но не в программировании. эх. Мы её тогда так и звали — «Бабушка Ши» (по первой букве фамилии). Она на лекции, переписывая с конспектов на доску, могла запросто ошибиться и первую половину строки написать с одной строки, а вторую с другой. На любые замечания студентов о том, что написанная на доске программа работать не будет, отвечала, что у неё на листочке ровно так и написано.

И лабораторные так же сдавали

— А где у вас тут в программе происходит чтение (. ) ?

Думаю — «блин.. кстати, забыл совсем про это». Указываю в монитор в произвольное место кода:

— Агаа.. вижу.. сдал. Молодец.

Студенты к ней в целом привыкли и замечания на лекциях делать быстро перестали. Кому нужно было учиться, учились сами, а кто жил от зачёт до зачёта, считал бабушку Ши диким везением.

Как-то в тишине переписывала она лекцию с листочка на доску, а мы копировали это к себе в конспекты.

Скромный стук в дверь, появляется голова какого-то парня:

— Извините, можно я объявление дам?

Та прервалась и говорит:

— Да, конечно! Заходите.

— Я выпускник Бауманки, организовал кружок по Linux, собираемся по средам и пятницам вечером, — пишет все контакты на доске, — приходите, пообщаемся, новички узнают новое, профи обменяются опытом.

Откланялся и ушёл.

Бабушка Ши посмотрела на написанные контакты, озаглавленные «Linux», повернулась к аудитории и произнесла:

— Очень здорово, я считаю! Приходите к мальчику, будете знать ещё один, новый язык программирования Linux.


В её фразе было потрясающим каждое слово

Гуманитарии могут сказать «Ну мало ли, человек не знал».

Как создать свой язык программирования: теория, инструменты и советы от практика

На протяжении последних шести месяцев я работал над созданием языка программирования (ЯП) под названием Pinecone. Я не рискну назвать его законченным, но использовать его уже можно — он содержит для этого достаточно элементов, таких как переменные, функции и пользовательские структуры данных. Если хотите ознакомиться с ним перед прочтением, предлагаю посетить официальную страницу и репозиторий на GitHub.

Введение

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

Тем не менее, я написал абсолютно новый язык. И он работает. Наверное, я что-то делаю правильно.

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

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

Первые шаги

«А с чего вообще начинать?» — вопрос, который другие разработчики часто задают, узнав, что я пишу свой язык. В этой части постараюсь подробно на него ответить.

Компилируемый или интерпретируемый?

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

Технически любой язык можно как компилировать, так и интерпретировать. Но для каждого языка один из методов подходит больше, чем другой, и выбор парадигмы на ранних этапах определяет дальнейшее проектирование. В общем смысле интерпретация отличается гибкостью, а компиляция обеспечивает высокую производительность, но это лишь верхушка крайне сложной темы.

Я хотел создать простой и при этом производительный язык, каких немного, поэтому с самого начала решил сделать Pinecone компилируемым. Тем не менее, интерпретатор у Pinecone тоже есть — первое время запуск был возможен только с его помощью, позже объясню, почему.

Прим. перев. Кстати, у нас есть краткий обзор серии статей по созданию собственного интерпретатора — это отличное упражнение для тех, кто изучает Python.

Выбор языка

Своеобразный мета-шаг: язык программирования сам является программой, которую надо написать на каком-то языке. Я выбрал C++ из-за производительности, большого набора функциональных возможностей, и просто потому что он мне нравится.

Но в целом совет можно дать такой:

  • интерпретируемый ЯП крайне рекомендуетсяписать на компилируемом ЯП (C, C++, Swift). Иначе потери производительности будут расти как снежный ком, пока мета-интерпретатор интерпретирует ваш интерпретатор;
  • компилируемый ЯП можно писать на интерпретируемом ЯП (Python, JS). Возрастёт время компиляции, но не время выполнения программы.

Проектирование архитектуры

У структуры языка программирования есть несколько ступеней от исходного кода до исполняемого файла, на каждой из которых определенным образом происходит форматирование данных, а также функции для перехода между этими ступенями. Поговорим об этом подробнее.

Лексический анализатор / лексер

Строка исходного кода проходит через лексер и превращается в список токенов.

Первый шаг в большинстве ЯП — это лексический анализ. Говоря по-простому, он представляет собой разбиение текста на токены, то есть единицы языка: переменные, названия функций (идентификаторы), операторы, числа. Таким образом, подав лексеру на вход строку с исходным кодом, мы получим на выходе список всех токенов, которые в ней содержатся.

Обращения к исходному коду уже не будет происходить на следующих этапах, поэтому лексер должен выдать всю необходимую для них информацию.

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

Одним из основных таких инструментов является Flex — генератор лексических анализаторов. Он принимает на вход файл с описанием грамматики языка, а потом создаёт программу на C, которая в свою очередь анализирует строку и выдаёт нужный результат.

Моё решение


Я решил оставить написанный мной анализатор. Особых преимуществ у Flex я в итоге не увидел, а его использование только создало бы дополнительные зависимости, усложняющие процесс сборки. К тому же, мой выбор обеспечивает больше гибкости — например, можно добавить к языку оператор без необходимости редактировать несколько файлов.

Синтаксический анализатор / парсер

Список токенов проходит через парсер и превращается в дерево.

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

Bison

На этом шаге я также думал использовать стороннюю библиотеку, рассматривая Bison для генерации синтаксического анализатора. Он во многом похож на Flex — пользовательский файл с синтаксическими правилами структурируется с помощью программы на языке C. Но я снова отказался от средств автоматизации.

Преимущества кастомных программ

С лексером моё решение писать и использовать свой код (длиной около 200 строк) было довольно очевидным: я люблю задачки, а эта к тому же относительно тривиальная. С парсером другая история: сейчас длина кода для него — 750 строк, и это уже третья попытка (первые две были просто ужасны).

Тем не менее, я решил делать парсер сам. Вот основные причины:

  • минимизация переключения контекста;
  • упрощение сборки;
  • желание справиться с задачей самостоятельно.

В целесообразности решения меня убедило высказывание Уолтера Брайта (создателя языка D) в одной из его статей:

Я бы не советовал использовать генераторы лексических и синтаксических анализаторов, а также другие так называемые «компиляторы компиляторов». Написание лексера и парсера не займёт много времени, а использование генератора накрепко привяжет вас к нему в дальнейшей работе (что имеет значение при портировании компилятора на новую платформу). Кроме того, генераторы отличаются выдачей не релевантных сообщений об ошибках.

Абстрактный семантический граф

Переход от синтаксического дерева к семантическому графу

В этой части я реализовал структуру, по своей сути наиболее близкую к «промежуточному представлению» (intermediate representation) в LLVM. Существует небольшая, но важная разница между абстрактным синтаксическим деревом (АСД) и абстрактным семантическим графом (АСГ).

АСГ vs АСД

Грубо говоря, семантический граф — это синтаксическое дерево с контекстом. То есть, он содержит информацию наподобие какой тип возвращает функция или в каких местах используется одна и та же переменная. Из-за того, что графу нужно распознать и запомнить весь этот контекст, коду, который его генерирует, необходима поддержка в виде множества различных поясняющих таблиц.

Запуск

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

Варианты компиляции

Вы, наверное, спросите, откуда взялся интерпретатор, если я изначально определил Pinecone как компилируемый язык. Дело в том, что компиляция гораздо сложнее, чем интерпретация — я уже упоминал ранее, что столкнулся с некоторыми проблемами на этом шаге.

Написать свой компилятор

Сначала мне понравилась эта мысль — я люблю делать вещи сам, к тому же давно хотел изучить язык ассемблера. Вот только создать с нуля кроссплатформенный компилятор — сложнее, чем написать машинный код для каждого элемента языка. Я счёл эту идею абсолютно не практичной и не стоящей затраченных ресурсов.

LLVM — это коллекция инструментов для компиляции, которой пользуются, например, разработчики Swift, Rust и Clang. Я решил остановиться на этом варианте, но опять не рассчитал сложности задачи, которую перед собой поставил. Для меня проблемой оказалось не освоение ассемблера, а работа с огромной многосоставной библиотекой.

Транспайлинг

Мне всё же нужно было какое-то решение, поэтому я написал то, что точно будет работать: транспайлер (transpiler) из Pinecone в C++ — он производит компиляцию по типу «исходный код в исходный код», а также добавил возможность автоматической компиляции вывода с GCC. Такой способ не является ни масштабируемым, ни кроссплатформенным, но на данный момент хотя бы работает почти для всех программ на Pinecone, это уже хорошо.

Дальнейшие планы

Сейчас мне не достаёт необходимой практики, но в будущем я собираюсь от начала и до конца реализовать компилятор Pinecone с помощью LLVM — инструмент мне нравится и руководства к нему хорошие. Пока что интерпретатора хватает для примитивных программ, а транспайлер справляется с более сложными.

Заключение

Надеюсь, эта статья окажется кому-нибудь полезной. Я крайне рекомендую хотя бы попробовать написать свой язык, несмотря на то, что придётся разбираться во множестве деталей реализации — это обучающий, развивающий и просто интересный эксперимент.

Вот общие советы от меня (разумеется, довольно субъективные):

  • если у вас нет предпочтений и вы сомневаетесь, компилируемый или интерпретируемый писать язык, выбирайте второе. Интерпретируемые языки обычно проще проектировать, собирать и учить;
  • с лексерами и парсерами делайте, что хотите. Использование средств автоматизации зависит от вашего желания, опыта и конкретной ситуации;
  • если вы не готовы / не хотите тратить время и силы (много времени и сил) на придумывание собственной стратегии разработки ЯП, следуйте цепочке действий, описанной в этой статье. Я вложил в неё много усилий и она работает;
  • опять же, если не хватает времени / мотивации / опыта / желания или ещё чего-нибудь для написания классического ЯП, попробуйте написать эзотерический, типа Brainfuck. (Советуем помнить, что если язык написан развлечения ради, это не значит, что писать его — тоже сплошное развлечение. — прим. перев.)

Я делал довольно много ошибок по ходу разработки, но большую часть кода, на которую они могли повлиять, я уже переписал. Язык сейчас неплохо функционирует и будет развиваться (на момент написания статьи его можно было собрать на Linux и с переменным успехом на macOS, но не на Windows).

О том, что ввязался в историю с созданием Pinecone, ни в коем случае не жалею — это отличный эксперимент, и он только начался.

Средства разработки Astra Linux Special Edition 1.5

Средства разработки для Astra Linux Special Edition версии 1.5. Возможны варианты поставки с военной приёмкой «5» и без.

Описание

Средства разработки для Astra Linux Special Edition версии 1.5. Диск включает в себя интегрированные среды разработок, компиляторы и другие инструменты для программистов:

  • прикладные библиотеки;
  • компилятор языка С/C++ (GCC 4.7);
  • отладчик GDB;
  • среда разработки QT Creator;
  • универсальная система анализа, трансформации, оптимизации программ и виртуальная машина LLVM;
  • интерпретатор языка Lua;
  • библиотека содержащая методы для решения основных задач линейной алгебры LAPACK;
  • компилятор для платформы Windows;
  • инструментальное ПО, предназначенное для отладки использования памяти, обнаружения утечек памяти, а также профилирования Valgrind;
  • собрание библиотек классов, использующих функциональность языка C++ Boost;
  • система управления конфигурациями Chef;
  • интерпретатор языка OCaml;
  • программная платформа Node.js;
  • интерпретатор языка Ruby;
  • система для математических вычислений GNU Octave;
  • интерпретатор языка vala;
  • редактор диаграмм Dia;
  • система документирования исходных текстов Doxygen.

Помощь

Компания «Лаборатория 50» занимается разработкой программного обеспечения с 2011 года. Для разработчиков мы можем предложить:

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

В нашем репозитории находится большое количество дополнительных средств для разработчиков на языках Питон, Ява и других.

Цукерберг рекомендует:  Изменение размера области сайта
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих