 Alors, bienvenue à ma parole. C'est donc... ...about abstreaming, mainlining, Linux. C'est... ...all of you know... ...of this, but it's kind of good to have a refresh... ...about the reasons, the benefits and... ...to upstream some platforms. Ok, so... ...the talk will be, like, in different... ...way, like a question and answers... ...to change the traditional talk. So I will answer to the main questions... ...why, how, how long, how much does it take... ...and the benefits of upstreaming and mainlining... ...platform support. Ok. The main question is why should I, a company... ...a bone maker, SOC maker... ...pouche code to the upstream mainline Linux? It's a good question, because... ...it's a long question, since the start of Linux... ...and also always the same answers. It has been answered a lot, and it's obvious. A lot of vendors understood the strategic advantage of it. But still, large vendors... ...does not understand why they should... ...and how they should do it. So this is a list of what they would do... ...from the worst to the best. So some don't even push code at all. So it's the baddest. And some put some push that code in the grid repository. Some, like Qualcomm, push too much code... ...which is even worse. Some push clean code. It's good, like they maintain all the trees with clean code... ...which can be upstream quite easily. And some push upstream, which is great. And some have directly a real upstream initiative... ...and real workflows to maintain their products... ...with main and kernel. So we can count on some vendors... ...to support Linux upstream. Those are the classical ones. And Qualcomm, it's not really so bad... ...because they push code, but they don't want... ...to have ownership of the code, which is quite strange. They should push under the Qualcomm name. So you can count on great vendors... ...like Intel, IBM, TI, Atmel... ...which has a real upstream workflow... ...and free scale and other small vendors. So large corporation can afford to have a real upstream workflow... ...but what about small vendors, small board makers... ...small SOC vendors, which are tough world. Costes are huge, IP companies take a lot of money... ...a lot of money and sometimes... ...one let you put their code upstream. So you need to rewrite code, rework the code... ...and sometimes you don't even have the data sheet or anything. So it's complex. And for board makers it's even more complex... ...because the SOC vendors give them... ...some custom, very complex BSP SDKs... ...which targets really some specific use case... ...with some code which is tweaked to a specific board... ...a specific reference design. So they cannot really use this to push upstream. It's free for years of work. And even some ODMs, I won't name ODMs. We don't even ship the kernel source to the customers... ...before the product is released. So it's a situation that board makers... ...cannot afford to push quite a stream. So it's at the SOC SSE vendor to have the initiative... ...so everyone can benefit of it. So some SSE vendors participate a lot. But often they have too much old BSP for Android, for example. They maintain, they pull back some change... ...and they upstream, but the two are completely different. Some synchronize regularly... ...and some really will open source and upstream workflow. So what I think and what the opposite... ...in strategy of SSE vendor... ...must be the priority when you select a SOC or a platform... ...to work on, to make a product that will be supported over the time. It's really something, it's more and more important now. So why mainland kernel is important? Mainland kernel is important. Because it's a good question. You are a big SOC vendor, you have huge teams... ...which you can take old kernel and maintain it on your own side. Never push back, never take the new fixes. You can fix yourself. Maybe better than the strange guys in the garage. So mainland kernel is important. Because we have some new features from every vendor. Every vendor participates on the kernel. Push a new network features, new USB drivers. You have performance and not always. Bug fixes and security features. And you can improve the stability... ...and improve the features of your product over the time. Especially if you want a high-end product... ...and you want it to be supported over the time. You should consider the mainland kernel as a source of innovation... ...instead of, let's say, something bad for your company. So making a product is complex, really complex. Over the time, with new SOCs, with power management... ...with bus scaling and stuff, it's complex. Why should I push all this complex stuff upstream? It's a good question. Because today, the Linux kernel is not really adapted... ...for really strange and complex use cases... ...some SOC vendors implement through their booths... ...or even their GPUs. Free simple reason, sorry for the typo. Cod maintenance is the main point... ...the fair return of the community... ...and strengthens the Linux platform. Free main point must be pushed... ...because it's the most important point. Cod maintenance. Re-basing your BSP code base over time... ...c'est complexe. Surtout si vous avez des codes... ...qui ont été créés 3 ou 4 ans plus tard... ...c'est plus rapide pour les SOCs. Si vous voulez une base de 4.4 ou 4.9... ...c'est un nightmare. Vous avez besoin d'un scratch. Donc, si vous avez le minimum support... ...on va continuer. On va garder l'évaluation kernel upstream... ...on va réduire tout le temps... ...et on va obtenir de l'argent. C'est quelque chose... ...que tous les vendors devraient penser. Parce que... ...le portage serait très simple... ...et vous pouvez le faire régulièrement. Donc, la faible remonte de la communauté... ...c'est comme un communiste... ...et comme un concept... ...c'est parce que vous avez besoin de participer... ...le GNUX, c'est ce que c'est. C'est libre, c'est utile. C'est puissant et vous avez... ...un système industriel... ...vous pouvez, d'un petit device IoT... ...à un huge data centre... ...avec la même base de codes... ...et... ...que sont les alternatives ? Quoi sont les alternatives non-frères ? QNX, Windows NT... C'est très utile. Vous n'aurez pas de liberté... ...de supporter votre SOC... ...de votre bord. Vous n'aurez pas de nouvelles frameworks... ...que QNUX a... ...vous avez besoin d'un hack... ...de faire le travail correctement... ...et vous payerez beaucoup plus... ...que si vous reposez... ...et vous avez une initiative... C'est de la même raison... ...que vous vous souvenez... ...de la même raison... ...que vous avez des codes... ...et c'est un problème... ...que les grandes entreprises pensent... ...que le meilleur moyen... ...de prévoir le futur... ...est de construire... ...c'est de la création... ...quand les petites entreprises... ...toujours ont l'idée... ...que elles sont en train de se battre... ...et de se battre... ...que les grandes entreprises ne pensent pas comme ça... ...que le marché va aller par là... ...et je vais construire... ...un 8 line de l'avenir... ...que je veux... Oui mais... ...les batailles deltaient toujours... ...la même chose... ...ouenciant cette plateforme Linux... ...leIsn's... ...est le vin de la lien... ...que connaît Linux... ...le went cheeks était vegetable... ...on avait... ...lesachment de stabilité... ...en habillant... ...les lnps... des plateformes de diversité qui soutiennent, qui transférent les frameworks, les codes, les stabilisent les codes, et puis la portabilité. Donc, si vous continuez à contribuer à une très diverses SOC, une très diverses plateformes, vous savez, vous n'aurez pas besoin de plus de travail pour soutenir un très différent de l'application dans le futur. Donc, tous les SOC-designes sont complètement différents. Les vandals font surement que leur propre SOC est très différent. Et c'est bon pour les codes, parce que vous avez besoin d'une très bonne diversité pour soutenir toute la possibilité. Peut-être, comme on l'a dit dans la pièce de contrôle et la plateformes d'aujourd'hui, elles sont faites pour soutenir tous les SOC-designes, même les étrangers de l'SOC. Et parce qu'on a un exemple, on a un exemple de Samsung, qui représente complètement différents supports. Donc, sur l'option du travail, c'est une bonne question, parce que pour une grande compagnie, même une petite compagnie, comment s'organiser mon travail, mon équipe, pour travailler avec Mélaniex, parce que Mélaniex est en train de bouger, il n'y a pas de comité technique, de bord ou quelque chose, on décide de ce qui va être soutenu dans les réalisations. Donc, comment simplement faire ça et comment, comme point de vue, les vandales de chaque stratégie qu'on utilise aujourd'hui? Donc, on identifie avec trois manières à faire. Donc, la façon classique, les vandales classiques, c'est qu'ils ont plusieurs manières, comme GIO et Mél, ils apportent un 3.x kernel pour les customers, ils prennent des codes, ils bougent le BSP forward sur l'ancienne base de code stable. Mais ils poussent un peu d'options. Parce que certains clients spécifiques ou certains grands clients ne veulent pas les manières. Donc, comme je le disais, la stratégie d'options, c'est très similaire, mais ils se base régulièrement sur un nouveau kernel. Qualcomm fait ça pour le deuxième. Je sais qu'il y aura peut-être une base de 4.4 à peu près. Mais ils ont encore beaucoup de 3.4, 3.10, 3.18 kernels qui sont maintenus. Et la dernière, qui est la meilleure, qui est la plus cauchembe, c'est le réel workflow. Vous vous synchronisez avec l'option en mainline et vous vous targettez les deux trucs pour être le plus similaire possible à l'end. Donc, pour les deux premières stratégies, vous avez la mainline avec les versions, et vous avez le Vendor BSP3, qui évolue avec l'on-path. Donc, vous optimisez parfois des codes. Et parfois, vous décidez, 4.9 est bon, je vais prendre 4.9. Et vous pouvez avoir une base, parce que la différence entre les deux BSP est tellement grande. Vous avez besoin d'une nouvelle version, complètement. Qualcomm, par exemple, entre les 4.10 et les 4.14, ils ont besoin de tout. Ils ont besoin de tout, parce que les sépaires de l'armée de l'armée ont besoin de tout. Et ils ont besoin de tout. Donc, c'est un grand effort. Et seulement des grands soldats peuvent le faire, et des petits soldats vont se battre sur l'armée pour tout le temps. Donc, oui, la base BSP est stable, bien. La mainline avec la support, bonne support, mais la support limitée. Certaines clients peuvent utiliser la mainline pour les produits. Avec la support limitée, ils peuvent mettre en place des codes de la base BSP. Mais la base BSP va commencer à devenir très ancienne, et il y aura des outils de sécurité et des outils naturels ou des outils de sécurité. La base BSP de nouveau en termes sera un grand travail. Et la base BSP et la sécurité vont devenir plus fortes et plus fortes pendant la base BSP. Vous aurez de nouvelles frameworks, de nouvelles choses. Nous allons débloquer des frameworks. Et la base BSP sera plus fort. Donc, la première stratégie, qui est plus complexe, mais vous avez toujours la mainline avec Evolve. Et vous avez vos troupes longues. Et en fait, vous avez un grand effort pour la première base BSP, par exemple, la première base longue. Et à l'époque, vous puissiez le maximum de mechanics entre chaque version de longues et de nouvelles termes. Donc, à chaque fois, la base BSP sera plus simple et plus simple à l'end. La base BSP entre la base BSP et la mainline sera seulement un acte très spécifique et une feature spécifique qu'on ne veut pas de la mainline. Parce que cette stratégie, c'est pour les nouvelles portes de base BSP. Donc, cette stratégie, qui est la plus la mainline avec Evolve, vous avez une base BSP qui a toujours de nouvelles features, de nouvelles features secrétives chaque année. La mainline cannelle va targeter 100 % de support et les drivers de base BSP seront cleans. Elles vont être cleans à l'end ou au moins très bien travaillées et à l'époque, nous avons travaillé pour suivre l'évolution de la base BSP. Mais pour les compétences, vous devez maintenir une équipe, une équipe d'experts qui sont dédicatées pour s'assurer parce que c'est quelque chose qu'il faut faire chaque jour. C'est un intérim long terme. Et sur les premières bases BSP, il peut être difficile et difficile. Donc, vous devez rester fort et continuer pour les premières bases BSP. Et le problème c'est que quand la base BSP peut être courte pour un produit long terme parce que si vous n'avez pas un gros produit comme l'automotive, vous avez 3 ou 4 ans pour développer le produit. Donc, vous ne pouvez changer la base BSP chaque année. Donc, vous devez sélectionner quelques bases BSP. Donc, vous devez sélectionner tous les produits. Donc, une autre stratégie est de l'utiliser LTSI. LTSI est une initiative de la Fondation où pour aider les vendeurs à utiliser un long terme support carnel avec des vendeurs pour faire le produit. C'est très intéressant parce que ce n'est pas la mainline, ce n'est pas le long terme, mais l'initiative pour que vous ayez des patchs spécifiques qui arrivent à l'extrême. Donc, c'est vraiment quelque chose qui est délicaté au long terme et vraiment pour un produit long terme. Donc, vous avez un long terme STAB 3 et vous avez le LTSI 3 qui est la base de lTSI 3 et les vendeurs peuvent mettre des patchs sur ce LTSI 3 parce que sur le long terme STAB 3 vous ne pouvez pas. Donc, c'est un produit délicaté pour que vous ayez seulement des fixations et des petits changements pour attirer un produit, seulement un produit. Et le LTSI 3 est maintenu comme un produit STAB 3 pour que vous ayez toutes les features de la base. Je sais quand c'est ça aussi que vous utilisez ce schéma. Donc, pendant le temps, combien d'eux a-t-il pris pour apprécier un code pour l'SOC ou pour la base ? Donc, c'est une complétation. Vous connaissez le Tiker de Linux pour vraiment planir ou au moins essayer de planir votre initiative de streamer. Et vous avez encore besoin de développement. Nous travaillons avec Faktoring parce que c'est assez sûr que votre code ne va pas streamer comme ça. C'est impossible parce que c'est une bonne raison parce que vous avez développé sur votre côté, sur le Tiker de Linux et vous n'avez pas toutes les demandes qu'il y a. Donc, et selon les sub-sub-systems, le temps d'appréciation peut prendre plus de temps pas nécessairement pour l'apprécier de Faktoring. Donc, un autre problème est la complexité et les sub-systems. Comment le développement de Linux s'évolue c'est que chaque sub-system de maintenance est en charge de sa propre sub-system. Donc, c'est bon, mais quand vous voulez mettre un soutien cannel parce que aujourd'hui, vous n'avez pas poursuivre un code seulement en armes-socs, en armes-maches-armes, vous devez poursuivre à chaque sub-system. Et chaque sub-system a sa méthodologie, constraintes et habites pour maintenir le code. Et il y a des plans de long terme qui veulent dépoccuper un API. Donc, on utilise cet API avec le NEC Relist parce que l'application est meilleure, on va gagner sur ça. Donc, cela peut être ajouté à la période et vous devez être conscients quand vous avez appris le code. Donc, c'est pourquoi vous avez appris un simple code un code basique vous pouvez prendre deux ou trois relises donc deux ou trois relises c'est comme 6 ou 9 mois Donc, cela peut être connu et quand vous connaissez ça, vous pouvez préparer mieux votre code basique pour être upstream et l'application initiale est la plus frustrante parce que vous avez des voitures qui dépendent des voitures comme beaucoup de voitures dépendent du contrôle de pin du cloc ou quelque chose et vous devez avoir l'application basique avant de pushing quelque chose d'autre et l'application initiale peut prendre deux ou trois relises avant que quelque chose soit pensé dans l'application initiale avant de pushing quelque chose complexe d'OM ou de l'audio donc c'est prétendant mais je pense qu'il n'y a pas de solution basique parce que l'application l'application basique pour l'application basique c'est bon c'est quelque chose qui peut être assumé oui exactement donc une petite liste de pourquoi la la la votre submission peut être délée par exemple vous avez besoin de chaque sub système de style et de code design qui est peut-être différent de c'est dans le principal code design mais des des maintenance ont besoin d'avoir une certaine ordonnance d'incluses ou une certaine ordonnance d'obtenir pour simplifier leur maintenance ils savent ce qu'ils ont besoin de changer dans les futures pour les nouveaux driveurs qui font sorte de ne pas utiliser ces appels de ne pas utiliser ces types de fonctions ou par exemple la dépendance quand vous avez un framework vous avez des hauteurs dans les bindings d'DT qui sont dépendants de la DTS donc vous ne pouvez pas mettre une DTS DTSI jusqu'à l'heure parce que le driveur ne s'est pas poussé et vous avez l'issue de des appels de frameworks frameworks ou d'un temps élevé et des nouvelles features que vous avez besoin ce n'est pas complètement marge aujourd'hui donc il faut attendre et parfois quand vous n'avez pas votre habit vous postez votre patch trop tard et trop près de la main de la main donc quand vous avez l'habitude tous ces points vous pouvez travailler avant d'éviter ces trucs et comme Kevin s'est dit plus tard le plus tard d'éviter ces problèmes donc c'est vraiment un peu plus tard vous ne pouvez pas vraiment rester sur un système mais si vous avez besoin de vraiment essayer d'avoir une approximation de temps un support de base S.O.C. c'est chaque version c'est un nouveau ou un nouveau c'est minimum 6 mois 6 mois minimum pas tout le temps mais c'est 6 mois 6 mois de temps complètement et pour les simples voitures vous avez besoin d'une réacteur vous avez besoin d'une réacteur et vous testez chaque poste parce que vous pouvez avoir deux, trois, peut-être quatre repostes selon la compréhension de l'aéroport et vous avez besoin de tester chaque reposte et quand il se met et avant qu'il soit taggé donc pour les réacteurs complexes comme DLM, SATA, Audio ou USB c'est beaucoup plus long parce que vous avez besoin d'aller dans le code et peut-être d'un DLM ou d'un DLM des réacteurs très grands et vous avez besoin d'une réacteur correctement et si il y a un peu de temps un peu de temps et vous n'aurez pas besoin d'avoir beaucoup de repostes mais des des systèmes comme DLM ont des systèmes de militaire où pour éviter ces temps ils pendant que vous puissiez un code vous pouvez avoir accès à leur guide donc ce n'est pas complètement vrai pour chaque sub-système donc si vous voulez des estimations globales pour une full SOC pour les headlaces sans n'importe l'attention ou n'importe quoi c'est 6 à 9 mois une personne sera à peu près 100 % pour ce timetable pour un SOC très complexe vidéo, PM, DSP, Audio, Modem, etc. comme les SOCs 18 mois c'est la estimation low il peut prendre peut-être 2 ou 3 ans d'avoir tout touché parce que beaucoup de frameworks sont mises dans le canal de Melland donc vous devez mettre les frameworks et puis mettre votre soutien pour votre SOC et pour votre famille donc pour tous les Linux SOC comment c'est donc c'est moins difficile c'est encore plus difficile mais c'est moins difficile l'immigration de l'esprit pour presque toutes les architectures même x86 ça change la façon dont vous appuyez sur la code c'est simplifié mais plus complexe donc mais toutes ces frameworks qui ont été introduits dans les dernières 45 ans ont aidé beaucoup donc les frameworks PIN control GPOD GPogenic interrupt avec le DRM SOC etc ont aidé à simplifier et vous pouvez vous pouvez vraiment diviser votre appui dans les sub-systems vous pouvez dire oh, je vais mettre ce team je vais mettre DRM et ne pas être chargé sur les frameworks donc la couture est bonne donc pour les gens qui ne savent pas ce que l'ES3 magique fait et vous n'avez pas toutes ces codes de code dans les directeurs de la SOC de l'ArchArt Mac parce que avant l'ES3 VanDos a poussé tout ici même des voitures ici et c'était tout donc c'est presque terminé je pense que la seule plateforme de soutenir les ordres d'armes de l'express de l'ArchArt donc peut-être c'est charmant parce que c'est un exemple pour l'armes pour les autres d'un SOC mais j'espère j'espère que ça reviendra parce que c'est charmant je pense et donc c'est magique avec l'ES3 ou magique vous transformez tout ce code dans l'ES3 mais c'est simple de maintenir Et pour une nouvelle supporte, vous avez seulement la supporte S&P, dont vous avez besoin d'un C, et c'est très spécifique pour l'armement. Et l'armement 64, il a disparu. Il n'y aura jamais de machine directrice en S&P parce que de la nouvelle interface de la ferme, donc c'est mauvais, parce que vous gardez des choses dans la ferme, mais c'est bon parce que l'armement est plus grand, plus grand. Donc, où est l'armement ? Dans la base 3, et dans l'arrivée de la ferme. Et tout, tous ces armes sont coordinées par les nodes de base 3, ou vous avez le même S&P avec le S&P. Mais est-ce que c'est difficile ? Oui, c'est pas simple, mais vous pouvez être aidés. Vous ne seriez pas seul dans le monde. Vous pouvez être entraîné, l'entraînement est vraiment utile. Vous pouvez entraîner votre équipe. Il y a une certaine entraînement pour l'avail. Et vous pouvez être aidés. L'entreprise, comme notre équipe pour l'électro-technique, vous pouvez aider votre équipe pour l'électro-technique. Vous pouvez l'électro-technique en partie, et l'électro-technique vous aide par ouvrir votre code, et vous montrer ce que c'est bon ou que c'est mauvais. Et, comme Waycached explique, la communauté veut que vous travaillez avec les S&P, et ils ne veulent plus utiliser les loyers pour le faire. En discutant avec l'électro-technique, vous pouvez aider beaucoup. Vous pouvez avoir de l'argent, des ressources. C'est quelque chose qui est mieux et mieux dans les autres années. Qu'est-ce qu'il y a pour les bénéfices ? Les bénéfices, c'est le samedi. CodQT. CodQT est inquiétant, parce que vous avez un réveil extraordinaire. Le maintenance est que vous avez un réveil extraordinaire, ce qui est bien pour votre code. Le meilleur que vous pouvez avoir, c'est quelque chose qui n'est pas lié à l'organisation de votre code, et qui peut détecter des mauvaises architectures. Il minimise la maintenance, la production de cours, donc vous pouvez concentrer sur d'autres choses. Vous pouvez mettre les bases de faster et faire un effort, et tester un effort pour un nouveau produit. Vous pouvez avoir une clear et open stratégie, qui est importante. Vous pouvez communiquer sur cela. Vous pouvez gagner des clients sur cela. Vous ne vous reliez pas sur l'obscurité et la code de développement de gens qui n'ont pas de compagnie, ce qui est le meilleur. Vous pouvez avoir une fidélité customaire, ce qui est quelque chose qui n'a pas de cost. La fidélité n'a pas de cost. Vous pouvez promouvoir la compagnie dans le secteur technique. Vous pouvez aller à des conférences, aller à des meetings, et dire que vous avez une clear opération stratégique. Je veux des développeurs et des talents pour m'aider à développer la stratégie d'open source. Et de l'argent. L'argent est un acteur important pour des vendeurs de la société. Quand vous minimisez le long terme, cela coûte beaucoup. Tout le monde bénéficie de cela. Je ne suis pas sûr de vous dire cela, mais je pense que vous l'aurez. Ce n'est pas la seule personne qui parle de cela. Il y a une longue théorie de parler de l'alignement carrément et de la meilleure pratique des métaïnaux des frameworks. Vous pouvez aussi avoir des avantages de marketing des foundations de Linux sur l'initiative LTSC. Si vous avez une question ou une intégration, il y a deux liens qu'il faut savoir, de votre question d'un début pour les experts qui veulent aider leur team de marketing pour trouver des avantages. C'est la fin. Si vous avez une question, je serai heureux d'en savoir. Des remarques ou quelque chose que j'ai perdu. C'est ok. C'est bon.