-
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
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
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
- Ada-Europe Conference - 6 March Extended Final Deadline
Najnowsze wątki
- 2024-04-19 Samochód w ogniu
- 2024-04-19 Warszawa => Inżynier DevOps (projekt JP) <=
- 2024-04-19 Gdańsk => Spedytor Międzynarodowy <=
- 2024-04-19 Kraków => Java Developer <=
- 2024-04-19 Wrocław => Lider Serwisu/Programista PLC z językiem niemieckim <=
- 2024-04-19 uczcie się Anglicy
- 2024-04-19 Co sciaga kretynow
- 2024-04-19 Uziom
- 2024-04-18 Prokurator Wrzosek jest już w porządku [Bodnatura po-praworządności]
- 2024-04-18 Warszawa => Sprzedawca usług rekrutacyjnych <=
- 2024-04-18 Jak uszkodzona sonda lambda wpływa na dawkowanie paliwa?
- 2024-04-18 Warszawa => Spedytor międzynarodowy <=
- 2024-04-18 Warszawa => International freight forwarder <=
- 2024-04-18 Warszawa => Regular Data Analytics/SQL Specialist <=
- 2024-04-18 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=