Знакомство с linux часть 1

Осваиваем Linux за три недели / Блог компании clinanabap.ga / Хабр

знакомство с linux часть 1

Идея вводного курса по работе с Linux возникла у нас с коллегами довольно давно. Например, большую часть курса мы будем проводить за работой своем первом знакомстве с Linux именно в рабочем процессе (до этого . +1. Сейчас я уже не вспомню детально, но думаю, что команду. Новые пользователи UNIX и Linux могут быть ошеломлены размерами и очевидной сложностью системы, в системе, прежде чем в нее войдете ( смотрите Раздел ниже). .. Мы уже собрали большую часть документации). | Автор clinanabap.ga | комментарии Основная часть разработки ядра Linux велась и по-прежнему ведется коммерческими бизнесами.

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

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

Часть 1. Знакомство с библиотекой screenlets

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

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

Файловая система Мы не будем касаться конкретных файловых систем, тут проблем возникнуть не должно, если администратор работал с Windows системами, то что такое файловая система и чем FAT отличается от NTFS он знает, поэтому разобраться в разнице между ext3, ext4 и, скажем, ReiserFS для него особого труда не составит.

Мое первое знакомство с Linux Ubuntu. Часть 1

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

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

В Linux подход кардинально иной. Самое время познакомиться с термином точка монтирования, который означает место файловой системы, куда подключается устройство хранения данных.

знакомство с linux часть 1

После чего перенести туда все пользовательские данные. В Linux всё есть файл: Не будем вдаваться в подробности, а разберем несколько простых примеров. Скажем, нужно создать образ оптического диска. Берем соответствующий инструмент и копируем содержимое файла устройства в файл ISO образа: Нет ничего проще, копируем содержимое одного файла блочного устройства в файл другого блочного устройства: Другая ситуация, какое-либо ПО настоятельно ищет библиотеку lib Создаем символическую ссылку на lib Потому что все есть файл и символическая ссылка тоже тип файла.

знакомство с linux часть 1

А теперь попробуйте подсунуть Windows приложению lib Или нам нужно сохранить вывод какой-либо команды. Например, команда ifconfig выведет на экран сведения о сетевых адаптерах системы: А теперь вспоминаем, что все есть файл, в том числе и устройство отображения экранпоэтому просто перенаправим стандартный поток вывода вместо экрана в нужный нам файл: Потоки и конвейер В прошлом примере мы затронули стандартный поток вывода.

знакомство с linux часть 1

В Linux существуют стандартные для всех процессов потоки ввода-вывода данных stdin, stdout и поток вывода ошибок stderr. Как минимум то, что процесс обмена данными между различными процессами стандартизован.

Это позволяет создавать конвейеры, когда стандартный поток вывода одной команды передается стандартному потоку ввода. Обычно пользователи могут использовать эти приложения непосредственно с рабочего стола с помощью специального сочетания клавиш или через "drag-and-drop" из других приложений, например, Mozilla Firefox. Программа Tomboy работает как инструмент для создания заметок на рабочем столе и обладает возможностью получать текст из других окон.

Сначала потребуется установить пакет screenlets с помощью центра управления ПО в ОС Ubuntu или непосредственно из командной строки. Для загрузки требуемого пакета в поле Search в окне центра управления ПО следует ввести screenlets. В результатах поиска будут представлены две опции: В стандартной инсталляции Ubuntu Однако, в зависимости от требований приложения, могут потребоваться дополнительные библиотеки. Все примеры, представленные в этой статье, были разработаны и протестированы в Ubuntu Язык Python является высокоуровневым объектно-ориентированным языком программирования, поэтому для определения объектов в нем используется ключевое слово class.

ъОБЛПНУФЧП У Linux

В представленном примере класс называется TestScreenlet, и в нем определено несколько методов. На строке 42 в файле TestScreenlet. Согласно стандартным требованиям первым аргументом любого метода, имеющегося в классе, должна быть ссылка self, указывающая на текущий экземпляр класса. Подобное поведение позволяет использовать ссылку self для обращения к методам и свойствам текущего объекта, как показано ниже: Там же находится ссылка на страницу с документацией, в которой описывается исходный код пакета screenlets и его API.

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

В этом каталоге содержатся дополнительные каталоги с различными стилями или темами отображения. Первый screenlet, разработанный на основе этого шаблона, будет представлять собой стандартное "Hello World"-приложение.

Python code for the Hello World screenlet! Например, большую часть курса мы будем проводить за работой в терминале, так что у новичков должно возникнуть и привыкание и понимание преимуществ такого подхода к управлению компьютером.

Для более продвинутых пользователей могут представлять интерес отдельные занятия курса — например, про работу с удаленным сервером или программирование на языке bash. Полная программа онлайн-курса доступна. Как проверять решение задач на курсе по Linux?

знакомство с Linux

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

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

Каких только комментариев мы не наслушались про это задание: А ошибались люди в основном в том, что вводили имя и фамилию, или только имя, или часть фамилии а она там двойная, через дефис!

В общем, если решитесь проходить курс, то читайте условия задач внимательнее и это сэкономит много времени и нервов!

А почему всё-таки Linux так хорош? На мой взгляд одним из ключевых преимуществ Linux перед Windows или Mac OS X является то, что эта операционная система разрабатывается огромным сообществом программистов по всему миру, а не в двух, пусть и очень больших компаниях Microsoft и Apple. Исходный код этой системы открыт, и каждый может познакомится с внутренним устройством Linux или поучаствовать в его развитии.

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