Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Plik nie do usunięcia?

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Plik nie do usunięcia?
From: Robert Winkler <noone@nowhere.org>
Date: Sun, 2 Aug 2015 11:39:38 +0200
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

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>