From nobody Mon Sep 28 12:33:33 2026 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A467C30DEB2 for ; Fri, 21 Aug 2026 13:22:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787318544; cv=none; b=iFyLg8Ghta+owy+Bl5SGyiCT5UMK58Vf8QpG1Yn2jbbErQ2CWwPWUmokmX7XdVplqNJpckIEl5xg9D/llZ6yRrPw/L3NRPRK5NYT1jIt5d8aNdmZZqDnb+gPWyj50tntDBfrP2dxQ/Zeuf9i3LhryhzOWMdMRbKDe+V4PdtuRpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787318544; c=relaxed/simple; bh=BAyBGdY5R59IZ2X7Kx76TF9SuCwi5V19TEBUExdLL8I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=iM6Np6n2HUfSENiR9kJHyE0QJdzx2dGNbbzl1wnkW/5u7/f2wS27SDXre3L/jn62O/GFXfT16k55zXjXOWoG4E6mwNXPlha9uLiZL3+NFzgon7NlxV7YsqD3SvvwjcrBTDHpc813K/ad4g3U3vNS7wwMm/ltrSR/KanZ32NkGos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NrVJWXUj; arc=none smtp.client-ip=209.85.128.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NrVJWXUj" Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-81ff017d420so30565977b3.0 for ; Fri, 21 Aug 2026 06:22:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787318533; x=1787923333; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=bwEiFx6fpVbLNRTvN8TsAw1/7zLIHkL0ilf8cWzr0W8=; b=NrVJWXUjKa7wXI1w6DLWIaRAqGSfb3ETLLLq5wPqvoqngX69AvQNEtVPpLLMyWTne1 XD7xNeApq+0uWb7Li0foUs7g2Kl7S/S6mMozM8lz02cC1blYCqFZmI+wT6FdRXGFkTcN E8m3lfuDHXkFtP5bxgth4EZM+I5UWS8NX2fAU3zj9mu/kGQL+BBuMBqEVcd1NQGbqrtf w+6HYq6wz2jmXe7PsSo7tbgp/R6Zyw7fdna3zzpxh9q0GjcwhEHDO62YV0ZN0pOBzI35 XyCwVB7/FKLcqn7nXI8v1GgPl0IFgyATbY1ZjcS1cwergHTSXuBGaNx73vk/XrBoem5n nNTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787318533; x=1787923333; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=bwEiFx6fpVbLNRTvN8TsAw1/7zLIHkL0ilf8cWzr0W8=; b=QVwUmPdulTidrEd/atJU9MCuEaZr9IAS/KRdBF5iid88sXVbbEqwqgJmE7OlpjaugP 83zqLKK05/n7tv+vzu7aNv6zGytrMRYRFSIRHrqTuDbPqEKPS5qFGB48uW5ZYAzZOYd/ TWT25z+mP98EYijKLBHiGq2OYc/kvK8N6WNlTA7sVpG2aIwhPmr1Jm2G2qKzdhyj/qDD SeEc5MiKBH5zPtvFh9WY7yCvWFQPzq2+oWw+mLGEAosiM/mkt5KxCe85Ee8xzqmEr+os FMH6pSZ3lB7LYWF6LnKvJ4H2WjL8o32X6Wtrr2wTpmHvORHqFBgiWeYpmGO0+aYQr0n/ WQkA== X-Forwarded-Encrypted: i=1; AHgh+Rreqe53CLny6iNUjsk2LfkXodCW4veDzsS2lgc+vrHgEUxm0G7UbP92Z/rbYMvQ64z4suEI5awuhOqPqN0=@vger.kernel.org X-Gm-Message-State: AFuF++nb4e/6FlQuBMU40/949bZGSplfItWRyoNgfdxvKo2trPBuOsPf KScfnrvqUl1rGH6eBisDS/UWqbhkC0pwpTi2GAwYgW2w8GUhj895sFEI X-Gm-Gg: AR+sD10v5R3DKL9twFxnvprLxgdiywnsUzKBiJC492RZZ+gAXVxNGHKQmnR4RzfeWat UPT4hhA/EcEQkNCgLXOq4QiND4YNNRGK+dOc34kjqBD4zFxNIVn2QfDVGyMA79Ywn6RHxyJDJRY yvS9D+vPopjKBqa2yshXJDp6eRcUZaOolKyIWFR90bfyK8pfTuXTYaVsaXNHUASaQXa0XELaahT bp4P9vIL0a1Qc1wDF6mmW1Si/UMO9bzY3CmbSA/PzwDqwyO7ECxPwSfP2BUhn4CAVU8Is/E+Ef3 kG59CqU/TLcpgCXHX62wsRHuOkGRLPWXD8OQeOK1Qe0RC89v0ldb7QJXIO/YU9B5Yjd/p5GV0aV TvGWadRBZX2N7f469I8V7d3Ds0OXMwuilQAFWhJR9R31bRl6Y0TMfQvVvvH2bPVtQmHGpXxpu4g FjnimzcdkKEbfsvgbwL4lNf39Ta3WgJ5Hsr5Cf7X254mX/tzUEo+KE5huAP3ZqOyO+zhPtkdw= X-Received: by 2002:a05:690c:e0d0:10b0:80c:16ad:2f16 with SMTP id 00721157ae682-84a16f25227mr15783807b3.8.1787318533261; Fri, 21 Aug 2026 06:22:13 -0700 (PDT) Received: from [192.168.50.238] ([206.42.51.82]) by smtp.gmail.com with ESMTPSA id 00721157ae682-84518a9d7c8sm40237967b3.40.2026.08.21.06.22.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2026 06:22:12 -0700 (PDT) From: Lucas Adryell Ramalho Date: Fri, 21 Aug 2026 10:22:01 -0300 Subject: [PATCH v2] docs: translations: pt_BR: translate stable-api-nonsense.rst Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260821-ptbr-stable-api-nonsense-v2-1-f07df4a0fc3b@gmail.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/3WNwQqDMBBEf0X23C1JNKX25H8UDzFudEETSURax H9vKr0W5vIG5s0OiSJTgkexQ6SNEwefQV0KsKPxAyH3mUEJdRN3WeOydhHTarqJ0CyMPvhEOWi rsleVNsbpGvJ8ieT4daqfbeaR0xri+3za5Lf9SZX4L90kShRlJZ3Wjqzqm2E2PF1tmKE9juMDc 4c0vcAAAAA= X-Change-ID: 20260819-ptbr-stable-api-nonsense-c43d245aaf59 To: Daniel Pereira , Jonathan Corbet , Shuah Khan , Randy Dunlap Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Lucas Adryell Ramalho X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787318529; l=13735; i=lucasadramalho@gmail.com; h=from:subject:message-id; bh=BAyBGdY5R59IZ2X7Kx76TF9SuCwi5V19TEBUExdLL8I=; b=mHOn4QAqTf5VjLbNXQsJ3VGimr6vFj59MQY9Sx5S+mlrw665zKmPaHA9EjCXeNJQ8xQPc1OcA pV8w+wByaZbDD73PIjXvaoCbVhlF9+Cy0NnkOCIn5ATj2DOok22V3bI X-Developer-Key: i=lucasadramalho@gmail.com; a=ed25519; pk=m3TQ0mH3ARCg0EdGRQWOTlBoFnDen6VWMNGjXW+W4NM= Translate Documentation/process/stable-api-nonsense.rst into Brazilian Portuguese. Assisted-by: ChatGPT:GPT-5.5 Signed-off-by: Lucas Adryell Ramalho --- Changes in v2: - Remove the unnecessary top-of-file label that caused a duplicate-label wa= rning during the documentation build. - Add disclosure for generative tools used while preparing and reviewing th= e translation. - Build the documentation with make htmldocs and verify that the translated= document introduces no new warnings or errors. - Link to v1: https://lore.kernel.org/r/20260820-ptbr-stable-api-nonsense-v= 1-1-0341f55fec2d@gmail.com I used ChatGPT and DeepL to help me clarify some Portuguese sentences that = did not sound entirely natural or clear to me. --- Documentation/translations/pt_BR/process/index.rst | 1 + .../pt_BR/process/stable-api-nonsense.rst | 216 +++++++++++++++++= ++++ 2 files changed, 217 insertions(+) diff --git a/Documentation/translations/pt_BR/process/index.rst b/Documenta= tion/translations/pt_BR/process/index.rst index eda2a3fc5..1fb2f325f 100644 --- a/Documentation/translations/pt_BR/process/index.rst +++ b/Documentation/translations/pt_BR/process/index.rst @@ -58,6 +58,7 @@ Estas s=C3=A3o as regras pelas quais tentamos viver na co= munidade do kernel Interpreta=C3=A7=C3=A3o do C=C3=B3digo de Conduta do Kernel Linux Modelos de Maturidade para Contribui=C3=A7=C3=A3o no Kernel Linux Declara=C3=A7=C3=A3o sobre Drivers do Kernel + A interface de drivers do kernel Linux Estilo de gerenciamento do kernel Linux Conclave (Continuidade do projeto) =20 diff --git a/Documentation/translations/pt_BR/process/stable-api-nonsense.r= st b/Documentation/translations/pt_BR/process/stable-api-nonsense.rst new file mode 100644 index 000000000..526cac3f2 --- /dev/null +++ b/Documentation/translations/pt_BR/process/stable-api-nonsense.rst @@ -0,0 +1,216 @@ +.. SPDX-License-Identifier: GPL-2.0 + +A interface de drivers do kernel Linux +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +(todas as suas perguntas respondidas e mais algumas) + +Greg Kroah-Hartman + +Este texto foi escrito para tentar explicar por que o Linux **n=C3=A3o pos= sui uma +interface bin=C3=A1ria do kernel nem uma interface est=C3=A1vel do kernel*= *. + +.. note:: + + Observe que este artigo descreve as interfaces **internas do kernel**, = e n=C3=A3o + as interfaces entre o kernel e o espa=C3=A7o de usu=C3=A1rio. + + A interface entre o kernel e o espa=C3=A7o de usu=C3=A1rio =C3=A9 aquel= a utilizada pelos + aplicativos: a interface de chamadas de sistema (syscalls). Essa + interface =C3=A9 **muito** est=C3=A1vel ao longo do tempo e n=C3=A3o se= r=C3=A1 quebrada. Tenho + programas antigos, compilados em uma vers=C3=A3o do kernel anterior =C3= =A0 0.9 e alguma + coisa, que ainda funcionam perfeitamente na vers=C3=A3o mais recente do= kernel + 2.6. Essa =C3=A9 a interface cuja estabilidade os usu=C3=A1rios e desen= volvedores de + aplicativos podem considerar garantida. + + +Resumo executivo +---------------- + +Voc=C3=AA acha que quer uma interface est=C3=A1vel do kernel, mas, na verd= ade, n=C3=A3o quer, +e nem sabe disso. O que voc=C3=AA realmente quer =C3=A9 um driver que cont= inue +funcionando de maneira est=C3=A1vel, e isso s=C3=B3 =C3=A9 poss=C3=ADvel s= e o seu driver estiver +na =C3=A1rvore principal do kernel. Voc=C3=AA tamb=C3=A9m obt=C3=A9m muito= s outros benef=C3=ADcios se +o seu driver fizer parte da =C3=A1rvore principal do kernel. S=C3=A3o esse= s benef=C3=ADcios +que ajudaram a tornar o Linux um sistema operacional t=C3=A3o robusto, est= =C3=A1vel e +maduro =E2=80=94 justamente a raz=C3=A3o pela qual voc=C3=AA o est=C3=A1 u= sando. + + +Introdu=C3=A7=C3=A3o +---------- + +Apenas quem escreve drivers para o kernel precisa se preocupar com as muda= n=C3=A7as +nas interfaces internas do kernel. Para a grande maioria das pessoas, essas +interfaces nem sequer s=C3=A3o vis=C3=ADveis e tampouco s=C3=A3o motivo de= preocupa=C3=A7=C3=A3o. + +Antes de mais nada, n=C3=A3o abordarei **nenhuma** quest=C3=A3o jur=C3=ADd= ica relacionada a +c=C3=B3digo-fonte fechado, c=C3=B3digo-fonte oculto, blobs bin=C3=A1rios, = wrappers de +c=C3=B3digo-fonte ou qualquer outro termo usado para descrever drivers do = kernel +cujo c=C3=B3digo-fonte n=C3=A3o seja disponibilizado sob a GPL. Consulte u= m advogado +caso tenha alguma d=C3=BAvida jur=C3=ADdica. Sou programador e, portanto, = descreverei +aqui apenas as quest=C3=B5es t=C3=A9cnicas (isso n=C3=A3o significa que as= quest=C3=B5es +jur=C3=ADdicas sejam pouco importantes; elas s=C3=A3o reais e voc=C3=AA pr= ecisa estar sempre +ciente delas). + +Portanto, h=C3=A1 dois t=C3=B3picos principais: interfaces bin=C3=A1rias d= o kernel e +interfaces est=C3=A1veis de c=C3=B3digo-fonte do kernel. Ambos dependem um= do outro, +mas discutiremos primeiro a parte referente =C3=A0s interfaces bin=C3=A1ri= as para +deix=C3=A1-la de lado. + + +Interface bin=C3=A1ria do kernel +--------------------------- + +Supondo que tiv=C3=A9ssemos uma interface est=C3=A1vel de c=C3=B3digo-font= e para o kernel, +uma interface bin=C3=A1ria surgiria naturalmente tamb=C3=A9m, certo? Errad= o. Considere +os seguintes fatos sobre o kernel Linux: + + - Dependendo da vers=C3=A3o do compilador C utilizada, diferentes estrut= uras de + dados do kernel ter=C3=A3o diferentes alinhamentos e poder=C3=A3o at= =C3=A9 mesmo incluir + fun=C3=A7=C3=B5es de maneiras distintas (por exemplo, tornando determi= nadas fun=C3=A7=C3=B5es + inline ou n=C3=A3o). A organiza=C3=A7=C3=A3o das fun=C3=A7=C3=B5es ind= ividuais n=C3=A3o =C3=A9 t=C3=A3o importante, + mas as diferen=C3=A7as no preenchimento das estruturas de dados s=C3= =A3o muito + importantes. + + - Dependendo das op=C3=A7=C3=B5es selecionadas durante a compila=C3=A7= =C3=A3o do kernel, uma + grande variedade de comportamentos pode ser assumida pelo kernel: + + - diferentes estruturas podem conter campos diferentes; + - algumas fun=C3=A7=C3=B5es podem nem sequer ser implementadas (por = exemplo, + determinados bloqueios s=C3=A3o completamente eliminados durante a + compila=C3=A7=C3=A3o em kernels sem SMP); + - a mem=C3=B3ria dentro do kernel pode ser alinhada de maneiras dife= rentes, + dependendo das op=C3=A7=C3=B5es de compila=C3=A7=C3=A3o. + + - O Linux =C3=A9 executado em uma grande variedade de arquiteturas de + processadores. N=C3=A3o h=C3=A1 como drivers bin=C3=A1rios compilados = para uma arquitetura + funcionarem corretamente em outra. + +V=C3=A1rios desses problemas podem ser contornados simplesmente compilando= o m=C3=B3dulo +para uma configura=C3=A7=C3=A3o espec=C3=ADfica e exata do kernel, utiliza= ndo exatamente o +mesmo compilador C empregado na compila=C3=A7=C3=A3o do kernel. Isso =C3= =A9 suficiente caso +voc=C3=AA queira fornecer um m=C3=B3dulo para uma determinada vers=C3=A3o = de uma distribui=C3=A7=C3=A3o +Linux espec=C3=ADfica. Por=C3=A9m, multiplique essa =C3=BAnica compila=C3= =A7=C3=A3o pelo n=C3=BAmero de +distribui=C3=A7=C3=B5es Linux existentes e pelo n=C3=BAmero de vers=C3=B5e= s suportadas de cada +distribui=C3=A7=C3=A3o e voc=C3=AA rapidamente ter=C3=A1 um pesadelo de di= ferentes op=C3=A7=C3=B5es de +compila=C3=A7=C3=A3o em diferentes vers=C3=B5es. Al=C3=A9m disso, cada ver= s=C3=A3o de uma distribui=C3=A7=C3=A3o +Linux cont=C3=A9m v=C3=A1rios kernels, cada um ajustado para diferentes ti= pos de +hardware (diferentes tipos de processadores e diferentes op=C3=A7=C3=B5es)= . Portanto, +mesmo para uma =C3=BAnica vers=C3=A3o, voc=C3=AA precisar=C3=A1 criar v=C3= =A1rias vers=C3=B5es do seu m=C3=B3dulo. + +Acredite em mim: com o tempo, voc=C3=AA enlouquecer=C3=A1 se tentar oferec= er suporte a +esse tipo de distribui=C3=A7=C3=A3o. Aprendi isso da maneira mais dif=C3= =ADcil h=C3=A1 muito +tempo... + +Interfaces est=C3=A1veis de c=C3=B3digo-fonte do kernel +---------------------------------------------- + +Esse =C3=A9 um t=C3=B3pico um pouco mais "vol=C3=A1til" se voc=C3=AA conve= rsar com algu=C3=A9m que est=C3=A1 +tentando manter atualizado, ao longo do tempo, um driver do kernel Linux q= ue +n=C3=A3o est=C3=A1 na =C3=A1rvore principal do kernel. + +O desenvolvimento do kernel Linux =C3=A9 cont=C3=ADnuo e ocorre em ritmo a= celerado, +sem desacelerar. Por isso, os desenvolvedores do kernel encontram bugs nas +interfaces existentes ou descobrem maneiras melhores de fazer as coisas. +Quando isso acontece, eles corrigem as interfaces atuais para que funcionem +melhor. Nesse processo, nomes de fun=C3=A7=C3=B5es podem mudar, estruturas= podem crescer +ou diminuir e par=C3=A2metros de fun=C3=A7=C3=B5es podem ser reformulados.= Quando isso +acontece, todos os locais dentro do kernel que utilizam essa interface s= =C3=A3o +corrigidos ao mesmo tempo, garantindo que tudo continue funcionando +corretamente. + +Como exemplos espec=C3=ADficos disso, as interfaces USB internas do kernel +passaram por pelo menos tr=C3=AAs reformula=C3=A7=C3=B5es diferentes ao lo= ngo da exist=C3=AAncia +desse subsistema. Essas reformula=C3=A7=C3=B5es foram feitas para resolver= diversos +problemas: + + - Uma mudan=C3=A7a de um modelo s=C3=ADncrono de fluxos de dados para um= modelo + ass=C3=ADncrono. Isso reduziu a complexidade de v=C3=A1rios drivers e = aumentou a + taxa de transfer=C3=AAncia de todos os drivers USB, de modo que atualm= ente + executamos quase todos os dispositivos USB na maior velocidade poss=C3= =ADvel. + + - Foi feita uma mudan=C3=A7a na maneira como os pacotes de dados eram al= ocados + pelos drivers USB a partir do n=C3=BAcleo USB, de modo que todos os dr= ivers + passaram a precisar fornecer mais informa=C3=A7=C3=B5es ao n=C3=BAcleo= USB, corrigindo + diversos deadlocks documentados. + +Isso contrasta fortemente com v=C3=A1rios sistemas operacionais de c=C3=B3= digo fechado, +que tiveram de manter suas interfaces USB antigas ao longo do tempo. Isso +permite que novos desenvolvedores utilizem acidentalmente interfaces antig= as +e fa=C3=A7am as coisas de maneira inadequada, prejudicando a estabilidade = do +sistema operacional. + +Em ambos os casos, todos os desenvolvedores concordaram que essas eram +mudan=C3=A7as importantes que precisavam ser feitas, e elas foram realizad= as com +relativamente pouco esfor=C3=A7o. Se o Linux tivesse de garantir a preserv= a=C3=A7=C3=A3o de +uma interface de c=C3=B3digo-fonte est=C3=A1vel, uma nova interface teria = de ser criada, +enquanto a interface antiga e defeituosa teria de continuar sendo mantida = ao +longo do tempo, resultando em trabalho adicional para os desenvolvedores U= SB. +Como todos os desenvolvedores USB do Linux realizam esse trabalho em seu +pr=C3=B3prio tempo, pedir que programadores fa=C3=A7am trabalho extra, sem= nenhum +benef=C3=ADcio e gratuitamente, n=C3=A3o =C3=A9 uma possibilidade. + +Quest=C3=B5es de seguran=C3=A7a tamb=C3=A9m s=C3=A3o muito importantes par= a o Linux. Quando um +problema de seguran=C3=A7a =C3=A9 encontrado, ele =C3=A9 corrigido em um p= er=C3=ADodo muito curto. +Em diversas ocasi=C3=B5es, isso fez com que interfaces internas do kernel = fossem +reformuladas para impedir que o problema de seguran=C3=A7a ocorresse. Quan= do isso +acontece, todos os drivers que utilizam essas interfaces tamb=C3=A9m s=C3= =A3o corrigidos +ao mesmo tempo, garantindo que o problema de seguran=C3=A7a seja resolvido= e n=C3=A3o +possa reaparecer acidentalmente no futuro. Se as interfaces internas n=C3= =A3o +pudessem ser alteradas, n=C3=A3o seria poss=C3=ADvel corrigir esse tipo de= problema de +seguran=C3=A7a e garantir que ele n=C3=A3o voltasse a ocorrer. + +As interfaces do kernel s=C3=A3o aprimoradas ao longo do tempo. Se ningu= =C3=A9m estiver +utilizando uma determinada interface, ela =C3=A9 removida. Isso garante qu= e o +kernel permane=C3=A7a o menor poss=C3=ADvel e que todas as interfaces exis= tentes possam +ser testadas da melhor maneira poss=C3=ADvel (=C3=A9 praticamente imposs= =C3=ADvel testar +adequadamente a validade de interfaces que n=C3=A3o s=C3=A3o utilizadas). + + +O que fazer +----------- + +Ent=C3=A3o, se voc=C3=AA possui um driver do kernel Linux que n=C3=A3o est= =C3=A1 na =C3=A1rvore +principal do kernel, o que voc=C3=AA, como desenvolvedor, deve fazer? Dist= ribuir +um driver bin=C3=A1rio para cada vers=C3=A3o diferente do kernel em cada d= istribui=C3=A7=C3=A3o +=C3=A9 um pesadelo, e tentar acompanhar uma interface do kernel que est=C3= =A1 em +constante mudan=C3=A7a tamb=C3=A9m =C3=A9 uma tarefa dif=C3=ADcil. + +Simples: coloque seu driver na =C3=A1rvore principal do kernel (lembre-se = de que +estamos falando aqui de drivers distribu=C3=ADdos sob uma licen=C3=A7a com= pat=C3=ADvel com +a GPL; se seu c=C3=B3digo n=C3=A3o se enquadra nessa categoria, boa sorte,= voc=C3=AA est=C3=A1 +por conta pr=C3=B3pria aqui, seu parasita). Se seu driver estiver na =C3= =A1rvore e uma +interface do kernel mudar, ele ser=C3=A1 corrigido pela pr=C3=B3pria pesso= a que realizou +a altera=C3=A7=C3=A3o no kernel. Isso garante que seu driver continue semp= re compil=C3=A1vel +e funcionando ao longo do tempo, exigindo muito pouco esfor=C3=A7o de sua = parte. + +Os excelentes efeitos colaterais de ter seu driver na =C3=A1rvore principa= l do +kernel s=C3=A3o: + + - A qualidade do driver aumentar=C3=A1, enquanto os custos de manuten=C3= =A7=C3=A3o + (para o desenvolvedor original) diminuir=C3=A3o. + + - Outros desenvolvedores adicionar=C3=A3o funcionalidades ao seu driver. + + - Outras pessoas encontrar=C3=A3o e corrigir=C3=A3o bugs no seu driver. + + - Outras pessoas encontrar=C3=A3o oportunidades de otimiza=C3=A7=C3=A3o = no seu driver. + + - Outras pessoas atualizar=C3=A3o o driver para voc=C3=AA quando mudan= =C3=A7as em + interfaces externas exigirem isso. + + - O driver ser=C3=A1 automaticamente distribu=C3=ADdo por todas as distr= ibui=C3=A7=C3=B5es + Linux, sem que seja necess=C3=A1rio pedir =C3=A0s distribui=C3=A7=C3= =B5es que o adicionem. + +Como o Linux oferece suporte, "pronto para uso", a um n=C3=BAmero maior de +dispositivos diferentes do que qualquer outro sistema operacional, e ofere= ce +suporte a esses dispositivos em mais arquiteturas de processadores diferen= tes +do que qualquer outro sistema operacional, esse modelo comprovado de +desenvolvimento deve estar fazendo alguma coisa certa :) + + +------ + +Agradecimentos a Randy Dunlap, Andrew Morton, David Brownell, Hanna Linder, +Robert Love e Nishanth Aravamudan pela revis=C3=A3o e pelos coment=C3=A1ri= os sobre +este documento. --- base-commit: 791e420360669d55b7f90ca0c6d61b10e4992aec change-id: 20260819-ptbr-stable-api-nonsense-c43d245aaf59 Best regards, --=20 Lucas Adryell Ramalho