eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPrzenośny, uproszczony filesystem › Re: Przenośny, uproszczony filesystem
  • X-Received: by 2002:a05:620a:ec9:: with SMTP id x9mr5628928qkm.333.1612550562081;
    Fri, 05 Feb 2021 10:42:42 -0800 (PST)
    X-Received: by 2002:a05:620a:ec9:: with SMTP id x9mr5628928qkm.333.1612550562081;
    Fri, 05 Feb 2021 10:42:42 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin1!goblin.st
    u.neva.ru!news-out.google.com!nntp.google.com!postnews.google.com!google-groups
    .googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 5 Feb 2021 10:42:41 -0800 (PST)
    In-Reply-To: <rtpdik$cge$1@dont-email.me>
    Complaints-To: g...@g...com
    Injection-Info: google-groups.googlegroups.com; posting-host=77.254.35.244;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 77.254.35.244
    References: <rtpdik$cge$1@dont-email.me>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <c...@g...com>
    Subject: Re: Przenośny, uproszczony filesystem
    From: "M.M." <m...@g...com>
    Injection-Date: Fri, 05 Feb 2021 18:42:42 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:215346
    [ ukryj nagłówki ]

    On Thursday, January 14, 2021 at 1:31:18 PM UTC+1, heby wrote:
    > Cześć.
    >
    > Poszukuje inspiracji a być może gotowca. Ale to trudno powiedzieć. A
    > chodzi o coś takiego:
    >
    > Implementacja abstrkacyjnego filesystemu pracującego na urzeniau
    > blokowym, do którego dostęp zapewniam ja, przez stosowane abstrkacje.
    > Wykorzystać było by fajnie, ale najważniejsze to możliwośc podejrzenia
    > rozwiązań.
    >
    > Wiec to tak powinno wyglądać:
    >
    > struct IFooFileSystem
    > {
    > std::shared_ptr< IFile > openFile( std::string cosnt& _fileName, Flags
    > _flags );
    >
    > bool fileExist( std::string const& _fileName );
    >
    > [...]
    > };
    >
    > struct IBlockDevice
    > {
    > std::shared_ptr< Block > readBlock( BlockIndes _index );
    >
    > void writeBlock( BlockIndes _index, Block& _block );
    > };
    >
    > struct IFile
    > {
    > void read(...);
    > void seek(...);
    > [...]
    > }
    >
    > std::shared_ptr< IFooFileSystem >
    > createFileSystem( myBlockDevice );
    >
    > Coś w ten deseń, czyli to ja dostaczam abstrakcje robiącą I/O na
    > poziomie block/cluster a kod realizuje wysokopoziomowe operacje plikowe.
    >
    > To nie musi być z czymkolwiek kompatybilne, nawet lepiej gdyby nie było.
    > Musi być natomist komplenie nie zależne od czegokolwiek, czy to systemu
    > czy zewnatrznych biblitek. I thread safe, będę jednoczesnie czytał i
    > zapisywał wiele "plików" z róznych wątków. W zasadzie poza "plikami"
    > reszta kompletnie zbędna, nie interesują mnie atrybuty czy nawet
    > katalogi. Mocno uproszczony filesystem, coś w rodzaju wielu niezależnych
    > strumieni w jednym kontenerze.
    >
    > Mogę to napisać samodzielnie, ale zanim to zrobie: ktoś widział taki
    > projekt lub część jakiegoś projektu?
    >
    > Dla zastanawiajacych się po co mi to:
    >
    > Jest *prawdziwy* plik. W moim kodzie jest konwertowany do urządzenia
    > blokowego i wystawiany do tego mechanizmu fiesystemu.
    >
    > Dzięki temu mogę w jednym pliku trzymac w środku wiele plików,
    > bezustannie je czytajac i zmieniając. Ułatwi mi to pracę, ponieważ pliki
    > te są trzymane razem, user nie może nic w nich popsuć, nie muszę
    > bezustannie pakować/rozpakować jak robi np. OpenOffice (u nich
    > kontenerem jest packer). Od razu gotowe do pracy.
    >
    > Katalog odpada: user może w nim coś popsuć.
    >
    > Ewentualne puchnięcie moża jakoś obejśc pisząc garbage collector
    > trimujący ten "wirtualny filesystem" i przenoszący bloki w tle.
    >
    > Coś podobnego robi np. VirtualBox ale nie chodzi o taki poziom emulacji
    > dysków, to ma byc mała pierdoła do kodu który mam pod kontrolą.
    >
    > Innymi słowy: czy ktoś widział tego typu wirtualny filesystem?
    > Interesują mnie zagadnienia takie jak uproszczony wielodostęp czy
    > realizacja kroniki. Chciałbym je poderzeć, ponieważ nie mam w tym
    > doswiadczenia, pewnie napiszę to mało optymalnie.
    >
    > Projekt Fuse nie nadaje się bez bardzo poważnego wrapowania. Ponadto ja
    > nie potrzebuje wielu filesystemów, potrzebuje tylko jeden, o mało ważnej
    > kompatybilności ze światem zewnętrznym. Taki FooFS.

    Jakby to miało być wydajnościowo optymalne, to by wymagało dużego nakładu pracy,
    wielu prób, tunignu, testów, debugowania... W jakim sensie to by miało być optymalne?


    Pozdrawiam






Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 07.02.21 12:55 heby
  • 07.02.21 15:34 M.M.
  • 07.02.21 19:04 heby
  • 07.02.21 19:35 M.M.
  • 07.02.21 20:03 M.M.
  • 07.02.21 20:57 heby
  • 07.02.21 21:19 M.M.
  • 07.02.21 22:01 heby
  • 07.02.21 22:53 M.M.
  • 08.02.21 07:39 heby
  • 08.02.21 11:08 M.M.
  • 08.02.21 12:12 heby
  • 08.02.21 14:24 M.M.
  • 08.02.21 14:57 heby
  • 08.02.21 18:35 M.M.

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: