-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news-2.dfn.de!n
ews.dfn.de!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!usenet.goj
a.nl.eu.org!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.new
s.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.highwi
nds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.ne
ostrada.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 <B...@p...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>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: pl
Content-Transfer-Encoding: 8bit
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: a...@n...neostrada.pl
X-Received-Bytes: 8179
Xref: news-archive.icm.edu.pl pl.comp.programming:215433
[ ukryj 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-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-28 droga laweta
- 2024-11-28 Co tam się odpierdala w tej Warszawie?
- 2024-11-28 skąd się biorą tacy debile?
- 2024-11-28 JDG i utylizacja sprzetu
- 2024-11-27 Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Bydgoszcz => QA Engineer <=
- 2024-11-28 Zielona Góra => Spedytor międzynarodowy <=
- 2024-11-28 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-27 Zielona Góra => Senior PHP Developer <=
- 2024-11-27 Warszawa => Senior Java Developer <=