Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Marc...
Tela cheia

Em breve no Kernel Linux 3.7 - Parte 3 - Infraestrutura

27 de Novembro de 2012, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.
Visualizado 212 vezes

Logo Tux WorkerAutor: Thorsten Leemhuis (Copyright (c) 2012 Heise Media UK Ltd.)
Traduzido: Marcelo Soares Souza (Dúvidas e melhorias na tradução envie por E-mail)
Originalmente: http://h-online.com/-1755953
 
Agora o Kernel do Linux 3.7 pode assinar módulos do kernel, e verificar estas assinaturas e, portanto, a integridade destes módulos antes de carregá-los (1[1], 2[2], 3[3], 4[4], 5[5], 6[6], 7[7]). Algumas distribuições "enterprise" tiveram funcionalidades similares por um tempo[8] - por exemplo, para garantir que os módulos usados para soluções de problemas são realmente da distribuição do kernel. Desenvolvedores tem trabalhado na integração destas funcionalidades dentro do Linux com algumas distribuições que carregam apenas módulos assinados[9] necessários quando o sistema é iniciado com o boot seguro UEFI - isto agora é possível com o código que foi integrado no Kernel.
 
Outra nova funcionalidade é a extensão para avaliação de integridade[10] para a Integrity Measurement Architecture[11] (IMA), que o kernel já suporta há algum tempo (1[12], 2[13]). O IMA pode armazenar hashes assinados para arquivos e utilizá-los para reconhecer[14] quando binários da instalação do Linux forem alterados. A extensão de avaliação de integridade pode agora verificar os hashes e prevenir o acesso caso este tenha sido alterado. O comportamento do mecanismo pode ser configurado com um novo parâmetro de boot. O IMA pode utilizar uma Trusted platform module (TPM) para assinar e assim salvar os hashes; os desenvolvedores do kernel continuam trabalhando no suporta para o TPMs (1[15], 2[16]).
 
Independência
 

O Kernel pode agora carregar arquivos de firmware diretamente do disco sem depender do udev (1[17], 2[18]). Isto é consequência de uma mudança recente na forma que o udev lida com firmwares e que causava um atraso durante a inicialização do sistema sobre certas circunstâncias; este comportamento levou a uma longa discussão[19] no qual Linus Torvalds criticou[20] os desenvolvedores do udev - que por sua vez, não só levou ao desenvolvimento de um carregador de firmware para o kernel, mas também levaram ao fork do próprio udev (eudev[21]). Desde então, uma alteração foi feita no udev e que também corrige o problema; além disso, o mantenedor do udev, Kay Sievers escreveu [22], mesmo antes da mundaça do kernel, que ele pensava que o kernel deveria ser capaz de carregar arquivos de firmware - ele nos contou que é mais fácil e muito mais confiável do que fazer o udev lidar com isto no espaço do usuário.
 
Separação
 
Eric W. Biederman integrou um grande patch[23] que aprimora o suporte para namespaces, que é um recurso útil para a separação de IDs de usuários e grupos entre hosts e containers (1[24], 2[25], 3[26], 4[27]). As mudanças aprimoram melhorias do "user namespace" que Biederman contribuiu para o Linux 3.5; ele descreve[28] esta mudança como uma correção de curso para o user namespaces. Estas mudanças deve significar que agora tudo deve funcionar, de acordo com esta  nova abordagem[29] - exceto nos mais complexos sistemas de arquivos tais como CIFS, NFS, OCFS2 e XFS. Suporte para estes sistemas de arquivos estão sendo desenvolvidos[30] e devem ser incluído no Linux 3.8. Biederman está trabalhando em outras correções[31] que dever unir toda a reconstrução do código do namespace; a nova infraestrutura deve fica completa e deve permitir aos usuários configurar e usar o namespace.
 
A infraestrutura do cgroups - muitas vezes usadas em containers mas que também podem ser usados ​​em outras situações - agora notifica[32] aos usuários quando este cria uma hierarquia aninhada no control group que utiliza um controlador que não suporte o aninhamento; esta questão é apenas uma[33] de muitos problemas[34] no código do cgroups que o mantenedor do cgroups Tejun Heo esta trabalhando na correção[35]. Outra adição é o suporte a atributos estendidos em sistemas de arquivos virtuais do cgroup (1[36], 2[37]), uma funcionalidade que o desenvolvedor do systemd, Lennart Poettering, tem na sua lista de “correções desejadas”[38], afim de ser capaz de salvar metadados para serviços em segundo plano.
 
Diversos
 
Linus Torvalds removeu[39] o arquivo Documentation/feature-removal.txt usado para anunciar as remoções de funcionalidades do kernel. Em seu comentário, Torvalds descreve o documento como estúpido, dizendo que se um recurso não é usado, então este só poderia ser removido; caso contrário, não há razão para removê-lo.
 
A opção do make para configurar todas as configurações não utilizadas por padrão é agora chamada "olddefconfig[40]" - o desenvolvedor que fez a mudança relata que o antigo parâmetro, "oldnoconfig", confundia os usuários porque não fazia o que o nome sugeria.
 
A extensão Yama security extension pode agora ser usada[41] com outros LSMs (Linux Security Modules), de modo que as funções de segurança do Yama pode ser combinadas, por exemplo com o SELinux.  
 
Devido às alterações[42] no acesso aos dados de coordenação usando o RCU (read copy update), os threads do kernel como rcu_sched, rcu_preempt e rcu_bh agora estão aparecendo na lista de processos - e consumindo mais tempo de CPU em alguns sistemas, de acordo com programas como ps e top. Na verdade, o código do RCU necessitava o mesmo tempo de CPU antes, porém os processos estavam dentro do thread de ksoftirqd. O mantenedor do RCU, Paul McKenney, explica a situação e dar outras informações em um artigo LWN.net[43].
 
Para Hackers do Kernel

 
O kernel esta agora linkando o debugfs, que é tipicamente encontrado no /debug/ ou /sys/kernel/debug/, com as permissões 0700 por padrão[44], de modo que, em geral, apenas usuários root podem ler estes arquivos.
 
Uma implementação genérica[45] para a tabela simples de hash[46] foi adicionado ao kernel. Nas últimas versões do Kernel, é esperado que esta mudança[47] substitua um grande número de outras implementações[48] que apareceram em vários subsistemas do kernel e que agora realizam a mesma função de múltiplas maneiras.
 
Workqueues são agora "não-reentrante" por padrão[49] - isto é, estes não são executados com o mesmo código em múltiplos processos ao mesmo tempo. Muitos desenvolvedores não tinham conhecimento[50] da execução concorrente e por isso foram surpreendidos pois o código do workqueue não funcionava conforme esperado neste cenário.
 
Os desenvolvedores do Kernel iniciaram o armazenamento dos cabeçalhos dos arquivos com definições de tipo de dados usados por ferramentas em diretórios chamados "uapi" localizado no diretório include/ e arch/<arch>/include/ (1[51], 2[52], 3[53]). Esta mudança deve facilitar a diferenciação entre estes de definições usadas dentro do kernel e tomar conta[54] de alguns problemas de integração de arquivos de cabeçalhos. Esta reestruturação[55] é uma das principais razões o porque do diffstat mostrar tantas mudanças[56] comparado ao Linux 3.6.
 
Links deste artigo:
[1] http://git.kernel.org/linus/80d65e58e93ffdabf58202653a0435bd3cf2d82e
[2] http://git.kernel.org/linus/106a4ee258d14818467829bf0e12aeae14c16cd7
[3] http://git.kernel.org/linus/e2a666d52b4825c26c857cada211f3baac26a600
[4] http://git.kernel.org/linus/85ecac79457e30b19802bbfaeba1856ad00945b0
[5] http://git.kernel.org/linus/631cc66eb9eaa7296e303197ff1eb0f55e32b61d
[6] http://git.kernel.org/linus/d441108c6f77541bb66fcd5b3389415b4c232008
[7] http://git.kernel.org/linus/ea0b6dcf71d216dc11733ac19b26df0f5d0fd6c2
[8] http://lwn.net/Articles/515007/
[9] http://www.h-online.com/news/item/State-of-Secure-Boot-detailed-1741460.html
[10] http://sourceforge.net/apps/mediawiki/linux-ima/index.php?title=Main_Page#IMA-appraisal
[11] http://linux-ima.sourceforge.net/
[12] http://git.kernel.org/linus/2fe5d6def1672ae6635dd71867bf36dcfaa7434b
[13] http://git.kernel.org/linus/07f6a79415d7d502ee0c7d02ace6594a7be7429a
[14] http://lwn.net/Articles/488906/
[15] http://git.kernel.org/linus/aad628c1d91a6db57e572e4c1f35e863d81061d7
[16] http://git.kernel.org/linus/132f7629474424418a5cdd666796ad3cfa4dc0c5
[17] http://git.kernel.org/linus/abb139e75c2cdbb955e840d6331cb5863e409d0e
[18] http://git.kernel.org/linus/10bd4c7572b6c6eb97f1c15dedd2d36c63907f91
[19] http://lwn.net/Articles/518942/
[20] http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/49758/focus%3D55168
[21] http://www.h-online.com/news/item/Gentoo-developers-start-udev-fork-1752421.html
[22] http://thread.gmane.org/gmane.linux.kernel/1369664
[23] http://article.gmane.org/gmane.linux.kernel.containers/23940
[24] http://git.kernel.org/linus/e8a3e4719b7ec19288c56f22623f537cb78885c1
[25] http://git.kernel.org/linus/7064d16e162adf8199f0288b694e6af823ed5431
[26] http://git.kernel.org/linus/5f3a4a28ec140a90e6058d1d09f6b1f235d485e5
[27] http://git.kernel.org/linus/9a56c2db49e7349c7963f0ce66c1ef578d44ebd3
[28] http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-5-Part-5-Infrastructure-1635017.html
[29] https://lwn.net/Articles/491310/
[30] http://thread.gmane.org/gmane.linux.kernel.containers/24561
[31] http://thread.gmane.org/gmane.linux.kernel.containers/24484
[32] http://git.kernel.org/linus/8c7f6edbda01f1b1a2e60ad61f14fe38023e433b
[33] http://thread.gmane.org/gmane.linux.kernel.mm/86748
[34] http://thread.gmane.org/gmane.linux.kernel.containers/23698
[35] http://lwn.net/Articles/516908/
[36] http://git.kernel.org/linus/03b1cde6b22f625ae832b939bc7379ec1466aec5
[37] http://git.kernel.org/linus/19ec2567e0a5fe64f4404ad6df697894aec8c493
[38] http://www.h-online.com/open/features/Kernel-Log-Linux-3-1-approaches-1358320.html
[39] http://git.kernel.org/linus/9c0ece069b32e8e122aea71aa47181c10eb85ba7
[40] http://git.kernel.org/linus/fb16d8912db5268f29706010ecafff74b971c58d
[41] http://git.kernel.org/linus/c6993e4ac002c92bc75379212e9179c36d4bf7ee
[42] http://article.gmane.org/gmane.linux.kernel/1367653
[43] http://lwn.net/Articles/518953/
[44] http://git.kernel.org/linus/82aceae4f0d42f03d9ad7d1e90389e731153898f
[45] http://git.kernel.org/linus/d9b482c8ba1973a189f2d4c8175d405b87fbf2d7
[46] http://en.wikipedia.org/wiki/Hash_table
[47] http://thread.gmane.org/gmane.linux.kernel.mm/88612/focus%3D15785
[48] http://lwn.net/Articles/510202/
[49] http://git.kernel.org/linus/dbf2576e37da0fcc7aacbfbb9fd5d3de7888a3c1
[50] https://lwn.net/Articles/511421/
[51] http://git.kernel.org/linus/abbf1590de22a6d2240a59383477da50d1402f6a
[52] http://git.kernel.org/linus/ec28b7f250b19f31e14b69b015d61d0818bf43a0
[53] http://git.kernel.org/linus/607ca46e97a1b6594b29647d98a32d545c24bdff
[54] http://lwn.net/Articles/507794/
[55] http://article.gmane.org/gmane.linux.kernel/1367929
[56] http://www.h-online.com/news/item/Main-development-phase-of-Linux-3-7-completed-1729556.html


Tags deste artigo: kernel linux em breve no kernel linux software livre desenvolvimento