ВУЗ: Не указан

Категория: Эссе

Дисциплина: Не указана

Добавлен: 13.07.2023

Просмотров: 93

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Огромную важность приобретают вопросы поиска и систематизации информации.

1. Файл и папка как единицы хранения информации на компьютере

Информацию на компьютере организуют так, чтобы на поиск документа затратить не более минуты или еще меньше.

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

Файл с английского переводится, как подшивка или скоросшиватель. Он характеризуется тремя параметрами:

1. именем; имя в зависимости от операционной системы, можно давать или только латинскими буквами (в старых ОС), или любыми буквами вперемешку с цифрами и некоторыми знаками (дефис, например);

2. размером; в размере файла ограничений нет никаких, лишь бы места на жестком диске хватило;

3. расширением; расширение показывает, какого вида информация хранится в данном файле (текстовый документ, графическое изображение, медиа и так далее), причем, расширение файлу присваивает программа, в которой создается файл.

Например, файл такого вида: “инструкция.doc” – информация, созданная текстовым редактором Word. В этом примере “инструкция” – имя файла, а “.doc” – расширение.

На компьютере хранится огромное количество файлов и если их не сгруппировать (как книги по шкафам по жанрам), то немыслимо, как что-то можно будет найти!

Вот для такого случая существуют папки (folder), в которые размещают и группируют файлы.

У каждой папки имеется имя, которое может быть любым, лишь бы можно было понять, что в ней находится. Расширений у папок нет, так как они предназначены только для хранения файлов. Причем, в одну папку можно вложить еще несколько папок (подпапок), что очень удобно при сортировке информации. Например, у нас на компьютере уже есть стандартная папка “Мои документы”, где находятся подпапки, например, “Документы кота Васьки”.

Такая структура вложенных папок называется древовидной структурой и помогает нам легко найти нужную информацию.

Самая большая единица в организации хранения информации на компьютере – это части жесткого диска, на которые который мы можем его разбить и эти части называются буквами латинского алфавита. начиная от “С” и до последней буквы “Z” (буквами “А” и “В” называют дисководы). Части жесткого диска можно назвать только одной буквой из алфавита, а не цифрами и не символами.


2. Файловая структура

Файловая система (ФС) - функциональная часть ОС, т.е. это порядок хранения и - организации файлов на диске

1. Виды файловой структуры

Виды файловой структуры: 1) Одноуровневая ФС - линейная последовательность имен файлов, используется для дисков с небольшим количеством файлов; 2) Многоуровневая иерархическая ФС - представляет собой древовидную структуру, служит для хранения сотни и тысячи файлов. Каталог (Папка) верхнего уровня содержит вложенные папки 1 уровня, которые могут содержать папки 2 уровня и тд.

Для хранения информации каждый диск разбивается на 2 области: 1) каталог (directory) или папка - содержит названия файлов и указание на начало их размещения на диске; 2) область хранения файлов, содержит текст.

Чтобы найти файл надо знать: 1)имя файла; 2) где храниться файл

например:

C:\GAMES\CHESS\zena.exe

Имя диска – С

папка 1уровня –GAMES

папка 2уровня –CHESS; имя файла - zena.exe

В процессе работы наиболее часто над файлами производят следующие операции: копирование, перемещение, удаление, переименование.

3. Создаем свою файловую систему в ОС Windows на .Net

Существует великое множество файловых систем. Это и файловые системы для носителей информации (FAT*, NTFS, ext* и т.д.), и сетевые файловые системы (NFS, CIFS и т.д.), и виртуальные файловые системы, и великое множество других. А появлялась ли у тебя, %habrauser%, потребность в своей, еще несуществующей файловой системе? О том, как ее сделать для ОС Windows на managed-коде (.net), и пойдет речь.

В общем случае, для создания своей файловой системы (далее ФС), необходимо написать драйвер этой ФС и зарегистрировать его в ОС. Т.к. драйвер взаимодействует с ядром ОС, то его создание на managed-коде является делом нетривиальным, а производительность такого драйвера будет на невысоком уровне. В связи с этим, целесообразнее иметь драйвер ФС, написанный на native-коде и некий промежуточный слой между этим драйвером и managed-кодом. Такой драйвер существует в проекте Dokan, равно как и набор классов DokanNet для взаимодействия с этим драйвером в managed-коде. Оба проекта распространяются под лицензией GPLv3.

1. Попробуем разобраться, как это работает

Dokan — это драйвер, работающий на уровне ядра Windows, с которым могут взаимодействовать любые приложения из userspace-а. Драйвер существует как для 32-ух разрядный систем, так и для 64-ех разрядных. Драйвер не несет в себе реализацию какой-либо ФС, а лишь выступает в роли прокси, пропуская через себя все операции ввода-вывода (IO) из ядра ОС в userspace. Реализация функционала ФС лежит на наших плечах, мы создаем базовые функции ФС, такие как открытие/закрытие файла, чтение из файла, запись в файл и т.д., которые будут вызываться драйвером Dokan при возникновении в системе соответствующих событий. В момент регистрации нашей ФС в драйвере Dokan, мы указываем некоторые параметры работы нашей ФС (кол-во потоков-обработчиков операций ввода/вывода, точка монтирования нашей ФС (Dokan поддерживает монтирование в качестве съемного или сетевого диска и только в корень ФС), автоматическое размонтирование нашей ФС, в случае ошибок в работе, и некоторые другие параметры). После этого в ОС появляется новый диск в корне ФС, с которым любые приложения и сама ОС взаимодействует, как и с обычным диском. Какие операции разрешено производить в данной ФС, зависит только от разработчика этой ФС, то есть от нас.


DokanNet – это обертка над драйвером Dokan. Позволяет разрабатывать свою ФС на managed-коде. DokanNet описывает интерфейс DokanOperations, который необходимо реализовать для регистрации нашей ФС в драйвере Dokan. Автор DokanNet вместе с исходниками самого проекта положил 2 примера работы с данной оберткой:

• DokanNetMirror — ФС-зеркало уже существующего каталога

• RegistoryFS — ФС, представляющая структуру системного реестра Windows в директории и файлы.

2. Коды

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

Реализация интерфейса DokanOperations сводится к реализации следующих функций:

• CreateFile — создание файлов/директорий

• OpenDirectory — открытие директории

• CreateDirectory — создание директории

• Cleanup — удаление файла/пустой директории

• CloseFile — закрытие файлового дескриптора

• ReadFile — чтение куска файла указанной длины с указанным смещением

• WriteFile — запись данных в файл с указанным смещением

• FlushFileBuffers — очистка буферов (кэша) файла

• GetFileInformation — получение информации о размере, атрибутах, времени создания/последнего доступа/модификации файла/директории

• FindFiles — получение списка файлов/директорий в указанной директории

• SetFileAttributes — установка атрибутов файла/директории

• SetFileTime — установка времени создания/последнего доступа/модификации файла/директории • DeleteFile — пометка файла на удаление (удаление проводится в Cleanup)

• DeleteDirectory — пометка директории на удаление (удаление проводится в Cleanup)

• MoveFile — перемещение/переименование файла/директории

• SetEndOfFile — установка размера файла (используется при создании пустого файла определенной длины)

• SetAllocationSize — автор не указал для чего необходима данная фун-ция, на практике передача управления в нее не замечена

• LockFile — блокировка файла в single-доступе

• UnlockFile — снятие блокировки

• GetDiskFreeSpace — получение информации о кол-ве доступного/общего/свободного места в ФС

• Unmount — размонтирование/отключение ФС

Как мы видим, функционал, предоставляемый драйвером Dokan и оберткой DokanNet очень богат. На базе данного проекта разработана ФС SSHFS. Каждый может разработать ФС, отвечающий своим требованиям.

4. Поисковые системы

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


Большинство поисковых систем ищут информацию на сайтах Всемирной паутины, но существуют также системы, способные искать файлы на FTP-серверах, товары в интернет-магазинах, а также информацию в группах новостей Usenet.

Улучшение поиска — это одна из приоритетных задач современного интернета (см. про основные проблемы в работе поисковых систем в статье Глубокая паутина).

1. Статистика использования поисковых систем По данным компании Net Applications, в ноябре 2011 года использование поисковых систем распределялось следующим образом:

• Google — 83,87 %;

• Yahoo! — 6,20 %;

• Baidu — 4,22 %;

• Bing — 3,69 %;

• Yandex — 1,7 %;

• Ask — 0,57 %;

• AOL — 0,36 %.

2. Популярные поисковые системы

Согласно данным LiveInternet в 2012 году об охвате русскоязычных поисковых запросов:

• Всеязычные:

o Google (24,9 %)

o Bing (0,8 %)

o Yahoo! (0,2 %) и принадлежащие этой компании поисковые машины:

▪ Inktomi

▪ AltaVista

▪ Alltheweb

• Англоязычные и международные:

o AskJeeves (механизм Teoma)

• Русскоязычные — большинство «русскоязычных» поисковых систем индексируют и ищут тексты на многих языках — украинском, белорусском, английском, татарском и др. Отличаются же они от «всеязычных» систем, индексирующих все документы подряд, тем, что в основном индексируют ресурсы, расположенные в доменных зонах, где доминирует русский язык или другими способами ограничивают своих роботов русскоязычными сайтами.

o Яндекс (61,3 %)

o Mail.ru (8,5 %)

o Рамблер (1,9 %)

o Нигма (0,3 %)

Некоторые из поисковых систем используют внешние алгоритмы поиска. Так, Qip.ru использует поисковый механизм Яндекса, а Nigma сочетает в себе как свой алгоритм, так и сборную выдачу от других поисковиков.

3. Необычные поисковые системы

• DuckDuckGo — гибридная поисковая система с политикой конфиденциальности пользователя и его поисковых запросов.

• Koogle (с его помощью ортодоксальные иудеи могли найти контент, признанный раввинами удовлетворяющим религиозным требованиям).

• Yauba (индийский поиск «для параноиков» — в отличие от привычных поисковиков, за пользователями не следят, а все записи о его действиях удаляются с сервера).

• TinEye — поисковая система, специализирующаяся на поиске изображений в Интернете.

• Генон — поисковая система, собирающая и создающая контент у себя на сайте.

• ImHalal — первый исламский поисковик. Новый поисковик может отличить разрешённые для мусульман (халяльные) результаты поиска от запретных (харамных). Был открыт в 2009 году. Ориентировочно с начала сентября 2011 прекратил функционирование в связи с недостатком финансирования.


5. Поиск информации в Интернете

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

Поисковые системы содержат тематически сгруппированную информацию об информационных ресурсах Всемирной паутины в базах данных. Специальные программы-роботы периодически "обходят" Web-серверы Интернета, читают все встречающиеся документы, выделяют в них ключевые слова и заносят в базу данных Интернет-адреса документов.

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

1. Поиск по ключевым словам

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

Запрос должен содержать одно или несколько ключевых слов, которые являются главными для этого документа. Например, для поиска самих систем поиска в Интернете можно в поле поиска ввести ключевые слова "российская система поиска информации Интернет".

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

Если ключевые слова были выбраны неудачно, то список адресов документов может быть слишком большим (может содержать десятки и даже сотни тысяч ссылок). Для того чтобы уменьшить список, можно в поле поиска ввести дополнительные ключевые слова или воспользоваться каталогом поисковой системы.

Одной из наиболее полных и мощных поисковых систем является Google (www.google.ru), в базе данных которой хранятся 8 миллиардов Web-страниц и каждый месяц программы-роботы заносят в нее 5 миллионов новых страниц. В Рунете (российской части Интернета) обширные базы данных, содержащие по 200 миллионов документов, имеют поисковые системы Яndех (www.yandex.ru) и Rambler (www.rambler.ru).

2. Поиск в иерархической системе каталогов

В базе данных поисковой системы Web-сайты группируются в иерархические тематические каталоги, которые являются аналогами тематического каталога в библиотеке.