Знакомьтесь — Linux From Scratch

Вместо вступления
Tux Construction.С самого раннего детства я интересовался компьютерами. Интерес этот произрастал из игр под MS-DOS в детсадовском возрасте, заканчивая всевозможными олимпиадами по программированию к окончанию школы. Не удивительно, что после школы пошел учиться в технический институт на программиста. Самое странное, что все эти годы я был абсолютно далек от такой замечательной операционной системы, как GNU/Linux. Но полтора года назад, в самом начале первого семестра, я познакомился с парнем (он был незначительно старше меня и поступил в институт уже после техникума — имея опыт работы), который во время одного из разговоров сказал:
«Хочешь начать изучать GNU/Linux? Начни с Linux From Scratch!»


Единственный бумажный дистрибутив
LFS (здесь и далее аббревиатура от Linux From Scratch) – книга, написанная Герардом Бикмансом, описывающая процесс сборки минимального рабочего варианта GNU/Linux из исходных кодов. Почему бумажный? В свое время книгу можно было купить в твердом переплете, что делает «дистрибутив» несколько необычным, не правда-ли? Помимо самой книги, для сборки конечно-же понадобится интернет (или заранее загруженные исходные коды), свободный раздел на жестком диске, и любая операционная система на базе ядра Linux, имеющая компилятор. Лично я всегда использую либо уже собранный дистрибутив LFS, либо полную установку Slackware – в нем есть все необходимое, чего не скажешь про (например) Ubuntu. Конечно, всегда можно загрузить нехватающие пакеты, но ведь мы хотим только-только научиться линуксу? А Slackware даже в своей базовой установке и без конфигурирования предоставляет требуемый инструментарий.

Следует сказать сразу — дистрибутив собранный по книге LFS не умеет толком ничего. Вернее, ничего такого, что потребуется неискушенному пользователю. Он умеет включаться, выключаться, перезагружаться, использовать Ethernet подключение, но что самое главное — компилировать. Так существуют других книги, теперь уже поддерживаемые сообществом — Beyond LFS позволяет собрать те самые, интересные пользователю, программы. От браузера и графической среды, до систем управления базами данных и DHCP сервера. Книга имеет свойство отставать в версии от базовой книги, но полученный от LFS опыт обычно достаточен, для самостоятельного разрешения конфликтов версий. Три другие книги — Automated LFS, Cross LFS и Hardened LFS полностью соответствуют названиям и выходят за пределы этой статьи. Впрочем, всегда можно почитать в интернете, правда?

Читать дальше →

Полезный DHT

Кто бы лет эдак пятнадцать назад (всего ничего!) сказал, что не успеют вырасти наши дети, а мы уже не сможем нормально жить без интернета, который в те времена был всего лишь бедным и неоригинальным набором текстовых страничек. Ему если и поверили бы, то только очень большие умники или фантазеры. Ведь в то время канал в 33кбит был мечтой, да и нужен ли он был больше, если все содержимое интернета могло бы занять только несколько десятков гигабайт? Но речь не об этом.
Читать дальше →

Вконтакт по приглашениям, но зачем?

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

Заявил сегодня вечером тов. Дуров.

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

Но если разобраться, что может стоять за таким поступком?
Читать дальше →

Хронология исправления не типичного сбоя dhcp, проблемы поиска решения

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

Читать дальше →

Munin мониторинг серверов

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


Читать дальше →

Obexftp с поддержкой кириллицы

Пару дней назад встала задача передачи файлов по bluetooth в Ubuntu 10.10 с компьютера на различные устройства. Выполнять передачу файлов нужно было только фоном (без GUI), писать свой бинарник было нерентабельно, поэтому выбор пал на obexftp. Протестировав его пару минут, столкнулся с проблемой кодировки — имена файлов, содержащие символы кириллицы, приходили кракозябрами.

Погуглив, нашел патч, исправляющий проблемы с кодировкой с помощью iconv. Протестировав на паре файлов, все было замечательно, пока программа не стала выдавать segfault при начале приема файла или при окончании загрузки файла (только с кириллицей).

К примеру, при передачи файла с именем «Сосны.mp3» происходил segfault программы, хотя если написать «Сосны 1.mp3», то файл передавался успешно.

Пришлось погружаться в дебаггинг…

Читать дальше →

Работа с изображениями JPEG

Данная статья посвящена, как правильно работать с изображениями в формате JPEG. Казалось бы, где здесь могут быть «подводные камни»? Оказывается не все так просто.

Врага надо знать в лицо
Перед тем как начать работать с JPEG, надо его изучить, для этого я рекомендую прочитать статьи о JPEG на сайте Черепанова Александра, в частности, статьи «Режимы сжатия формата JPEG» и «Структура файла, маркеры».

Читать дальше →

Конечные автоматы

Введение


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

В конечном автомате количесто состояний конечно, а результат его работа определяется по его конченому состоянию (Wikipedia).
Существует несколько видов конечных автоматов:

Читать дальше →

Компиляция mex файлов в matlab с помощью mingw под windows 64 бит

Часто mex файлы в matlab легко компилируются с помощью visual studio и все вроде бы хорошо, но тут вы решаете, что неплохо бы прикрутить что-то из мира свободного кода, и тут получается проще собрать систему с mingw, чем использовать nmake.

Читать дальше →

Нестандартный способ защиты паролей

На самом деле, в том же интернете можно найти множество различных способов защиты паролей, хранящихся в базе (например MySQL). В данном посте же будет рассмотрен тот способ, который мне показался достаточно стойким к взлому.

Немного теории о защите паролей

Очень часто, при написании сайта может возникнуть вопрос — «Как же защитить конфедециальность данных пользователя?». Единого ответа тут быть разумеется не может, но есть ряд способов, применяемых по ситуации. В данном посте мы рассмотрим лишь те, которые подходят для применения непосредственно в самом движке сайта, и мешающие удачливому хакеру, умыкнувшему у нас дамп базы получить пароль от «root» (или administrator, кому как больше нравится), получая тем самым все права и привелегии.

  • Способ №1. Мы можем просто-напросто прогнать пароль через хэш-функцию при регистрации, и затем записать результат в базу. У этого способа есть один недостаток — при использовании распространеного хэш-алгоритма (например md5 или sha 1) хакер может воспользоваться декриптором, который выдаст ему исходный пароль.
  • Способ №2. Никто не мешает нам использовать хэш-алгоритм дважды. То-есть, мы хэшируем по сути хэш. Это значительно усложняет жизнь взломщику, но все равно не дает 100% гарантии.
  • Способ №3. Шифрование с «солью». У этого способа существует множество вариаций, но смысл остается один — во время шифрования помимо исходного пароля используется также и уникальная для каждого пользователя последовательность символов.

Читать дальше →