Пресс-релиз кандидатской диссертации - интересная идея!



18 коммент.
В июньском номере научно-популярного журнала "Химия и Жизнь", который я давно и с удовольствием читаю, появилась небольшая статья, к химии в общем не относящаяся. А именно, в ряде европейских университетов есть традиция - каждый диссертант, помимо своей работы, пишет пресс-релиз, то есть краткое изложение работы в научно-популярном стиле и без заумных специфических терминов. Пресс-релиз должен объяснять суть вашей работы, грубо говоря, бабушкам у подъезда. Мне это показалось очень интересным - может быть, кто-нибудь ещё захочет культивировать это и в своих университетах.

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

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

Так или иначе, я решил эту идею воплотить в жизнь на собственном примере. Просмотрев несколько образцов, быстренько сделал LaTeX-шаблон для пресс-релиза и соответственно оформил его. Вот что из этого получилось:

Пресс-релиз
Конник Михаил Всеволодович 10 июня 2009 года



Цифровое восстановление изображений
в отображающих системах с оптическим кодированием

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

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

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

Казалось бы - зачем сознательно искажать фотографию, а потом её такими трудами восстанавливать? Не проще ли сразу сфотографировать нормальное изображение: взять объектив получше и фотоаппарат подороже, и проблемы нет.

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

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

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

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

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

Вскрыть такой шифр очень трудно, поскольку размывание в нашей системе очень большое: вместо картинки вы увидите яркое пятно, из которого невозможно угадать ни размер ключа, ни его элементы. Если же вы захотите перебрать все возможные комбинации, использовав для этого все суперкомпьютеры мира взятые вместе, то это будет очень долго. Вы не переберёте и 5% всех вариантов, как потухнет Солнце - после этого будет уже не до шифров.

Чтобы расшифровать такое изображение, нужно применить специальные программы-фильтры, которые компенсируют внесённые искажения в сфотографированную картинку. Эти фильтры очень похожи на те, которыми вы пользуетесь в графических редакторах, когда хотите повысить резкость изображения.

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

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


В общем:
Идеи, пожелания и конструктивная критика, как всегда, приветствуются в комментариях.
Читать далее

Эмулятор QEMU и работа с USB в гостевой системе



11 коммент.
Ситуация: в эмуляторе QEMU требуется работать с USB-устройствами в гостевой (эмулируемой) машине; при этом USB-устройства подключены к хост-машине (т.е. к реальному компьютеру).
Решение: немного чёрной магии, параметр -usb и lsusb спасут отца русской демократии.

Рабочий пример: Windows XP, которая установлена в эмуляторе QEMU, который установлен в Debian GNU/Linux Etch. Для примера затащим в QEMU USB-флешку и будем работать с ней в Windows, которая в QEMU, который в Debian.

Запускаем виртуальную машину QEMU, например, с такими параметрами:
qemu -usb -m 200 -hda mustdiexp.img -boot c -localtime
красным помечен обязательный параметр -usb, т.е. нужно явно указать QEMU, что мы хотим использовать USB. Далее включаем флешку, и в консоли узнаём, куда подключилась наша флешка. В этом нам поможет сначала dmesg, а потом lsusb. При этом dmesg нам скажет адрес устройства, а lsusb - его точный идентификатор.

Как узнать адрес устройства в Linux? Легко - спросим dmesg, и он ответит:

usb 1-6: new high speed USB device using ehci_hcd and address 15
usb 1-6: configuration #1 chosen from 1 choice
scsi9 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 15
usb-storage: waiting for device to settle before scanning
scsi 9:0:0:0: Direct-Access JetFlash TS4GJFV35 8.07 PQ: 0 ANSI: 2
sd 9:0:0:0: [sde] 7987200 512-byte hardware sectors (4089 MB)
sd 9:0:0:0: [sde] Write Protect is off
sd 9:0:0:0: [sde] Mode Sense: 03 00 00 00
sd 9:0:0:0: [sde] Assuming drive cache: write through
sd 9:0:0:0: [sde] 7987200 512-byte hardware sectors (4089 MB)
sd 9:0:0:0: [sde] Write Protect is off
sd 9:0:0:0: [sde] Mode Sense: 03 00 00 00
sd 9:0:0:0: [sde] Assuming drive cache: write through
sde: sde1
sd 9:0:0:0: [sde] Attached SCSI removable disk
sd 9:0:0:0: Attached scsi generic sg4 type 0
usb-storage: device scan complete
Красным я подсветил искомое - адрес нашего устройства 15. Теперь интересуемся у lsusb насчёт идентификатора устройства, и он нам всё выдаст:
penta4@penta4rce:~$ lsusb
Bus 005 Device 005: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse
Bus 005 Device 003: ID 046e:5500 Behavior Tech. Computer Corp.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 004: ID 03f0:1204 Hewlett-Packard DeskJet 930c
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 015: ID 058f:6387 Alcor Micro Corp.
Bus 001 Device 014: ID 04fc:0c15 Sunplus Technology Co., Ltd
Bus 001 Device 001: ID 0000:0000
Готово: идентификатор нашего устройства 15 есть 058f:6387 С этими данными идём в эмулятор QEMU, заходим в гостевую систему, нажимаем CTRL+ALT+2 и попадаем в консольный режим QEMU. Там мы пишем:
usb_add host:058f:6387
Если QEMU пишет, что не может добавить ваше устройство, а вы уверены, что всё сделано правильно - проверьте права на файл-устройство, оно должно быть с полными (777) правами. В консоли, откуда запущен QEMU, увидите:
/proc/bus/usb/001/015: Permission denied
Стало быть, идём и делаем так:
penta4rce:/proc/bus/usb# chmod -R 777 001/
Не очень изящно, зато работает :-) Можно ещё править udev.rules, но мне под вечер с этим было откровенно лень заниматься.

После этого Windows (или что вы там эмулируете) радостно найдёт ваше устройство (в данном случае флешку) и будет злостно грузить процессор в мучительных раздумьях "что же это было!?" В случае с Windows XP виртуальным диском оно шуршать будет порядочно - по всей видимости, для этого чуда редмонтовской мысли это нормально. После этого работаете с устройством как обычно.

Ссылки
Пост был написан, когда мне пришлось снова вспоминать, как я врубал USB в годы моей ударной молодости :-) Дабы не гуглить, вот несколько интересных ссылок по теме "USB в QEMU", особенно на замечательную Книгу Слаки (Slackbook).
Читать далее

Монтирование разделов и дисков в Linux



72 коммент.
Рано или поздно пользователи Linux сталкиваются с таким понятием как монтирование разделов и дисков в Linux. Многие, особенно бывшие пользователи Windows, испытывают трудности с монтированием разделов, хотя если задуматься, то всё очень просто и логично. Ниже приводятся описание процесса монтирования в UNIX-like системах и разбор наиболее типичных случаев. И даже если вы окружены графическим интерфейсом, знание консольных команд может очень пригодиться. Кроме того, узнав пару-тройку полезных команд UNIX, вы приобщитесь к этой чёрной магии и, может быть, начнёте её использовать.


Монтирование разделов в Linux - общие слова

Если ядро Linux опознало ваше устройство-носитель данных, то оно должно предоставить какой-то внешний интерфейс пользователю для работы с устройством. Этим интерфейсом является создание файлов-устройств в каталоге /dev

Пример:

Устройствам, подключённым к IDE, будут соответствовать файлы-устройства /dev/hda, /dev/hdb и так далее.

Устройствам типа SCSI, а также близкие им по духу SATA-устройства и USB-флешки, будут иметь файлы-устройства /dev/sda, /dev/sdb и тому подобное.

Если на диске есть разделы, то цифра в имени файла-устройства будет соответствовать номеру раздела.

Пример:

если на USB-флешке есть два раздела, то первый будет называться /dev/sda1, а второй /dev/sda2
Монтирование разделов = объяснение системе, как добраться до ваших данных и сделать их доступными для использования. Системе нужно объяснить три простые вещи:
  1. какая файловая система на разделе;
  2. какой файл-устройство вам нужно;
  3. куда его подключить для просмотра = точка монтирования;
Каталог, в котором вы будете просматривать содержимое ваших разделов, называется точкой монтирования (mount point). Поэтому нужно объяснить системе - командой или через графический интерфейс - что вы хотите смонтировать, куда и что за файловая система на этом разделе.

В переводе на язык UNIX, это звучит так:
mount -t vfat /dev/hda3 /mnt/storage

Если нужно часто монтировать одни и те же разделы, занесите их в /etc/fstab - это общесистемный конфиг, в котором указаны все необходимые разделы для монтирования. Редактировать этот файл может не абы кто, а только root. Так что разживитесь рутовыми полномочиями и редактируйте /etc/fstab

Файл /etc/fstab состоит из колонок,
разделителями между которыми являются символы табуляции (клавиша TAB). Вот пример содержимого файла /etc/fstab:
# /etc/fstab: static file system information.
#
#

/dev/hda2 / reiserfs notail,noatime 0 1
/dev/hdb /mnt/cdrom iso9660 ro,user,noauto 0 0
/dev/sda1 /mnt/flash vfat iocharset=koi8-r,codepage=866,rw,user,auto 0 0


Формат колонок такой:
  • Монтируемое устройство (файл-устройство, он же раздел, который вы хотите примонтировать)
  • Точка монтирования (в какую директорию в файловой системе монтировать)
  • Тип монтируемой файловой системы
  • Опции монтирования (кодировка языка, необходимость монтирования при старте)
  • Dump (обычно 0)
  • Pass (обычно 0)
Важно, чтобы вы вставляли Тab после каждой колонки при редактировании /etc/fstab

Ниже приводятся уточнения для каждого случая файловой системы, но идея монтирования разделов в Linux одна и та же.

mount -t vfat /dev/hda1 /home/vasya/tempdir
прикрутить тип FAT что прикрутить куда это прикрутить

Пишем буквально то, чего хотим: от имени суперпользователя, прикрутить логическую структуру с файловой системой
типа FAT, находящуюся в файле /dev/hda1, к каталогу /home/vasya/tempdir

После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками в Windows. Для этого следует дать команду:
# umount /mnt/XX
или
$ sudo umount /mnt/XX
где
/mnt/XX - точка монтирования. Если ни одно приложение не работает с разделом, то раздел размонтируется, отключится и данные на него полностью запишутся. После этого устройство можно безопасно извлечь.

Чтобы посмотреть, что можно смонтировать, и увидеть информацию о разделах, можно воспользоваться командой (запуск от root):
# fdisk -l
Увидите что-то вроде:
Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 36 289138+ 82 Linux swap / Solaris
/dev/hda2 * 37 7296 58315950 83 Linux
Всё очень просто и логично. Как и многое другое в UNIX.


Предварительные действия перед монтированием

Прежде, чем монтировать разделы, нужно создать точки монтирования. Точки монтирования следует создавать в каталогах
/mnt или /media.Пример: Для того, чтобы создать точку монтирования с названием /mnt/win в консоли даём команду:
$ sudo mkdir /mnt/win
или
# mkdir /mnt/win
и даём каталогу права доступа для обычных пользователей:

$ sudo chmod 777 /mnt/win
или
# chmod 777
/mnt/win
Это позволит считывать и записывать данные не только суперпользователю-руту, но и обычному пользователю. Даже если в системе вы - единственный пользователь. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.Не бойтесь, если вы не знаете точно, как теперь называются ваши виндовые диски C:\ или D:\ и монтируйте разделы с указанием типа файловой системы fat или ntfs - если ошибётесь, раздел не примонтируется и вы увидите ошибку вроде
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Не боимся - просто нам команда mount сказала, что примонтировать у неё не получилось.

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


Как примонтировать раздел с файловой системой FAT в Linux
Самое главное здесь - кодировка. Замечательная корпорация Microsoft изобрела свою собственную кодировку CP866 для MS DOS, CP1251 для Windows и только в последнее время прозрела до UTF8. Благодарим Microsoft за изобретение велосипеда с треугольными колёсами и приступаем к монтированию.

Однократное монтирование FAT 

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
$ sudo mount -t vfat /dev/XX /mnt/YY -o iocharset=utf8,codepage=866,rw
или
# mount -t vfat /dev/XX /mnt/YY -o iocharset=utf8,codepage=866
Пример: монтирование типичной флешки выглядит так

$ sudo mount -t vfat /dev/sda1 /mnt/flash -o iocharset=utf8,codepage=866,rw
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash
Постоянное монтирование FAT
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX /mnt/YY vfat iocharset=utf8,codepage=866,user,rw 0 0
Пример: та же типичная флешка в /etc/fstab смотрится так
/dev/sda1 /mnt/flash vfat iocharset=utf8,codepage=866,user,rw 0 0
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash После этого раздел FAT в Linux будет доступен. Отмонтирование по команде umount /mnt/flash
Как правильно говорят в комментариях, iocharset совпадает с текущей локалью - например, iocharset=utf8.



Как примонтировать раздел с файловой системой NTFS в Linux
Замечательная корпорация Microsoft изобрела не просто новый велосипед с треугольными колёсами NTFS, а ещё и закрыла его описание. Да так, что пришлось очень долго его взламывать и создавать драйвера обратной разработкой. О сложности проблемы даёт понять описание дефрагментации NTFS, что, как говорится, внушает.

Монтировать и записывать на NTFS в Linux, тем не менее, возможно благодаря героическим усилиям разработчиков, создавших драйвер NTFS-3g. Этот драйвер можно установить командой:
aptitude install ntfs-3g
или поискать пакет ntfs-3g в графической оболочке установки программ вашего любимого дистрибутива.


Однократное монтирование NTFS 

Временное, однократное монтирование, например, раздела с данными Windows, выглядит так:
$ sudo mount -t ntfs-3g /dev/XX /mnt/YY -o umask=0,nls=utf8
или
# mount -t ntfs-3g /dev/XX /mnt/YY -o umask=0,nls=utf8
Пример: монтирование раздела Windows с NTFS разделом выглядит так
$ sudo mount -t ntfs-3g /dev/sda1 /mnt/flash -o umask=0,nls=utf8
То есть монтируем раздел /dev/sda1 типа
ntfs-3g в точку монтирования /mnt/flash



Постоянное монтирование NTFS
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
/dev/XX /mnt/YY ntfs-3g umask=0,nls=utf8,user,auto,rw 0 0
Пример: та же типичная флешка в /etc/fstab смотрится так
/dev/sda1 /mnt/windows ntfs-3g umask=0,nls=utf8,exec,user,auto,rw 0 0
Иногда в /etc/fstab это уже есть с настроками вида:

/dev/sda1 /mnt/windows ntfs-3g umask=0,nls=ru-RU.UTF-8 0 0
При такой записи всё нормально, кроме одного - файлы и каталоги с русскими именами не отображались, как-будто их не было вовсе. Чтобы это исправить, можно попробовать изменить на:


/dev/sda1 /mnt/windows ntfs-3g exec,user,auto,rw 0 0
То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/windows После этого раздел NTFS в Linux будет доступен.
Отмонтирование по команде umount
/mnt/windows



Как примонтировать CD/DVD диск в Linux
Всё проще - скорее всего, это уже сделано в вашем дистрибутиве. Тем не менее, привожу это здесь для примера.

Однократное монтирование CD/DVD 

Временное, однократное монтирование, например, DVD-диска с данными в Linux, выглядит так:
$ sudo mount -t iso9660 /dev/XX /mnt/YY
или
#
mount -t iso9660 /dev/XX /mnt/YY
Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660 /dev/cdrom /mnt/dvd
То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/dvd


Постоянное монтирование CD/DVD
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
/dev/XX /mnt/YY iso9660 user,ro 0 0
Пример: оптический диск в /etc/fstab смотрится так
/dev/cdrom /mnt/cdrom iso9660 user,ro 0 0
То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/cdrom После этого оптический диск в Linux будет доступен. Отмонтирование по команде umount
/mnt/cdrom



Как примонтировать ISO-файл или другой файл в Linux
Вы откуда-то скачали ISO-файл и хотите просмотреть его содержимое. Для этого в Windows есть такой костыль под названием Alcohol. В Linux и вообще в UNIX такие костыли не требуются, так как монтирование ISO-образа ничем для системы не отличается от монтирования CD/DVD-диска. Нужно только передать один параметр -o loop чтобы сообщить системе, что монтировать мы собираемся на петлевое устройство (loopback). Если делать это надо много и часто, можно воспользоваться программой GmountISO, описанной тут.

Для монтирования ISO-образа в командной строке даём команду:

$ sudo mount -t iso9660 file.iso /mnt/YY -o loop
или
#
mount -t iso9660 file.iso /mnt/YY -o loop
Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660 file.iso /mnt/dvd -o loop
То есть монтируем файл file.iso типа iso9660 в точку монтирования /mnt/dvd на петлевое устройство loop
 

Точно так же можно монтировать любой CD/DVD образ, а также файл-образы сжатых\зашифрованных\экзотических файловых систем типа SquashFS. Отмонтирование по команде umount /mnt/dvd



Как примонтировать раздел с файловой системой EXT2/EXT3/ReiserFS/XFS/JFS... в Linux
Монтирование нормальных файловых систем проблем не создаёт. Приведу пример только с ext3, остальные файловые системы в Linux монтируются точно так же, только вместо ext3 подставьте буквально: ext2, reiserfs, xfs, jfs в зависимости от вашей файловой системы.

Однократное монтирование 

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
$ sudo mount -t ext3 /dev/XX /mnt/YY
или
# mount -t
ext3 /dev/XX /mnt/YY
Пример: монтирование раздела с данными выглядит так

$ sudo mount -t ext3 /dev/sda1 /mnt/data
То есть монтируем раздел /dev/sda1 типа ext3 в точку монтирования /mnt/data


Постоянное монтирование
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
/dev/XX /mnt/YY ext3 user,auto,rw 0 0
Пример: та же типичная флешка в /etc/fstab смотрится так
/dev/sda1 /mnt/data ext3 user,auto,rw 0 0
То есть монтируем раздел /dev/sda1 типа
ext3 в точку монтирования /mnt/data После этого раздел EXT3 в Linux будет доступен. Отмонтирование по команде umount /mnt/data
Как узнать тип файловой системы на диске?


Для этого есть утилита file, которая может определить тип файловой системы, используемый файлом. Так как в UNIX/Linux/*BSD исповедуется принцип "всё есть файл", то раздел с файловой системой это тоже файл. Так что команда file выдаст нам информацию о файловой системе дисковых разделов - надо только указать программе воспринимать их как специальные файлы.

Используем опцию -s (–special-files) для выдачи информации о типе файловой системы блочного устройства. Пример:
# file -s /dev/sda1
или
$ sudo file -s /dev/sda1

получаем в ответ:
/dev/sda1: ReiserFS V3.6 block size 4096 (mounted or unclean) num blocks 17920496 r5 hash
То есть на разделе /dev/sda1 имеем файловую ReiserFS V3.6.
Или например:
# file -s /dev/sda1
выдаст в ответ:
/dev/sda1: x86 boot sector, code offset 0x58, OEM-ID "MSWIN4.1", sectors/cluster 64, reserved sectors 126, Media descriptor 0xf8, heads 255, hidden sectors 63, sectors 284237982 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 34693, reserved3 0x800000, serial number 0x287d1dfa, unlabeled
Это поможет в определении того, какая файловая система (и намекнёт на то, какие данные там лежат) на данном разделе.


Что делать, если устройство в Linux не хочет размонтироваться!?Вы пытаетесь размонтировать раздел с данными (флешка, CD/DVD диск...) и получаете сообщение с ошибкой - устройство занято. Например, при выполнении команды umount /mnt/windows получаете сообщение вида:

umount /mnt/windows
umount: /mnt/windows: device is busy
Ну и что делать, если раздел в Linux не размонтируется!? Очень просто - посмотреть, какой процесс держит раздел или файл и не даёт отмонтировать его. Дальше либо закрыть это приложение, либо придушить его с помощью команды kill. Даём команду:
lsof | grep /mnt/windows
Вертикальная черта означает передачу вывода команды lsof программе grep и фильтрации по слову /mnt/windows
После этого вы получите ответ вида:
$ lsof | grep /mnt/windows
lsof: WARNING: can't stat() reiserfs file system /dev/.static/dev
Output information may be incomplete.
mc 14134 beast cwd DIR 8,1 4096 1 /mnt/windows

Стало быть, ваш раздел держит MC (Midnight Commander), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.


Ссылки и благодарности

В подготовке этого поста были использованы бессмертные труды Андрея Афанасенко и Сергея Черевко, а также материалы Убунту-форума.
Читать далее

ГОСТ 7.32-2001 для отчёта по НИР: оформление НИР по ГОСТу в LaTeX



38 коммент.
Итак, научно-исследовательская работа (НИР) проведена, и теперь требуется оформить НИР по ГОСТ. Проблем, казалось бы, нет: имеется ГОСТ 7.32-2001 "Отчёт о научно-исследовательской работе". Скачать ГОСТ оформления можно здесь. Однако оформление отчёта по этому ГОСТу в большинстве случаев проистекает с болью и страданиями, связанными с применением продукта Microsoft Word, совершенно для этого не предназначенного. Впрочем, прогрессивное человечество давно выбрало LaTeX для оформления всей научной документации - оказывается, есть шаблон для написания отчётов и в этом случае.

Чтобы быстро оформить отчёт о научно-исследовательской работе или аннотационный отчёт, нужно использовать LaTeX и не мучаться с Word. Это просто, если у вас есть записи лабораторных журналов, наброски или куски статей, набранные так же в LaTeX. Из всего этого добра можно быстро изваять приличных размеров отчёт, и при этом работая только над текстом.


Где скачать
ГОСТ 7.32-2001 для оформления отчёта по НИР и ОКР!?

Когда мне нужно было оформлять отдельный отчёт, я подумал - спрошу у Яндекса и всё найдётся... Просидев час, разгребая кучу мусора поисковых запросов о разных весёлых применениях латекса и высокомерные отписки Капитанов Очевидностей, я начал мрачнеть. Глядя на необъятных размеров текст ГОСТа ближе к ночи, читать его до утра желания не возникало никакого. И тут мне несказанно повезло: я его нашёл! Крохотный архивчик с неприметным названием пылился где-то на необитаемом сервере!

Так вот, ГОСТ 7.32 для LaTeX
есть! Скачать этот ГОСТ бесплатно можно здесь. Версия прекрасно работает в tetex под Debian GNU/Linux Etch с доисторической кодировкой KOI8-R, так же как и с CP1251, и с UTF8 благодаря одному из комментаторов.

С согласия автора, Алексея Томина, я доработал и исправил некоторые неточности в оригинальном стилевом файле, и теперь поддерживаю разработку под тем же названием, G7-32.
Скачивайте его, открывайте прокомментированные файлы примеров с аннотационным и научно-техническим отчётом и используйте на здоровье.


Оформляем отчёт НИР по
ГОСТ

Это, в отличие от использования Microsoft Word, очень и очень просто. Итак, распаковали архив, открываем файл с примером
G7-32_NIRreport_example.tex
и сохраняем его под каким-нибудь другим названием. Ниже пошаговая стратегия - как оформить отчёт по НИР в LaTeX.

Подключаем стилевые пакеты LaTeX
Итак, подключаем нужные нам пакеты расширений LaTeX, чтобы можно было пользоваться всеми его преимуществами (большинство нужных пакетов уже включены в стилевом файле). Шапка может выглядеть примерно вот так:
\documentclass[koi8-r,usehyperref,12pt]{G7-32}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc} %% ваша любимая кодировка здесь
\usepackage[english,russian]{babel} %% это необходимо для включения переносов
\usepackage{float}
\usepackage[dvips]{graphicx}
\graphicspath{{pictures/}}
Здесь подключены пакеты, относящиеся к графике - чтобы можно было вставлять рисунки. Обращаю внимание: рисунки будут вставлены из директории pictures.


Заполняем титульную страницу отчёта НИР
Для начала определяем, хотим мы или нет, чтобы рисунки и таблицы нумеровались в пределах раздела, или нам нужна сквозная нумерация. Далее непосредственно заполняем титульную страницу:

\TableInChaper % таблицы будут нумероваться в пределах раздела
\PicInChaper % рисунки будут нумероваться в пределах раздела
\setlength\GostItemGap{2mm}% для красоты можно менять от 0мм

% Определяем заголовки для титульной страницы
\NirOrgLongName{\textsc{ООО &"Рога и Копыта"}} %% Полное название организации

\NirBoss{Директор ООО "Рога и Копыта"}{И.И.Иванов} %% Заказчик, утверждающий НИР

\NirManager{доцент, к.т.н.}{К.К.Петров} %% Название организации

\NirYear{2020}%% если нужно поменять год отчёта; если закомментировано, ставится текущий год
\NirTown{г. Москва,} %% город, в котором написан отчёт
% по проекту \No8550:

% \NirIsAnnotacion{АННОТАЦИОННЫЙ } %% Раскомментируйте, если это аннотационный отчёт

\NirUdk{УДК \No 2123132123}
\NirGosNo{Регистрационный \No 123123}

\NirStage{Этап \No 1.1}{промежуточный}{"Обзор современного состояния торсионных наногенераторов"} %%% Этап НИР: {номер этапа}{вид отчёта - промежуточный или заключительный}{название этапа}

\bibliographystyle{unsrt} %Стиль библиографических ссылок БибТеХа

%%%%%%%<------------- НАЧАЛО ДОКУМЕНТА
\begin{document}
\usefont{T2A}{ftm}{m}{} %%% Использование шрифтов Т2 для возможности скопировать текст из PDF-файлов.

\frontmatter %%% <-- это выключает нумерацию ВСЕГО; здесь начинаются ненумерованные главы типа Исполнители, Обозначения и прочее

\NirTitle{\textbf{"Торсионные наногенераторы плазменных стволовых клеток с протонной накачкой"}} %%% Название НИР и генерация титульного листа

Здесь вам придётся вспомнить, как точно называется то, чем вы занимаетесь :-)
Так же вспоминаем название своего учреждение (которое могло успеть поменяться) и прочее. Заполнив титульную страницу, переходим непосредственно к тексту.

Попробуйте сейчас скомпилировать этот текст - и вы должы увидеть что-то вроде:


Идём дальше и заполняем список исполнителей. Для этого я сделал такой финт:

\Executors %% Список исполнителей здесь
%% это рисует линию размера 3мм и толщиной 0.1 пункт
\begin{longtable}{p{0.35\linewidth}p{0.2\linewidth}p{0.35\linewidth}}

Научный руководитель, & & \\
доцент К.К.Петров &\rule{1\linewidth}{0.1pt} & \\ \vspace{1cm}

с.н.с, к.т.н, & & \\
Ж.Ж. Балбесов, & \rule{1\linewidth}{0.1pt}& \\
\end{longtable}
Дальше следует написать основные сокращения и реферат. В реферате LaTeX посчитает количество ссылок, страниц и источников за вас.


Основная часть отчёта по НИР
Основная формальная часть закончена, теперь - полёт творческой фантазии и изваяние текста. Только сначала заполним нужные формальности, такие как реферат:

\Referat %% Реферат отчёта, не более 1 страницы
В соответствии с календарным планом проекта \No, настоящий аннотационный отчёт содержит итоги работ по подэтапу 1.1 выполнения НИОКР ``Обзор современного состояния торсионных наногенераторов''.

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

Расчетно и экспериментально обоснован выбор оптической схемы с торсионным излучением трансформируемой частичной пространственной когерентности в качестве...

В результате работ по подбору оборудования определена элементная база для аппаратной реализации основных узлов торсионного наногенератора. Подбор оборудования обуславливал........

Выполнено математическое моделирование ряда методов ....

Показано, что возможно использование вейвлет-преобразования........

Сформулированы требования к управляющему....

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

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

\tableofcontents

\NormRefs % Нормативные ссылки

\Defines % Необходимые определения


\Abbreviations %% Список обозначений и сокращений в тексте
\begin{abbreviation}
\item[ТНГ] Торсионный нано генератор -- образец лженаучного волюнтаризма.

\end{abbreviation}

Всё, после \Introduction идёт Введение и дальше - текст вашего отчёта. Никаких особых прилад в командном отношении там нет, если вы знаете LaTeX на уровне пользователя - дальше просто пишите и копируйте текст. Всё будет оформлено за вас, автоматически, красиво и быстро. Ваши вордописцовые коллеги будут зеленеть от зависти :-)

\chapter{Наногенераторы торсионных полей как вечный двигатель прогресса}
Используйте окружения chapter и section как обычно. Вообще, набор текста в этом шаблоне ничем не отличается от других.

\section{Проблематика лженаучного мышления}
\subsection{Пример торсионных недонаногенераторов}

Последнее замечание - окончание отчёта. Тут тоже ничего сложного нет, только надо проследить внимательно, чтобы команда \backmatter оказалась строго перед \Conclusion

Дело в том, что \backmatter отключает нумерацию после себя, так как Заключение не нумеруется. После этого спокойно пишете заключение, компилируете текст, переводите в PDF и гоните на печать. Вот окончание документа:

\backmatter %% это выключает нумерацию для Заключения и Списка литературы
\Conclusion %% здесь начинается заключение к отчёту

\bibliography{biblio/my}
\end{document}
Да, разумеется, вы можете свободно пользоваться BiBTeX для библиографических ссылок (дубовый стиль unsrt сойдёт). На всякий случай: как использовать библиографические базы в LaTeX и несколько слов о том, зачем нужен BiBTeX.

Вот, собственно, и всё. Конечно, придётся немного попыхтеть и скорее всего перевести написанный отчёт из LaTeX в Microsoft Word (о чём уже написано тут), но это намного проще, чем маяться и выверять стили, вручную (!) набивать оглавление и сверять его полночи перед сдачей отчёта.


Документы по ЕСКД
Оформление технической документации и оформление чертежей по ЕСКД намного проще в LaTeX. Как сообщают авторитетные анонимные комментаторы, есть рабочие шаблоны, позволяющие оформлять по ЕСКД документы. Пример такого документа есть тут. Скачать шаблон ЕСКД для ЛаТеХ можно отсюда или с форума. Большое спасибо анонимному комментатору за ссылки!



Благодарности
Пользуясь случаем, выражаю ещё раз колоссальную благодарность Алексею Томину за то, что он проделал большую работу по LaTeXизации ГОСТ 7.32-2001 и избавил меня от бессонных ночей прочтения ГОСТа.
Читать далее