🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217364

Re: Przenośny, uproszczony filesystem

#217364
From: J-23
Date: Tue, 06 Apr 2021 14:54
191 lines
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-mail
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>

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