Форум программистов, компьютерный форум CyberForum.ru

Простая файловая система - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 5.00
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
11.01.2012, 20:14     Простая файловая система #1
Доброго времени суток!
Уважаемые профессионалы, помогите пожалуйста. Необходимо написать простенькую файловую системы, способную выполнять самые основные функции.
принцип должен быть такой..
что при запуске, создаётся или открывается уже созданный файл, который Windows начинает определять как носитель. тоесть в моём компьютере должен появиться новый диск.
не важно, как он будет определять, хоть как флешка, хоть обычный жестяк.
и можно будет открыть его, записывать файлы, читать, удалять и т.д.
помогите пожалуйста, чем сможете..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2012, 20:14     Простая файловая система
Посмотрите здесь:

Файловая оболочка C++
C++ Файловая сортировка (не обычно)
Файловая система FAT C++
C++ Как смонтирована файловая система?
C++ Файловая система C++ некорректно себя ведет
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 12:31     Простая файловая система #2
Нда... можно, например, помочь вам определиться с тем, чего вы на самом деле хотите сваять.
Цитата Сообщение от Wiki
Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

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

С точки зрения операционной системы (ОС), весь диск представляет собой набор кластеров (как правило, размером 512 байт и больше)[1]. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 15:05  [ТС]     Простая файловая система #3
Цитата Сообщение от BRcr Посмотреть сообщение
Нда... можно, например, помочь вам определиться с тем, чего вы на самом деле хотите сваять.
спасибо, я знаю что такое файловая система..
и знаю что это можно сделать очень даже легко..так сказал препод, но дело в том, что я с языком C/C++ на очень большое ВЫ..по этому обращаюсь за помощью
хотябы какие то подсказки..советы, коды.. хоть что то, как подобное можно организовать
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 15:16     Простая файловая система #4
Если вы хотите разработать систему правил, определяющих физическое хранение информации на накопителе и логику работы с ней, то это одно. Карандаш, салфетка и вперед по стопам незабвенных исследователей

Если к этой системе надо еще и драйвера написать, то это уже дело совсем другое, никак не для начинающего в программировании, уж извините
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 15:25  [ТС]     Простая файловая система #5
Цитата Сообщение от BRcr Посмотреть сообщение
Если вы хотите разработать систему правил, определяющих физическое хранение информации на накопителе и логику работы с ней, то это одно. Карандаш, салфетка и вперед по стопам незабвенных исследователей

Если к этой системе надо еще и драйвера написать, то это уже дело совсем другое, никак не для начинающего в программировании, уж извините
однако этого требуется от нас... и мы там далеко не профи..
делаем вывод..что есть некий способ, с помощью которого можно сделать это
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 15:50     Простая файловая система #6
Цитата Сообщение от bupal Посмотреть сообщение
делаем вывод..что есть некий способ, с помощью которого можно сделать это
Совершенно верно и неоспоримо! Хотя и бесполезно в сложившейся ситуации.
Я бы осторожно сделал вывод, что вы неправильно поняли свое задание.
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 16:13  [ТС]     Простая файловая система #7
Цитата Сообщение от BRcr Посмотреть сообщение
Совершенно верно и неоспоримо! Хотя и бесполезно в сложившейся ситуации.
Я бы осторожно сделал вывод, что вы неправильно поняли свое задание.
а какой вариант вы бы предложили мне?...
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.01.2012, 16:27     Простая файловая система #8
Цитата Сообщение от BRcr Посмотреть сообщение
Если вы хотите разработать систему правил, определяющих физическое хранение информации на накопителе и логику работы с ней, то это одно. Карандаш, салфетка и вперед по стопам незабвенных исследователей
Если к этой системе надо еще и драйвера написать, то это уже дело совсем другое, никак не для начинающего в программировании, уж извините
ППКС


Цитата Сообщение от bupal Посмотреть сообщение
и знаю что это можно сделать очень даже легко
Отличный подход! Не знаю, как, но знаю, что легко.

Цитата Сообщение от bupal Посмотреть сообщение
однако этого требуется от нас... и мы там далеко не профи..
делаем вывод..что есть некий способ, с помощью которого можно сделать это
Есть такой способ - лекции не прогуливать.

А так даже не представляю, чем Вам помогут в разделе для начинающих. Почитайте описание FAT32 для начала, может натолкнёт на какие-то идеи...
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 16:50     Простая файловая система #9
Цитата Сообщение от bupal Посмотреть сообщение
а какой вариант вы бы предложили мне?...
Воспользоваться услугами фрилансеров? Правда, потом придется рассказывать преподу, что и как вы сделали; не самый приятный будет момент

Или поднатореть в системном программировании, попутно осваивая язык. Простым вариантом не назовешь, но это будет честно. Да и не так уж много на это потребуется времени при должном подходе... не день и не два, конечно же, но за недельку или месяц-другой управиться можно, все зависит от вас - от уровней ваших стараний да познаний.
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 18:19  [ТС]     Простая файловая система #10
Цитата Сообщение от easybudda Посмотреть сообщение
Есть такой способ - лекции не прогуливать.
Отличный совет..но он был бы актуален, если бы лекции были))..
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,979
12.01.2012, 20:18     Простая файловая система #11
Можно вмешаться?
На месте вашего препода я б не стал такие эксперименты предлагать живому новичку на живом компутере.
Я бы задачу поставил так. Заводите здоровенный файл на 1Гб или сколь душа пожелает. И организуете на нем файловую структуру. Дерево каталогов строите. Растите его во все стороны. Удаляете там или копируете-переименовываете. Менеджер файлов создаете типа незабвенного NC или FAR, или в стиле проводника-Винда. И все не вылезая за пределы этого файла.
ИМХО, тут бы и польза для ТС была, и компутеры целы, да и работа хорошая серьезная.
А если уж совсем круто хочется, так берите еще один файлик на 5 гигов, и пусть ваша файловая система считает его диском D: или /dev44 - и вперед!
А уж когда тут кое-что начнется вырисовываться и получаться - вот вам еще немного железку изучить - и вы классный системный программист!

Добавлено через 10 минут
А чтоб обстановку максимально приблизить к боевой, считайте, что файлик ваш разбит на "кластеры", скажем по 512 байт, и читать-писать можно только "кластерами".
Подумайте, что делать, когда внутренние "файлы" (вашей Ф-системы) вдруг увеличиваются, или наоборот, уменьшаются, место освобождается - не пропадать же ему?
С Богом!
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 20:27  [ТС]     Простая файловая система #12
во..вот это вообще отличный совет))большое спасибо
можете рассказать, каким образом заставить работать как бы с кластерами..
расскажите подробнее принцип ну или код))..если есть возможность

и ещё такой вопрос.. как можно сказать винде, чтоб она думала вот этот файл является диском..
по какому принципу это вообще делается?..
мб драйвер нужно написать?...потому что я припоминаю, что препод как то намекал на это..
что типа вот эта задача - нужно будет написать драйвер...свою файловую систему
и чтоб был файл, который винда должна определить как диск..
а все действия, которые обычно выполняются (записать, стереть, переименовать и т.д.) должны быть прописаны (тобишь способы выполнения) у меня в ФС
BRcr
12.01.2012, 20:29
  #13

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Подумайте, что делать, когда внутренние "файлы" (вашей Ф-системы) вдруг увеличиваются, или наоборот, уменьшаются, место освобождается - не пропадать же ему?
Да, дефрагментация - это весело
Никогда не понимал, почему на виндах аж вплоть до ХР так все туго было с дефрагментацией... смех, да и только.

bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 20:36  [ТС]     Простая файловая система #14
Цитата Сообщение от BRcr Посмотреть сообщение

Не по теме:


Да, дефрагментация - это весело
Никогда не понимал, почему на виндах аж вплоть до ХР так все туго было с дефрагментацией... смех, да и только.

кстати да..дефрагментация в ФС..
она должна быть только тогда, когда пользователь сам этого захочет и выберет соответствующий пункт в меню
или она должна выполняться автоматически?
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 20:43     Простая файловая система #15
Цитата Сообщение от bupal Посмотреть сообщение
она должна быть только тогда, когда пользователь сам этого захочет и выберет соответствующий пункт в меню
или она должна выполняться автоматически?
Это религиозный вопрос, уходящий корнями во времена создания первых жестких Реализовано должно быть и так и сяк, если по хорошему...
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 20:54  [ТС]     Простая файловая система #16
Цитата Сообщение от BRcr Посмотреть сообщение
Это религиозный вопрос, уходящий корнями во времена создания первых жестких Реализовано должно быть и так и сяк, если по хорошему...
тоесть в обычном режиме, при любых изменениях, типа удаления, перезаписи и т.д. дефрагментация должна выполнятся над конкретным участком памяти
а когда пользователь сам захочет дефрагментировать, то она выполняется над всей памятью
так?..
и можете рассказать прицип дефрагментации..как это вообще должно выглядеть
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,979
12.01.2012, 21:51     Простая файловая система #17
Цитата Сообщение от bupal Посмотреть сообщение
можете рассказать, каким образом заставить работать как бы с кластерами..
расскажите подробнее принцип ну или код))..если есть возможность
Какой конкретный цель вашей задачи? Курсач? Диплом? Если б вы взялись за это в четвертой четверти прошлого века, то потянуло б и на докторскую. Но сделать это можно. Можно сделать все. Вот Кирниган, Ричи, Томсон сделали же? И даже рассказали как. Был бы жив Ричи и зайди он с бодуна на наш форум, он бы может код вам выложил. А мне, простите, слабо.

Добавлено через 2 минуты
Цитата Сообщение от bupal Посмотреть сообщение
как можно сказать винде, чтоб она думала вот этот файл является диском..
по какому принципу это вообще делается?..
Вот тут опять помочь ничем не могу. Винда для меня такой те-е-емный ящик. Есть у Стругацких такая повестушка "Попытка к бегству". Вот там много про это дело написано.

Добавлено через 2 минуты
Цитата Сообщение от bupal Посмотреть сообщение
и можете рассказать прицип дефрагментации..как это вообще должно выглядеть
Все кластеры сдвигаешь к началу, ссылочки подправляешь, при этом постоянно думаешь о том, что компьютер может вырубиться.
bupal
25 / 25 / 2
Регистрация: 30.03.2010
Сообщений: 343
Записей в блоге: 1
12.01.2012, 22:11  [ТС]     Простая файловая система #18
Цитата Сообщение от Байт Посмотреть сообщение
А мне, простите, слабо.
может чисто в теории вы что то знаете об этом?..
Байт
 Аватар для Байт
13989 / 8820 / 1231
Регистрация: 24.12.2010
Сообщений: 15,979
12.01.2012, 22:51     Простая файловая система #19
http://lib.ru/STRUGACKIE/popytkabeg.txt

Добавлено через 20 минут
Попытаюсь пояснить
- Преступники заставляют машины двигаться, - едва слышно произнес
Хайра. - Стражники смотрят.
- На что смотрят?
- Как машины двигаются.
Саул взял чертеж и сунул пленнику под нос.
- Рассказывай все, - сказал он.
Хайра рассказывал долго и сбивчиво.
Дело, по-видимому, сводилось к тому, что местные власти пытались овладеть
способом управления машинами. Методы при этом использовались чисто
варварские. Преступников заставляли тыкать пальцами в отверстия, кнопки,
клавиши, запускать руки в двигатели, и смотрели, что при этом происходит.

Чаще всего не происходило ничего. Часто машины взрывались. Реже они
начинали двигаться, давя и калеча все вокруг. И совсем редко удавалось
заставить машины двигаться упорядоченно. В процессе работы стражники
садились подальше от испытываемой машины, а преступники бегали от них к
машине и обратно, сообщая, в какую дыру или в какую кнопку будет сунут
палец.
Все это тщательно заносилось на чертежи.
- Кто делает чертежи?
- Не знаю.
- Верю. Кто привозит чертежи?
- Большие начальники на птицах.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2012, 00:42     Простая файловая система
Еще ссылки по теме:

Простая графическая система C++
Файловая система C++
Файловая система, дата и время C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
13.01.2012, 00:42     Простая файловая система #20
Цитата Сообщение от bupal Посмотреть сообщение
и ещё такой вопрос.. как можно сказать винде, чтоб она думала вот этот файл является диском..
по какому принципу это вообще делается?..
Вот уже и до виртуальной ФС добрались Вам опять же придется написать драйвер. С виндовс драйвер будет общаться по стандарту, скрепленному сургучом в незапамятные времена, предоставляя ей доступ к накопителю на чтение/запись, а что он там сам будет делать - это уже его заботы: может выковыривать инфу прямо с диска, как обычные дрова, может через виндовс получить доступ к файлу/файлам на обычном разделе, брать инфу из них, а перед виндой кривляться, мол, он самый обычный драйвер. А может вообще только в оперативку писать или через сеть присосаться к чужому винту где-нить за бугром, а виндовс все равно будет думать, что работает она с самым обычным жестким.

Короче, это посредник - производит обмен данными с виндой, а уж где и как он их достает - тут вы свободны в творчестве.
Yandex
Объявления
13.01.2012, 00:42     Простая файловая система
Ответ Создать тему
Опции темы

Текущее время: 15:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru