Показаны сообщения с ярлыком GNU/Linux. Показать все сообщения
Показаны сообщения с ярлыком GNU/Linux. Показать все сообщения

23 мая 2013 г.

Linux InstallFest 13.05

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

С моей стороны будут презентации по двум проектам:

  • LazyCat -- система управления конфигурациями
  • Guile-SSH -- библиотека, позволяющая использовать протокол SSH в программах, написанных на языке Scheme (диалекте Lisp)

Подробности о мероприятии можно узнать здесь:
http://www.nnlug.ru/fest13

- Артём

8 ноября 2012 г.

Расшаренные журналы LinuxFormat в офисе Меры

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

16 июня 2011 г.

О Microsoft Windows, GNU/Linux и не только

Доброго времени суток, случайные и не случайные читатели этого блога.

В то время, пока этот блог был в запустении, в моей жизни стремительно произошли перемены. Одна из них - я больше не студент, а человек со степенью бакалавра. Первого июня у меня была защита выпускной квалификационной работы (ВКР) в Москве, и она прошла замечательно. Я защитился на "отлично" и сам долго не мог в это поверить. Две недели перед защитой были действительно безумными, но это того стоило.

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

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

Для получения данных о распространённости операционных систем я обратился к статистике, собранной Консорциумом Всемирной Паутины (World Wide Web Consortium, W3C) [1] и статистике, собранной некоммерческой организацией Wikimedia Foundation. [2]

На основе этих данных я создал следующую диаграмму:



Видно, что распространённость операционных систем семейства Microsoft Windows претерпевает заметные изменения на коротких отрезках времени, порядка одного месяца. Так, доля Microsoft Windows 7 в течении последних пяти месяцев показывает рост примерно на 1% за месяц. В прошлом году этот прирост доходил до 2% и более. В то же время, доля Microsoft Windows XP неуклонно падает примерно на 1% в месяц в течении последних двух лет.

Если посмотреть на распространённость GNU/Linux, то здесь мы не увидим столь же впечатляющего прогресса. Доля GNU/Linux среди операционных систем устойчиво растёт на 0.1% каждый месяц в течении 9 лет. [1] На первый взгляд, не слишком впечатляет. Но я думаю, что это как раз тот случай, когда черепаха обгонит Ахиллеса. Ведь, несмотря на медленный рост процента GNU/Linux, это всё-таки рост. Здесь нет таких резких "скачков" и "падений", как в случае Microsoft Windows.

В чём же секрет? Попробую объяснить, ведь это очень просто.

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

У GNU/Linux нет единого разработчика, вся система децентрализовано разрабатывается тысячами людей по всему миру. Как результат - GNU/Linux не зависит от сиюминутных желаний и курса одного человека или одной корпорации. Да, в её разработке участвуют такие известные компании, как IBM, RedHat, Dell, HP и другие.[3] Однако ни одна из них по-отдельности не имеет существенного влияния на разработку системы в целом.

В завершении поста - реклама Linux, выпущенная IBM в 2003 году:



Источники
  1. http://www.w3schools.com/browsers/browsers_os.asp
  2. http://stats.wikimedia.org/archive/squid_reports/
  3. http://en.wikipedia.org/wiki/Linux

24 апреля 2011 г.

"Linux: Экономный, аккуратный и экологичный"

Интересная статья на IBM Developerworks:

http://www.ibm.com/developerworks/ru/library/l-green-linux/index.html?ca=drs-


«...в состоянии бездействия ядро GNU/Linux непрерывно ищет, чем бы заняться. Обычно ядро выполняет прерывание по таймеру примерно каждые 4 мс, чтобы проверить, не нужно ли планировать новые задачи. Начиная с версии 2.6.21 у ядра появился бестактовый режим, в котором вычисляется, когда нужно будет планировать новые задачи, и таймер устанавливается на это время, что позволяет процессору оставаться в состоянии с наименьшим потреблением в течение гораздо больших периодов времени (несколько секунд), тем самым потребляя меньше энергии.»

В Gentoo Linux конфигурационный файл ядра находится в /usr/src/linux/,
где linux - символическая ссылка на каталог с исходниками ядра.


  $ file /usr/src/linux
  /usr/src/linux: symbolic link to `linux-2.6.38-gentoo-r1'


Проверить, включен ли бестактовый режим, можно следующим образом:


  $ cd /usr/src/linux/
  $ cat .config | grep CONFIG_NO_HZ
  CONFIG_NO_HZ=y
  $ uname -ro
  2.6.38-gentoo-r1 GNU/Linux

7 января 2011 г.

Использование свободного драйвера nouveau с NV GeForce 6600 (kernel 2.6.36)

Решил заменить проприетарные драйвера от (или для) видеокарты nvidia на свободный драйвер nouveau.

Моя видеокарта:

> su
> lspci -k | grep -i vga
01:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600] (rev a2)


Моя система:

> uname -a
Linux gentoo 2.6.36-gentoo-r5 #18 SMP Fri Jan 7 05:54:56 MSK 2011 i686 Intel(R) Pentium(R) 4 CPU 1.70GHz GenuineIntel GNU/Linux


Следую этой инструкции:
http://en.gentoo-wiki.com/wiki/Nouveau

Из ядра так же нужно убрать NVIDIA Framebuffer:

Device Drivers --> Graphics support -->
--> Support for frame buffer devices:
< > nVidia Framebuffer Support


Поправил /etc/make.conf

> nano /etc/make.conf
...
#VIDEO_CARDS="nvidia"
VIDEO_CARDS="nouveau"
...


Чтобы корректно удалить из системы проприетарные драйвера nvidia-drivers, нужно пересобрать несколько пакетов с поддержкой nouveau - чтобы разрешить зависимости. Что я и сделал:

> emerge -av media-libs/mesa media-gfx/imagemagick x11-base/xorg-drivers


Теперь можно спокойно удалить проприетарные драйвера

> emerge -av --depclean x11-drivers/nvidia-drivers


Собрал

> emerge -av x11-drivers/xf86-video-nouveau


Настроил Иксы:

> nano /etc/X11/xorg.conf


Section "Module"
...
Load "dri2"
Load "dri"
EndSection

Section "Device"
...
Driver "nouveau"
BusID "PCI:1:0:0"
EndSection

...

Section "ServerFlags"
Option "AIGLX" "off"
EndSection

Section "DRI"
mode 0666
EndSection


Теперь о настройке framebuffer'a. Мне нужно разрешение 1280x1024. Посмотрел доступные варианты с помощью утилиты hwinfo:

> hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.459]
Unique ID: rdCR.MH8719d4NL7
Hardware Class: framebuffer
Model: "NVIDIA nv43 Board - p277h1"
Vendor: "NVIDIA Corporation"
Device: "nv43 Board - p277h1"
SubVendor: "NVIDIA"
SubDevice:
Revision: "Chip Rev"
Memory Size: 256 MB
Memory Range: 0xd0000000-0xdfffffff (rw)
...
Mode 0x031b: 1280x1024 (+5120), 24 bits
...


Вот оно. 0x031b - шестнадцатиричный код разрешения.

Поправил настройки загрузчика GRUB. Удалил опцию ядра "video", оставил только "vga". Получилось следующее:

> nano /boot/grub/grub.cfg

...
menuentry "Gentoo GNU/Linux, with Linux 2.6.36" --class gentoo --class gnu-linux --class gnu --class os {
...
linux /kernel-2.6.36 root=/dev/sda4 ro vga=0x031b
}
...


Загрузился с пересобранным ядром и драйвером nouveau. Иксы работают, разрешение в консоли и в Иксах - 1280x1024.

На этом всё. Хорошего дня.

31 декабря 2010 г.

Сказ о потерянных раскладках

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


Далее в тексте упоминается одно из самых сильных и, вместе с тем, опасных заклинаний - команда su. Даёт эта команда нам власть над миром нашим, пусть и виртуальным. А большая власть - большой осторожности и ответственности требует.


1. Давно я собирался обновить систему на ноуте и на ПК. На дворе уж год две тысячи десятый заканчивается, а я всё со старым ядром 2.6.32 работаю... Не дело это. А тут ещё обновлений немеряно нашлось после очередного выполнения



> emerge --sync && eix-update && eix -uc


Посмотрел я на списки обновлений, посмотрел на версии новые, и решил - время пришло. Благо ноут есть, для опытов. Начал с него. Потом взялся за ПК. Настроил ядро новое, версии 2.6.36.


А на ПК у меня жёсткие диски именовались так:



hda1, hda2 .... hdaN


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


sda1, sda2 .... sdaN

Отсюда и ошибки при монтировании - нет устройств таких, что перечислены в fstab! Исправил я ошибку эту - заменил hda на sda. Загрузилась система, да не может всё равно примонтировать разделы c файловой системой ext4! А проблема известная, и решается она следующим образом:


http://www.nkuttler.de/post/filesystem-with-huge-files-cannot-be-mounted-read-write-without-config_lbdaf/

После этого система загрузилась благополучно.


Кстати, считаю нужным упомянуть здесь о интересном нововведении, а именно об опциональной возможности использования в ядре драйвера ФС ext4 для работы и со старыми версиями данной ФС - ext2 и ext3. Так как других ФС, кроме перечисленных, на ПК и на ноуте я не имею, решил испробовать данную возможность. Пока проблем не замечено.


2. Система загрузилась, только вот раскладку переключить не мог я. Сочетание клавиш Alt+CapsLock, мной для переключения раскладки назначенное, не работало. Что ни делал, ничего не помогало. И опции в /etc/X11/xorg.conf менял, и Иксы пересобирал... Долго ли, коротко ли - нашлось решение этой проблемы: с помощью сети Интернета выловил я информацию по проблеме моей. Сказано было: в новом xorg'e способ настройки изменился, теперь настройки клавиатуры, мыши, тачпада и прочих устройств внешних - всё должно храниться в файлах отдельных, в каталоге /etc/X11/xorg.conf.d/. А там - пусто, да и каталога этого и в помине нет... Как нет? Примеры настройки должны быть. Поищем, команда для этого есть специальная:



> su
> updatedb 
> locate xorg.conf.d


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



/usr/share/X11/xorg.conf.d
/usr/share/X11/xorg.conf.d/10-evdev.conf
/usr/share/X11/xorg.conf.d/50-wacom.conf


Знаем мы теперь, где примеры хранятся, и недалече это - всего на расстоянии одной команды консольной. Ну, теперь можно просто скопировать найденный каталог с файлами в /etc/X11/. Одна команда для этого нужна, и вот она:



> cp -r /usr/share/X11/xorg.conf.d /etc/X11/


Просто, да не всё это. Теперь пришло время перенести настройки клавиатуры нашей в новое место, в каталог /usr/share/X11/xorg.conf.d


Убираем лишние строки из /etc/X11/xorg.conf путём их комментирования с помощью "#" (в принципе, эти строки можно вообще удалить):



Section "ServerLayout"
...
#  InputDevice "Keyboard0" "CoreKeyboard"
  ...
EndSection
...
#Section "InputDevice"
#  Identifier "Keyboard0"
#  Driver "kbd"
#  Option "XkbLayout" "us,ru"
#  Option "XkbVariant" ",winkeys"
#  Option "XkbOptions" "grp:alt_caps_toggle"
#EndSection
...


А вот, что получилось в /etc/X11/xorg.conf.d/10-evdev.conf. Здесь со строки, знаком "#" начинающейся, иначе комметарием называемой, номер строчки добавленной указан - чтобы понятнее было:



...
Section "InputClass"
  Identifier "evdev keyboard catchall"
  MatchIsKeyboard "on"
  MatchDevicePath "/dev/input/event*"
  Driver "evdev" # 1
  Option "XkbLayout" "us,ru(winkeys)" # 2
  Option "XkbOptions" "grp:alt_caps_toggle" # 3
EndSection
...


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


Иксы перезапускать - наука не сложная. Переключаемся на консоль - произносим заклинание и нажимаем на Ctrl+Alt+F1. Так попадаем мы на первую консоль. Снова получаем права суперпользователя, в простонаречии - root'a:



> su


И осталось лишь X-сервер перезапустить, чтобы увидеть результат действий наших - правильно ли мы настройки Иксов прописали?



> /etc/init.d/xdm restart

24 сентября 2010 г.

Флаги компиляции

Новый комикс от xkcd:
http://xkcd.com/797/

Хорошо, что Gentoo Linux позволяет легко управлять параметрами сборки программ...

Альбом: screenshots

Стоп, а где же флаг "-bugs"?!

4 сентября 2010 г.

Передача данных посредством FloppyNet. Нарезка и склейка файлов.

Сегодня потребовалось передать относительно большой файл посредством ФлоппиНет (FloppyNet). Для тех, кто не в теме, поясняю: ФлоппиНет - это передача данных посредством 3.5 дюймовых дискет. Этот способ передачи данных уже давно устарел, сейчас в качестве среды передачи широко используются медные провода, и всё чаще физической средой передачи служит свет, идущий по оптоволокну.

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

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

У меня есть старый ноутбук IBM ThinkPad 760ED, который поддерживает ФлоппиНет, и относительно новый персональный компьютер (ПК) под управлением Linux, который так же поддерживает эту технологию. На ПК есть файл, который нужно передать на ноутбук, но который невозможно передать одним пакетом через ФлоппиНет. Следовательно, его нужно аккуратно нарезать на маленькие кусочки, которые потом можно будет последовательно передать. В Linux с нарезанием файлов проблем нет - есть инструмент, острый, как скальпель и надёжный, как... Как все базовые утилиты Linux, проверенные десятилетиями использования. Имя ему - split. Как и с любым качественно изготовленным инструментом, работать с ним не составляет труда.

Допустим, файл называется bigfile.tgz и он "весит" 2 мегабайта. Нарежем его на кусочки размером в 800 килобайт:

# split -b800k bigfile.tgz

Сразу после флага -b указывается максимальный размер каждого кусочка, в данном случае это 800 килобайт. О том, что задан размер в килобайтах, говорит буква k сразу после числа, как не трудно догадаться. Мегабайты обозначаются буковой m, а если буква не указана, то подразумеваются байты.

После нажатия клавиши Enter мы обнаружим в текущей директории несколько файлов под названиями xaa, xab, xac и т.д. Можно задать названия для частей файла - для этого нужно передать команде ещё один параметр после имени нарезаемого файла - префикс. Пусть, мы хотим, чтобы получившиеся части именовались как part_a, part_b part_c и т.д. Тогда префикс будет part_, и команда будет выглядеть вот так:

# split -b800k bigfile.tgz part_

Теперь копируем последовательно кусочки на дискету (или несколько дискет), и переносим на ноутбук. Там все кусочки большого файла сваливаем в одну кучу один каталог.

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

# cat part_a part_b part_c ... part_NN > bigfile.tgz

Но вот ведь незадача! На ноутбуке нет (ещё нет) установленного Linux, только DOS и синие панельки Norton Commander... Тем не менее, повода для паники нет - DOS умеет склеивать части файла, правда, делает это несколько странно (на взгляд пользователя Linux, по крайней мере).

В DOS есть команда COPY, и пусть вас не вводит в заблуждение её название - она предназначена не только для копирования файлов, но и для склеивания файла из частей. Синтаксис команды не сложен, если вам интересны подробности, смотрите help copy в DOS. Я же затрону только то, что необходимо для склеивания бинарных (двоичных) файлов. В общем виде, это выглядит так:

# COPY /b part_a + part_b + part_c + ... + part_NN bigfile.tgz

Флаг /b указывает на то, что конечный файл является бинарным. Обратите внимание, что части файла как бы суммируются знаками "+". Если пропустить хотя бы один плюс между частями файла, команда выполнится некорректно.

В моём случае, команда выглядела примерно так:

# COPY /b part_a + part_b + part_c + ... + part_NN bigfile.tgz

- и из разрозненных частей, переданных через ФлоппиНет, вновь образовался исходный файл. Красота...

27 августа 2010 г.

Результаты заселения школ г. Дзержинска пингвинами

Немного с запозданием публикую ссылки на новость с ЛОРа и с ОпенНета.

http://www.linux.org.ru/news/russia/5263752
http://www.opennet.ru/opennews/art.shtml?num=27743

Это были очень непростые недели, но было классно. Я ездил в Дзержинск вместе с другими участниками NNLUG каждый день, обычно возвращался домой поздним вечером, а утром - опять в Дзержинск. И вот, есть результат. Почти 500 компьютеров усилиями NNLUG были переведены на Linux. Ну а те, кто ставил Linux (и я в том числе) в школах, приобрели замечательный опыт установки и настройки Linux, настройки локальной сети и пр.

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

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

21 июля 2010 г.

Эксперты из НИРО считают внедрение СПО городе N^2 нецелесообразным

Эксперты из Нижегородского Института Развития Образования (НИРО) считают внедрение свободного программного обеспечения (в том числе, операционных систем GNU/Linux) в городе N^2 нецелесообразным.

Вот ссылка на новость ЛОРа:
http://www.linux.org.ru/news/opensource/5134575

Сегодня после двух часов ночи собрался было идти спать, но тут в группе "Школьный проект NNLUG" на Google.Группах обнаружил эту ссылку на ЛОР. Новость обсуждаемая -- на данный момент 20 страниц комментариев, среди которых много замечательных ироничных комментариев, и я много смеялся, пока читал их. Но на самом деле, надо сказать, новость сама по себе совсем не позитивная -- чего уж тут радоваться, когда в "Экспертном заключении..." экспертов НИРО называется только 3 достоинства перехода на СПО, и 8 (!) недостатков. Как они набрали-то столько? Впрочем, на ЛОРе в комментариях высказывалась мысль, что некоторые из "недостатков" можно было записать, как один пункт -- а не "размазывать" по нескольким пунктам.

Привожу здесь эту таблицу из "Заключения экспертов..." НИРО (орфография сохранена) со своими комментариями, выделенными курсивом:


Достоинства Недостатки
  1. бесплатная лицензия на программное обеспечение
  2. доступность
  3. бесплатное обновление продуктов
  1. сложность в инсталляции и настройки для разных моделей ПК (в том числе, разного "возраста")
    -- Windows тоже требует настройки и инсталляции, и не факт, что какой-нибудь Windows XP и тем более, седьмой, можно будет вообще запустить на старых машинах (разного возраста). А системы GNU/Linux существуют не только для новых и супер-мега-навороченных ПК, есть дистрибутивы, которые умещаются на несколько дискет и прекрасно работают с 20 мегабайтами ОЗУ (например, Tiny Core Linux). Я не утверждаю, что установить этот дистрибутив будет так же легко, как Ubuntu, но подобный дистрибутив может превратить какое-нибудь ископаемое "железо" в рабочую станцию.
  2. потребность в помощи технических специалистов, системных администраторов для корректной установки и настройки программного обеспечения (подобные специалисты есть только в незначительном количестве ОУ области)
    -- Для _грамотной_ установки и настройки Windows тоже нужен специалист. Системный администратор нужен в любом случае, если в школе есть компьютерный класс. А найти сейчас человека, могущего администрировать класс (или несколько классов) на Linux -- думаю, это на такая уж и страшная проблема, как её малюют эксперты из НИРО.
  3. проблемы с подключением периферийного оборудования (сканеры, принтеры, модемы и др.)
    -- Ну, насколько мне известно, популярные дистрибутивы GNU/Linux сейчас поддерживают кучу различных железок, за исключением разве что каких-то редких специфичных устройств. Да и в этом случае можно "оживить" такое устройство, просто для этого нужно будет немного поработать мозгами и почитать форумы в Интернете.
  4. некорректная работа ряда программ под ОС Linux (затруднена работа с мультимедийными дисками и электронными образовательными ресурсами, в частности, широко распространёнными в образовательной практике дисками "КМ-школа", "Новый и диск" и т. п.)
    -- а) конечно, ведь эти программы были написаны для Windows б) насколько критичны эти программы? Я о них вообще не слышал, возможно, это что-то полезное... не знаю. Если уж совсем не работает -- наверняка, можно как-то обойтись в образовательной практике и без них, или найти замену... в) ОС Linux не существует. Linux -- это ядро ОС.
  5. отсутствие методической поддержки для ПСПО (в частности, для учителей-предметников)
    -- Как расшифровать это ПСПО? Я могу предположить несколько вариантов, но не уверен в их правильности. Насчёт "отсутствия..." -- зря они так. Издано множество книг, в том числе, учебников по тематике СПО, в интернете этой информации вообще немерено в свободном доступе.
  6. учебники и учебные планы, рекомендованные и используемые в ОУ, не коррелируют с интерфейсом ОС Linux (особенно данная проблема актуальна для информатики)
    -- Eсли используются учебники, в которых, например, основы работы на ПК изучаются через призму Windows -- то да, они не будут кореллировать. А кто вообще обещал, что можно изучать одну ОС по учебникам другой? Возможно, учебники для школ вообще не должны быть привязаны к одной ОС.
  7. документы, созданные в MS Office (в частности, компьютерные презентации, как один из наиболее распространённых дидактических документов) в значительном числе случаев не корректно отображаются в OpenOffice, требуют пусть незначительной, но корректировки, что порождает потребность переделки имеющихся у педагогов ЭОР; поскольку язык макросов в MS Office и OpenOffice различается
    -- Помню, как я пытался открыть свой учебный план СГА в OpenOffice.org... Там все таблицы были нарисованы _линиями_ и _рамками_ -- это несколько сотен объектов на каждой странице. Этот документ хорошо так подвешивал OpenOffice. Проблема частично решалась настройкой офиса, с увеличением используемой памяти для хранения объектов. Но, я думаю, очевидно, что какие могут быть претензии к OpenOffice, если документы сделаны подобным костыльным способом? Я уже две курсовых сделал в OpenOffice, перед сдачей сохранял в формат Microsoft Office, и никаких серьёзных проблем с их последующим открытием, чтением и редактированием в MS Word не наблюдалось. Если документ изначально грамотно сделан, то и проблем быть не должно. Так что это проблема документов и их редакторов, если что не так в OpenOffice открывается. Насчёт презентаций не знаю, не проверял. Но даже если презентацию нужно переделать -- это ж не программу переписать, просто времени немного затратить, и всё. Кстати, не понимаю, как они так ловко про макросы сюда вставили -- у них в презентациях макросы, что ли?
  8. Потребность повышения квалификации всех учителей-предметников, ля работы на компьютерах с использованием свободного программного обеспечения
    -- Ну, я так скажу -- технологии совершенствуются, и не только в мире СПО. Если они хотели продолжать учить школьников тому, чему они учили их пять, десять лет назад... гм... это было бы не очень разумно и не дальновидно. К тому же, когда обучение новому стало большой проблемой для _учителей_? Учитель должен предоставлять актуальную информацию ученикам, и давать интересный материал. Иначе уроки информатики будут скучными. Как тогда они планируют заинтересовать учеников, подготовить будущих специалистов?
Возможности Угрозы
  1. организация школьного файлового сервера/шлюза
  2. создание внутришкольной ЛВС
    -- При использовании Windows так же можно локальную сеть в школе организовать. Ну и что? Это не аргумент в пользу конкретно использования СПО.
  3. возможность настройки продукта с учётом пользовательских требований
    -- Не могу не согласиться с этим утверждением. Однако этот список "возможностей" выглядит не слишком убедительно...
  1. -неготовность педагогов школ к переходу на ОС Linux может сказаться на качестве обучения учащихся
    -- В этом списке они ещё и "-" наставили перед каждым утверждением -- наверно, для пущей экспрессии. Это тот же вопрос повышения квалификации. Если педагог не может/не хочет совершенствовать свои знания и преподавательские методы, то какой же он педагог? И опять же, Linux -- это ядро, а не ОС.
  2. -отсутствие помощи и недостаток опыта ОУ в установку ПСПО может привести к проблемам в организации УВП, функционирования ИОС школы
    -- OMG! Любят эти эксперты из НИРО сокращения, как я смотрю: ПСПО, УВП, ИОС... Отсутствие помощи, говорите? Помощь есть -- во внедрении СПО в образовательный процесс школам помогают местные группы пользователей GNU/Linux (LUG). Они и устанавливают СПО, и настраивают, и объясняют. А опыт приходит со временем. Они что, думали, что в их мозг загрузят знания о Linux, как в фильме "Матрица"? Многие гуру GNU/Linux когда то тоже были неопытными линуксоидами -- так ведь научились же?
  3. -IT-специалисты не пойдут на низкую зарплату школьных системных администраторов (следовательно, некому будет обслуживать технику)
    -- А вот это уже проблемы школы, а не СПО. Как же они собирались обслуживать компьютерные классы (неважно, с какой ОС) без администраторов? Силами учеников и преподавателей? А ответственность на ком будет лежать? Кстати, при использовании СПО экономятся средства, так что, может, и на нормальную зарплату специалисту хватит.

Вот ссылка скан этого документа (pdf-документ, 2.7 мегабайт, 3 страницы):
http://www.government.nnov.ru/_data/objects/0006/5748/doc_rtf.pdf

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

7 июля 2010 г.

Сессия сдана, 4 курс завершён. Теперь можно заняться другими важными делами...

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

Лето наступило. Дома -- духота, на улице -- жара. Ветер несёт по небу редкие серые облака, но вряд ли они принесут дождь... и в этот раз. Июль обещает быть столь же жарким, как и июнь.

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

А пока не устроился на постоянную работу, я занят тем, что внедряю Linux в НФ СГА. Мне за это ничего не обещают, а я ничего и не прошу. Мне это просто интересно и я считаю это отличной практикой.

В процессе установки Ubuntu Server было выяснено, что загрузчик GRUB невозможно установить на аппаратный RAID-0, поэтому для ОС был выделен дополнительный жёсткий диск. Правда, с первого раза установить всё по-нормальному не получилось -- загрузчик установился на тот самый RAID-0, на который он в принципе установиться не мог. Впрочем, и ладно бы так -- но загрузчик не видел систему. Тогда я просто отключил на время установки все диски кроме того, на котором должна была находиться ОС и переустановил систему. Всё заработало, RAID был снова подключен и примонтирован к файловой системе.

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

Изначально Ubuntu Server не был снабжён графической оболочкой (и это правильно, ведь для большинства серверов графическое окружение излишне). Но, так как этот сервер нужен был в НФ СГА не только как сервер, но и чтобы изучить возможности Linux и просто посмотреть, как это всё выглядит, я установил Иксы (X11) и... превратил Ubuntu Server в Kubuntu Server, так как я считаю окружение KDE более удобным и продуманным, чем Gnome (хотя и в Гноме работать довелось -- Ubuntu была первой линуксовой ОС, которую я установил). Правда, чтоб установить KDE, пришлось скачивать более 400 мегабайт обновлений, программ и библиотек -- что примерно в 2 раза больше, чем если бы я решил установить штатный Gnome. Но для этого сервера -- к счастью -- обеспечили практически безлимитный доступ в Интернет, поэтому единственно что стало проблемой, так это время скачивания и установки.

На сервере подняты две виртуальные машины VirtualBox, на которых установлен Windows Server 2003. На каждую виртуальную машину установлена серверная часть университетских обучающих программ (доступ к которым возможен из компьютерных классов). Вот такая сложная схема. В дальнейшем количество виртуальных машин будет увеличено до 4.

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

# sudo vboxmanage clonehd путь_к_диску путь_для_сохранения_клона

По-умолчанию, клон виртуального жёсткого диска создаётся как диск динамического размера (даже если оригинальный диск был фиксированного размера), максимальный размер которого равен размеру оригинального диска. Чтобы создать клон виртуального диска фиксированного размера, необходимо выполнить следующую команду:

# sudo vboxmanage clonehd --variant fixed путь_к_диску путь_для_сохранения_клона


В целом, я смог решить большинство поставленных задач. Если эксперимент с использованием Ubuntu Server в НФ СГА будет успешным, то есть вероятность того, что в университете появятся и другие решения на основе Linux.

10 июня 2010 г.

жизнь, учёба, gentoo...

Пожалуй, первый раз приближаюсь к сессии без "хвостов". Приятно это осознавать. Можно спокойно готовиться к сессии и наконец-то установить Gentoo на ноутбук, а заодно исправить ошибки, допущенные при первой установке этой ОС на ПК.

Например, я не знал, что процессор моего ПК (Intel Pentium 4 1.7GHz) поддерживает MMX, SSE и SSE2, и не включил эти флаги в /etc/make.conf перед сборкой системы. Хотя эти флаги оптимизации поддерживаются не всеми пакетами, но зато те пакеты, которые их поддерживают, будучи собранные с ними, дают существенный прирост производительности. В частности, это относится к kdelibs и (в особенности) к различным мультимедиа-приложениям. Так, проигрыватель VLC, будучи пересобранный с флагами mmx и sse, стал воспроизводить некоторое HD-видео из моей коллекции практически без "тормозов" (на сильно динамичных сценах всё равно процессор не справляется с обработкой такого потока данных и видео выглядит неприглядно). Это при том, что раньше мой довольно таки древний компьютер вообще не мог нормально возпроизводить видео высокой чёткости - попытки поднять приоритет процесса проигрывателя и/или добиться чего-либо с помощью настройки практически не помогали. Комп скрипел всеми своими 1.7 гигагерцами и миллионами транзисторов, но видео всё равно не воспроизводилось нормально. А теперь вот... Именно на примере мультимедиа-приложений наиболее заметно преимущество сборки программ и системы в целом под конкретное "железо". Всё-таки, если после пересборки VLC начал воспроизводить HD-видео, с этим трудно поспорить.

Всю информацию о процессоре можно получить с помощью

# cat /proc/cpuinfo


...долго думал, какую систему ставить на ноутбук вместо Ubuntu. Мощности ноутбука еле хватает для прожорливого Gnome, о KDE и говорить нечего. Тем более что я хотел не просто сменить дистрибутив, я хотел кардинальных перемен. Окружение вроде Xfce или даже OpenBox, минимум предустановленных программ, нетребовательность к ресурсам ноутбука. Можно было бы выбрать "готовый" лёгкий дистрибутив, который _условно_ соответствует моим требованиям. Но, так как я не ищу простых путей, то решил повторно сдать экзамен по установке Gentoo.

Загрузился с LiveCD SystemRescueCD 1.5.5 (это гораздо удобнее, чем собирать и настраивать систему, загрузившись с LiveCD Ubuntu и тем более LiveDVD Gentoo). Установил базовую систему, вручную настроил и собрал ядро. Система не грузится. Долго бился над загрузкой, нашёл несколько ошибок, исправил - не грузится!.. Думал, дело в загрузчике. Поставил новый GRUB 1.98 (GRUB2). Несколько раз перекофигурировал (слово-то какое) ядро - не грузится, и всё тут. Извечный вопрос - что делать? В интернете нет рецепта именно для моего ноутбука (Toshiba Satellite L30-114). По-видимому, в ядро нужно включить ещё какие-то драйвера, т.к. система не может примонтировать при загрузке корневой каталог. Но какие драйвера? Гм... На третий день, то есть, сегодня, решение было найдено. Раз LiveCD загружается, значит, в ядро все необходимые драйвера включены - осталось только где-нибудь подсмотреть, какие именно драйвера. Гениально просто. Загрузившись с LiveCD, пишем в консоли:

# lspci -k


И видим список оборудования, подключенного к шине PCI. Более того, благодаря флагу -k, видим драйвера, которые используются ядром для каждого устройства. Остаётся только включить эти драйвера в ядро новой системы.

О ходе процесса сборки системы на ноуте пишу на Twitter. В последнее время, я чаще пишу туда, чем в этот блог... Наверное, это побочный эффект того, что я установил Twitter-клиент для Emacs.

3 мая 2010 г.

Немного о практическом использовании alias'ов

В замечательной книге Алексея Федорчука "Доступный UNIX", которая мне очень помогла на стадии базового освоения Linux и продолжает помогать до сих пор, есть отдельный параграф, посвящённый назначению псевдонимов для команд. Вряд ли я смогу сказать об этой возможности что-то новое. С помощью команды alias можно назначить псевдоним или переопределение для любой команды с любыми параметрами. Команда alias имеет следующий синтаксис:

# alias [имя_псевдонима[=значение_псевдонима] ...]

Будучи данная без аргументов, выведет список всех определённых пользователем псевдонимов. Например,

# alias
alias grep='grep --colour=auto'
alias ls='ls --color=auto'

Если, в качестве аргумента, дать название псевдонима/переопределения, то команда выведет его значение:

# alias grep
alias grep='grep --colour=auto'

Чтобы удалить псевдоним/переопределение, достаточно дать команду

# unalias grep

"Алиасы", будучи прописанными в конфигурационных файлах оболочки (shell), сохраняются и после перезагрузки, в противном случае - будут действовать только в пределах текущей сессии. Например, глобальные alias'ы оболочки bash хранятся в /etc/bash/bashrc. Кроме этого, для каждого пользователя существует отдельный конфигурационный файл для командной оболочки, хранящийся в домашней директории и считывающийся после глобального конфигурационного файла.

Для примера, создадим переопределение для команды удаления rm

# alias rm='rm -i'

Это может спасти пользователя от случайного удаления нужных файлов. Как это работает? Всё очень просто. Командой выше мы создали переопределение для команды удаления rm с флагом -i. Имя псевдонима совпадает с именем оригинальной команды, но псевдоним обладает как бы более высоким "приоритетом" выполнения, и, если мы сейчас дадим команду

# rm file1.txt

она будет равносильна

# rm -i file1.txt

Флаг -i или --interactive, как понятно из его имени, запускает команду в интерактивном режиме. Команда, запущенная с данным флагом, запросит подтверждение у пользователя - действительно ли он хочет удалить файл file1.txt? Этот флаг применим ко многим комадам/утилитам, выполнение которых может привести к нежелательным/неприятным последствиям, таким, как упомянутое выше случайное удаление важных файлов.
Теперь сохраним созданный alias в конфигурационном файле пользователя:

# echo alias rm='rm -i' >> ~/.bashrc

Всё, теперь переопределение команды rm сохранится и после перезагрузки.

Псевдонимы работают похожим образом, но их имена не совпадают с именами доступных команд/утилит. Например,

# alias ll='ls -l'

позволит выводить список директории в расширенном формате, дав команду ll.

Я сейчас мало использую alias'ы, так как они не способствуют запоминанию важных флагов команд. Более того, к ним привыкаешь, и в системе, где привычные alias'ы не определены, можно запросто ввести что-то вроде rm -r ~/*, после чего все файлы в домашней директории будут удалены без предупреждения. Конечно, этот глупый пример, зато наглядный. На мой взгляд, alias'ы не отменяют требование внимательности со стороны пользователя при выполнении команд, особенно, если он работает от имени суперпользователя (root'a).

А вот свежий пример использования команды alias.
Несколько дней назад установил консольный тренажёр "слепого" набора на клавиатуре gtypist:

# emerge -av gtypist

При попытке запустить тренажёр, получаю сообщение:

# gtypist
(null): i18n problem: invalid value for msgid "Y/N": Д/Н

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

# LANG="en" gtypist

А ещё лучше, чтобы каждый раз не указывать локаль, создать переопределение:

# alias gtypist='LANG="en" gtypist'
# echo alias gtypist='LANG="en" gtypist' >> ~/.bashrc
# gtypist
Happy Typing!


Теперь приложение работает без проблем.

20 апреля 2010 г.

Решил установить прекомпилированный пакет OpenOffice.org

Решил установить прекомпилированный пакет OpenOffice.org. Мне нужен офисный пакет, и сейчас я не вижу особого смысла тратить ## часов на компиляцию. Быть может, когда-нибудь я снесу бинарный пакет OpenOffice.org и скомпилирую его из исходников - когда у меня будет время и/или более мощный компьютер.

К тому же, насколько мне известно, оптимизация под конкретное "железо" даёт преимущество в производительности, в первую очередь, для ПО, работающего со звуком, видео и графикой. Текстовый процессор Writer к этой категории не относится. Правда, в составе пакета OpenOffice.org есть Draw для работы с векторной графикой, но я не помню ни одного случая, когда я использовал его для работы.

Тем не менее, попытки скомпилировать OpenOffice.org из исходников не прошли впустую. Я нашёл статью, где описаны переменные, используемые системой Portage, в том числе, для хранения путей к директориям. Вот ссылка:
http://www.gentoo.org/doc/ru/handbook/hb-portage-files.xml

По-умолчанию Portage хранит промежуточные продукты компиляции программ в каталоге /var/tmp/portage. С помощью переменной BUILD_PREFIX можно изменить этот путь перед сборкой/установкой, например:

# BUILD_PREFIX="/home/portage" emerge openoffice

Зачем это нужно? Если вы собираете что-то большое, такое, как OpenOffice.org, вам потребуется _очень_ много свободного места на диске. Конечно, это можно учесть при установке системы, на стадии разбивки диска. Если вы планируете вынести каталог /var на отдельный раздел или собираетесь монтировать в каталог /var/tmp/portage файловую систему tmpfs - то можно увеличить размер раздела диска или размер swap-раздела соответственно. Однако, в большинстве своём, программы требуют куда меньше места для сборки, и создание большого раздела для /var или swap может оказаться излишним расточительством (особенно, если у вас не слишком большие жёсткие диски). Путём изменения переменной BUILD_PREFIX можно собрать "тяжёлые" программы без создания большого раздела для хранения временных файлов или swap-раздела, хотя это может быть не так быстро, как если бы вы использовали tmpfs+swap.

10 апреля 2010 г.

Установка Gentoo. Сеть через USB-модем. Утилита udhcpcd.

Вчера вручную настроил ядро ОС с помощью
# make menuconfig
согласно инструкциям, найденным в Интернете. Хотя эти инструкции, судя по всему, были устаревшими и для настройки ядра моей ОС (kernel-2.6.32-gentoo-r7) подходили лишь частично. То есть, порой параметры находились на там, где они должны были быть, некоторые параметры отсутствовали и т. п. Тем не менее, ядро настроено и собрано. По сравнению ядром ОС, собранным утилитой genkernel, ядро, собранное вручную, компилируется быстрее, грузится быстрее и "весит" значительно меньше - так как я выкинул из него "лишние" драйвера, оставив только необходимые, а некоторые оставил в качестве подключаемых модулей.

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


раздел   | точка мотрирования   | файловая система
/dev/hda1  /boot                  ext2
/dev/hda2  none                   swap
/dev/hda4  /                      ext3
/dev/hda5  /var                   ext2
/dev/hda6  /usr                   ext3
/dev/hda7  /usr/portage           reiserfs
/dev/hda8  /usr/portage/distfiles reiserfs
/dev/hda9  /home                  ext3


Такая схема разбиения диска выглядит чрезмерно усложнённой, но я потратил много времени, изучая тему подготовления жёсткого диска для установки ОС Ubuntu и Gentoo. Хотя не претендую на то, что это самая правильная схема - например, в Интернете можно прочесть, что для desktop-систем вообще можно ограничиться минимальным разбиением диска, выделив только на отдельные разделы такие ветви файловой системы, как /boot, / и /home. Я попытался учесть все точки зрения (это касается и выбора файловых систем для каждого раздела).

После того, как ОС Gentoo наконец-то загрузилась, я увидел... консоль. Текст на чёрном фоне и приглашение ввести логин и пароль. Всё. Как это было непохоже на вид полностью настроенной системы, загружаемой с LiveDVD! С интегрированным рабочим столом KDE и кучей установленных программ, причём, некоторые программы дублировали возможности других (три браузера, три вида плееров и т. п.)! Спрашивается, зачем было качать LiveDVD Gentoo весом 2.5 Гб, который завален различными программами по-самое-нехочу? Я прекрасно мог бы установить систему с минимального установочного диска весом не более 100 - 200 Мб и получить при загрузке ту же самую консоль... Впрочем, LiveDVD в процессе установки мне очень помог. Загрузившись с него, я переразбивал диск, устанавливал и настраивал систему... Но я отвлёкся.

Итак, консоль. Теперь пора бы установить несколько нужных программ... но что такое? Не работает сеть! При загрузке с LiveDVD сеть есть. Загружаюсь с жёсткого диска - сети нет. Гм... Gentoo не видит модем, подключенный через USB. А ведь при установке ОС Ubuntu и при загрузке с LiveDVD Gentoo сеть определилась сама собой, "как по-волшебству"! Мнда, к хорошему быстро привыкаешь... Надо подумать. Так, при сборке ядра ОС все необходимые драйвера для сети вынесены за пределы ядра - в виде загружаемых модулей. Ещё раз проверил настройки сборки ядра (хорошо, что они сохраняются!) Добавил необходимые модули в /etc/modules.autoload.d/kernel-2.6. Сеть не работает. После поисков в Интернете (благо, ноутбук есть), понимаю, что нужно установить утилиту dhcpcd для автоматической настройки сети. Но как? Чтобы подключить интернет в свежеустановленной ОС, необходим dhcpcd, а чтобы установить dhcpcd, нужен Интернет. Бесконечный цикл, однако... Загружаюсь с LiveDVD, открываю два экземпляра консоли - назовём их консоль_1 и консоль_2. В консоли_1 выполняю

# mount -t ext3 /dev/sda4 /mnt/gentoo/
# mount -t ext2 /dev/sda1 /mnt/gentoo/boot
# mount -t ext2 /dev/sda5 /mnt/gentoo/var
# mount -t ext3 /dev/sda6 /mnt/gentoo/usr
# mount -t reiserfs /dev/sda7 /mnt/gentoo/usr/portage
# mount -t reiserfs /dev/sda8 /mnt/gentoo/usr/portage/distfiles
# mount -t ext3 /dev/sda9 /mnt/gentoo/home
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo/ /bin/bash
# env-update
# source /etc/profile


Теперь в консоли_1 я нахожусь в установленной системе. Пытаюсь скачать и установить dhcpcd:

# emerge dhcpcd

Получаю сообщение об ошибке, в котором есть ссылка на тарбал dhcpcd-4.0.15.tar.bz2 (который невозможно скачать из-за отсутствия подключения к сети Интернет). Переключаюсь на консоль_2 (на систему LiveDVD, где сеть есть) и скачиваю файл

# wget http://distfiles.gentoo.org/distfiles/dhcpcd-4.0.15.tar.bz2

Скачанный файл копирую на жёсткий диск, например,

# cp /home/dhcpcd-4.0.15.tar.bz2 /mnt/gentoo/home

И переключившись на консоль_1, устанавливаю dhcpcd

# cd /home
# tar -xjpvf dhcpcd-4.0.15.tar.bz2
# cd dhcpcd-4.0.15
# make
# make install


Перезагружаюсь в установленную систему. Сеть работает.

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

31 октября 2009 г.

Возможности команды mkdir

По мере изучения Ubuntu открываю для себя замечательные возможности командной строки (терминала). Одна из них - возможность решать простые задачи так же просто, как они этого требуют.
Мне недавно нужно было создать несколько каталогов в одном - казалось бы, простая задача. Если каталогов один или два, мы можем сделать это простым кликом правой кнопки мыши и выбором пункта контекстного меню "Создать папку". Или нажать Ctrl+Shift+N (эта комбинация клавиш создаёт новый каталог в текущем). Просто, не правда ли? Но если нам нужно создать много каталогов, да ещё и в каждом каталоге ещё подкаталоги? Создать папку, и ещё папку, и ещё, клик, клик, клик... А ведь каждой папке ещё и название нужно дать! Причём, такая задача не является редкостью и может возникнуть просто в процессе работы пользователя. Кажется, задача простая, но решение её может оказаться чрезмерно сложным и долгим. И тут как раз очень помогает знание простейших команд терминала.
Команда mkdir (от англ. make directory) предназначена для создания каталогов. Сначала я недооценивал возможности этой команды, но моё мнение на её счёт изменилось, когда нужно было решить задачу наподобие той, что описана выше. Рассмотрим самый простой вариант использования этой команды. Предположим, нам нужно создать в /home/username/Музыка структуру каталогов для музыкальной коллекции (фонотеки), где username - ваше имя пользователя. Если вы, как и я, любите порядок, то структура каталога "Музыка" примет у вас примерно следующий вид

~/Музыка/A/(все исполнители на А)
         B/(все исполнители на B)
         C/
         D/
         ...

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

mkdir ~/mkdirexp

Теперь выбираем нужный нам каталог - для этого предназначена команда cd (от англ. change dir) :

cd ~/mkdirexp/

Теперь создаём все каталоги командой:

mkdir A B C D E F G I J K L M N O P Q R S T U V W X Y Z

Просто, верно? Но что делать, если у нас до этого музыка была свалена в один каталог, и в одной куче были разные исполнители и альбомы? Определим задачу: нужно создать структуру каталогов и необходимые подкаталоги (перенесение музыки во вновь созданные каталоги я не буду сейчас рассматривать - хотя и здесь несомненно есть широкие возможности для упрощения и автоматизации) :

~/mkdirexp/A/A_исполнитель_1/2007 - Альбом 1/
             A_исполнитель_1/2008 - Альбом 2/
             A_исполнитель_2/
           B/B_исполнитель_1/
           C/
           D/
           ...

С помощью команды mkdir делается это так же просто, как и в предыдущем примере.
Если вы выполняли команду из предыдущего примера, то в каталоге mkdirexp у вас уже должны быть подкаталоги. Для наглядности следующего примера попрошу удалить их - зайдите в каталог mkdirexp, выделите все подкаталоги (Ctrl+A) и удалите их (Shift+Del - для удаления файлов без помещения в корзину).
Я не буду в данном примере создавать все каталоги - нам главное понять принцип работы, или, если хотите, синтаксис команды:

mkdir -p A/{A_исполнитель_1/{"2007 - Альбом 1","2008 - Альбом 2"},A_исполнитель_2} B/B_исполнитель_1

Посмотрим на команду: параметр -p (от англ. parents), передаваемый команде, означает, что нужно создать все "родительские" каталоги для подкаталогов, если они отсутствуют. Если мы упустим этот параметр, то получим сообщение об ошибке и часть каталогов не будет создана. В фигурных скобках через запятую перечислены подкаталоги, которые требуется создать. Причём, как видно из примера, можно создавать подкаталоги в подкаталогах и т. д. Названия папок наподобие "2007 - Альбом 1" заключены в кавычки, т. к. в именах есть пробелы - то есть, мы говорим команде, что это одно имя, а не несколько, разделённых пробелами.

Подробную справку о всех параметрах команды mkdir и других командах терминала можно узнать, набрав в терминале man mkdir или man имя_команды.