Autor Wątek: Symulacja Systemu Operacyjnego [Allegro5]  (Przeczytany 10763 razy)

Offline NEO_

  • Użytkownik

# Kwiecień 15, 2018, 15:07:59
Siso dzięki za naprowadzenie :) Ogólnie droga do uzyskania czegoś takiego będzie długa :)

Na tą chwilę skupiam się na małych poprawkach kodu oraz funkcji :)

W Panelu Logowania dodałem możliwość widoku wpisywanego hasła w formie gwiazdek:


Poprawiłem wyświetlanie okien ,by podczas poruszania się po tym "Aktywnym" przypadkowo nie zaznaczyło się okno rysowane pod nim. Dodatkowo dodałem Minimalizację i Maksymalizację okien z Paska Zadań.
Wygląda to już dobrze i działa w miarę prawidłowo.
Ikona każdego uruchomionego okna widnieje teraz na dole i jest łatwo dostępna.

Tym sposobem wersja 0.9.37 została oficjalnie skończona :)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline NEO_

  • Użytkownik

  • +1
# Kwiecień 29, 2018, 18:58:01
Chciałbym poinformować,że prace nad wersją v0.9.38 zostały rozpoczęte :D

Pierwsza znacząca zmiana to obsługa i edycja więcej niż jednego okna Notatnika :)
Wcześniej próba pisania w kilku uruchomionych oknach wywoływała poważne błędy.

By to mogło działać należało przerobić kod źródłowy od Managera Okien.

Taki sam los spotka również okna Konsoli/Terminala oraz Explorera i Panelu Ustawień Systemowych.



Następnie trzeba będzie jeszcze raz przyjrzeć się "stabilności" wszystkich funkcji. Jeśli nie będą się sypać błędy to kolejnym krokiem będzie zastanowienie się nad obecnym "wirtualnym systemem plików".

Ogólnie chodzi o to, by zastanowić się JAK wprowadzić do projektu możliwość odczytu np. MP3 czy plików Video
oraz wszelkich Obrazów png,jpg.

Nie mam dobrego pomysłu na coś takiego, lecz pewnie będę kombinował na wszystkie strony jak to zrobić :)

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Kwiecień 30, 2018, 21:53:34
Video i audio to pewnie używając czegoś w stylu ffmpeg ale i tak trzeba to opakować w player..

Jak na brak konkretnego celu w projekcie to podziwiam za wytrwałość :P

Offline NEO_

  • Użytkownik

  • +1
# Maj 03, 2018, 18:41:25
Jeśli chodzi o cel projektu..

Mogę stwierdzić, że taki mam:
Program "naśladuje" System Operacyjny tak jakby sam nim był :)

Ogólnie jest jeszcze taka sprawa, by cały ten "System" został ładnie opakowany i zamknięty. Chodzi o to by jego wszystkie dane zostały Zaszyfrowane. Szyfrowanie pozwoli odciąć dane np. hasła od kogoś niepowołanego.

Kiedyś sam bawiłem się w pisanie własnego szyfratora. Pół roku temu odkopałem go z dysku i obecnie jestem na etapie kończenia go.

Próbki tego jak szyfruje znajdują się w załącznikach:
Plik conf3.txt jest jednym z plików konfiguracyjnych programu BlueLex
Plik data.txt to już zaszyfrowany plik conf3.txt
Plik key.txt to klucz do tych danych zawartych w data.txt

Istnieje wysoce duże prawdopodobieństwo,że wprowadzę taką właśnie metodę szyfrowania w ciągu najbliższego tygodnia :) Jeśli mi się to uda, dam znać :D
« Ostatnia zmiana: Maj 03, 2018, 18:44:39 wysłana przez Leszek9238 »

Offline Szaruga

  • Użytkownik

# Maj 06, 2018, 15:59:43
......
Jak na brak konkretnego celu w projekcie to podziwiam za wytrwałość :P

Jeśli za brak celu, uważasz fakt że jest to coś w rodzaju budowania domu który będzie działał jak dom, jednak nikt nie będzie w nim mieszkał, to chyba też na swój sposób podziwiam...
Jakby jednak nie patrzeć, do portfolio coś wpadnie. :)

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Maj 06, 2018, 17:07:28
Jeśli za brak celu, uważasz fakt że jest to coś w rodzaju budowania domu który będzie działał jak dom, jednak nikt nie będzie w nim mieszkał, to chyba też na swój sposób podziwiam...
Jakby jednak nie patrzeć, do portfolio coś wpadnie. :)
Raczej jak budowanie domu w którym nikt nie będzie mieszkał wewnątrz gotowego domu.
Z drugiej strony może w przyszłości stanowić bazę do budowy gry w tym domu w domu ;)

Offline NEO_

  • Użytkownik

# Maj 13, 2018, 14:38:56
Program ma być z założenia Portable.
Przenoszony na Pendrive/kartach pamięci może stanowić bazę danych zaszyfrowanych.
Backup można sobie zawsze trzymać w bezpiecznym miejscu :) A jak nam pendrive zginie, lub ktoś sobie pożyczy, to z poziomu systemu nie za bardzo coś podejrzy :) A jak będzie zgadywał hasło?? Jako haczyk można wrzucić do folderu hasło podpuchę :D Po wpisaniu tego hasła wszystkie dane zostają wyzerowane. Program się już nie uruchomi bez plików konfiguracyjnych :D

Teraz praktycznie już mam skończony algorytm szyfrowania. Wszystko jest już szyfrowane w locie oprócz bitmap/tekstur systemu. Szyfrator rzuca błędami, gdy podrzucam mu duże pliki graficzne...
Mam taką cichą nadzieję,że uda mi się poradzić z tym dziwnym błędem :D

Kolejny błąd to wielowątkowość. Za chiny ta biblioteka ALLEGRO nie może sobie z tym poradzić przy wczytywaniu bitmap. Na szczęście samo szyfrowanie działa w tle bez żadnych błędów :)



Offline NEO_

  • Użytkownik

# Maj 16, 2018, 08:54:46
Witam :)
Próbuję ominąć problem związany ze zbyt długim szyfrowaniem i deszyfrowaniem plików Bitmap..
Surowa bitmapa zapisana w pliku txt to średnio 1.5MB i jakieś 120tys. linijek. Dlatego próbuje kompresować dane, a przy odczycie je odpowiednio przywracać do stanu z przed kompresji..



Jak widać plik po kompresji to (surowy)893KB > ~15KB co można już z powodzeniem zaszyfrować.

Najpierw jednak muszę skompresować wszystkie bitmapy :)

Offline Boski

  • Użytkownik

# Maj 16, 2018, 16:53:20
Surowa bitmapa zapisana w pliku txt to średnio 1.5MB i jakieś 120tys. linijek. Dlatego próbuje kompresować dane, a przy odczycie je odpowiednio przywracać do stanu z przed kompresji..
A jak to robisz? z tego co rozumiem to normalnie jako tekst zapisujesz? Jeśli tak to polecam zapoznać się z binaryReader/Writer. Tak w skrócie - zamiast zapisywać stringi i parsować je, zapisuj bezpośrednio inty, floaty, itd..

Offline NEO_

  • Użytkownik

# Maj 16, 2018, 17:36:00
Tak, dane koloru piksela są zapisywane jako liczby int. w pliku tekstowym.
Jest to wstępny zapis, ponieważ dalej używam innego algorytmu kompresującego powtarzające się kolory.

Binarny zapis użyłem tylko w algorytmie szyfrującym i szczerze, robię to pierwszy raz i wydaje mi się ,że oprócz uzyskania trochę mniejszego pliku czas odszyfrowania nie zmienił się znacznie.  Ogólnie jestem dobrej myśli,że w najbliższych dniach Projekt zostanie domknięty czyli nie będzie możliwości podejrzenia plików z poziomu Windows, a jedynie z samego Wirtualnego Systemu. Dla bardziej dociekliwych polecę Deasemblację :)

Offline Boski

  • Użytkownik

# Maj 16, 2018, 17:45:55
Ale zapisywałeś binarnie konkretne liczby (155 a nie "155" jako tekst)? Moim zdaniem różnica kolosalna.

Offline NEO_

  • Użytkownik

  • +1
# Maj 16, 2018, 21:20:53
Właściwie łańcuchy stringu w przypadku notatnika zostały zapisane za pomocą funkcji:
plik.write( tekst.c_str(), tekst.size() + 1 );
Pliki konfiguracyjne wczytują się tak szybko,że nie musiałem robić tego binarnie.
Tylko Bitmapy będą zapisywane binarnie już jako szyfrogram, i właśnie przykładowa bitmapa po otworzeniu w notatniku Windows raz pokazuje krzaki, a raz normalne ciągi liczb, więc pewnie coś tu nie halo :D

Offline NEO_

  • Użytkownik

  • +1
# Czerwiec 16, 2018, 08:53:18
Witam :)  Jak dotąd ciągle próbuję uporać się z tym szyfrowaniem plików :D Zostało to wykonane już w około 70%.
 
Na osłodę wrzucam screena z pierwszej wersji tego projektu. W tamtym czasie był to jedynie "prototyp":



Ogólnie postawiłem sobie poprzeczkę dość wysoko i czasem brakuje już sił.. Ale pomału do przodu :D

Offline NEO_

  • Użytkownik

  • +1
# Czerwiec 28, 2018, 11:00:55
Mały Update:
Dzisiaj w oczekiwaniu na koniec procesu szyfrowania bitmap pojawił się taki pomysł. Ponieważ cały projekt trzymam na laptopie, który nie jest demonem szybkości, więc proces dekodowania plików jest zależny od sprzętu (czyt. procesora) :D

Na tą chwilę dekodowanie plików zajmuje 1 minutę na procesorze i3-2328M 2.20 Ghz. To długo, a w kolejce czeka jeszcze 5 większych plików do zaszyfrowania. Gdy je dodam do projektu czas pewnie wydłuży się o kolejną minutę :/ Jako że mam drugiego laptopa,którego używam raczej dla rozrywki postanowiłem przerzucić już skompilowany projekt na niego. Jednak nie oczekiwałem,że coś się znacząco poprawi :D I tu był błąd.

Z całej minuty projekt dekoduje pliki tylko w 8 sekund :D Różnica kolosalna..

Daje mi to nadzieję,że projekt nie jest wcale taki toporny jak myślałem, a wina leżała w starym laptopie, który widocznie będzie musiał przejść na zasłużoną emeryturę ;D

« Ostatnia zmiana: Czerwiec 28, 2018, 11:07:11 wysłana przez NEO_ »

Offline NEO_

  • Użytkownik

# Lipiec 15, 2018, 20:31:16
Kolejny Update:

Śpieszę z informacją, iż szyfrowanie Bitmap dobiegło właśnie końca :)
Zajęło to tyle czasu, ponieważ w szyfratorze wystąpiło kilka błędów logicznych, z którymi nie dałem rady się uporać tzn. nie znalazłem ich. Skutkiem tego było napisanie kodu od początku i śledzenie krok po kroku co się w nim dzieje. Na szczęście nowa wersja praktycznie nie psuje już danych i nadaje się do szybkiego szyfrowania dużych plików bitmap.

Program już jest na tyle zamknięty, że myślę nad upublicznieniem tej bardzo wczesnej wersji dla bardzo ciekawskich, by było wiadomo jak to w ogóle działa :D Obecna wersja to [Pre-Alpha][v0.9.41d].

Zaczynam zbierać głosy kto by chciał zerknąć i potestować.

!UWAGA!
Program z uwagi na bugi nie jest stabilny. Nie posiada wielu funkcji. Jednak pozwala na szyfrowanie Notatek np. hasła, dane niepubliczne.