System operacyjny Windows obejmuje rdzę
Windows kocha rdzę
Na konferencji BlueHat IL 2023, która odbyła się w Tel Awiwie w dniach 29-30 marca, David Weston, dyrektor OS Security for Windows, ogłosił , że system Windows wkrótce uruchomi się z Rust w jądrze, „ prawdopodobnie za kilka tygodni lub miesięcy ”. To dość ekscytujące dla fanów Rusta.
Nie jest tajemnicą, że Windows eksperymentuje z Rust. Romans zaczął się wiele lat temu . Dla tych z was, którzy nie wiedzą, Rust to język programowania zaprojektowany z myślą o bezpieczeństwie pamięci jako jednym z głównych celów.
Osiąga to poprzez połączenie podejść. W uproszczeniu:
- Architektonicznie — język wykorzystuje koncepcję własności pamięci, w której każda przydzielona pamięć jest własnością jednej zmiennej (ale może być wypożyczona jako tylko do odczytu).
- Sprawdzanie wypożyczeń — komponent, który wymusza opisany powyżej model własności, zapewniając, że żadna pamięć nie jest dostępna po zwolnieniu alokacji, a jednocześnie zapewnia, że nie ma wyścigów danych, w których wiele wątków próbuje uzyskać dostęp do tej samej pamięci jednocześnie (nie ogólne warunki wyścigów).
- Deterministyczne czasy życia — czas życia zmiennej jest znany w czasie kompilacji. Dzięki temu moduł sprawdzania wypożyczeń może egzekwować zasady własności i wypożyczania oraz gwarantuje, że gdy tylko przydzielona pamięć nie będzie już potrzebna, można ją automatycznie zwolnić.
- Niezmienne — domyślnie wszystkie zmienne są niezmienne, co pomaga zapobiegać przypadkowym problemom z bezpieczeństwem pamięci.
To już się zaczęło
Pierwszym portem, który wprowadzili, jest wycofanie DWrite (DirectWrite), części kodu analizującego czcionki systemu Windows, na rzecz DWiteCore . DWriteCore to międzyplatformowa wersja DWrite napisana w Rust, która jest teraz odbiorcą wszystkich nowych funkcji, które są obecnie w użyciu. Zaimplementowali również część Win32k GDI, implementując typ danych Region , główny składnik jądra Windows odpowiedzialny za zarządzanie oknami. Ten komponent jest obecnie dostarczany, ale jest wyłączony za flagą funkcji, która ma zostać usunięta „wkrótce” do podglądu poufnych informacji.
Więc w czym problem?
Wszystko to jest absolutnie fantastyczną wiadomością dla fanów bezpieczeństwa, Rusta i systemu operacyjnego Windows. Potencjalnym problemem jest sama Fundacja Rust .
6 kwietnia, zaledwie tydzień po ogłoszeniu konferencji w Izraelu, Fundacja Rust opublikowała nowy projekt swojej polityki dotyczącej znaków towarowych i poprosiła o komentarze za pośrednictwem formularza Google , podając termin do 16 kwietnia. Ponieważ jest to formularz Google, komentarze nie są publicznie widoczne, ale programiści wykorzystali wszystkie media społecznościowe, aby wyrazić swoje obawy. I święty dym, gdyby te obawy zostały wyrażone. Ludzie wyszli z każdego zakątka internetu, aby komentować, YouTube , SubStack , Reddit , Twitter i w zasadzie każde inne forum, jakie możesz wymyślić. Doszło nawet do tego, że społeczność Rust stworzyła rozwidlenie języka .
Ze względu na zwięzłość (-ish), najważniejsze jest to; po roku obrad Fundacja opublikowała ostateczny projekt nowej polityki dotyczącej znaków towarowych, która zasadniczo stwierdza, że nie można używać nazwy „Rust” ani używać logo Rust w celu osiągnięcia jakiegokolwiek zysku, rejestrować nazwę domeny bez wyraźnej zgody z fundacji Rust.
Zgadza się, nie możesz w ogóle używać nazwy lub logo bez wyraźnej zgody w nazwie domeny (dla zysku lub nie) lub w czymkolwiek, co może przynieść zysk lub zysk. Gdziekolwiek. Z jakiegokolwiek powodu. Masz nazwę domeny, która używa słowa „rdza” w odniesieniu do języka? Zaprzeczony. Twój kanał YouTube o języku Rust zawiera słowo Rust? Zaprzeczony. Chcesz zrobić koszulkę promującą rdzę za pomocą jej logo? Nie. Masz witrynę non-profit do nauczania języka Rust, która ma nazwę domeny ze słowem rdza? Nigdy więcej.
A żeby było więcej zabawy, było to również częścią nowej polityki:
„ Używanie [słowa „Rust”] w nazwie narzędzia do użytku w łańcuchu narzędzi Rust, oprogramowania napisanego w języku Rust lub oprogramowania kompatybilnego z oprogramowaniem Rust, najprawdopodobniej będzie wymagać licencji. ”
Jeśli zastanawiasz się, co to oznacza, oznacza to, że żadne oprogramowanie, które jest częścią ekosystemu Rust, nie może używać słowa rdza. To są wtyczki IDE, biblioteki takie jak openssl-rust , rust-mysql i każde inne narzędzie, skrzynia lub biblioteka, o których możesz pomyśleć.
Co to znaczy?
Może nic. Z jednej strony MS ogłosiło to na BlueHat IL 2023 przed wydaniem projektu zasad dotyczących znaków towarowych i widzę, że tego rodzaju szalenie restrykcyjna polityka sprawia, że są bardzo zdenerwowani używaniem języka, z pewnością promowaniem ich używania.
Z drugiej strony MS jest jednym z członków-założycieli Fundacji Rust, wraz z Amazonem (który również promuje adopcję Rust), między innymi. Wygląda na to, że MS nie był świadomy tej szalenie restrykcyjnej polityki, ale ponieważ jest jednym z członków założycieli, można by założyć, że prawdopodobnie mogą uzyskać wyraźne pozwolenie na robienie z nazwą i logo, co chcą.
Dzień po zamknięciu komentarzy Fundacja przeprosiła za brak przejrzystości w procesie i zastrzegła, że dokładnie rozważy uwagi.
Więc o co mi chodzi?
Nie sądzę, aby MS miało jakikolwiek problem z polityką dotyczącą znaków towarowych, ponieważ jest członkiem-założycielem i nie wyobrażam sobie, żeby nie mogli uzyskać pozwolenia na cokolwiek chcą w odniesieniu do nazwy i logo. To, co widzę, to trzy możliwe stanowiska, które MS może zająć w odniesieniu do polityki dotyczącej znaków towarowych.
- Nie mieli pojęcia, co się dzieje, ponieważ ich to nie obchodziło lub byli ignorantami. Możemy natychmiast odrzucić opcję ignoranta, patrząc na radę dyrektorów .
- Aktywnie wspierają nową politykę
- To prawdziwy błąd, że sformułowanie było tak szalenie restrykcyjne i będzie to burger z niczym, kiedy wszystko zostanie powiedziane i zrobione.
W drugim przypadku naprawdę powinieneś zacząć zadawać sobie pytanie: „Dlaczego MS miałoby wspierać tę politykę?” Ale nie poprzestawajmy na tym, to ważne pytanie, które należy zadać Amazonowi, Google, Meta i innym członkom-założycielom. Co z tego będzie dla nich, jeśli ta polityka dotycząca znaków towarowych będzie obowiązywać? Kto czerpie korzyści z ograniczania używania słowa „Rust” lub logo Rust?
W trzecim przypadku będzie to coś, z czego wszyscy będziemy się kiedyś śmiać. Ta opcja wydaje mi się równie prawdopodobna, jak nieznajomość nowej polityki przez członków zarządu. Po pierwsze, nie było nic do naprawienia w pierwotnej polityce dotyczącej znaków towarowych, a nawet zakładając, że trzeba ją udoskonalić, zdecydowanie nie było powodu, aby nagle wszystkich upiec na ryczącym ogniu. Po drugie, dyrektorzy członków korporacji nie są idiotami ani nieświadomymi, i są dobrze przygotowani do zrozumienia reakcji społeczności. Fakt, że wszyscy przegapili reakcję, wydaje się kolejną trudną pigułką do przełknięcia.
To prowadzi mnie z powrotem do drugiego przypadku. Kto korzysta i jak? Nie widzę żadnej jasnej odpowiedzi na to pytanie, ale będę bardzo zainteresowany, aby zobaczyć, jak będzie wyglądać zaktualizowana polityka, kiedy się pojawi.