Vaga para programador Linux/C em Blumenau

Desenvolvedor de Software – Linux e C

Responsabilidades

Esta posição é responsável por desenhar e implementar aplicativos em SW para sistema operacional em Linux, incluindo desenvolvimento de novos aplicativos, melhorias e correções em aplicativos existentes, instalação de pacotes de aplicativos de código aberto. Esta posição responde para o supervisor do time.

Requerimentos

  • Mínimo de 4 anos de experiência em Linux e programação C
  • Excelente comunicação
  • Criativo e independente
  • Experiência requerida:
    • Experiência de trabalhar com desenvolvimento em Linux
    • Bom conhecimento de Linux Kernel e aplicações em Linux
  • Experiência desejada:
    • Conhecimento de redes TCP/IP
    • Conhecimento de configurações Linux
    • Ter trabalhado com porte de código Linux
    • Ter trabalhado com shell script
    • Familiarizado com projetos e bibliotecas de código aberto (open source)
    • Controle de revisão de código – SVN  ou CVS
    • Conhecimento em servidores de autenticação
    • Experiência em debugar código
  • Plus:
    • (Plus) – Experiência em compiladores de múltiplas plataformas (cross-compiling environment)
    • (Plus) – Algum conhecimento em servidores de processo do tipo HP iLO e Dell iDRAC
    • Plus: Chef/Puppet – alguma experiência

Interessados enviar CV para o email [email protected]

images

POSIX Regular Expression em C

Expressões Regulares são úteis para diversos fins, desde validações de números como CPF e CEP, até em validações de entradas de campos e checagem de strings. Linguagens como Python, Javascript, PHP e outras já possuem expressões regulares built-in, prontas para serem utilizadas pelos programadores. Nesta postagem mostraremos como construir expressões regulares com a POSIX RegEx na linguagem C na plataforma Linux.
(mais…)

index

Novidades que virão no GCC 6

Apesar do Clang estar ganhando terreno, o GCC ainda tem seu brilho. Confira algumas novidades da próxima release deste ótimo compilador:

  • Detecção de indentação errônea: O propósito deste warning é evitar erros como o que aconteceu com código relacionado ao SSL na Apple, onde uma indentação errada disfarçou um código que sempre executado, onde era necessário ser executado dentro de um bloco condicional. Para mais informações, veja Apple’s SSL iPhone vulnerability.
  • Comparações tautológicas: Esse warning existe para avisar o programador quando uma condição é testada duas vezes, ou quando um código testa o mesmo objeto duas vezes, o que pode ser um erro de digitação e pode causar algum erro no código.
  • Condições duplicadas: avisará quando existe um “else if” com a mesma comparação de um bloco “if”.
  • Shift de bits com valor negativo e shift overflow: Essas condições sempre geraram comportamentos indefinidos, e agora o GCC avisa o programador em tempo de compilação quando estas condições aparecerem.
  • Deferenciação de ponteiros nulos: GCC ficou mais agressivo na detecção de condições onde um valor NULL é deferenciado e quando uma função retorna NULL mesmo quando um atributo desta função explicitamente desabilita valores NULL.

Para mais informações, configura o artigo novidades no GCC 6 da Red Hat.

pthreads1

Linux API: pthreads – Parte 1

Processadores de múltiplos núcleos já são uma realidade nos computadores da grande maioria dos usuários comuns. Em meio a esse avanço podemos escrever programas que executam várias linhas de processamento em paralelo, podendo fazer com que esses programas tenham um tempo de resposta menor.

Para tal, este post mostrará como utilizar POSIX threads na linguagem C.

O que são threads?

Threads são linhas de execução para processos. Ao iniciar um processo, uma thread principal é iniciada, um processo então pode criar outras threads para que estas executem tarefas específicas e de forma paralela. Quando temos uma CPU com um único núcleo, dizemos que as threads executam de forma concorrente, uma vez que a CPU só pode executar uma thread por vez, mas há mais que uma para ser executada ao “mesmo tempo”. Já quando temos uma CPU com vários núcleos, as threads podem ser executadas tanto de forma concorrente como em paralelo, pois o scheduler pode priorizar outros programas do computador além do seu.

(mais…)

glibc-ghost

Como utilizar o getaddrinfo para evitar a falha GHOST

Em janeiro de 2015 se ouviu falar de uma falha de segurança na glibc chamada GHOST. Esta falha poderia ser explorada por um programa malicioso utilizando as funções gethostbyname() e gethostbyname2() da glibc. O ataque acontece por um buffer overflow dentro destas funções quando um endereço inválido é passando como parâmetro. Ao explorar esta falha, o atacante consegue executar códigos arbitrários com as permissões do usuários executando o processo.

(mais…)