No primeiro artigo, definimos o que seria compilação cruzada, e criamos nosso primeiro exemplo de compilação. Gerando binário de 32bits em máquina 64bits.
Este será o primeiro de alguns artigos que irei abordar sobre compilação cruzada.
Definição
Compilação Cruzada é a capacidade de compilar um aplicativo para um processador que não é o que esta usando.
Definição grosseira, no wiki deve ter alguma melhor, rs.
O processo de compilação cruzada depende de como, e do alvo (target) que iremos compilar.
No nosso caso, iremos compilar uma aplicação 32bits em um sistema 64bits.
O nosso primeiro caso, é montar nossa aplicação.
Objetivo
Como objetivo deste artigo, apresentaremos compilação cruzada, desenvolvendo uma aplicação 32bits em um sistema 64bits linux.
Pré requisitos
Antes de começar precisamos preparar a máquina para compilação cruzada. Para isso, é necessário instalar as libs 32 bits em uma máquina 64 bits.
O primeiro passo é baixar o pacote:
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
pacotes para compilação cruzada
Ao instalar o pacote, seu sistema criará várias pastas.
Em geral, um programa não roda sozinho, ele chama uma série de libs que são associadas a funcionálidades. Uma aplicação 64 bits, nativa, aponta sempre para as /usr/lib, porem ao criar um ambiente misto, criamos dois conjuntos de pastas.
Ao compilar um ambiente 32 bits, as libs associadas ao ambiente 32 deverão estar instaladas na pasta /usr/lib32.
Agora para o ambiente 64bits, temos as libs /usr/lib64.
Ao instalar este pacote criamos esta divisão. Porem vale lembrar que criamos os pacotes básicos, cabe ao programador desenvolver e aferir qual o conjunto de pacotes ele irá necessitar, fazendo a instalação do referido pacote para cada uma das pastas necessárias.
Dado a explicação conceitual, vamos ao que interessa!
GIT
Para isso iremos montar um projeto no git, conforme nossa explicação:
No intuito de desenvolver seu negócio, hoje muitas pessoas tem começado seus próprios blogs e sites.
Os custos relacionado a manter e administrar um site, sempre foi muito caro.
História até aqui
Inicialmente os custos de energia, infra estrutura, ip fixo, domínio, dificultavam muito o acesso a pequenos empresários.
Com o tempo algumas empresas tornaram-se especialistas em hospedagem, o que diminuiu em muito o custo. Porem o preço desta queda, era a massificação dos produtos, e serviços padronizados, que muitas vezes não atendia a necessidade do pequeno empresario.
Em geral os grandes players cobravam taxas até com baixo custo, porem com acesso a banco e limitado a execução de scripts PHP.
De forma geral, quando o negócio precisava de customização mais avançada, tal como scripts, hospedagem de cgi, ou outros programas em background e portas. O custo do serviço voltava a taxas astronomicas.
Em geral os grandes players, baseavam o custo na baixa demanda de pequenos sites, principalmente aqueles rodando wordpress. Pois poderiam subdividir a mesma máquina em vários hosts. Ganhando em escala.
Raspberry
raspberry PI 4
O Raspberry PI já comecou de forma disrruptiva, apresentando em uma pequena placa, um sistema operacional robusto.
E hoje principalmente com as novas versões de 4Gb e 8G, com capacidade de processamento e memória realmente impressionante.
Esta pequena maravilha, com um processador de 4 núcleos, consegue dar conta sem muito esforço de um site.
IP Fixo
Nos conectamos na grande rede (Internet), através do protocolo TCP/IP, que por definição ao fazermos, ganhamos uma identidade (IP), esta identidade, diz quem somos e onde estamos.
O Endereço IP faz bem isso, porem de forma geral as operadoras de internet, tem usado IPs dinâmicos, pois aloca estes ips a medida que os usuários solicitam.
Porem empresas como a Alcans, tem cobrado valores expressivamente próximos dos valores praticados normalmente no mercado, porem com ip fixo.
Isso permitiu de forma geral, a construção e hospedagem de sites.
Compra de Domínios
Ter uma máquina, o IP fixo, não permite ainda ter um site na web. É necessário a compra de um domínio.
Domínio de fato é o nome que será encontrado o seu site. No meu caso http://maurinsoft.com.br , o dominio tem diversos formatos e sabores. Podendo ser nacional ou internacional.
Em geral o domínio tem um custo anual que varia em torno de R$69,00 ano. O que não é muito caro. Quase o mesmo que uma pizza por ano.
Conclusão
O uso de equipamentos de baixo custo, e alto rendimento, associado a crescente concorrencia de empresas como a alcans, tem permitido que pequenos empresários consigam o tão sonhado site próprio. Com algum conhecimento técnico, hoje é possivel com um pequeno custo mensal de mais ou menos $50,00 de aumento de energia. Ter seu dominio hospedado em sua própria casa.
Um erro muito comum em códigos de programadores, é deixar de testar permissão de arquivos.
Muitas vezes programadores experientes usam arquivos para troca de dados ou informações.
Essa prática pode ajudar muito, porem há de se tomar alguns cuidados.
Permissão de arquivos e pastas são dados pelo sistema operacional, em alguns casos, o programador, tenta gravar em locais que exige permissão prévia deste local.
É uma boa prática, antes de ler um arquivo, ler as permissões sobre o mesmo.
Em algumas situações, tentamos escrever dados em arquivos, que possuimos permissão apenas para leitura.
Estarei postando aqui um exemplo simples de programa.
O comando stat, permite ler a permissão de um arquivo.
Alem do stat, temos outros:
stat() e fstatat() recuperam informações sobre o arquivo apontado pelo nome do caminho; as diferenças para fstatat() são descritas abaixo.
lstat() é idêntico a stat(), exceto que se pathname for um link simbólico, ele retornará informações sobre o link em si, não o arquivo ao qual o link se refere.
fstat() é idêntico a stat(), exceto que o arquivo sobre o qual a informação deve ser recuperada é especificado pelo descritor de arquivo fd.