Article View: pl.comp.programming
Article #217364Re: Przenośny, uproszczony filesystem
From: J-23
Date: Tue, 06 Apr 2021 14:54
Date: Tue, 06 Apr 2021 14:54
191 lines
8493 bytes
8493 bytes
W dniu 2021.04.06 o 10:58, heby pisze: > On 05/04/2021 23:55, J-23 wrote: >>> Zostało to wyjaśnione. >> Nie zostało > > Więc jeszcze raz: chciałbym kilka plików, któe generuje apliakcja, > zawszeć w jednym. W przewieństwie do pakowania a'la zip, to ma być > dostepne jak normalne pliki, czyli mogę do niczh coś dopisać, trimować, > tworzyć i kasować. > Rozumiem doskonale i próbuje dać Ci podstawowe kroki od czego zacząć > Unikam wtedy bałaganu w postaci katalogu z plikami, w których user może > coś uszkodzić. Praktyka pokazała że to *krytyczne*. > >>> Więc jak? >> Możesz to zrobić na co najmniej dwa sposoby >> 1. Korzystając ze strumieni i pliku binarnego > > Omijasz podstawowy problem. Strukturę tego pliki "binarnego". Skupiasz > się na trzecirzędnych duprelach. > Taka strukture musisz sobie napisać lub skorzystać z instiejącej (mowiac z istniejącej mam na myśli to że korzystasz z formatu który Ci to umożliwa) >> 2. Wykorzystując formaty tj VDI >> https://www.arysontechnologies.com/blog/how-to-open-vdi-file/#:~:text=VDI%20or%20Virtual%20Drive%20Format,Windows%20and%20other%20operating%20systems. > > > To bardzo milutkie, ale to tylko 1/10 sukcesu. Co z filesystemem? Mam > sobie skombinować skądś ext4 w wersji bez kernela? tlumacze po raz enty ty nie musisz mieć filesystemu skupiasz się nie na tym co trzeba > >> Dostęp do źrodeł masz opisy formatu znajdziesz też w sieci > > Ale to nie jest format zapisu plików, tylko format zapisu *dysku*. > Brakuje tej warstwy o której mowa w temacie. > dla przykładu VDI jest plikiem i on ma odpowiedni format który pozwala przechowywać obraz dysku tak? czy nie? >>> *DOSKONALE* wiem co. >> Bez szyderstwa. Napisz więcej co to ma robić bo mam wrażenie że >> strzelasz z armaty do wróbla > > Napisałem wyżej. > >>>> Chcesz budować Filesystem to pochwal się jak masz to ogarnięte do >>>> tej pory >> Bo to co chcesz zbudować jest formatem pliku emulującym działanie >> systemu plików a to różnica > > Nie, to nie jest róznica, dokładnie to chce uzyskać od samego początku. Tylko po co? > >> Napisałem już w pierwszym moim poście że musisz zbudować odpowiedni >> format pliku > > Świetnie: > > Pacjet: Panie doktorze co dalej? > Doktur: Powinien pan wyzdrowieć, od tego proszę zacząć. > >> Nawet przywołane przeze mnie VDI jest formatem pliku a nie systemem >> plików > > No własnie, dlatego jest poza tematem. Ogólnie jeśli mam już bloki, to > abstrakcja zapisująca je do pliku jest mało istotną duperelą. Skupiasz > się na nieistotnym technicznie detalu. > Wlasnie ty się skupiasz na czymś co ci jest zbędne przynajmniej na obecnym etapie >>> Poczytaj wątek. Mam możliwosć schowania tego za abstrackją i >>> aktualnie używam database. Ale database jest marną emulacją. >> Po co ci Database? > > Aby emulować filesystem w pliku na potrzeby unit testów. > >>> Bardzo dobra rada. Problem w tym, że kod do większości filesystemów >>> jest przesadnie zagmatwany aby można było wyłuskać z niego sensowne >>> abstrakcje. A wiele oglądałem. Najzwyczajniej, produkcyjne >>> filesystemy są optymalizowane a nie pisane po to aby je podziwiać. >> Teraz jak wiem o co ci chodzi to odpowiem tak. Przejrzyj formaty które >> to umożliwiają przechowywać obraz dysku np wspomniany przeze mnie VDI > > Formaty maszyn wirtualnych służa tylko do tego aby gołe sektory trzymać > w jakiś mniej-wiecej optymalny sposób w jednym pliku. > Zajrzyj w format VDI jak to jest zrobione. Nawet ten prosty parser w javie który podesłałem pokazuje że jest to plik o danym formacie. > Niejak nie pomagają mi w wyższej warstwie abstrackji typu "jak trzymać > pliki w tym pliku". Każdy plik ma określoną strukturę. Znajac ja pisząc odpowiednia obsługe tej struktury mozesz ja czyta w dowolny sposb > >> bo System plików będzie faktycznie mocno zagmatwany bo ty potrzebujesz >> 20% tego co w systemie plików jest zawarte > > Raczej 80%. Poza katalogami i atrybutami, ale oba to chyba jakieś mało > istotne rzeczy. > >>> Ma pracować na 1 pliku, a w środku ma pozwalać na operowanie nieznaną >>> iloscią plikó wirtualnych, dynamicznie je tworząc, kasując, >>> powiększając, nadpisując. Mniej więcej to co robi normalny filesystem >>> na normalnym dysku. >> Kluczowe pytanie do czego ci to potrzebne bo nadal przy tej "dawce >> wiedzy" będę sie upierał że wystarczą ci strumienie by to napisać > > Nie, nie wystarczą. Aplikacja jest komercyjna. Strumienie są tylko narzedziem za pomocą których napiszesz odpowiednią strukture tego co ma zostać przechowywane a nie celem samym w sobie > >> Strumienie nie dadzą rady w momencie gdy potrzebujesz z tego wycisnąć >> max wydajności > > Dalej nie pojmuje co niby te strymienie mają mi dopomóc w problemie? > std::fstream i co dalej? jest jakis std::filesystem? > Jak napisałem wyżej one są tylko środkiem za pomocą którego napiszesz sobie odpowiednią strukture >> Zasugerowałem format VDI lub zbuduj własny format co nie jest takie >> trudne jak zglebisz temat formatu plików pozwalający przechowywać >> obraz dysku. > > Ale to są tylko trywialne translatory blok wirtualny->pozycja w pliku + > trim. > >> Moim zdaniem błędnie się zasugerowałeś że to ma być FileSystem > > To ma być filesystem, bo w API mowa o plikach a bie blokach na dysku. > o jakim api mówisz? to po pierwsze Po drugie co to zmienia? Ty masz mieć plik w którym będziesz sobie dowolnie mógł wykonywać operacje tj, czytanie/zapis/przesuniecie/obcięcie danych i to potrafi niemal każdy plik kwestia by zrobić to teraz w miarę wydajnie >> Moja rada poczytaj o tym jak się konstruję formaty plików > > A jak się konstruuje formaty plików? Jest jakiś poradnik do tego? > poradnika nie ma. Ale są opisy formatu plików jak zobaczysz jak ne są napisane zlapiesz jak powinno się pisać dany format pliku Mam gdzieś w swoich starych zasobach pisane chyba we FreePascalu opisany swój format pliku w którym przechowuje obiekty bazodanowe - tj DataSource/DataSet/Query Moge je czytać jak chce ze środka pliku/ obcinać/dodawać itp Jak chcesz mogę poszukać/wrzucić i sobie zobaczysz >> Pytanie czy da się strumieniami twoim zdaniem zapakować kilka plików >> do jednego pliku? > > Da się, ale nie da się potem na tym pracować. Zwiększ rozmiar środkowego. Bzdura że się nie da da się. A ty myślisz że jak to robią formaty które przechowują obrazy dysków? Fakt jest jeden jest z tym masa pracy by to osiągnąć stąd proponuje użyć jakiegoś gotowego formatu by oszczędzić sobie pracy Pozdrawiam J-23
Technical Details
Message-ID:
<606c7635$0$529$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-2.dfn.de!news.dfn.de!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!usenet.goja.nl.eu.org!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!50.7.236.10.MISMATCH!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<rtpdik$cge$1@dont-email.me> <606a6d41$0$522$65785112@news.neostrada.pl> <s4elb8$cni$3@dont-email.me> <606b5698$0$542$65785112@news.neostrada.pl> <s4fu13$s6b$1@dont-email.me> <606b876c$0$517$65785112@news.neostrada.pl> <s4h7rd$n3v$1@dont-email.me>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-2.dfn.de!news.dfn.de!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!usenet.goja.nl.eu.org!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!50.7.236.10.MISMATCH!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Przenośny, uproszczony filesystem Newsgroups: pl.comp.programming References: <rtpdik$cge$1@dont-email.me> <606a6d41$0$522$65785112@news.neostrada.pl> <s4elb8$cni$3@dont-email.me> <606b5698$0$542$65785112@news.neostrada.pl> <s4fu13$s6b$1@dont-email.me> <606b876c$0$517$65785112@news.neostrada.pl> <s4h7rd$n3v$1@dont-email.me> From: J-23 <Baczeklu@poczta.fm> Date: Tue, 6 Apr 2021 16:54:46 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: <s4h7rd$n3v$1@dont-email.me> Lines: 192 Message-ID: <606c7635$0$529$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 178.213.140.164 X-Trace: 1617720885 unt-rea-a-01.news.neostrada.pl 529 178.213.140.164:50281 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 8179 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit