На уроке рассматривается решение 12 задания ЕГЭ по информатике, включая задания 2017 года


12 тема — «Сетевые адреса» — характеризуется, как задания базового уровня сложности, время выполнения – примерно 2 минуты, максимальный балл - 1

Адресация в Интернете

Адрес документа в Интернете (с английского — URL — Uniform Resource Locator) состоит из следующих частей:

  • протокол передачи данных; может быть:
  • http (для Web-страниц) или
  • ftp (для передачи файлов)
  • встречается также защищенный протокол https ;
  • символы-разделители :// , отделяющие название протокола от остальной части адреса;
  • доменное имя сайта (или IP-адрес);
  • может присутствовать также: каталог на сервере, где располагается файл;
  • имя файла.

Каталоги на сервере разделяются прямым слэшем «/ »

  1. имя протокола сетевой службы – определяет тип сервера HTTP (протокол передачи гипертекста);
  2. разделитель в виде символа двоеточия и двух символов Slash ;
  3. полное доменное имя сервера;
  4. путь поиска web-документа на компьютере;
  5. имя web-сервера;
  6. домен верхнего уровня «org» ;
  7. имя национального домена «ru» ;
  8. каталог main на компьютере;
  9. каталог news в каталоге main ;
  10. конечная цель поиска – файл main_news.html .

Сетевые адреса

Физический адрес или MAC-адрес – уникальный адрес, «вшитый» на производстве — 48-битный код сетевой карты (в 16-ричной системе):

00-17-E1-41-AD-73

IP-адрес – адрес компьютера (32-битное число), состоящий из: номер сети + номер компьютера в сети (адрес узла):

15.30.47.48

Маска подсети :

  • необходима для определения того, какие компьютеры находятся в той же подсети;
в 10-м представлении в 16-м представлении

255.255.255.0 -> FF.FF.FF.0

  • маска в двоичном коде всегда имеет структуру: сначала все единицы, затем все нули:
  • 1…10…0

  • при наложении на IP-адрес (логическая конъюнкция И ) дает номер сети:
  • Та часть IP-адреса, которая соответствует битам маски равным единице, относится к адресу сети, а часть, соответствующая битам маски равным нулю – это числовой адрес компьютера

  • таким образом, можно определить каким может быть последнее число маски :
  • если два узла относятся к одной сети, то адрес сети у них одинаковый.
  • Расчет номера сети по IP-адресу и маске сети

    В маске под­се­ти старшие биты , от­ве­ден­ные в IP-адресе ком­пью­те­ра для номера сети , имеют зна­че­ние 1 (255) ; млад­шие биты , от­ве­ден­ные в IP-адресе ком­пью­те­ра для ад­ре­са компьютера в подсети , имеют зна­че­ние 0 .



    * Изображение взято из презентации К. Полякова

    Число компьютеров в сети

    Количество компьютеров сети определяется по маске: младшие биты маски — нули — отведены в IP-адресе компьютера под адрес компьютера в подсети.


    Если маска:

    То число компьютеров в сети:

    2 7 = 128 адресов

    Из них 2 специальных: адрес сети и широковещательный адрес

    128 - 2 = 126 адресов

    Решение заданий 12 ЕГЭ по информатике

    ЕГЭ по информатике 2017 задание 12 ФИПИ вариант 1 (Крылов С.С., Чуркина Т.Е.):

    В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырех байтов, причем каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

    Например, если IP-адрес узла равен 211.132.255.41, а маска равна 255.255.201.0, то адрес сети равен 211.132.201.0

    Для узла с IP-адресом 200.15.70.23 адрес сети равен 200.15.64.0 . Чему равно наименьшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.

    ✍ Решение:

    • Третий байт слева соответствует числу 70 в IP-адресе и 64 — в адресе сети.
    • Адрес сети — это результат поразрядной конъюнкции маски и IP-адреса в двоичной системе:
    ? ? ? ? ? ? ? ? -> третий байт маски И (&) 0 1 0 0 0 1 1 0 2 -> 70 10 = 0 1 0 0 0 0 0 0 2 -> 64 10
  • Наименьшим возможным результатом маски может быть:
  • 1 1 0 0 0 0 0 0 - третий байт маски И (&) 0 1 0 0 0 1 1 0 2 -> 70 10 = 0 1 0 0 0 0 0 0 2 -> 64 10
  • Здесь самый старший бит взят за единицу, хотя для результата конъюнкции можно было взять ноль (0 & 0 = 0). Однако, так как следом стоит гарантированная единица, значит, в старший бит ставим тоже 1 . Как известно, в маске сначала идут единицы, а потом нули (не может быть такого: 0100… , а может быть только так: 1100… ).
  • Переведем 11000000 2 в 10-ю систему счисления и получим 192 .
  • Результат: 192

    Пошаговое решение данного 12 задания ЕГЭ по информатике доступно в видеоуроке:

    12 задание. Демоверсия ЕГЭ 2018 информатика:

    В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули.
    Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

    Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

    Для узла с IP-адресом 57.179.208.27 адрес сети равен 57.179.192.0 . Каково наибольшее возможное количество единиц в разрядах маски?


    ✍ Решение:
    • Поскольку адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, то получим:
    255.255.?.? -> маска & 57.179.208.27 -> IP-адрес = 57.179.192.0 -> адрес сети
  • Так как первые два байта слева в IP-адресе узла и адресе сети совпадают, значит, в маске для получения такого результата при поразрядной конъюнкции в двоичной системе должны быть все единицы. Т.е.:
  • 11111111 2 = 255 10
  • Для того, чтобы найти оставшиеся два байта маски, необходимо перевести соответствующие байты в IP-адресе и адресе сети в 2-ю систему счисления. Сделаем это:
  • 208 10 = 11010000 2 192 10 = 11000000 2
  • Теперь посмотрим, какая может быть маска для данного байта. Пронумеруем биты маски справа налево:
  • 7 6 5 4 3 2 1 0 1 1 1 0 0 0 0 0 -> маска & 1 1 0 1 0 0 0 0 = 1 1 0 0 0 0 0 0
  • Для 5-го бита получаем: ? & 0 = 0 -> в маске может находиться как единица, так и 0 . Но так как по заданию у нас спрашивается наибольшее возможное количество единиц, то значит, необходимо сказать, что в маске данный бит равен 1 .
  • Для 4-го бита получаем: ? & 1 = 0 -> в маске может находиться только 0 .
  • Так как в маске сначала идут единицы, а затем все нули, то после этого нуля в 4-м бите все остальные будут нули. И 4-й слева байт маски будет равен 0 10 .
  • Получим маску: 11111111.11111111.11100000.00000000 .
  • Посчитаем количество единиц в маске:
  • 8 + 8 + 3 = 19

    Результат: 19

    Подробное решение 12 задания демоверсии ЕГЭ 2018 года смотрите на видео:

    Решение задания 12 (Поляков К., вариант 25):

    В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.

    По заданным IP-адресу узла сети и маске определите адрес сети :

    IP-адрес: 145.92.137.88 Маска: 255.255.240.0

    При записи ответа выберите из приведенных в таблице чисел четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без точек.

    A B C D E F G H
    0 145 255 137 128 240 88 92

    ✍ Решение:
    • Для решения задания необходимо вспомнить, что IP-адрес сети так же как и маска сети хранятся в 4 байтах записанных через точку. То есть каждое из отдельных чисел IP-адреса и маски сети хранится в 8-разрядном двоичном виде. Для получения адреса сети необходимо выполнить поразрядную конъюнкцию этих чисел.
    • Так как число 255 в двоичном представлении — это 8 единиц , то при поразрядной конъюнкции с любым числом, в результате получится то же самое число. Таким образом, нет необходимости брать во внимание те байты IP-адреса, которые соответствуют числу 255 в маске сети. Поэтому первые два числа IP-адреса останутся такими же (145.92 ).
    • Остается рассмотреть числа 137 и 88 IP-дареса и 240 маски. Число 0 в маске соответствует восьми нулям в двоичном представлении, то есть поразрядная конъюнкция с любым числом превратит это число в 0 .
    • Переведем оба числа ip-адреса и маски сети в двоичную систему и запишем IP-адрес и маску друг под другом, чтобы осуществить поразрядную конъюнкцию:
    137: 10001001 88: 1011000 - IP-адрес 240: 11110000 0: 00000000 - маска сети 10000000 00000000 - результат поразрядной конъюнкции
  • Переведем результат :
  • 10000000 2 = 128 10
  • Итого, для адреса сети получаем байты:
  • 145.92.128.0
  • Ставим в соответствие буквы в таблице и получаем BHEA .
  • Результат: BHEA

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

    Решение задания 12 (Поляков К., вариант 33):

    Если маска подсети 255.255.255.128 и IP-адрес компьютера в сети 122.191.12.189 , то номер компьютера в сети равен _____ .


    ✍ Решение:
    • Единичные биты маски (равные единице) определяют адрес подсети, т.к. адрес подсети — это результат поразрядной конъюнкции (логического умножения) битов маски с IP-адресом.
    • Остальная часть маски (начиная с первого нуля) определяет номер компьютера.
    • Поскольку в двоичном представлении число 255 — это восемь единиц (11111111 ), то при поразрядной конъюнкции с любым числом, возвращается то же самое число (1 ∧ 0 = 0; 1 ∧ 1 = 1). Таким образом, те байты в маске, которые равны числам 255 , мы рассматривать не будем, т.к. они определяют адрес подсети.
    • Начнем рассмотрение с байта равного 128 . Ему соответствует байт 189 IP-адреса. Переведем эти числа в двоичную систему счисления:
    128 = 10000000 2 189 = 10111101 2
  • Те биты IP-адреса, которые соответствуют нулевым битам маски, служат для определения номера компьютера. Переведем получившееся двоичное число в десятичную систему счисления:
  • 0111101 2 = 61 10

    Результат: 61

    Подробное решение данного задания смотрите на видео:

    Решение задания 12 (Поляков К., вариант 41):

    В терминологии сетей TCP/IP маской подсети называется 32-разрядное двоичное число, определяющее, какие именно разряды IP-адреса компьютера являются общими для всей подсети — в этих разрядах маски стоит 1. Обычно маски записываются в виде четверки десятичных чисел — по тем же правилам, что и IP-адреса.

    Для некоторой подсети используется маска 255.255.255.192 . Сколько различных адресов компьютеров теоретически допускает эта маска, если два адреса (адрес сети и широковещательный) не используют?


    ✍ Решение:
    • Единичные биты маски (равные единице) определяют адрес подсети, остальная часть маски (начиная с первого нуля) определяет номер компьютера. То есть для адреса компьютера существует столько вариантов, сколько можно получить из нулевых битов в маске.
    • В нашем случае первые слева три байта маски мы рассматривать не будем, т.к. число 255 в двоичном представлении — это восемь единиц (11111111 ).
    • Рассмотрим последний байт маски, равный 192 . Переведем число в двоичную систему счисления:
    192 10 = 11000000 2
  • Итого получили 6 нулей в маске сети. Значит, на адресацию компьютеров выделяется 6 бит или, другими словами, 2 6 адресов компьютеров. Но поскольку два адреса уже зарезервировано (по условию), то получим:
  • 2 6 - 2 = 64 - 2 = 62

    Результат: 62

    Видеоразбор задания смотрите ниже:

    Решение задания 12 (Краевая работа, Дальний Восток, 2018):

    Для узла с IP-адресом 93.138.161.94 адрес сети равен 93.138.160.0 . Для скольких различных значений маски это возможно?


    ✍ Решение:

    Результат: 5

    Видеоразбор задания:

    С современным миром технологий и реалий программирования, разработки ЕГЭ по информатике имеет мало общего. Какие-то базовые моменты есть, но даже если разбираешься немного в задачах, то это еще не значит, что в конечном итоге станешь хорошим разработчиком. Зато областей, где нужны IT-специалисты, великое множество. Вы нисколько не прогадаете, если хотите иметь стабильный заработок выше среднего. В IT вы это получите. При условии, разумеется, наличия соответствующих способностей. А развиваться и расти здесь можно сколько угодно, ведь рынок настолько огромен, что даже представить себе не можете! Причем он не ограничивается только нашим государством. Работайте на какую угодно компанию из любой точки мира! Это все очень вдохновляет, поэтому пусть подготовка к ЕГЭ по информатике будет первым незначительным шагом, после которого последуют годы саморазвития и совершенствования в данной области.

    Структура

    Часть 1 содержит 23 задания с кратким ответом. В этой части собраны задания с кратким ответом, подразумевающие самостоятельное формулирование последовательности символов. Задания проверяют материал всех тематических блоков. 12 заданий относятся к базовому уровню, 10 заданий к повышенному уровню сложности, 1 задание – к высокому уровню сложности.

    Часть 2 содержит 4 задания, первое из которых повышенного уровня сложности, остальные 3 задания высокого уровня сложности. Задания этой части подразумевают запись развернутого ответа в произвольной форме.

    На выполнение экзаменационной работы отводится 3 часа 55 минут (235 минут). На выполнение заданий части 1 рекомендуется отводить 1,5 часа (90 минут). Остальное время рекомендуется отводить на выполнение заданий части 2.

    Пояснения к оцениванию заданий

    Выполнение каждого задания части 1 оценивается в 1 балл. Задание части 1 считается выполненным, если экзаменуемый дал ответ, соответствующий коду верного ответа. Выполнение заданий части 2 оценивается от 0 до 4 баллов. Ответы на задания части 2 проверяются и оцениваются экспертами. Максимальное количество баллов, которое можно получить за выполнение заданий части 2, – 12.

    Приветствую, коллеги. Долгое время проект NetSkills был посвящен исключительно сетевым технологиям - Курс молодого бойца, Основы GNS, UNetLab . Однако от подписчиков все чаще звучал вопрос: “А что еще должен знать сетевой инженер или системный администратор?” . Тут можно привести большой список технологий/направлений и в итоге сделать вывод, что знать только сети - недостаточно ! Совершенно очевидно, что для успешной карьеры нужно намного больше. Поэтому было принято решение расширить проект и для начала выпустить курс “Linux для начинающих”.

    Немаловажная деталь, преподаватель - девушка , которая совсем недавно примкнула к проекту NetSkills . Чему же может научить девушка? Если вы заинтересовались, добро пожаловать под кат…

    Цель курса – изучить основы администрирования операционных систем Linux. Материал по большей части практический и содержит минимальное количество теории. Курс подойдет как для начинающих системных администраторов, которые занимаются настройкой серверов компании, так и для сетевых инженеров, т.к. бОльшая часть сетевого оборудования работает под управлением Linux (особенно если учитывать тенденцию импортозамещения), поэтому навыки работы с этой системой им однозначно не помешают. Да и вообще, каждый уважающий себя ИТ-шник просто обязан обладать базовыми навыками работы с Linux системами. Ценность такого сотрудника сразу вырастает.

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

    В план базового курса вошли следующие темы:
    1.Цели изучения операционной системы Linux, ее основные преимущества.
    2.Создание виртуальных машин.
    3.Установка операционной системы CentOS.
    4.Структура файловой системы Linux.
    5.Основные команды, необходимые для работы в консоли Linux (cd, ls, man, grep, find, cp, mv, rm и т.д.).
    6.Настройка сети в CentOS. Утилиты Putty, WinSCP.
    7.Основы безопасности. Заведение новых пользователей в системе.
    8.Установка пакетов. Пакетный менеджер. Репозитории.
    9.Файловый менеджер mc, текстовый редактор nano и сетевые утилиты (ifconfig, nslookup, arp, telnet).
    10.Настройка шлюза доступа в Интернет. Iptables. NAT. DHCP.

    Итак, зачем изучать линукс и каковы его преимущества? Полагаю, стоит начать с определения.
    GNU/Linux – это семейство unix-подобных операционных систем, основанных на ядре Linux. ОС из этого семейства распространяются обычно бесплатно в виде так называемых дистрибутивов, содержащих помимо самой ОС еще и набор прикладного ПО (т.е. по сути сборка). Дистрибутивов Linux на сегодняшний день существует огромное количество, но почти все они являются потомками трех основных дистрибутивов: Debian, Slackware и Red Hat. Подробнее о GNU/Linux и дистрибутивах можно прочитать и .

    Возможно, у кого-то возник вопрос: почему GNU/Linux, а не просто Linux. Все дело в том, что Linux – это всего лишь ядро, в то время как GNU/Linux – это операционная система. Однако, Linux’ом можно называть как ядро так и ОС – и так и так будет правильно.

    Условно говоря, ОС состоит из двух частей: kernel space и user space . Kernel space это ядро, которое непосредственно взаимодействует с устройствами в системе, обслуживает их и производит настройку. В нашем случае – это ядро Linux, разработка которого началась в 1991 году Линусом Торвальдсом, являвшимся на тот момент студентом. Оно поддерживает многозадачность, динамические библиотеки, виртуальную память, отложенную загрузку, большинство сетевых протоколов и производительную систему управления памятью и распространяется по лицензии GNU GPL, т.е. свободно. Подробнее про само ядро и его «увлекательную» систему нумерации версий можно узнать . Пользователи же работают в пространстве user space (пространстве приложений), а это в свою очередь файлы. Вообще говоря, все в Linux’е представлено файлами - настройки, сами приложения, даже процессы. Это очень удобно при настройке и когда пытаешься выяснить почему же все поломалось.

    Дистрибутивы Linux распространяются в основном по лицензии GNU General Public License – лицензии на свободное программное обеспечение. Цель GNU GPL - предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права.

    Помимо выше указанных неоспоримых плюсов данной ОС, она обладает еще рядом особенностей:
    1.Безопасность
    2.Производительность
    3.Надежность
    4.Масштабируемость
    5.Аппаратная совместимость
    6.Не требуется импортозамещение
    7.Зарплата Linux администраторов выше, чем у обычных администраторов

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

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

    Мы можем:
    1.Настроить программный маршрутизатор/ шлюз доступа в Интернет с функциями межсетевого экрана и DHCP сервера
    2.Ограничить доступ пользователей к сети Интернет с помощью proxy сервера
    3.Организовать почтовый сервер для корпоративной почты
    4.Создать веб сервер для корпоративного сайта и внутренних веб ресурсов
    6.Настроить первичный и вторичный DNS сервера
    7.Развернуть файловый сервер
    8.Собирать резервные копии с остальных серверов
    9.Развернуть сервер логирования для сбора событий с других серверов

    Такую схему мы и будем разворачивать в рамках данного курса.

    Полагаю, на этом первый урок можно закончить.

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

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

    А как быть с теми, кто только делает свои первые шаги? К сожалению, в IT-сообществе существует некоторый снобизм, мол, чего об этом говорить, это и так все знают, или "гугл в помощь", забывая, что каждый из нас когда-то был новичком и с мистическим ужасом смотрел в черный экран Linux-консоли, абсолютно не понимая, куда он попал и что ему делать.

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

    Итак, вы решили стать Linux администратором...

    Немного перефразируем Маяковского "я б в Linux-админы пошел, пусть меня научат", именно так дело в большинстве случаев и обстоит. Есть необходимость, есть желание, есть базовый набор знаний по работе с Windows системами - все это пригодится при работе с Linux системами. Гораздо хуже если какая-либо составляющая отсутствует, тогда, наверное, стоит задуматься о неправильном выборе профессии.

    Сразу о том, что нужно раз и навсегда забыть. Это "религиозные войны" и "религиозный фанатизм". Одинаково плохо отрицать возможности Linuх-систем, как и превозносить их, стремясь перевести на Linux все что нужно и не нужно. Запомните - операционная система - это инструмент, хороший специалист берет для каждой задачи наиболее подходящий, фанатик будет забивать гвозди микроскопом, потому что взять в руки молоток ему "религия не позволяет".

    Даже больше, сама по себе операционная система не имеет никакой ценности, это всего лищь среда для запуска и выполнения некоторых служб и сервисов. Без софта система мертва. Возьмем для примера клон BeOS - Haiku, ну поставили, ну посмотрели - прикольно... А дальше что?

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

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

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

    Linux, создававшийся по образу и подобию UNIX-систем, является полноценной системой и без графической оболочки, более того мы можем запустить, закрыть или вообще сменить графическую оболочку без какого-либо влияния на работоспособность системы и даже без ее перезагрузки. Завершили сеанс Gnome, запустили KDE, а потом и вовсе вышли в консоль. Поэтому все инструменты управления системой разработаны для использования в режиме командной строки. А все панели и графические инструменты являются всего лишь надстройкой над ними.

    Windows долгое время разрабатывался по принципиально иной технологии, графическая оболочка была поставлена в основу системы и долгое время даже выполнялась на уровне ядра (семейство Win 9x). Поэтому все инструменты администрирования были изначально графическими, а инструменты командной строки скорее их дополняли, чем заменяли. Любой, кто занимался восстановлением Windows, знает, что возможности инструментов командной строки там существенно ограничены и предназначены в первую очередь для восстановления системы, а не для ее администрирования.

    Ситуация стала меняться с выходом PowerShell и Core-версий Windows Server. Несмотря на то, что сегодня графическая оболочка продолжает играть существенную роль в Windows-системах, администраторы получили в руки альтернативный инструмент - консоль PowerShell, которая позволяет полноценно администрировать Windows в режиме командной строки. При этом возможности PowerShell сразу завоевали популярность в среде специалистов, так как позволяют выполнять многие задачи быстрее и проще, чем графические инструменты.

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

    После этого, как нам кажется, вы должны будете посмотреть на консоль Linux совсем с другой стороны. Что касается панелей и графических инструментов, то тут есть существенные отличия от Windows-систем. В Windows графические инструменты являются полноценной альтернативой PowerShell. В Linux графические инструменты являются надстройкой над консолью, по факту используя те-же самые инструменты, но через дополнительную прослойку. Поэтому мы категорически не рекомендуем использовать разного рода панели и иные графические инструменты, по крайней мере до тех пор, пока вы не освоите консоль. После этого вы уже сможете самостоятельно решить, нужна ли вам панель или вы способны сделать все проще и быстрее через консоль.

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

    Если вы еще не передумали становиться Linux-администратором, то поедем дальше и рассмотрим отличия в архитектуре системы.

    Ядро и драйвера

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

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

    В микроядерной и гибридной архитектурах, драйвера, хоть могут и работать на уровне ядра, его частью не являются и от версии ядра не зависят. Поэтому мы можем без проблем обновлять ядро или использовать один и тот-же драйвер для всех версий систем с общей структурой ядра. Например, в Windows для всего семейства современных ОС, от Windows Vista до Windows 8.1, часто используется один и тот-же драйвер.

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

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

    Файловая система

    Мы не будем касаться конкретных файловых систем, тут проблем возникнуть не должно, если администратор работал с Windows системами, то что такое файловая система и чем FAT отличается от NTFS он знает, поэтому разобраться в разнице между ext3, ext4 и, скажем, ReiserFS для него особого труда не составит. А поговорим о фундаментальных отличиях. В отличие от Windows, файловая система Linuх иерархична. Она начинается от корня, который обозначается знаком / (слеш), и имеет древовидную структуру. При этом абсолютно не имеет значения, что отдельные части файловой системы могут находиться на других разделах или вообще физических дисках.

    Рассмотрим еще одну схему.

    В Windows каждый раздел имеет собственную файловую систему и обозначающую его букву. Все пути к файлам и папкам начинаются с буквы, т.е. от корня раздела. Так если у нас на первом физическом диске, на втором логическом разделе была папка DATA, то путь к ней соответственно будет как D:\DATA, если мы захотим перенести ее на второй жесткий диск, то ее пусть изменится на E:\DATA. В ряде случаев это жутко неудобно, так как путь надо изменить во всех местах ее использования и даже существуют соответствующие утилиты.

    В Linux подход кардинально иной. Самое время познакомиться с термином точка монтирования , который означает место файловой системы, куда подключается устройство хранения данных. Например, мы хотим вынести домашние каталоги пользователей на отдельный раздел, как на схеме выше, для этого нам нужно смонтировать второй логический раздел первого физического диска sda2 в /home . После чего перенести туда все пользовательские данные. Для системы и программ это произойдет абсолютно прозрачно, они как использовали абсолютный путь, скажем /home/andrey/data , так и будут его использовать. Добавили еще один диск и хотим вынести туда директорию /var ? Нет проблем, останавливаем использующие каталог службы, монтируем sdb1 в /var и переносим данные, запускаем службы.

    Всё есть файл

    Еще один основополагающий принцип, который унаследован от UNIX-систем. В Linux всё есть файл: устройства, диски, сокеты и т.д., например, открыв /var/run мы увидим pid-файлы, соответствующие каждой запущенной службе в системе, а в /dev файлы каждого подключенного к системе устройства:

    Что это дает? Не будем вдаваться в подробности, а разберем несколько простых примеров. Скажем, нужно создать образ оптического диска. В Windows нам понадобится для этого специализированное ПО, в Linuх все проще, CD-ROM - это блочное устройство, но в тоже время - это файл, файл блочного устройства. Берем соответствующий инструмент и копируем содержимое файла устройства в файл ISO образа:

    Dd if=/dev/cdrom of=/home/andrey/image.iso

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

    Dd if=/dev/sda of=/dev/sdb

    И не нужно никаких Partition Magic.

    Другая ситуация, какое-либо ПО настоятельно ищет библиотеку lib-2-0-1.so, а у нас есть совместимая с ней, но более новая, lib-2-1-5.so, как быть? Создаем символическую ссылку на lib-2-1-5.so с именем lib-2-0-1.so и все будет работать. Потому что все есть файл и символическая ссылка тоже тип файла. А теперь попробуйте подсунуть Windows приложению lib-2-0-1.lnk вместо lib-2-1-5.dll...

    Ifconfig

    выведет на экран сведения о сетевых адаптерах системы:

    А теперь вспоминаем, что все есть файл, в том числе и устройство отображения (экран), поэтому просто перенаправим стандартный поток вывода вместо экрана в нужный нам файл:

    Ifconfig > ~/123.txt

    После чего вывод команды будет сохранен в файл 123.txt в корневой директории пользователя:

    Потоки и конвейер

    В прошлом примере мы затронули стандартный поток вывода. В Linux существуют стандартные для всех процессов потоки ввода-вывода данных stdin , stdout и поток вывода ошибок stderr . Что это значит? Как минимум то, что процесс обмена данными между различными процессами стандартизован. Это позволяет создавать конвейеры, когда стандартный поток вывода одной команды передается стандартному потоку ввода другой. Например, мы хотим посмотреть список установленных пакетов в системе, в частности пакеты squid. Для этой цели есть команда:

    Ээээ... Это что такое и как тут что-то понять? На экране быстро промелькнули сведения о всех установленных в системе пакетах и все что мы можем видеть, это "хвост" этого вывода:

    Но ведь нам и не нужен весь вывод этой команды, нас интересуют исключительно пакеты squid. Поэтому направим вывод этой команды на ввод другой, которая уже отберет и покажет то, что нам нужно:

    Dpkg -l | grep squid

    Вот это совсем другое дело!

    Причем конвейер может быть сколь угодно длинным, результат работы одной команды можно передавать второй, от второй к третьей и т.д. Еще один пример из жизни. Вам надо получить все строки вашего конфигурационного файла squid, но без комментариев и пустых строк, чтобы, например, выложить на форуме или отправить другу. Можно конечно скопировать все, но вряд-ли кто-то захочет вам помогать, прокручивая полотно стандартного файла squid.conf, большая часть которого комментарии и примеры. Делаем проще:

    Cat /etc/squid3/squid.conf | grep -v "^#" | sed "/^$/d" > ~/mysquid.conf

    И вот что у нас получилось:

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

    Буквы большие, буквы маленькие

    Linux, как и UNIX, является регистрозависимой системой. И это надо помнить! Потому что, в отличие от Windows, myfile.txt , Myfile.txt и myfile.TXT - это три разных файла. В целях совместимости с другими системами не стоит этим злоупотреблять и хранить файлы, имя которых отличается только регистром, а хорошим тоном считается использование в именах только строчных букв.

    Расширения и типы файлов

    В Windows системах тип файла определяется его расширением, если мы переименуем exe-файл в jpg , то он не запустится, и система будет пытаться обработать его как картинку. В Linux тип файла определяется по его содержимому и расширение используется исключительно для совместимости с другими системами или для удобства пользователя. Возможность исполнения файла обеспечивается установкой соответствующего атрибута. Так в Windows чтобы сделать скрипт исполняемым, надо было изменить расширение с txt на bat , в Linux для этого нужно сделать файл исполняемым. Непонимание этого момента приводит к ситуациям, когда начинающий администратор не понимает, почему его скрипт myscript.sh не выполняется. На самом деле расширение .sh нужно только для удобства, чтобы сразу было ясно, это скрипт Bash Shell, а чтобы он работал, ему надо поставить атрибут исполняемого, а называться он может как угодно, хоть myscript.pupkin-vasya .

    Стесняюсь спросить...

    Позвольте, скажет иной читатель, это ведь сколько всего надо помнить: синтаксис команд, ключи, опции и т.д., и т.п. Тут нужно справочник покупать или всегда интернет под рукой держать... Вовсе нет, достаточно помнить названия команд, это как раз несложно, по сложившимся в UNIX традициям, командам дают короткие и удобные имена. А все остальное можно спросить у системы. Вопреки распространенному мнению, Linux системы прекрасно документированы. Посмотреть синтаксис и ключи любой команды можно запустив ее с ключом --help , а так как описания обычно не помещаются на один экран, то следует перенаправить вывод справки утилите more , которая выведет информацию поэкранно. Допустим, нас интересует команда grep :

    Grep --help | more

    Более подробную информацию можно получить с помощью команды man :

    Man grep

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

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

    Заключение

    Надеемся, что после прочтения данной статьи начинающие администраторы будут лучше себе представлять устройство Linux-систем и их принципиальные отличия от привычного им Windows. Это позволит в дальнейшем правильно интерпретировать получаемую информацию и складывать из нее целостную картину функционирования системы, которая перестанет быть "черным ящиком", а команды "китайской грамотой".

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

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

    • Теги:

    Please enable JavaScript to view the

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

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

    Рассмотрим по подробнее существующие дистрибутивы для этой системы. Самым распространенным для настольных компьютеров является версия Ubuntu, она работает на основе ядра Линукс, и позволяет пользоваться довольно понятным, простым и в тоже время продуктивным рабочим окружением с учетом индивидуальных возможностей компьютера и личных пожеланий пользователей. Эта версия очень проста в администрировании и пользовании и обладает рядом положительных качеств, таких как большое количество бесплатных приложений и качественный открытый код и высока безопасность.

    Linux Mint еще одна из наиболее распространённых систем. Она имеет определенное сходство с Ubuntu, так как основывается на нём, но при этом имеет свои собственные наработки рабочих столов. На сегодняшний день эта операционная система имеет 17 (семнадцать) версий. И ее интерфейс достаточно схож с XP, Вистой и Виндовс 7, что значительно облегчает переход с этих операционок на Linux Mint. Существует множество дистрибутивов, которые можно подобрать для себя в индивидуальном порядке, однако выше две вышеперечисленные системы являются самыми оптимальными для новичков.

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

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

    Linux поддерживает технологию Live CD. Чтобы попробовать Linux Вам не нужно его устанавливать на компьютер. Просто нужно записать образ Linux на CD или USB, и загрузится с него. Перед Вами возникнет рабочий Linux, на котором можно всё пощупать и пощелкать. На сегодня в сети хватает учебных материалов и просто полезных советов как обойти все подводные камни новичку при работе с линукс.