<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d5591484190086716210\x26blogName\x3d%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%BA%D0%B8+ubuntu\x27%D0%B9%D1%86%D0%B0\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://tlanvar.blogspot.com/search\x26blogLocale\x3dru\x26v\x3d2\x26homepageUrl\x3dhttp://tlanvar.blogspot.com/\x26vt\x3d1840766964675028820', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Записки ubuntu'йца

Делюсь вот своими наблюдашками.


BASH. Часть 2. Специальные символы.

вторник, июля 31, 2007

Оболочка bash использует несколько символов из числа 256 символов набора ASCII в специальных целях либо для обозначения некоторых операций, либо для преобразования выражений. В число таких символов входят:

- ~ ! @ # $ % ^ & * ( ) - [ ] { } : ; ' " / \ > <

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


Это касается в первую очередь использования их в именах файлов и каталогов. Однако символы (_) , (-) и (.) (знак подчеркивания, дефис и точка) часто используются в именах файлов, так что именно этот пример показывает, что специальное значение эти символы имеют не всегда. В именах файлов только символы точки (.) и слэша (/) имеют специальное значение. Символ слэша служит для разделения имен отдельных каталогов, а точка имеет специальное значение, только если она является первым символом в имени файла (что означает, что файл является "скрытым").


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


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


[user]$ ср two_words two\words

Символы ' и " (одинарные и двойные кавычки) могут быть названы "символами цитирования". Любой из этих символов всегда используется в паре с его копией для обрамления какого-то выражения. Если какой-то текст взят в одинарные кавычки, то все символы внутри этих кавычек воспринимаются как литералы, никаким из них не придается специального значения. Если вернуться к тому же примеру с пробелами в имени файла, то можно сказать, что для того, чтобы дать файлу имя "two words" надо взять имя в кавычки:


[user]$ ср two_words 'two words'

Различие в использовании символов (') и (") состоит в том, что внутри одинарных кавычек теряют специальное значение все символы, а внутри двойных кавычек — все специальные символы кроме ($), (') и (\) (знака доллара, одинарных кавычек и обратного слэша).



Другие части:

BASH. Часть 1. Введение.
BASH. Часть 2. Специальные символы.
BASH. Часть 3. Выполнение команд.
BASH. Часть 4. Стандартный ввод/вывод.
BASH. Часть 5. Параметры и переменные. Окружение оболочки.
BASH. Часть 6. Раскрытие выражений


Из книги Виктора Костромина "Linux для пользователя".

Ярлыки: , , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

BASH. Часть 1. Введение.

понедельник, июля 30, 2007

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


Что такое оболочка?

Хотя мы часто говорим, что "пользователь работает с операционной системой", фактически это не совсем верно, поскольку на деле взаимодействие с пользователем организует специальная программа. Существует два вида таких программ — оболочка, или shell, для работы в текстовом режиме (интерфейс командной строки) и графический интерфейс пользователя GUI (Graphical User Interface), организующий взаимодействие с пользователем в графическом режиме.


Сразу надо сказать, что в принципе любая программа в Linux может быть запущена как через оболочку (если запущен Х-сервер), так и через графический интерфейс пользователя. Запуск программ из оболочки эквивалентен (двойному) щелчку мышкой по иконке программы в GUI. Но, с другой стороны, некоторые программы не приспособлены для запуска через GUI и, соответственно, могут быть исполнены только из командной строки.


Собственно говоря, название "оболочка", на мой взгляд, не совсем верно. Мне кажется, что правильнее было бы называть эту программу командным процессором, или интерпретатором команд. Но так уж повелось во всех UNIX-системах, что интерпретатор команд для текстового режима называют оболочкой.
Когда-то (в первых UNIX-системах) это была программа с именем sh, которое было сокращением от shell. Потом были разработаны несколько ее улучшенных вариантов, в частности, Bourne shell — расширенная версия sh, написанная Стивом Борном (Steve Bourne). В рамках проекта GNU (проект Р. Столлмана по разработке свободного ПО) была создана оболочка bash, название которой расшифровывается как Boume-ggain shell, т. е. "снова оболочка Борна". По-английски в этом названии просматривается еще и игра слов, связанная с тем, что Bourne звучит как borne (рождаться, рожденный), и получается "заново рожденная shell". Оболочка bash была написана Брайеном Фоксом (Brian Fox — основной разработчик) и Четом Рэми (Chet Rarney). Именно bash и будет далее рассматриваться, и всюду, где говорится об оболочке вообще, смело можете считать, что речь идет о bash.


Сама по себе оболочка bash не выполняет никаких прикладных задач. Но она обеспечивает выполнение всех приложений: нахождение вызываемых программ, их запуск и организацию ввода/вывода. Кроме того, оболочка отвечает за работу с переменными окружения и выполняет некоторые преобразования (подстановки) аргументов. Но главное свойство оболочки, которое делает ее мощным инструментом пользователя — это то, что она включает в себя простой язык программирования. Как давно доказано в математике, любой алгоритм можно построить из пары-тройки основных операций и одного условного оператора. Реализацию условных операторов (а также операторов цикла) и берет на себя оболочка. Она использует все остальные утилиты и программы (и те, которые имеются в составе операционной системы, и те, что устанавливаются отдельно) как базовые операции поддерживаемого ею языка программирования, обеспечивает передачу им аргументов, а также передачу результатов их работы другим программам или
пользователю. В результате получается очень мощный язык программирования. И в этом основная сила и одна из существенных функций оболочки.



Другие части.

BASH. Часть 1. Введение.
BASH. Часть 2. Специальные символы.
BASH. Часть 3. Выполнение команд.
BASH. Часть 4. Стандартный ввод/вывод.
BASH. Часть 5. Параметры и переменные. Окружение оболочки.
BASH. Часть 6. Раскрытие выражений

Из книги Виктора Костромина "Linux для пользователя".

Ярлыки: , , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

GIMP. Краткий список клавиатурных сокращений.

пятница, июля 27, 2007

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

Файл:

Ctr+N - Создать файл
Ctrl+О - Открыть файл
Ctrl+W - Закрыть файл
Ctrl+S - Сохранить файл
Shift+Ctrl+S - Сохранить файл как
Ctrl+Q - Выход

Редактирование изображения:

Ctrl+Z - отменить последнее действие
Ctrl+R - повторить последнее действие
Ctrl+X - вырезать выделение
Ctrl+C - копировать выделение
Ctrl+V - вставить выделение
Ctrl+K - очистить изображение/выделение до фона
Ctrl+","(запятая) - залить изображение/выделение цветом фона
Ctrl+"."(точка) - залить изображение/выделение цветом переднего плана
Shift+Ctrl+C - копировать изображение/выделение в буфер с именем...
Shift+Ctrl+V - вставить изображение/выделение из буфера с именем...

Выделение изображениями:

Ctrl+A - выделить все
Ctrl+I - инвертировать выдление
Shift+Ctrl+A - отменить выделение
Shift+Ctrl+L - создать "плавающее" выделение

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

Shift+"+"(плюс) - увеличение размера
Shift+"-"(минус) - уменьшение размера
Shift+1 - просмотр 1:1
Ctrl+E - подгонка окна под размер изображения
Ctrl+Т - показать/скрыть выделение
Shift+Ctrl+I - просмотр информации об изображении
Shift+Ctrl+N - открытие окна навигации
Shift+Ctrl+Т - показать направляющие
Shift+Ctrl+R - включить/выключить линейки

Обработка изображения или слоя:

Ctrl+D - создание копии изображения
Ctrl+M - объединить слои
Ctrl+H - прикрепить “плавающее” выделение
Shift+Ctrl+O - смещение слоя

Инструменты:

D - сбросить цвета
Х - поменять цвет переднего плана и фона

Выделение:

R - выделение прямоугольных областей
E - выделение эллиптических областей
F - выделение произвольных областей
Z - выделение связанных областей или "Волшебная палочка"
Shift+О - выделение по цвету

Контуры:

В - создание и редактирование контуров.

Вспомогательные инструменты:

О - получение цвета из изображения или пипетка.
М - перемещение слоев и выделенных областей.

Модификация изображения:

Shift+С - кадрирование или изменение размеров изображения - "скальпель"
Shift+R - поворот слоев или выделенных областей.
Shift+Т - масштабирование слоев или выделенных областей.
Shift+S - искривление слоев или выделенных областей .
Shift+P - изменение перспективы или выделенных областей.
Shift+F - отражение слоев или выделенных областей.

Инструменты для рисования:

Т - текст.
Shift+В - заливка цветом или шаблоном.
L - заливка цветным градиентом .
N - рисование резкими линиями или "карандаш".
Р - рисование мягкими линиями или "кисть".
Shift+Е - стирание до фона или прозрачности или "ластик"
L - аэрограф.
К - рисование пером.
С - рисование с использованием шаблона или участка изображения - "штамп".
V - резкость или размытость.
S - "размазывание" изображения.
Shift+D - осветление или затемнение штрихов.

Диалоги

Ctrl+L - диалог слоев
Ctrl+G - диалог градиентов
Ctrl+Р - диалог палитр
Shift+Ctrl+В - диалог кистей
Shift+Ctrl+Р - диалог шаблонов

Ярлыки: , , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

С Windows на Linux.

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

Часть 1. Философия Linux
Часть 2. Работа в консоли
Часть 3. Введение в Webmin
Часть 4. Администрирование пользователей
Часть 5. Журналирование в Linux
Часть 6. Работа с разделами и файловыми системами
Часть 7. Работа с сетью
Часть 8. Резервное копирование и восстановление
Часть 9. Установка программного обеспечения

Ярлыки: ,


Коментариев: 1 штук(и)


Да, орлы из IBM пишут очень классные статьи, в этом им не откажешь...
откоментировал: Blogger virens, 21 августа 2007 г., 15:24  


<< На главную... | << Добавить комментарий

Типовые последовательности и псевдонимы команд.

среда, июля 25, 2007

Ниже рассмотренны последовательности команд, которые можно использовать при работе в командной строке.

команда &

Команда выполняется в дочернем командном интерпретаторе в фоновом режиме. Задания в фоновом режиме позволяют пользователям запускать множество программ через один единственный командный интерпретатор.

команда1 | команда2

Стандартный поток вывода команды команда1 направляется в стандартный поток ввода команды каманда2. Обе команды могут выполняться одновременно. Этот механизм называется программным каналом.

команда1; команда2

Команды команда1 и команда2 выполняются последовательно.

команда1 && команда2

Выполняется команда1. Если она завершается успешно, за ней последовательно выполняется команда2. Код возврата будет успешным, если обе команды завершились успешно.

команда1 || команда2

Выполняется команда1. Если она завершается с ошибкой, последовательно запускается команда2. Код возврата будет успешным, если хотя бы одна из команд завершилась успешно.

команда > foo

Перенаправить стандартный поток выводы команда в файл foo (с перезаписью файла, если он существует)

команда >> foo

Перенаправить стандартный поток выводы команда в файл foo (данные добавляются в конец файла)

команда > foo 2>&1

Перенаправить потоки стандартного вывода и стандартного вывода ошибок команды команда в файл foo.

команда < foo

Содержимое файла foo направляется в стандартный поток ввода команды команда.

Псевдоним команды.

Для часто используемых команд можно установить псевдоним. Например:

$ alias la='ls -la'

Теперь la работает как сокращенная форма ls -la, которая выводит список всех фалов в полном формате.


Ярлыки: ,


Коментариев: 1 штук(и)


Разрешите немного дополнить.

1.
команда > foo 2>&1

Действует только для bash.

2.
Иногда может понадобится "пустая команда" - ":".

: > 123.txt

3. Наверное стоит упомянуть про круглые скобки.

( комада )

Команда выполняется в дочерней подоболочке
откоментировал: Blogger Dormestmass, 26 июля 2007 г., 14:26  


<< На главную... | << Добавить комментарий

Файловая система изнутри.

вторник, июля 24, 2007

С точки зрения операционной системы, под файловой системой понимается внутренняя управляющая структура, заведующая хранением данных на физическом носителе, их поиском, извлечением и записью по запросам программ. Такие управляющие структуры в каждом семействе операционных систем строятся по схожим принципам. Так, DOS/Windows используют файловую систему FAT с вариантами FAT32 и VFAT, а также NTFS. Файловые системы UNIX-подобных ОС разнообразнее, но тоже могут быть объединены в одно семейство. Linux умеет работать со множеством файловых систем, как с родными, и с еще большим их количеством обмениваться данными.


Типичным представителем файловых систем UNIX является «вторая расширенная файловая система» ext2fs, основная до недавнего времени файловая система Linux. С момента выхода ядра версии 2.4.16 она начала уступать место «файловой системы по умолчанию» полностью совместимой с ней системе ext3fs. Рекомендуется использовать именно ext3fs, и именно она устанавливается по умолчанию инсталляторами большинства современных дистрибутивов.



Файловая система ext2fs — предшественница ext3fs

Рассмотрим логическую структуру файловой системы ext2fs. Физически жесткий диск разбит на сектора размером 512 байт. Первый сектор дискового раздела в любой файловой системе считается загрузочной областью. В первичном разделе эта область содержит загрузочную запись — фрагмент кода, который инициирует процесс загрузки операционной системы при запуске. На других разделах эта область не используется. Остальные сектора объединены в логические блоки размером 1, 2 или 4 килобайта. Логический блок есть наименьшая адресуемая порция данных: данные каждого файла занимают целое число блоков. Блоки, в свою очередь, объединяются в группы блоков. Группы блоков и блоки внутри группы нумеруются последовательно, начиная с 1. Раздел диска, на котором сформирована файловая система ext2fs, может быть представлен такой схемой:

Структуры данных, применяемые при работе с файловой системой ext2fs, описаны в заголовочном файле /usr/include/linux/ext2fs.h.
Суперблок служит начальной точкой файловой системы и хранит всю информацию о ней. Он имеет размер 1024 байта и располагается по смещению 1024 байта от начала файловой системы. В каждой группе блоков он дублируется, что позволяет быстро восстановить его после сбоев.
В суперблоке определяется размер файловой системы, максимальное число файлов в разделе, объем свободного пространства и содержится информация о том, где искать незанятые участки. При запуске ОС суперблок считывается в память и все изменения файловой системы вначале находят отображение в копии суперблока, находящейся в ОП, и записываются на диск только периодически. Это позволяет повысить производительность системы, так как многие пользователи и процессы постоянно обновляют файлы. С другой стороны, при остановке системы суперблок обязательно должен быть записан на диск, что не позволяет выключать компьютер простым выключением питания. В противном случае, при следующей загрузке информация, записанная в суперблоке, окажется не соответствующей реальному состоянию файловой системы.
Загрузочный сектор Суперблок Группа блоков Группа блоков * * * Группа блоков

Структура файловой системы

Копия суперблока Описание группы блоков Карта блоков Карта inode Таблица inode Блоки данных

Структура "Группы блоков"

После суперблока следует описание (дескриптор) группы блоков. Хранящаяся в нем информация позволяет найти битовые карты блоков и индексных дескрипторов, а также таблицу индексных дескрипторов.
Битовой картой блоков (block bitmap) называется структура, каждый бит которой показывает, отведен ли такой же по счету блок какому-либо файлу. Значение 1 показывает, что блок занят. Эта карта служит для поиска свободных блоков в тех случаях, когда надо выделить место под файл.
Битовая карта индексных дескрипторов выполняет аналогичную функцию по отношению к таблице индексных дескрипторов: показывает, какие именно дескрипторы заняты.
Каждому файлу соответствует один и только один индексный дескриптор (inode, i-узел, информационный узел), который идентифицируется своим порядковым номером — индексом файла. В индексном дескрипторе хранятся метаданные файла. Среди них — все атрибуты файла, кроме его имени, и указатель на данные файла.
Для обычного файла или каталога этот указатель представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве являются прямыми ссылками на номера блоков, в которых хранятся данные файла. Если данные не помещаются в 12 блоков, то включается механизм косвенной адресации. Следующий адрес в этом массиве является косвенной ссылкой, то есть адресом блока, в котором хранится список адресов следующих блоков с данными из этого файла.
Сколько блоков с данными можно так адресовать? Адрес блока занимает 4 байта, блок, как уже сказано, — 1, 2 или 4 килобайта. Значит, путем косвенной адресации можно разместить 256 — 1024 блока. Размер файла, занимающего столько блоков, считайте сами.
А если файл еще длиннее? Следующий адрес в массиве-указателе указывает на блок двойной косвенной адресации (double indirect block). Этот блок содержит список адресов блоков, которые, в свою очередь, содержат списки адресов следующих блоков данных.
И, наконец, последний адрес в массиве-указателе задает адрес блока тройной косвенной адресации, то есть блока со списком адресов блоков, которые являются блоками двойной косвенной адресации.
Пока остается непонятным, где находится имя файла, если его нет ни среди данных файла, ни среди его метаданных. В UNIX-подобных системах имя файла есть атрибут не самого файла, а файловой системы, понимаемой как логическая структура каталогов. Имя файла хранится только в каталоге, к которому файл приписан, и больше нигде. Из этого вытекают любопытные следствия.
Во-первых, одному индексному дескриптору может соответствовать любое количество имен, приписанных к разным каталогам, и все они являются настоящими. Количество имен (жестких ссылок) учитывается в индексном дескрипторе. Именно это количество вы можете увидеть по команде ls -l.
Во-вторых, удаление файла означает просто удаление записи о нем из данных каталога и уменьшение на 1 счетчика ссылок.
В-третьих, сопоставить имя можно только номеру индексного дескриптора внутри одной и той же файловой системы, именно поэтому нельзя создать жесткую ссылку в другую
файловую систему (символическую — можно, у нее другой механизм хранения).
Сам каталог таким же образом приписан к своему родительскому каталогу. Корневой каталог всегда записан в индексный дескриптор с номером 2 (номер 1 отведен
для списка адресов дефектных блоков). В каждом каталоге хранится ссылка на него самого и на его родительский каталог — это и есть псевдоподкаталоги «.» и «..».

Строение каталога в ext2fs


Номер inode
Длина записи
Длина имени файла
Имя файла
Номер inode
Длина записи
Длина имени файла
Имя файла
Номер inode
Длина записи
Длина имени файла
Имя файла


Таким образом, количество ссылок на каталог равно количеству его подкаталогов плюс два. Данные каталога представляют собой связный список с записями пере-
менной длины и выглядят примерно так, как на рис. 2.
А как же файлы физических устройств? Они могут находиться в тех же каталогах, что и обычные файлы: в каталоге нет никаких данных, говорящих о принадлежности имени файлу на диске или устройству. Разница находится на уровне индексного дескриптора. Если i-узел обычного файла указывает на дисковые блоки, где хранятся его данные, то в i-узле файла устройства содержится указатель на список драйверов устройств в ядре — тот элемент списка, который соответствует старшему номеру устройства.

Свойства файловой системы ext2fs:

• Максимальный размер файловой системы — 4 Тбайт.
• Максимальный размер файла — 2 Гбайт.
• Максимальная длина имени файла — 255 символов.
• Минимальный размер блока — 1024 байт.
• Количество выделяемых индексных дескрипторов — 1 на 4096 байт раздела.

Журналируемые файловые системы

Представим такую ситуацию. У вас есть жесткий диск, скажем, на 80 Гб. Вы поленились разбить его на разделы, и у вас есть один большой раздел, занимающий все ваши 80 Гб. И вот в момент записи на диск произошло отключение питания. Хорошо, если это случилось во время записи данных какого-то файла, пусть и очень важного: файл можно восстановить хотя бы частично. А вот если свет погас, когда операционная система записывала метаданные, то расположение файла на диске перестанет соответствовать
списку принадлежащих ему блоков в индексном дескрипторе. Файловая система может утратить целостность, то есть такое состояние, когда каждый блок принадлежит не более чем одному файлу (inode). В результате вы можете не досчитаться не одного, а сотни файлов.
Признаком потери целостности служит бит чистого размонтирования (clean bit), точнее, его отсутствие. Этот бит сбрасывается при подключении (монтировании) файловой системы в знак того, что файловая система сейчас используется. После успешного размонтирования файловой системы этот бит устанавливается снова.
Если при монтировании файловой системы в процессе загрузки операционная система обнаруживает, что чистый бит не установлен, она запускает средство проверки файловой системы — программу fsck. Представляете, сколько времени займет такая проверка? Даже при условии, что ошибок будет мало или вообще не будет, придется ждать довольно долго. А если еще будет нарушена целостность, тогда восстановление этой целостности займет еще несколько минут вашего времени.
Все это справедливо для обычной файловой системы. Журналируемая же файловая система перед тем, как что-то сделать с файлами, записывает на диск некое описание планируемой операции и вычеркивает каждый пункт плана только после того, как он успешно выполнен. Тогда после сбоя можно будет не проверять на целостность весь огромный раздел, а только просмотреть журнал и откатить незаконченные операции.
Имейте в виду, что целью журналирования является обеспечение целостности файловой системы, а не сохранность пользовательских данных как таковых.
Журналировать операции записи самих данных тоже можно: в этом случае есть вероятность, что данные после сбоя будут восстановлены. Правда, согласно золотому правилу механики, за все нужно платить, и платить приходится быстродействием.
Решают вопрос разными ухищрениями: например, запись происходит в момент наименьшей активности, некоторые журналируемые файловые системы позволяют разместить журнал на другом физическом диске. Да и фактически время работы с журналом намного меньше, чем работа непосредственно с данными. И, естественно, некоторый полезный объем теперь приходится отводить под сам журнал, но его размеры обычно не превышают 32 Мбайт, что по нынешним временам не так уж и много.
И все же лучшим средством от неожиданного отключения до сих пор являются источники бесперебойного питания...
Современные версии ядра Linux (2.6.x) поддерживают в качестве родных четыре журналируемые файловые системы: ReiserFS, ext3fs, XFS и JFS.
Из них журналирование данных поддерживает только ext3fs. Список файловых систем, которые поддерживаются вашим ядром, содержится в файле /proc/filesystems.

ReiserFS

Разработана Хансом Райзером (Hans Reiser) и его компанией Namesys и официально включена в ядро 2.4.4.
Преимущества данной ФС в основном проявляются в работе с мелкими файлами: они целиком хранятся в своих i-узлах (inode), без выделения блоков в области данных. Вместе с экономией места это способствует и росту производительности, так как данные и метаданные хранятся в непосредственной близости и могут быть считаны одной операцией
ввода/вывода.
Другая особенность ReiserFS состоит в том, что хвосты файлов длиной меньше чем в один блок могут быть упакованы в один дисковый блок (режим тайлинга). Это обеспечивает около 5% экономии дискового пространства. Именно работа с маленькими файлами (меньше килобайта) и обслуживание большого их количества выделяет данную ФС среди прочих.
ReiserFS несовместима с ext2fs на уровне утилит обслуживания файловой системы, однако соответствующий инструментарий, объединенный в пакет reiserfsprogs, уже давно включается в стандартную поставку современных дистрибутивов.
К сожалению, загрузчики Linux (LILO и GRUB) не способны загрузить ядро Linux с раздела ReiserFS, оптимизированного в режиме тайлинга.
Поэтому под каталог /boot лучше отводить отдельный раздел с файловой системой, совместимой с ext2fs.

XFS

При работе с огромными (терабайтными) файлами вне конкуренции остается файловая система XFS, разработанная компанией Silicon Graphics (сейчас SGI) специально для операций с мультимедийными данными и впервые появившаяся в 1994 г. в версии ОС Irix 5.3. Она использует 64-битную адресацию, что позволяет увеличить максимальный размер файловой системы до 18 тысяч петабайт (при этом предельный размер файла составляет 9 тысяч петабайт).
Особенностью этой файловой системы является устройство журнала: в журнал пишется часть метаданных самой файловой системы таким образом, что весь процесс восстановления после сбоя сводится к копированию этих данных из журнала в файловую систему. Размер журнала задается при создании системы, он должен быть не меньше 32 мегабайт.
XFS эффективно распараллеливает операции ввода-вывода: она делит все пространство раздела на несколько равных областей (allocation group), служащих своего рода автономными файловыми системами в рамках единой XFS.
Пакет утилит обслуживания xfsprogs можно скачать с тут (содержит ссылку на российское зеркало).

JFS

Разработана IBM для рабочих станций под управлением ОС AIX, затем портирована для Linux и выпущена по Стандартной Общественной лицензии. Всю необходимую информацию о ней можно найти здесь.
Размер журнала составляет примерно 40% от размера файловой системы. Эта файловая система может содержать несколько сегментов, содержащих журнал и данные. Такие сегменты называются агрегатами и могут монтироваться отдельно. Умеет она также хранить маленькие файлы и каталоги, содержащие не больше 8 файлов, в пределах индексного дескриптора. Широкого признания пока не получила.

Ext3fs

Файловая система ext3fs официально включена в ядро Linux с версии 2.4.16. Впервые она появилась в дистрибутивах RedHat и SuSE. Современные дистрибутивы, основанные на ядре 2.6.x, предлагают установить ext3fs по умолчанию.
Некоторые источники утверждают, что ext3fs — Зто всего лишь «надстройка» над файловой системой ext2fs, а не самостоятельная файловая система. Благодаря такому происхождению ext3fs совместима со всеми программами для обслуживания и настройки файловой системы ext2fs. И перейти на ext3fs можно простым добавлением файла журнала к ext2fs, не только без переформатирования раздела, но даже и без перезагрузки машины. Более того, ОС Linux на старых ядрах, не поддерживающих ext3fs, могут работать с разделами, на которых сформирована эта файловая система, просто подключая их как разделы ext2fs.
Кроме того, ext3fs — самая надежная из рассмотренных файловых систем: в ней предусмотрено журналирование операций не только с метаданными, но и с данными файлов.
Журнал может быть включен в одном из следующих режимов:

• полного журналирования (journal);
• последовательном (ordered, применяется по умолчанию);
• обратной записи (writeback).

Режим полного журналирования позволяет минимизировать ваши потери при отключении питания, но является наиболее медленным из всех трех режимов. Этот режим и подразумевает журналирование записи пользовательских данных.
Самый быстрый режим — это «обратная запись». Это обыкновенное журналирование только метаданных.
Режим «последовательный» представляет собой компромисс между скоростью и полнотой. Официально журналируются только метаданные, но блоки соответствующих им данных записываются первыми. В большинстве случаев такой режим гарантирует сохранность данных, особенно если данные дописывались в конец файла, как обычно и бывает.
Какой режим выбрать? Если ваш сервер является файловым (FTP, WWW-сервер), то есть таким, который используется пользователями для хранения файлов, выберите режим полного журналирования — пользователи будут вам благодарны. Пусть в этом режиме сервер будет работать чуть медленнее, зато в случае ЧП можно минимизировать потери информации.
Во всех остальных случаях нужно установить режим «Последовательный», точнее вообще не нужно ничего устанавливать — он используется по умолчанию.

Ярлыки: , ,


Коментариев: 3 штук(и)


Привет. В "Записках дебианщика" прочел Ваш вопрос по поводу таблиц.
Загляните в исходник и увидите, что после каждого тега в структуре таблицы стоит <br />. Из-за этого и появляются эти ужасные отступы. Их нужно убрать руками в HTML коде поста.
Откуда они взялись? Скорее всего у Вас в настройках блога установлена опция вставки этих тегов вместо переноса строки (т.е. новая строка в исходнике = новой строке в опубликованном посте). И когда Вы вставляли код таблицы, видимо, каждый тег начинался на новой строке. Поместите код в одну строку, все встанет на свои места.
+ маленький совет, для абзацев можно использовать теги <p> </p>. Тогда текст немножко нагляднее становится. Плюс можно стили к параграфам применить, что дает больше возможностей.
Надеюсь помог. Успехов.
откоментировал: Blogger x[82], 30 июля 2007 г., 0:14  

Большое спасибо.
Тега br/ в тексте не обнаружил. Воспользовался другим Вашим советом и все сделал одной строкой. Помогло.
Теперь я стал в дизайне, благодаря Вам еще умней. Еще раз благодарю. :)
откоментировал: Blogger banderlog, 30 июля 2007 г., 12:24  

Всегда рад. Кстати я в свою очередь становлюсь умнее благодаря Вашим статьям :]
откоментировал: Blogger x[82], 31 июля 2007 г., 11:21  


<< На главную... | << Добавить комментарий

Интересные статьи по работе в Linux.

понедельник, июля 23, 2007

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


Создание Fedora Live CD
В декабре 2006 в рамках проекта дистрибутива Fedora Linux был выпущен первый Live CD. Узнайте, как создавать свои собственные простые в использовании Live CD при помощи видоизмененного Pilgrim, средства для создания Fedora Live CD.

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

Подсказки по Linux: Функции сравнения и тестирования в Bash
Вы запутались во множестве способов тестирования и сравнения в Bash shell? Это руководство поможет вам освоиться с различными тестами для файлов, строк и чисел. Вы узнаете, когда и как стоит использовать конструкции с test, [], [[]], (()) или if-then-else.

Ярлыки: ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

Krusader 1.80.0

Вышла финальная версия файлового менеджера - Krusader.



Основные обновления:
• Полная поддержка ACL для просмотра и редактирования
• Серьезно изменен эмулятор терминала, добавлены новые возможности и изменен внешний вид
• Изменена и усовершенствованна система UserAction
• Повышено удобство и простота использования, особенно в Konfigurator и в большей степени, преобразование меню
• Улучшена работа с архивами: упаковка в фоном режиме, поддержка шифрования, многотомные архивы, увеличен уровень сжатия

Полный список изменений и улучшений находится в ChangeLog.

Прямые ссылки для скачивания: исходники, deb-пакет

Ярлыки: , , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

OpenSSH. Часть 6. Назначение разрешений для файлов ssh.

вторник, июля 17, 2007

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

Для пользовательских учетных записей в каталоге ~/.ssh назначаются следующие разрешения:

~/.ssh - 700
~/.ssh/id_dsa и другие закрытые ключи - 400
~/.ssh/id_dsa.pub и другие открытые ключи - 644
~/.ssh/ssh_config - 644
~/.ssh/known_hosts - 644
~/.ssh/authorized_hosts - 644

Разрешения для содержимого каталога /etc/ssh:

/etc/ssh - 755
/etc/ssh/sshd_config - 644
/etc/ssh/ssh_config - 644
/etc/ssh/ssh_host_dsa_key и другие закрытые ключи - 400
/etc/ssh/ssh_host_dsa_key.pub и другие открытые ключи - 644
/etc/ssh/moduli - 644

Другие части:

OpenSSH. Часть 1. Введение.
OpenSSH. Часть 2. Настройка.
OpenSSH. Часть 3. Построение новых ключей хостов
OpenSSH. Часть 4. Использование нескольких пар ключей
OpenSSH. Часть 5. Вход без пароля.

Ярлыки: , , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

OpenSSH. Часть 5. Вход без пароля.

пятница, июля 13, 2007

Вводить пароли утомительно, особенно если они состоят из нескольких слов, но ведь можно использовать OpenSSH для открытия подключений без ввода пароля (но при этом сохранить защиту подключения). Для этого существуют следующие приложения - ssh-agent и keychain. Расмотрим каждую из них.

Использование ssh-agent.

Сперва необходимо настроить открытый и закрытый ключ (об этом я здесь уже писал), а затем воспользуйтесь ssh-agent. Эта программа обрабатывает запросы на аутентификацию при подключении к различным системам через SSH. Пароль вводится только один раз, в начале сеанса SSH; после выхода из сеанса его придется вводить заново.
Ssh-agent не позволит запланировать пересылку данных через SSH из cron. Прежде всего запустите ssh-agent с указанием используемого командного процессора:

$ ssh-agent bash

После появления стандартного приглашения запустите утилиту ssh-add, которая загружает все ключи из каталога ~/.ssh:

$ ssh-add
Enter passphrase for /home/jenn/.ssh/idrsa:
Identity added: /home/jenn/.ssh/idj-sa (/home/jenn/.ssh/idrsa)
Enter passphrase for /home/jenn/.ssh/apache_key:
Identity added: /home/jenn/.ssh/idrsa (/home/jenn/.ssh/apachekey)

В дальнейшем вы сможете войти на любой хост SSH без ввода пароля:

jenn@windbag:$ ssh powerpc
Linux powerpc 2.4.21 #1 Sun Aug 3 20:15:59 PDT 2003 i686 GNU/Linux
Libranet GNU/Linux
Last Login: Web Feb 7 18:28:20 2004 from windbag.test.net
jennOpowerpc:~$

Чтобы завершить работу ssh-agent, просто выйдите из командного процессора ssh-agent:

$ exit

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

$ ssh-add -l
1024 65:91:77:71:24:66:46:ea:cb:00:fe:83:ad:b8:4a:34 /home/jenn/.ssh/id_rsa (RSA)
1024 da:f7:27:6a:37:4e:a5:bb:ld:00:c7:a8:e9:fe:23:d8 /home/jenn/.ssh/apachekey (RSA)

Чтобы команда сработала, необходимо вернуться к локальному командному процессору ssh-agent и не быть подключенным к удаленному хосту. При подключении работой терминала управляет удаленный хост, и вы получите сообщение об ошибке «Could not open a connection to your authentication agent». Команда ssh-add позволяет загружать конкретные ключи:

$ ssh-add /home/jenn/adminkeys/id_rsa_http

и удалять ключи из активного сеанса ssh-agent (при этом ключ не удаляется из системы):

$ ssh-add -d /home/jenn/.ssh/id_dsa
Identity removed: /home/jenn/.ssh/iddsa (/home/jenn/.ssh/idjdsa.pub)

Следующая команда удаляет все ключи:

$ ssh-add -D
All identities removed.


Использование keychain.

Программа ssh-agent неплоха, но пользователю приходится вводить пароль при каждом открытии нового командного процессора. С выходом вся введенная информация теряется. Кроме того, ssh-agent не позволяет использовать беспарольную пересылку данных SSH с cron.
Чтобы решить эти проблемы можно воспользоваться программой keychain, которая сохраняет пароли SSH на общесистемном уровне вплоть до перезагрузки. keychain также работает совместно с cron. Загрузите и установите keychain из обычных источников в формате RPM, .deb или в виде исходных текстов. Затем отредактируйте локальный файл ~/bash_profile и добавьте следующие строки:

keychain iddsa
. ~/.keychain/$HOSTNAME-sh

Укажите фактическое имя закрытого ключа: idjrsa, my_own_groovy_key и т. д. Обратите внимание на начальную точку во второй строке; она приказывает Bash прочитать файл, имя которого указано в этой строке. Вот и все. Теперь после входа на локальную рабочую станцию на экране появится запрос на ввод пароля от keychain. В дальнейшем keychain будет обеспечивать аутентификацию вплоть до перезагрузки системы.
В файле можно указать столько ключей, сколько вы собираетесь использовать:

keychain iddsa apachekey ftpkey

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

Предыдущие части.

Часть 1. Введение.
Часть 2. Настройка.
Часть 3. Построение новых ключей хостов
Часть 4. Использование нескольких пар ключей

Ярлыки: , , ,


Коментариев: 2 штук(и)


привет. я сегодня сделала себе тут дневник. это все не похоже на другие жж и онлайновые даяри), можешь мне чуточку подсказать как тут все устроено. особенно меня интересуют коменты. я так поняла тут это не главное. тут люди просто пишут мысли, а не общаются да? спасибо!!!
откоментировал: Blogger lapoo, 17 июля 2007 г., 3:45  

В принципе, данная площадка для ведения блогов ни чем практически не отличается от других. Те же принципы. Ты высказываешь свои мысли или пишешь статьи на разные темы. Народ заходит, читает, комментирует. Блог - это не чат, где происходит общение. Блог может превратиться в чат только в том случае, когда народу понравилась твоя статья и он ее начинает комментировать. И в комментах уже происходит своего рода общение. В них, в комментах, народ высказывает уже СВОИ мысли на изложенное тобой. Так что разницы никакой. Пробуй, дерзай, но не дерзи. :) Этого нигде не любят. Успеха тебе.
откоментировал: Anonymous автор, 17 июля 2007 г., 9:57  


<< На главную... | << Добавить комментарий

OpenSSH. Часть 4. Использование нескольких пар ключей.

среда, июля 11, 2007

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

Обратимся за помощью к утилите ssh_keygen, которая позволяет задать парам ключей любые имена по вашему усмотрению. К имени открытого ключа автоматически присоединяется суффикс .pub.
Всегда указывайте пароль!

akkana@windbag:$ ssh-keygen -t rsa -f /home/akkana/.ssh/ftp_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/akkana/.ssh/ftp_key.
Your public key has been saved in /home/akkana/.ssh/ftp_key.pub.
The key fingerprint is:
95:d2:12:55:66:ba:ec:a8:5c:40:4b:le:03:2b:6c:ea akkana@windbag
akkana@windbag:~$

При создании пары ключей с пользовательскими именами имя закрытого ключа вводится в файле ~/.ssh/ssh_config. Если файл не существует, создайте его и введите строку вида

IdentityFile ~/.ssh/ftp_key

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

Предыдущие части:

Часть 1. Введение
Часть 2. Настройка
Часть 3. Построение новых ключей хостов

Ярлыки: , , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий

OpenSSH. Часть 3. Построение новых ключей хостов

вторник, июля 03, 2007

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

Сгенерировать новую пару ключей можно с помощью программы ssh-keygen. Программа должна запускаться с правами root и с указанием имени новой пары ключей. Всегда задавайте контрольную фразу (пароль):

# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/sshjiost_rsa_key.pub.
The key fingerprint is:
6c:24:75:54:d3:21:17:c9:11:db:41:dd:95:3f:d0:ac root@windbag

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

HostKey /etc/ssh/ssh_host_rsa_key

Закомментируйте или удалите записи несуществующих ключей.

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

WARNING: HOST IDENTIFICATION HAS CHANGED!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Are you sure you want to continue connecting? (yes/no)

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

Предыдущие части:

Часть 1. Введение
Часть 2. Настройка

Ярлыки: , ,


Коментариев: 0 штук(и)



<< На главную... | << Добавить комментарий