Article View: pl.comp.programming
Article #217361Re: Przenośny, uproszczony filesystem
From: heby
Date: Tue, 06 Apr 2021 08:58
Date: Tue, 06 Apr 2021 08:58
122 lines
6099 bytes
6099 bytes
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ć. 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. > 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? > 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. >> *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. > 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. >> 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. Niejak nie pomagają mi w wyższej warstwie abstrackji typu "jak trzymać pliki w tym pliku". > 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 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? > 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. > Moja rada poczytaj o tym jak się konstruję formaty plików A jak się konstruuje formaty plików? Jest jakiś poradnik do tego? > 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. > Zadaje to pytanie nie po by się z Ciebie nabijać tylko po to by > zrozumieć czemu sądzisz ze pliki typu qcow2/vdi są systemami plików. Nie sądzę tak.
Technical Details
Message-ID:
<s4h7rd$n3v$1@dont-email.me>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: heby <heby@poczta.onet.pl> Newsgroups: pl.comp.programming Subject: Re: Przenośny, uproszczony filesystem Date: Tue, 6 Apr 2021 10:58:17 +0200 Organization: A noiseless patient Spider Lines: 122 Message-ID: <s4h7rd$n3v$1@dont-email.me> 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> Mime-Version: 1.0 Injection-Date: Tue, 6 Apr 2021 08:58:21 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="76ac3790277d741921ae0d316a6d6019"; logging-data="23679"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+mR+UgFx4OIdU2ZbmYWGqX" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 Cancel-Lock: sha1:7Ptl2kaDu/yFG/P40M+TdDVM5xg= In-Reply-To: <606b876c$0$517$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit