W dniu 02.08.2015 o 10:46, john Stuntman pisze:
W dniu niedziela, 2 sierpnia 2015 10:09:19 UTC+2 użytkownik Robert Winkler
napisał:
W dniu 01.08.2015 o 13:25, ...:::WISKOLER:::... pisze:
Witam.
System XP PL.
Na jednym z kienckich komputerów spotkałem się z plikiem lezącym na
pulpicie o nazwie "Umowa UW nowa... 20... 50..."
Nie ma rozszerzenia i w tym cały problem. Plik o zawartości 0 bajtów (zero
bajtów). Plik został utworzony prze excela, ale zdaje się że w trakcie
zapisu zabrokło prądu a w tym biurze o UPS to nawet nie slyszeli.
Nie idzie go niczym usunąć ani zmienić nazwy, wypisuje że pliku nie
znaleziono. Próbowałem pod linią poleceń (DEL) jak i TC. Nie da rady. Hasła
do konta administratora też nie ma i marne szanse żeby sobie ktos
przypomniał. W trybie awaryjnym objawy sa takie same.
Czym to cholerstwo wywalić z siodła?
Próbowałeś ten plik przenieść najpierw w inne miejsce?
Z tego co pamiętam, to tym zabytkowym systemie,
folder pulpitu był dość głęboko w strukturze katalogów.
Trzeba było przejść przez "Documents and Settings"
a potem jeszcze z 2 lub 3 poziomy.
W Windows XP funkcje dostępu do plików
w Windows API miały ograniczenie na całkowitą długość ścieżki,
czyli nazwę dysku, wszystkie katalogi i sama nazwę pliku.
Było to chyba 260 znaków.
Jedyne co można było zrobić z takim plikiem,
to przenieść na przykład z linii poleceń za pomocą komendy move
do innego folderu, na przykład do "c:\a\"
i dopiero wtedy skasować.
w win7 tez chyba jest to ograniczenie (260) nie wiem jak w innych.. mz xp nie
jest az tak zabytkowy (tj wszystkie 32 bitowe sa troche zabytkowe) co
konkretnie technicznie czyniloby go zabytkowym?
Jak już powiedziałem, w Windows 7 masz dwa typy Windows API
do obsługi plików, stary ANSI
z takimi samymi ograniczeniami jak w DOS-ie
i nowe Unicodowe, gdzie możesz użyć Universal Naming Convention (UNC)
i gdzie nie ma już problemy z 260 znakami.
Co moim zdaniem czyni XP-ka zabytkowym.
Wymienię tylko trzy przykłady
1. GDI, podwójna rezerwacja pamięci
Gdy program chciał coś wyświetlić na ekranie,
to musiał zarezerwować w pamięci systemu bufor,
gdzie renderował dany fragment ekranu.
Później bitmapa ta była kopiowana do pamięci wideo.
Oznacza to że dana bitmapa musiała być przechowywana w pamięci
przynajmniej dwa razy, jeśli nie więcej.
Dodatkowo w maszynach pozbawionych oddzielnej pamięci video
oznaczało to dodatkowe ograniczenia pamięci dostępnej dla systemu.
2. GDI, dostęp do sprzętu
Stary model tworzenia sterowników graficznych
nie pozwalał aby dla programy w tym samym czasie mogły
uzyskać dostęp do funkcji karty graficznej.
Wszystkie odwołania mogły być kolejkowane
a API systemu decydowało który program w danej chwili mógł
wysyłać swoje komendy do GPU.
3. Brak funkcji puli wątków.
W programie często konieczne jest wykonywanie równolegle kilku operacji
Można dla kazdej z nich tworzyć oddzielny wątek
ale tworzenie wątku i potem jego niszczenie jest dość czasochłonne,
szczególnie że te operacje to czasem kilkanaście komend w kodzie.
Zamiast tego tworzy się wcześniej pule wątków
i do niej przekazuje się informacje o tych operacjach.
W starych systemach trzeba było albo pisać samemu ten mechanizm
albo korzystać z dodatkowych bibliotek.
Problemem jest jednak to że taki kod działa na poziomie kodu użytkownika
i musi bardzo często przełączać się do poziomu jądra systemu
w celu obsługi synchronizacji między wątkami i obsługi samej puli.
Takie jedno przełączenie jest kosztowne.
Jeśli cały kod obsługi puli wątków jest wykonywany
na poziomie jądra systemu
to zbędne jest to przełączanie miedzy kodem użytkownika a kodem jądra.
Funkcje te zostały dodane jednak do systemu dopiero w Viście
i mało który program z nich korzysta
(sławetna "wsteczna kompatybilność" z Windows XP)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms686766%28v=vs.85%29.aspx
--
Robert
|