Wpis z mikrobloga

Ostatnio pisałem o Ruście, to teraz dla odmiany #golang - krążą pogłoski, że w językach z GC systemu operacyjnego się nie da pisać lub to bez sensu. Zatem trójka naukowców postanowiła to sprawdzić (i to w roku około 2018 - prehistoria) i napisać prosty OS w Go właśnie.

Paper: https://pdos.csail.mit.edu/papers/biscuit.pdf

Ten przygotowany w zasadzie na kolanie prosty OS w jakieś tam zgodności z POSIX posiada około 90% wydajności kernela Linux. Tu drobna uwaga, że kernel Linuksa robi pewnie 10^6 innych rzeczy, niż ten przez nich przygotowany w Go - nie wiadomo jaką miałby wydajność, gdyby go na poważnie "okroić" do wyłącznie tych prostych rzeczy z benchmarków, prawdopodobnie jeszcze większą, ale ile to raczej już zgadywanka. Nie wiem nawet czy firmom typu Cloudflare się chce taką skompilkowaną chirurgię uprawiać w kernelu, aby zyskiwać te 5%, a może trochę więcej, jak tyle samo może im dać przykładowo grzebanie w ich load balancerach lub webserwerach.

Podsumowując autorów, choć polecam przeczytać całą pracę: OS w Go nie jest tak wydajny jak ten napisany w C (do 15% mniej), ale ogólnie nie jest źle i zależy co chcemy osiągnąć.

Jak dla mnie, 90% wydajności tej, którą ma kernel pisany około 30 lat przez tysiące inżynierów, często megamózgów w niektórych wąskich specjalizacjach w tym np. inżynierów od procków z intela czy amd, to naprawdę rewelacyjny wynik.
#programowanie #devopsiarz
  • 3
@devopsiarz:

Nie wiem nawet czy firmom typu Cloudflare się chce taką skompilkowaną chirurgię uprawiać w kernelu, aby zyskiwać te 5%, a może trochę więcej

Chce się. Powiem więcej, firmom chce się przenosić część rzeczy z przestrzeni użytkownika do jądra korzystając na przykład z ebpfa żeby było trochę szybciej