Autor Wątek: Symulacja Systemu Operacyjnego [Allegro5]  (Przeczytany 6411 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