Vlákno názorů k článku
Bude příští kernel napsaný v Go? od null null - @ivossz "Tato práce do určité míry vyvrací zažité stereotypy...

  • Článek je starý, nové názory již nelze přidávat.
  • 10. 10. 2018 19:00

    null null (neregistrovaný)

    @ivossz

    "Tato práce do určité míry vyvrací zažité stereotypy o nezbytnosti použití low level jazyka (například C) pro tvorbu systémového jádra. Sami výzkumníci v závěru připouštějí, že v oblastech, kde je požadavek na bezpečnost, je použití vyššího jazyka velmi přínosné. Použití jazyka Go by zabránilo zneužití 40 z celkově 65 CVE linuxového jádra z roku 2017, pro které existuje patch. Samotné Go, na kterém Biscuit závisí, mělo v letech 2016–2018 celkem 14 CVE."

    Zprávu jsem nečetl, nedostanu se k tomu dříve než o víkendu, ale zarazilo mne toto tvrzení, protože mi nepřipadá že by s rozkvětem HLL klesaly počty CVEček, často to záleží na důslednosti programátora či designera a taky jádro je v podstatě kritické místo nasazení takže ... Co ty si o tom myslíš?

  • 10. 10. 2018 19:56

    Uncaught ReferenceError:

    počet CVE může být zavádějící číslo, osobně bych viděl metriku podle typu chyby, její závažnosti a náročnosti k odhalení. Zvyšuje se tlak na testování, vznikají automatizované nástroje k hledání chyb, řada firem vyčlenila celé oddělení prohledávání použitého SW, vynaloženě úsilí může korelovat s počtem objevených chyb.

    Podle mě HLL nebude přinášet automaticky nižší počet chyb či úplnou bezchybnost, ale zlevní vývoj při zachování nebo zlepšení bezpečnosti. Určitě by se o tomhle mělo diskutovat, ta studie je velice kvalitní materiál k prostudování.

  • 10. 10. 2018 20:17

    null null (neregistrovaný)

    @bez přezdívky

    No proto mě ty věty s těmi CVE a to sebejisté prohlášení zaujalo. A přesně proto si to chci porostudovat. Kernel nedělám ani se nechystám, ale ten kus abstraktu který jsem četl mě zaujal sám o sobě ...

  • 10. 10. 2018 21:15

    ivoszz

    Na začátek, naprosto nerozumím těm mínusům u tvého komentáře.

    Souhlasím, že HLL sám o sobě není zárukou bezpečnosti. Paradoxně (jak už tady myslím někdo zmínil), teoreticky může být těch chyb více, pokud se díky menší vstupní bariéry k programování dostanou naprostí laici. Na druhou stranu, tohle nemůže být metrika a všeobecně platí, že C je značně náchylné na paměťové chyby a jazyky jako Go nebo Rust byly od začátku tvořeny s cílem tyto chyby buď úplně odstranit, nebo jejich množství minimalizovat.

    Při rozboru chyb (§8.2) se uvádí, že například 14 chyb jsou algoritmické chyby, kde jazyk nehraje žádnou roli. Ale ty paměťové chyby prostě nevzniknou. Jestli existuje nějaký jiný typ chyb (jak tady vyvozuje zneuznaný expert "j") se zatím nepotvrdilo.

    Nezanedbatelným přínosem HLL jazyka je ale rychlost vývoje. Ať chceme nebo ne, vývoj kernelu v C prostě trvá nějakou dobu. Je zajímavé, že nikdo zde neupozornil na to, že v poměrně krátké době vzniklo 50 tisíc řádků vysoce sofistikovaného kódu. A't už se nám to líbí nebo ne, projekty jako Docker nebo Kubernetes (ale i další v jiných jazycích) by prostě jen tak nevznikly, pokud by měly být psány v C.

  • 10. 10. 2018 22:06

    null null (neregistrovaný)

    @ivoszz

    Ty mínusy jsou kvůli tomu nicku ;-) ale já je jako přihlášený stejně nevidím ... :-D

    Teoreticky je to další vrstva > další zdrojový kód > další potenciál pro vznik chyb (třeba implemntačních). Tak to prostě bývá. Zvýší ze zájem, zvýší se záběr, počety funkcionalit, termíny, více vývojářů různých stylů .... a už to jede. Tak to možná myslel. Ale to je těžko říct. Dokud to nevystaví světu a tlaku na 10 let, tak se dá těžko soudit jak to dopadne. Proto se to i mě zdá hodně sebevědomé. Takových proklamací už tu pár bylo.
    Každopádně jazyky dalších vrstev postupně přicházejí - od pár dírek na válečku až po ... a zároveň i úměrně s požadavky uživatelů a možnostmi HW, takže by to byl logický (po)krok. Stejně určitě jednou přijde.
    Určitě je dobře že někdo něco takového zpracoval i kdyby výkonostní ztráta vyšla 50% protože jinak bysme byli pořád pouze v rovině spekulací.Pokud nic nezanedbali tak nějaký závěr a přínos to prostě je tak nebo tak.

  • 11. 10. 2018 14:54

    ivoszz

    Při formulaci závěru jsem byl dost opatrný a slovní spojení "do určité míry vyvrací" mi nepřipadá zas tak sebevědomé. :)

    Já osobně jsem čekal o něco větší rozdíl. A v kontextu některých zdejších diskusí (Java je 4x rychlejší než Go) si myslím, že je i trefný.

  • 11. 10. 2018 15:21

    null null (neregistrovaný)

    @ivoszz

    :-) to "do určité míry vyvrací" skutečně není zas tak sebevědomé, seběvědomé mi připadlo spíš to co vyplívá z toho odstavce, tedy že
    "Sami výzkumníci v závěru připouštějí, že v oblastech, kde je požadavek na bezpečnost, je použití vyššího jazyka velmi přínosné."
    - sebevědomé ve vztahu k těm výzkumníkům. Myslím že na takové polo-opatrné tvrzení má každý právo, sám na to nemám nijak podložený názor, ovšem to by ta práce IMO musela být o něčem jiném s jinými důkazy myslím ...

    Takové tvrzení "(Java je 4x rychlejší než Go)" je IMO na stejné úrovni jako by členové automotoklubu hodnotili auta podle maximálky napsané na tachometru