Odczyt Winchestera: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
 
(Nie pokazano 19 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
[[File:Mera-winchester.jpg|thumb|Winchester w zewnętrznej obudowie]]
[[File:Mera-winchester.jpg|thumb|Winchester w zewnętrznej obudowie]]
Jednym z nośników danych zapisanych na MERZE-400, które przetrwały do dziś jest dysk [[Winchester]] zamontowany w minikomputerze znajdującym się w [http://www.muzeumtechniki.warszawa.pl/ Muzeum Techniki] w Warszawie. Minikomputer ten wypożyczony został Muzeum przez Politechnikę Gdańską, gdzie działał w Instytucie Okrętowym jako maszyna, na której m.in. zespół rozwijający [[CROOK-5|CROOK-a]] pracował nad swoim systemem. Sam fakt, że dysk zawiera dane zapisane na MERZE-400 czyni go interesującym, a źródło pochodzenia wartość nośnika tylko podnosi, dając nadzieję na pozyskanie niezwykle cennych danych.
Jednym z nośników danych zapisanych na MERZE-400, które przetrwały do dziś, jest dysk [[Winchester]] zamontowany w minikomputerze znajdującym się w [http://www.muzeumtechniki.warszawa.pl/ Muzeum Techniki] w Warszawie. [[MERA-400 w Muzeum Techniki|Minikomputer ten]] wypożyczony został Muzeum przez Politechnikę Gdańską, gdzie działał w Instytucie Okrętowym jako maszyna, na której m.in. zespół rozwijający [[CROOK|CROOK-a]] pracował nad swoim systemem. Sam fakt, że dysk zawiera dane zapisane na MERZE-400 czyni go interesującym, a źródło pochodzenia wartość nośnika tylko podnosi, dając nadzieję na pozyskanie niezwykle cennych danych.


Muzeum umożliwiło dostęp do dysku i przeprowadzenie prób odczytu jego zawartości, za co autor składa podziękowania. Cieszy fakt, że rola Muzeum nie ogranicza się jedynie do gromadzenia zbiorów, a częścią misji jest również ich udostępnianie do prac, które mają na celu choć częściowe przywrócenie eksponatów do życia.
Muzeum umożliwiło dostęp do dysku i przeprowadzenie prób odczytu jego zawartości, za co autor składa podziękowania. Cieszy fakt, że rola Muzeum nie ogranicza się jedynie do gromadzenia zbiorów, a częścią misji jest również ich udostępnianie do prac, które mają na celu choć częściowe przywrócenie eksponatów do życia.
Linia 15: Linia 15:
* brak autoparkowania (ścieżka parkingowa: 664)
* brak autoparkowania (ścieżka parkingowa: 664)
* transfer: 5Mbit/s
* transfer: 5Mbit/s
Dysk znajduje się w [[:File:Mt_plix.jpg|zewnętrznej 19" obudowie]], która oprócz niego zawiera również napęd dysków elastycznych 5,25". Elementy te podłączone są osobnymi kablami sygnałowymi do odpowiednich kontrolerów procesora peryferyjnego [[PLIX]]. Poza nimi, w obudowie zamontowany jest jedynie zasilacz +5/+12V oraz duży wentylator z tyłu obudowy.
Dysk znajduje się w [[:File:Mt_plix.jpg|zewnętrznej 19" obudowie]], która oprócz niego zawiera również napęd dysków elastycznych 5,25". Elementy te podłączone są osobnymi kablami sygnałowymi do odpowiednich kontrolerów procesora peryferyjnego [[MULTIX]]. Poza nimi, w obudowie zamontowany jest jedynie zasilacz +5/+12V oraz duży wentylator z tyłu obudowy.


[[:File:Mt_plix_wdc.jpg|Kontroler dysku]] zbudowany przez Amepol opiera się na układzie Intel C82062 zaprojektowanym dla rodziny komputerów z procesorami 80186. Realizuje on zapis i odczyt danych w standardzie MFM, który jako pierwszy używany był dla dysków z interfejsem ST-506.
[[:File:ME-WDC-506-front.jpg|Kontroler dysku]] zbudowany przez Amepol opiera się na układzie Intel C82062 zaprojektowanym dla rodziny komputerów z procesorami 80186. Realizuje on zapis i odczyt danych w standardzie MFM, używanym na początku istnienia interfejsu ST-506, zastąpionym później przez RLL.


= Pierwsze próby odczytu =
= Pierwsze próby odczytu =


[[File:Wd1006v-mm1.jpg|thumb|Kontroler MFM WD1006V-MM1]]
[[File:Wd1006v-mm1.jpg|thumb|Kontroler MFM WD1006V-MM1]]
Amepol używał w swoich konstrukcjach standardowych komponentów, używanych również w początkach ery komputerów PC. Pierwszym nasuwającym się sposobem odczytu zawartości dysku było więc użycie odpowiedniego kontrolera dla PC/XT lub AT. Takie komponenty są wciąż dostępne, wymagają jedynie komputera wyposażonego w szynę ISA (8 lub 16-bit, w zależności od typu kontrolera). Złącza ISA obecne są jeszcze w stosunkowo nowych płytach głównych, co pozwala na użycie w miarę współczesnego komputera PC. Zarówno kontrolery MFM jak i dyski tego typu są wciąż obsługiwane przez system operacyjny GNU/Linux, tak więc zbudowanie kompletnego środowiska uruchomieniowego było jak najbardziej możliwe.
[[Amepol]] używał w swoich konstrukcjach standardowych komponentów, używanych również w początkach ery komputerów PC. Pierwszym nasuwającym się sposobem odczytu zawartości dysku było więc użycie odpowiedniego kontrolera dla PC/XT lub AT. Takie komponenty są wciąż dostępne, wymagają jedynie komputera wyposażonego w szynę ISA (8 lub 16-bit, w zależności od typu kontrolera). Złącza ISA obecne są jeszcze w stosunkowo nowych płytach głównych, co pozwala na użycie w miarę współczesnego komputera PC. Zarówno kontrolery MFM jak i dyski tego typu są wciąż obsługiwane przez system operacyjny GNU/Linux, tak więc zbudowanie kompletnego środowiska uruchomieniowego było jak najbardziej możliwe.


Próba odczytu dysku przy użyciu takiego właśnie zestawu z kontrolerem MFM Western Digital WD1006V-MM1 zakończyła się niepowodzeniem. Dysk okazał się być sprawny mechanicznie i elektrycznie, ale kontroler raportował jedynie błędy odczytu.
Próba odczytu dysku przy użyciu takiego właśnie zestawu z kontrolerem MFM Western Digital WD1006V-MM1 zakończyła się niepowodzeniem. Dysk okazał się być sprawny mechanicznie i elektrycznie, ale kontroler raportował jedynie błędy odczytu.


Początkowo nie był znany układ, którego użył Amepol do konstrukcji interfejsu dla Winchestera, istniało więc prawdopodobieństwo, że układ ten realizował zapis w standardzie RLL. Przeprowadzone zostały więc próby odczytu z dwoma różnymi kontrolerami RLL: Western Digital WD1002A-27X oraz WD1003-RA2, zakończone również niepowodzeniem.
Początkowo nie był znany układ, którego użył [[Amepol]] do konstrukcji interfejsu dla Winchestera, istniało więc prawdopodobieństwo, że układ ten realizował zapis w standardzie RLL. Przeprowadzone zostały więc próby odczytu z dwoma różnymi kontrolerami RLL: Western Digital WD1002A-27X oraz WD1003-RA2, zakończone również niepowodzeniem.


= Uniwersalny czytnik dysków Winchester =
= Uniwersalny czytnik dysków Winchester =
Linia 55: Linia 55:


Urządzenie zostało zaimplementowane w oparciu o cztery główne elementy:
Urządzenie zostało zaimplementowane w oparciu o cztery główne elementy:
* AVR/Atmega162 z zewnętrznym oscylatorem 16MHz w roli kontrolera dysku
* [http://www.atmel.com/devices/atmega162.aspx AVR/Atmega162] z zewnętrznym oscylatorem 16MHz w roli kontrolera dysku
* [http://www.ti.com/product/sn75176b Texas Instruments SN75176BP] użyty do konwersji sygnału [http://en.wikipedia.org/wiki/RS-422 RS-422] do poziomów TTL
* [http://www.ti.com/product/sn75176b Texas Instruments SN75176BP] użyty do konwersji sygnału [http://en.wikipedia.org/wiki/RS-422 RS-422] do poziomów TTL
* Programowalny analizator stanów logicznych użyty jako sampler sygnału danych pracujący z częstotliwością 100MHz
* Programowalny analizator stanów logicznych użyty jako sampler sygnału danych pracujący z częstotliwością 100MHz
Linia 76: Linia 76:
* Sygnał próbkowany był z częstotliwością dziesięciokrotnie wyższą, niż zegar użyty do zapisu MFM
* Sygnał próbkowany był z częstotliwością dziesięciokrotnie wyższą, niż zegar użyty do zapisu MFM


Operacja obrazowania została powtórzona kilkunastokrotnie, aby ustrzec się przed ewentualnymi błędami odczytu. Podczas kolejnych prób zmieniały się warunki odczytu, co zwiększało prawdopodobieństwo powodzenia:
Operacja obrazowania została powtórzona kilkunastokrotnie, dając w sumie prawie 7 GB danych do późniejszej analizy. Podczas kolejnych powtórzeń zmieniały się warunki odczytu, co zwiększało prawdopodobieństwo uzyskania poprawnego obrazu:
* pierwszy odczyt robiony był na "zimnym" dysku, kolejne na coraz bardziej "rozgrzanym" (zmiany temperatury mogą mieć wpływ zarówno na mechanikę jak i elektronikę napędu),
* pierwszy odczyt robiony był na "zimnym" dysku, kolejne na coraz bardziej "rozgrzanym" (zmiany temperatury mogą mieć wpływ zarówno na mechanikę jak i elektronikę napędu),
* dane były odczytywane przy ruchu głowic naprzemiennie do wewnątrz i na zewnątrz powierzchni dysku (nieprecyzyjności pozycjonowania głowicy mogły dać lepsze rezultaty w jednym bądź drugim przypadku),
* następujące po sobie sesje były przeprowadzane przy ruchu głowic naprzemiennie do wewnątrz i na zewnątrz powierzchni dysku (nieprecyzyjności pozycjonowania głowicy mogły dać lepsze rezultaty w jednym bądź drugim przypadku),
* część odczytów została wykonana po serii gwałtownych zmian pozycjonowania głowicy (pozycja zmieniana o kilkaset cylindrów w przód i w tył, powody jak wyżej).
* część odczytów została wykonana po serii gwałtownych zmian pozycjonowania głowicy (pozycja zmieniana o kilkaset cylindrów w przód i w tył, powody jak wyżej).


Następnym krokiem było poznanie sposobu zapisu oraz formatu ścieżki i sektora, użytych przez Amepol. Krok ten ułatwia graficzny analizator zapisu, pokazujący spróbkowany sygnał z nałożonymi na niego wynikami działania algorytmów analizujących jego przebieg.
Następnym krokiem było poznanie sposobu zapisu oraz formatu ścieżki i sektora, użytych przez Amepol. Krok ten ułatwił graficzny analizator zapisu, pokazujący spróbkowany sygnał z nałożonymi na niego wynikami działania algorytmów analizujących jego przebieg.
<br /><br />
<br /><br />
[[File:Wda.png|center|700px|Graficzny interfejs analizatora zapisu MFM]]
[[File:Wda.png|center|700px|Graficzny interfejs analizatora zapisu MFM]]
Linia 94: Linia 94:
* określenie położenia nagłówka sektora i danych zapisanych w sektorze (rysunek przedstawia kompletny nagłówek sektora)
* określenie położenia nagłówka sektora i danych zapisanych w sektorze (rysunek przedstawia kompletny nagłówek sektora)
* pogrupowanie bitów sygnału MFM w pary [zegar, dane] (jasno- i ciemnoszare tło pod przebiegiem)
* pogrupowanie bitów sygnału MFM w pary [zegar, dane] (jasno- i ciemnoszare tło pod przebiegiem)
* rozkodowanie sygnału MFM do bitów i bajtów stanowiących treść struktury sektora ("0" i "1" małą czcionką oznaczają kolejne bity zegara i danych MFM, "0" i "1" dużą czcionką bity danych, złożone dalej w bajty o podanej dużą czcionką wartości)
* rozkodowanie sygnału MFM do bitów i bajtów stanowiących treść struktury sektora ("0" i "1" małą czcionką oznaczają kolejne bity zegara i danych MFM, "0" i "1" dużą czcionką bity danych, złożone niżej w bajty o podanej dużą czcionką wartości i odpowiadających im znakach ASCII)
* odczytanie nagłówków sektorów, zweryfikowanie sum kontrolnych nagłówków, określenie ich adresów (dwie pionowe zielone linie oznaczają zgodną 16-bit sumę CRC)
* odczytanie nagłówków sektorów, zweryfikowanie sum kontrolnych nagłówków, określenie ich adresów (dwie pionowe zielone linie oznaczają zgodną 16-bit sumę CRC)
* odczytanie danych zapisanych w sektorach, zweryfikowanie sum kontrolnych
* odczytanie danych zapisanych w sektorach, zweryfikowanie sum kontrolnych
Linia 103: Linia 103:


Dysk zawiera trzy obszary danych:
Dysk zawiera trzy obszary danych:
# Pierwszy cylinder (4*16 sektorów) jest niedostępny dla systemu MERA-400. Używa go wyłącznie procesor [[PLIX]] jako obszar do relokacji danych z uszkodzonych sektorów.
# Pierwszy cylinder (4*16 sektorów) jest niedostępny dla systemu MERA-400. Używa go wyłącznie procesor peryferyjny jako obszar do relokacji danych z uszkodzonych sektorów.
# Pozostała przestrzeń dostępna jest dla minikomuptera i zawiera dwa obszary dyskowe zorganizowane przez system operacyjny [[CROOK-5]]:
# Pozostała przestrzeń dostępna jest dla minikomuptera i zawiera dwa obszary dyskowe zorganizowane przez system operacyjny [[CROOK-5]]:
#* Etykieta "A" (5 MB) - obszar systemowy
#* Etykieta "A" (5 MB) - obszar systemowy
Linia 110: Linia 110:
== Obszar "A" ==
== Obszar "A" ==


Obszar zawiera 332 pliki, przede wszystkim binaria dla MERY-400:
Obszar zawiera 332 zbiory, przede wszystkim binaria dla MERY-400:
* zbiory BOOT i BOOTL - dwa podstawowe elementy procesu [[Ładowanie systemu operacyjnego|ładowania systemu operacyjnego]]
* zbiory BOOT i BOOTL - dwa podstawowe elementy procesu [[Ładowanie systemu operacyjnego|ładowania systemu operacyjnego]]
* jądra systemu operacyjnego [[CROOK-5]] w kilku wersjach: 62F, N8D, P8E, P8F
* jądra systemu operacyjnego [[CROOK|CROOK-5]] w kilku [[Wersje systemu CROOK-5|wersjach]]: 62F, N8D, P8E, P8F
* kilkadziesiąt narzędzi dla systemu [[CROOK-5]]
* kilkadziesiąt narzędzi dla systemu [[CROOK]]
* assemblery: ASSK, ASSM, GASS
* assemblery: ASSK, ASSM, GASS
* interpreter BASIC-a
* interpreter BASIC-a
Linia 125: Linia 125:
== Obszar "C" ==
== Obszar "C" ==


Obszar zawiera 1243 pliki użytkowników, które można podzielić na kilka grup. Poniższa lista nie jest kompletna, pokazuje tylko zakres danych, które dzięki odczytaniu dysków stały się dostępne:
Obszar zawiera 1243 zbiory użytkowników, które można podzielić na kilka grup. Poniższa lista nie jest kompletna, pokazuje tylko zakres danych, które dzięki odczytaniu dysku stały się dostępne:
# Binaria
# Binaria
#* system testowy AMETEX Amepolu
#* system testowy AMETEX Amepolu
Linia 131: Linia 131:
#* niektóre narzędzia systemu UNIX w wersji dla MERY-400
#* niektóre narzędzia systemu UNIX w wersji dla MERY-400
# Dokumentacja
# Dokumentacja
#* opis systemu operacyjnego CROOK-5
#* opisy systemu operacyjnego [[CROOK]]
#* opisy narzędzi systemowych
#* opisy narzędzi systemowych
#* podręczniki programowania w językach LISP, ALGOL, C, ASSM, FORTRAN, ModRAL, PASCAL
#* podręczniki programowania w językach LISP, ALGOL, C, ASSM, FORTRAN, ModRAL, PASCAL
Linia 148: Linia 148:
#* źródła narzędzi UNIX-a (C)
#* źródła narzędzi UNIX-a (C)
#* źródła narzędzi systemowych CROOK-5 (assembler)
#* źródła narzędzi systemowych CROOK-5 (assembler)
#* źródła oprogramowania procesorów MULTIX i PLIX (firmware) (assembler 8085)
#* źródła oprogramowania procesorów [[MULTIX]] i [[PLIX]] (firmware) (assembler 8085)
#* źródła systemu CROOK-5 w wersjach N76 i N8F oraz łatki do wersji P76 i P8F (assembler)
#* źródła systemu [[CROOK|CROOK-5]] w [[Wersje systemu CROOK-5|wersjach N76 i N8F]] oraz zbiory poprawek do wersji P76 i P8F (assembler)
 
{{source|title=Opracowanie własne}}

Menu nawigacyjne