All Projects → vercas → Beelzebub

vercas / Beelzebub

Licence: other
The Lord of Flies - A hobby operating system

Programming Languages

c
50402 projects - #5 most used programming language
lua
6591 projects
assembly
5116 projects

Projects that are alternatives of or similar to Beelzebub

Toaruos
A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
Stars: ✭ 4,687 (+19429.17%)
Mutual labels:  x86, operating-system, operating-systems, x86-64
profiler-api
The portable version of JetBrains profiler API for .NET Framework / .NET Core / .NET / .NET Standard / Mono
Stars: ✭ 21 (-12.5%)
Mutual labels:  x64, x86-64, x86
kasm
Assembler library for Kotlin
Stars: ✭ 40 (+66.67%)
Mutual labels:  x64, x86-64, x86
Labeless
Labeless is a multipurpose IDA Pro plugin system for labels/comments synchronization with a debugger backend, with complex memory dumping and interactive Python scripting capabilities.
Stars: ✭ 378 (+1475%)
Mutual labels:  x86, x86-64, x64
Asm Cli
Interactive shell of assembly language(X86/X64) based on unicorn and keystone
Stars: ✭ 211 (+779.17%)
Mutual labels:  x86, x86-64, x64
TempleOS-EE
TempleOS Explorers Edition
Stars: ✭ 45 (+87.5%)
Mutual labels:  x64, operating-system, operating-systems
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (+95.83%)
Mutual labels:  x64, x86-64, operating-system
Dennix
Dennix is a unix-like hobbyist operating system written from scratch.
Stars: ✭ 53 (+120.83%)
Mutual labels:  x86, x86-64, operating-system
Reloaded.Assembler
Minimal .NET wrapper around the simple, easy to use Flat Assembler written by Tomasz Grysztar. Supports both x64 and x86 development.
Stars: ✭ 17 (-29.17%)
Mutual labels:  x64, x86-64, x86
scaraOS
A 32bit multiboot OS kernel for IA32 (PC/AT) systems.
Stars: ✭ 31 (+29.17%)
Mutual labels:  operating-system, x86, operating-systems
Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+3308.33%)
Mutual labels:  x86, x86-64, x64
Asm
Assembly Tutorial for DOS
Stars: ✭ 125 (+420.83%)
Mutual labels:  x86, x86-64, x64
X64dbg
An open-source x64/x32 debugger for windows.
Stars: ✭ 37,825 (+157504.17%)
Mutual labels:  x86, x86-64, x64
oberon-07-compiler
Oberon-07 compiler for x64 (Windows, Linux), x86 (Windows, Linux, KolibriOS), MSP430x{1,2}xx, STM32 Cortex-M3
Stars: ✭ 45 (+87.5%)
Mutual labels:  x64, x86-64, x86
Toaru Nih
NOTICE: The ToaruOS-NIH Project has been MERGED UPSTREAM. This repository is now archived.
Stars: ✭ 66 (+175%)
Mutual labels:  x86, operating-system, operating-systems
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+350%)
Mutual labels:  x64, x86-64, x86
FoxOS
The FoxOS main repository
Stars: ✭ 48 (+100%)
Mutual labels:  x64, x86-64, operating-system
X86 Bare Metal Examples
Dozens of minimal operating systems to learn x86 system programming. Tested on Ubuntu 17.10 host in QEMU 2.10 and real hardware. Userland cheat at: https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly ARM baremetal setup at: https://github.com/cirosantilli/linux-kernel-module-cheat#baremetal-setup 学习x86系统编程的数十个最小操作系统。 已在QE…
Stars: ✭ 3,985 (+16504.17%)
Mutual labels:  x86, x86-64, x64
Distorm
Powerful Disassembler Library For x86/AMD64
Stars: ✭ 829 (+3354.17%)
Mutual labels:  x86, x86-64, x64
Unicorn
Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, X86)
Stars: ✭ 4,934 (+20458.33%)
Mutual labels:  x86, x86-64

Beelzebub Build Status IRC Channel

Building

Currently, Beelzebub requires the following to be built:

  1. GNU Make or vMake
  2. genisoimage (aka mkisofs)
  3. GCC targetting Beelzebub
  4. GNU Binutils targetting Beelzebub
  5. gzip and tar utilities.

Make or vMake are required for the whole process.
genisoimage is required for constructing an ISO file. You can skip this if you really want, but should you?
GCC is the only compiler supported right now. This will likely change in the future.
GNU Binutils is required (used indirectly through GCC) for binary linkage, binary stripping, and by accompanying utilitary scripts.

Use the links above to acquire the cross-compiler required to build Beelzebub. Don't forget to place the tools where they need to be.
The compiler paths are partially hardcoded into the makefiles, for now. Sorry.
You may use the grab_xcs_linux-amd64.sh file for more specific instructions.

Also, your output file of interest is /build/beelzebub.amd64.x86.iso when using GNU Make, or .vmake\amd64.debug\beelzebub.amd64.debug.iso when using vMake.

vMake

I have written my own build system to tackle the complex task of assembling, compiling, linking, archiving, compressing, copying, and all the miscellaneous operations involved in building the OS, as well as configuring the build.

As of right now, the build system is stable and usable, supports all the features of GNU Make that Beelzebub's makefiles use, and provides the same options which the makefiles emulated through targets.

It requires Lua 5.1 or 5.2 installed, and can benefit greatly from having LFS (LuaFileSystem) available. In absence of LFS, it will simply use the find tool for every filesystem operation unavailable in ANSI C (and, thus, Lua).
Besides this, it only requires the tools that the makefiles use.

A simple way to build Beelzebub is to run ./vmakefile.lua. Providing the --help argument will show all the available options.
An example of a more complex invocation is ./vmakefile.lua -t all --mtune=corei7-avx -j 8, which includes all tests, tunes the output code for a specific CPU feature set and runs the build in parallel.

vMake is the preferred tool to build Beelzebub.

Makefiles

These are documented in MAKEFILES.md. These will be deprecated soon in favor of vMake.

Utility scripts

I have included some Bash scripts for grabbing the build tools, mainly for Travis.
For usage, check .travis.yml.

The cross-compiler and genisoimage are guarenteed to work on Ubuntu 12.04 and 14.04. It is very likely that it will work on all versions in-between, and other distros as well.

grab_xcs_linux-amd64.sh

This one obtains my pre-built cross-compilers for 64-bit Linux hosts. Feel free to use if you trust me and the security of my webserver.

grab_genisoimage.sh

This one grabs genisoimage. The binary comes from Ubuntu Server 14.04's package.

License

Mostly University of Illinois - NCSA Open Source License, text and exceptions explained in LICENSE.md.
TLDRLegal summary for those who seek legal advice on the internet.

Miscellaneous

The Travis bot notifies of build statuses on ##beelzebub at Freenode. You should be able to find me there all the time.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].