-
Data: 2021-04-06 16:54:46
Temat: Re: Przenośny, uproszczony filesystem
Od: J-23 <B...@p...fm> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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%20Forma
t,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
Następne wpisy z tego wątku
- 06.04.21 17:08 J-23
- 06.04.21 18:01 heby
- 06.04.21 18:12 heby
- 06.04.21 19:41 J-23
- 06.04.21 19:57 J-23
- 06.04.21 20:08 heby
- 06.04.21 20:17 heby
- 06.04.21 21:01 J-23
- 06.04.21 21:32 J-23
- 07.04.21 08:43 heby
- 07.04.21 08:48 heby
- 07.04.21 11:52 J-23
- 07.04.21 12:03 heby
- 07.04.21 12:25 J-23
- 07.04.21 12:42 J-23
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- 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
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=