Co to jest ciąg kompilacji systemu Windows i jak go zlokalizować?

4

We wczesnych wersjach systemów operacyjnych Microsoft Windows dołączono do nich znany „ciąg kompilacji” w celu identyfikacji. Witryny internetowe, które koncentrują się na testowaniu oprogramowania Beta, zwykle zawierają pełne (mniej lub bardziej) te ciągi kompilacji.

Oto tylko kilka przykładów tego, jak mogą wyglądać te ciągi kompilacji dla systemu Windows 10, w kolejności ich wydania dla testerów wersji beta.

  • 6.4.9879.fbl_release.141103-1722
  • 10.0.9926.fbl_awesome1501.150119-1648
  • 10.0.10014.winmain_prs.150205-1859
  • 10.0.10061.fbl_impressive.150410-2039
  • 10.0.10163.winmain_prs.150630-1700
  • 10.0.10166.fbl_impressive.150703-1818
  • 10.0.10176.16384.th1.150705-1526
  • 10.0.10240.16384.th1.150709-1700

Rozumiem, że pierwsza grupa cyfr reprezentuje główny numer wersji, druga grupa jest podrzędna, a trzecia grupa to numer kompilacji. Te trzy można łatwo ujawnić, uruchamiając winveraplet z wiersza polecenia Uruchom. Ale jakie jest znaczenie poniżonego gobbledygooka?

Co to ma znaczyć fbl_release, fbl_awesome, winmain_prs, i th1?

Drugi zestaw cyfr z myślnikiem wygląda jak daty. Czy to są daty kompilacji?

Obecnie korzystam z systemu Windows 10, oficjalnej wersji wydanej przez Windows Update, w ramach bezpłatnej aktualizacji. Uaktualniłem do systemu Windows 10 z systemu Windows 8.1. Powodem jest to, że chcę porównać mój z ostatnim z tej listy.

Po uruchomieniu systeminfopolecenia w cmd otrzymuję następujący odczyt:

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.10240 N/A Build 10240
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free

Dlaczego mówi „mam nie dotyczy”? Nieskrępowany?!

Samir
źródło
Porównując pole „Wersja systemu operacyjnego” z innymi wersjami systemu Windows, wygląda na to, że „nie dotyczy” jest miejscem zastępczym dla ciągu dodatku Service Pack. Ponieważ nie ma takich rzeczy dla systemu Windows 10 i prawdopodobnie nigdy nie będzie żadnych z powodu nowego modelu wydania Microsoft dla systemu Windows, który po prostu będzie czytał „Nie dotyczy” lub Niedostępny przez wiele lat. To trochę marnotrawstwo znaków, gdy „10.0.10240” mówi wszystko (cóż, prawie wszystkie, inaczej nie napisałbym tego pytania).
Samir,

Odpowiedzi:

3

Znaczenie

fbl_release

i podobne programy, z których gałęzi została wydana ta wersja. Na przykład jeśli jesteś partnerem Microsoft, który tworzy aplikacje (ISV), otrzymywałeś kompilacje z imponującej gałęzi, którą wyświetlasz w swoim poście. Inne oddziały zostały wykorzystane dla partnerów OEM, a winmain jest zwykle głównym oddziałem, w którym każdy punkt łączy się w pewnym momencie przed wysyłką RTM.

Aby uzyskać więcej informacji na temat rozgałęziania, zobacz MSDN

Niektóre inne nazwy są kompilacjami przyszłych wersji, ponieważ mam NDA, nie mogę udostępnić szczegółów.

Nie zobaczysz gałęzi, szczegółowych informacji w produkcie, którym jest RTM - jest on używany wyłącznie do celów programistycznych. Jeśli nadal będziesz otrzymywać wersje beta, informacje są dostępne

TomEus
źródło
Więc z której gałęzi powstaje RTM? Od „winmain”? Co oznacza skrót „fbl”? Mogę tylko założyć, że „prs” oznacza partnerów. Co to jest? Czy możesz potwierdzić, że następujące 6 cyfr to daty kompilacji? Jakie są ostatnie 4 cyfry? Może pora dnia? ... jeśli tak, wygląda na to, że Microsoft często pracował w nadgodzinach, a czasem późno w nocy! ;-) Nocne budowanie! Ha ha! Żeby nam to przekazać.
Samir,
Przepraszam, jeśli pytam za dużo tutaj. Nie ujawniaj niczego, czego nie powinieneś. Naprawdę nie chciałbym, żebyś został aresztowany! ;-) Lub stracić kontrakt.
Samir,
1
W rejestrze systemu Windows jest klucz o nazwie BuildLab, a inny o nazwie BuildLabEx. Czy tak myślę? Czy jest przechowywany jako wartość nieciągowa? Pierwszy jest tutaj 10240.th1.150729-1800. Myślę, że to odpowiada na pytanie o datę i godzinę. Mówi 150729, czyli 29 lipca 2015 r., Kiedy Windows 10 został wydany. Drugi tutaj jest 10240.16412.amd64fre.th1.150729-1800. AMD64 to oczywiście architektura. Co to jest „fre”? Francuski? Mój jest jednak angielski.
Samir,
1
Co to jest 16412? Micro build? Zbudować subversion? Ten symbol wygląda interesująco. Głównie dlatego, że jest wyższy niż 16384, z którym mój komputer miał poważne problemy z zarządzaniem energią. Wydaje się więc, że jest to nieco bardziej rozwinięte i tak naprawdę nie mam tych problemów z 16412, teraz w wersji ostatecznej.
Samir,
3

Co to jest ciąg kompilacji systemu Windows?

Jest to zestaw znaków, który jednoznacznie identyfikuje kompilację systemu Windows.

Co to jest kompilacja? ...

Kompilacja odnosi się do budowania rozwiązania. To znaczy: kompilowanie kodu źródłowego w kod obiektowy i łączenie kodu obiektowego w wykonywalny kod maszynowy. Jest to produkt końcowy do analizy, projektowania i programowania. Może to jednak nie być produkt końcowy, ponieważ może to zostać kilkakrotnie poprawione, zanim to nastąpi. Kiedy tak się dzieje, jest to znane jako wersja ostateczna, wersja złota lub w przypadku oprogramowania Microsoft: RTM (wersja do produkcji).

Ostatecznie kompilacja jest rozwiązaniem problemu, który można rozwiązać w oprogramowaniu! Dlatego jest bardziej znany jako oprogramowanie. W tym przypadku jest to oprogramowanie systemu Windows - system operacyjny, który najprawdopodobniej działa teraz na komputerze i sprawia, że ​​jest użyteczny. Dzisiejsze dzieci nazywają to wszystko „aplikacjami”, pierwotnie krótką formą „aplikacji” lub „oprogramowania aplikacyjnego”, ale teraz nabiera także innych znaczeń. Grupy po prostu nazywają to „programami”. Aby powtórzyć szwedzkie przysłowie, „ukochane dziecko ma wiele imion”.

To także nazwa corocznej konferencji programistów Microsoft.

Jak odczytać ciąg kompilacji w systemie Windows?

Ciąg kompilacji jest przechowywany wewnętrznie jako wartość ciągu w rejestrze systemu Windows. Istnieją dwa rodzaje ciągów kompilacji, o których należy pamiętać. Jeden nazywa się po prostu ciągiem kompilacji i zawiera tylko numer kompilacji, więc jest tylko liczbowy. Drugi jest czasem nazywany ciągiem pełnej kompilacji, ponieważ zawiera także nazwę gałęzi i czas kompilacji, a raczej sygnaturę czasową kompilacji.

Poniższy klucz w rejestrze systemu Windows zawiera pełny ciąg kompilacji uruchomionego systemu.

HKLM\Software\Microsoft\Windows NT\CurrentVersion

Istnieją tutaj dwie interesujące zmienne:

BuildLab:   10240.th1.150729-1800
BuildLabEx: 10240.16412.amd64fre.th1.150729-1800

Jakie jest znaczenie łańcucha kompilacji?

Ogólnie ciąg kompilacji zawiera następujące segmenty: wersja główna, wersja podrzędna, numer kompilacji, nazwa oddziału, data kompilacji, czas kompilacji.

Ogólnie schemat wygląda mniej więcej tak:

[major].[minor].[build].[branch].[date]-[time]

Zbadam teraz kilka przykładów.

  • 6.4.9879.fbl_release.141103-1722

Tutaj główna wersja to 6, mniejsza wersja to 4, numer kompilacji to 9879. Nazwa oddziału to fbl_release. Został zbudowany 3 listopada 2014 roku, o godzinie 17:22 czasu lokalnego.

  • 10.0.10014.winmain_prs.150205-1859

Główna wersja tutaj to 10, mniejsza wersja to 0, numer kompilacji to 10014. Jest to jedna z pierwszych kompilacji systemu Windows, która otrzymała numer wersji głównej 10. Microsoft przerzucił numer wersji głównej z 6 na 10 tylko jedna kompilacja wcześniej (kompilacja 10009) . To właśnie dało nazwę Windows 10. Nazwa oddziału to winmain_prsi jest to uważane za odgałęzienie główne. Został zbudowany 5 lutego 2015 r., O godzinie 18:59 czasu lokalnego.

  • 10.0.10240.16384.th1.150709-1700

Mamy tutaj wersję główną 10, wersję podrzędną 0 i numer kompilacji 10240. Nie jestem do końca pewien, co oznacza 16384. Liczba ta pojawia się w ciągach kompilacji zarówno Windows 8.1, Windows 8, Windows 7, jak i Windows Vista, gdy jest to kompilacja RTM lub prawie RTM. Nazywam to „magicznym numerem”. Ale wydaje mi się, że jest to pewnego rodzaju „mikro-kompilacja” lub subwersja kompilacji. Ten został zbudowany 9 lipca 2015 r., 20 dni przed ogólną dostępnością systemu Windows 10. Został przekazany testerom niejawnych testerów systemu Windows 15 lipca, a zaczął wdrażać 29 lipca dla tych, którzy zarezerwowali bezpłatną kopię uaktualnienia systemu Windows 10.

  • BuildLab: 10240.th1.150729-1800
  • BuildLabEx: 10240.16412.amd64fre.th1.150729-1800

Właśnie tego używam do wpisania tej odpowiedzi. Jest to również kompilacja RTM, ponieważ jest to kompilacja 10240. Ale, jak widać od daty kompilacji, ta jest w rzeczywistości bardziej niż poprzednia, która została przekazana testerom 15 lipca. Spójrz na datę! Napisano 29 lipca 2015 r. To jest data wydania systemu Windows 10! I spójrz na magiczną liczbę! To 16412! Porównaj to z 16384. Tak więc wiem, że jest to późniejsze wydanie.

Wartość BuildLabEx zawiera nieco więcej informacji niż poprzednie przykłady. Zawiera magiczną liczbę lub subwersję kompilacji oraz nazwę architektury procesora. Tak więc w tym przypadku jest to AMD64, znany również jako EM64T lub Intel 64, czyli 64-bitowy procesor. „Fre” prawdopodobnie oznacza „wolne”, to znaczy: jądro produkcyjne, w przeciwieństwie do „sprawdzonego” jądra programistycznego.

Rozbudowany schemat wygląda mniej więcej tak:

[major].[minor].[build].[subversion].[architecture].[branch].[date]-[time]

Ale jakie jest znaczenie nazw oddziałów? ...

  • winmain_prs
  • fbl_impressive
  • fbl_awesome
  • fbl_release
  • th1

Jest winmain_prsto „główna gałąź Windows”. Jest to główna, stabilna i gotowa do wydania gałąź, z której opracowywane są wszystkie poprzednie i przyszłe wersje systemu Windows (przynajmniej w przypadku rodziny Windows NT). „PRS” może oznaczać partnerów lub produkcję gotową i stabilną. Naprawdę zgaduję! W sieci nie ma zbyt wielu informacji na ten temat.

Jestem całkiem pewien, że „fbl” oznacza „przyszłą kompilację”. Są to prace w toku, niestabilne gałęzie. Podchodzą pod uroczymi nazwami, takimi jak „imponujące”, „niesamowite” i „wydanie” (ostatnie nie tak słodkie). Myślę, że „imponujące” i „niesamowite” są używane do dodawania nowych funkcji, podczas gdy „release” służy do debugowania i stabilizacji przed odwrotnym zintegrowaniem z główną gałęzią.

Gałąź „th1” jest nowa. Nie jestem pewien, co to znaczy. Ale wiem, że tylko wersja RTM wisi na tej gałęzi. Może to być jakiś wskaźnik zmiany modelu wydania systemu Windows. Mam na myśli przejście na Windows jako usługę.

Aktualizacja: Kompilacja 10525 została niedawno wydana w gałęzi „th2”. „Th” jest najwyraźniej skrótem od „progu”, który jest kryptonimem dla Windows 10. „th1” wydaje się być ogólnodostępną wersją publiczną, podczas gdy „th2” jest odgałęzieniem wersji z podglądem informacji poufnych.

Dlaczego ciągi budowania są przydatne?

Pozwalają one na dokładną identyfikację kompilacji systemu Windows, aż do gałęzi i czasu kompilacji. To sprawia, że ​​śledzenie małych zmian jest bardzo łatwe, ponieważ każda zmiana w kodzie, nawet niewielka, która zostaje skompilowana, połączona, zbudowana i wydana, otrzymuje także nowy ciąg identyfikujący kompilację. Ciągi budowania są najbardziej przydatne dla testerów wersji beta. Ponieważ drobne i częste zmiany w kodzie są wprowadzane podczas fazy testowej cyklu programowania.

Po wydaniu ostatecznej wersji ciągi pełnej kompilacji stają się mało interesujące. Zamiast tego najważniejszą rzeczą jest numer główny, podrzędny i numer kompilacji. Pomaga to zidentyfikować „wersję” działającego systemu Windows. Tego używają aplikacje Windows innych firm do identyfikowania wersji systemu Windows, na którym są instalowane lub uruchamiane. Różni się od nazwy marketingowej Windows, takiej jak „Windows XP” lub „Windows Vista”.

Samir
źródło
1
Mam nadzieję, że ktoś uzna to za przydatne. Skompilowanie tego zajęło mi sporo czasu. Mam więc nadzieję, że komuś coś to jest warte. Wiem, że to trochę wpływa na rozwój oprogramowania i wersjonowanie, ale tak naprawdę chodzi tylko o uruchomienie wersji Beta systemu Windows i ustalenie łańcucha kompilacji. A czym jest „superużytkownik”, jeśli nigdy nie uruchamia testów Beta? Jeśli jakiś scenariusz Beta znajdzie w tym jakieś błędy, prosimy o komentarz. I proszę, oświećcie mnie znaczeniem „prs” i „th1”.
Samir,
Właśnie zauważyłem nową gałąź „th2”. Nowo wydana wersja zapoznawcza 10525 jest częścią tej gałęzi. „Th” jest skrótem od „progu”, który wszyscy znamy, jest nazwą kodową używaną w systemie Windows 10. Więc proszę bardzo, jeden skrót został odszyfrowany i jeszcze jeden.
Samir,
fbl to skrót od „Feature Branch Level”, a nie „Future Build” lub „Feature Build Lab”
Mayank Parmar