Um sistema operacional com tudo incluído de 64 bits, do carregador de inicialização ao espaço do usuário.
Lensoros está migrando para longe do Github, a favor do Foss Codeberg.
Lensoros em Codeberg
Máquinas virtuais compatíveis e gratuitas:
Se você está interessado em cutucar o Lensoros e não editar o código, recomendo um lançamento pré-criado na página de lançamentos. Ele incluirá todos os recursos e instruções necessários sobre como executar o Lensoros. Lembre -se de que isso estará faltando muitos recursos para garantir a máxima compatibilidade entre os sistemas. Ao construir a partir da fonte, você pode construir para o seu sistema exato e obter todos os recursos possíveis ativados.
Nota: Não há automação para nada, exceto Qemu por enquanto. No entanto, existem instruções sobre como configurar uma máquina virtual no VirtualBox e VMware Workstation Player.
Quando o sistema de compilação CMake é gerado, ele procura Qemu no seu sistema; Se encontrar, adicionará os seguintes metas ao projeto. Invoque -os para lançar o Qemu a partir da mídia de inicialização do Lensoros correspondente, depois de construí -lo se não estiver atualizado.
Os alvos:
run_qemu - diretamente do diretório que imita lensoros.imgrunimg_qemu - lensoros.imgruniso_qemu - lensoros.isorunhda_qemu - lensoros.bin (mais comum)Para metas que atualmente não suportam partições GPT (ou seja, ISO, IMG e diretamente do diretório), não há espaço para usuários disponível, na verdade . Quero dizer, é possível, mas você teria que modificar as coisas para colocar os processos e bibliotecas do espaço do usuário na partição de inicialização, em vez de na partição de dados do espaço do usuário e depois modificar o kernel para carregá -los a partir daí.
Supondo que o sistema de construção cmake tenha sido gerado no bld/ subdiretório, invocar como:
cmake --build bld --target < name of target > New para criar uma nova máquina virtual (VM).Other e versão de Other/Unknown (64-bit) .Do not add a virtual hard disk .Create para criar a nova máquina virtual.Settings .System dentro da lista à esquerda.ICH9 .Enable EFI (special OSes only) .Storage dentro da lista à esquerda.IDE ) e selecione Remove Controller .Storage Devices rotulados pela área e selecione AHCI (SATA) .Optical Drive ou Hard Disk , dependendo se você deseja inicializar a partir do .iso ou .bin , respectivamente.Add a nova janela de seletor de mídia virtual que aparece.Optical Drive ou Hard Disk foi selecionado, escolha LensorOS.iso ou LensorOS.bin .Network dentro da lista à esquerda.Serial Ports dentro da lista à esquerda.Enable Serial Port está verificada, COM1 está selecionado, IRQ é 4 e I/O Port é 0x3F8 . Home na lista no lado esquerdo. Clique em Create a New Virtual Machine à direita.I will install the operating system later. opção.Other e uma versão de Other 64-bit .Customize Hardware...New CD/DVD à esquerda e clique em Advanced... à direita.SATA e clique em OK .Use ISO image file e clique em Browse...LensorOS.iso (localizado no bin/ ).Remove perto do centro inferior.Close na parte inferior direita para fechar a janela Configuração de hardware.Finish ..vmx em um editor de texto.firmware="efi" . Você precisará selecionar UEFI Shell assim que o VMware Workstation Boots em Lensoros (mesmo que diga algo como Unsupported ).
Existem várias etapas no processo de construção do Lensoros, descrito aqui.
Nota: Todos os blocos de comandos do shell fornecidos devem começar com o diretório de trabalho na raiz do repositório.
Faça o download e instale as seguintes dependências em todo o projeto, se você ainda não as possui ou se a versão que você tiver não estiver atualizada.
sudo apt install build-essential makeEm seguida, clone o código -fonte do repositório. Se você deseja editar o código e fazer contribuições, bifurque o primeiro e o clone desse repositório.
git clone https://codeberg.org/LensPlaysGames/LensorOS.git Isso criará um subdiretório intitulado LensorOS com o conteúdo deste repositório no diretório de trabalho atual.
Nota: Esta seção vai mudar , e qualquer informação aqui pode ficar incorreta ou desatualizada a qualquer momento. Isso se deve a estar no meio da migração de carregadores de inicialização para o carregador de inicialização do RADII criado por auto-criado.
O carregador de inicialização é um aplicativo EFI; Especificamente, um carregador operacional escrito para a especificação da UEFI. (Atualmente v2.9). Essa especificação descreve o uso de executáveis PE32+ com um subsistema específico. Como você deve saber, o formato PE32+ também é usado pelo Windows, pois é o formato executável. Isso significa que um compilador que gera executáveis do Windows gerará o formato adequado do executável para um aplicativo EFI, dada a modificação do subsistema. No entanto, vinte anos atrás, a GNU decidiu escrever scripts de ligação de realocação personalizados que criam executáveis PE32+ dos executáveis da ELF. Isso significa que um compilador que gera executáveis de ELF é usado, então o executável é transformado em um executável PE32+ com o subsistema adequado para um aplicativo EFI. Felizmente, tudo isso é tratado pelo sistema de construção.
Se você já possui um sistema de construção, pode usar o seguinte para atualizar o bootloader (existe apenas no UNIX ):
cmake --build bld --target bootloaderAo iniciar o Fresh, você pode executar o sistema de construção do bootloader manualmente.
Crie as dependências para o carregador de inicialização:
cd gnu-efi
make Isso só precisa ser feito uma vez, para gerar libgnuefi.a .
A partir daqui, o executável do bootloader pode ser construído usando o bootloader Make Target:
cd gnu-efi
make bootloaderVeja o ferramenta ReadMe
Quando a cadeia de ferramentas for utilizável, continue aqui.
Eu recomendo dar uma olhada no toolchain/config.cmake e ver o que há para mexer, mas seguir os padrões também é muito bem.
Primeiro, gerar um sistema de construção usando cmake. Se você escolher um sistema de construção diferente, lembre -se de que nem todos os sistemas de construção honram nossa solicitação para usar uma cadeia de ferramentas personalizada. Eu recomendo o Ninja, pois pode acelerar os tempos de construção. Outra dica para acelerar os tempos de construção; Instale ccache . Os scripts cmake neste projeto detectam e o usam automaticamente.
cmake -G Ninja -B bldEsteja ciente de que existem mensagens críticas na saída do comando acima que podem detalhar metas críticas não foram criadas devido ao fato de os programas não estarem encontrados no sistema.
Para construir a LIBC, os programas de espaço de usuários e, finalmente, o executável do kernel, invocam o sistema de construção gerado pela CMake:
cmake --build bldO CMake criará certos alvos se as dependências adequadas forem detectadas no sistema.
Para ver uma lista de todos os objetivos disponíveis, use o seguinte comando:
cmake --build bld --target helpAlvos mais usados das lentes:
runhda_qemuimage_gptimage_vdiuserspacekernelAqui está uma lista das metas de construção atuais relacionadas à geração de mídia de inicialização, bem como suas dependências listadas abaixo de cada um.
image_raw -Combine executáveis e recursos construídos para gerar mídia de inicialização FAT32 compatível com a UEFI.gnu-efi/x86_64/bootloader/main.efi .Kernel (depende de boot/LensorOS/kernel.elf ).sudo apt install mtoolsimage_gpt -Crie imagem de disco rígido inicializada por GPT, a partir da mídia de inicialização do FAT32.image_rawscripts .image_iso -Crie ISO-9660 "el-Torito" CD-ROM Imagem a partir da mídia de inicialização Fat32.image_rawsudo apt install xorrisoimage_vdi -Converta a imagem de disco bruto em busca de GPT em formato de imagem de disco virtual ( .vdi ).image_gptComo exemplo, uma imagem de inicialização compatível com UEFI formatada FAT32 pode ser gerada usando o seguinte comando:
cmake --build bld --target image_rawÉ preciso apenas um comando para construir o kernel Lensoros, gerar uma nova mídia de inicialização e iniciar a máquina virtual Qemu em Lensoros.
cmake --build bld --target runhda_qemuO trabalho em Lensoros começou em 9 de janeiro de 2022.
scripts/sysroot.sh ).