🏢 An operating system that combine the desire of UNIX utopia from the 1970s with modern technology and engineering

Overview



Striking modernist shapes and bold use of modern C are the hallmarks of BRUTAL.
BRUTAL combine the desire of UNIX utopia from the 1970s with modern technology and engineering.


About

BRUTAL is a micro-kernel base operating system targeting the x86_64 architecture. ARM and Risc-V support is planned.

Roadmap

Right now the main goal of brutal is to run doom.

See the roadmap file for more information on how we plan to get there and where you can contribute.

Modern C

Brutal is written in a dialect of C called modern C characterize by the following principle:

  • Avoid pointers and prefer value semantic.
  • The standard library is old and unsafe, don't use it.
  • Don't be afraid of writing type generic code.

Here is more resources on the subject:

Acknowledgements

This project take inspirations and/or reuse code from the following projects.

See Acknowledgements.md

License

MIT License

The brutal operating system and its core components are licensed under the MIT License.

The full text of the license can be accessed via this link and is also included in the license file of this software package.

Issues
  • Make it compile on macOS (Monterey)

    Make it compile on macOS (Monterey)

    I used this configuration to compile it under macOS (Monterey).

    I need to obtain the following dependencies on my local system to compile it.

    brew install qemu nasm xorriso llvm binutils wget

    Then I run it via ./brutal.sh -r to open the qemu window.

    opened by jjuliano 9
  • Problem when building brutal

    Problem when building brutal

    It returns me this error: In file included from sources/kernel/x86_64/boot.c:21: sources/kernel/x86_64/stivale2.h:4:10: fatal error: 'stivale/stivale2.h' file not found #include <stivale/stivale2.h> ^~~~~~~~~~~~~~~~~~~~ 1 error generated. make: *** [sources/kernel/.build.mk:37: build/x86_64-llvm/cross/kernel/x86_64/boot.c.o] Error 1

    opened by Rix565 7
  • FreedOwOm

    FreedOwOm

    Join us now and share the software; You'll be free, hackers, you'll be free Join us now and share the software; You'll be free, hackers, you'll be free

    Hoarders can get piles of money That is true, hackers, that is true But they cannot help their neighbors; That's not good, hackers, that's not good

    When we have enough free software At our call, hackers, at our call We'll kick out those dirty licenses Ever more, hackers, ever more

    Join us now and share the software; You'll be free, hackers, you'll be free Join us now and share the software; You'll be free, hackers, you'll be free

    opened by StallmanTerminator 4
  • Building on macOS

    Building on macOS

    When I try to build it on macOS, it works fine for the most part. However, it always now ends in this:

    make: *** No rule to make target `/opt/homebrew/Cellar/llvm/13.0.0_1/lib/clang/13.0.0/share/asan_ignorelist.txt', needed by `bin/arm64-llvm/host/embed/posix/err.c.o'.  Stop.
    

    How do I fix this, or get around this?

    opened by daniyalw 4
  • Feat: add basic EFI library

    Feat: add basic EFI library

    I added a basic EFI library for the work-in-progress bootloader.

    I am using my own printf-like thing because for a certain reason, fmt wouldn't want to work with utf16. I also implemented my own strncpy since yours is broken (add a '\0' at the end of the string).

    opened by Abb1x 4
  • Feat/deflate

    Feat/deflate

    RFC 1951

    • [x] write uncompressed blocks
    • [ ] write static huffmann blocks
    • [ ] write dynamic huffman blocks
    • [x] read uncompressed blocks
    • [x] read static huffman blocks
    • [x] read dynamic huffman blocks

    RFC 1950

    • [x] read zlib streams
    • [ ] write zlib streams

    RFC 1952

    • [x] read gzip streams
    • [ ] write gzip streams

    Hashing / Checksum validation

    • [x] Adler32
    • [ ] CRC32C
    opened by feliwir 2
  • Feature suggestion: Add source code comments

    Feature suggestion: Add source code comments

    Currently, the majority of the .C source code is undocumented.

    Consider that it's often easier to expose oneself to the concepts of a new application when the source can be scanned quickly, and the high-level concepts ingested as fast as possible; if going deeper is needed, the actual code is just a few lines away.

    opened by gregkrsak 2
  • Add bootloader

    Add bootloader

    This PR is to upstream the current brutal-boot code into the repo

    To build and run the bootloader, use make run-loader; This will also build a simple kernel to test things out

    Note: I'm not good with build systems so be free to point out stuff

    opened by Abb1x 2
  • Faster gui (small pr)

    Faster gui (small pr)

    (description about how much performance gained is explained in individual commits)

    • added an option for running with or without kvm (KVM=yes brutal.sh -r)
    • about ~15%+ performance increase
    opened by Supercip971 1
  • faster gui

    faster gui

    The demo application on my computer: (<!> the benchmark is not very scientific <!>) | / | before | after | | ---- | ----- | ---- | | debug | 30 fps | 175 fps | | fast | 81 fps | 1351 fps |

    opened by Supercip971 1
  • test: merge the bench app with test app + improved the test app

    test: merge the bench app with test app + improved the test app

    • now you can iterate multiple time in a test
    • now if a test doesn't succeed, print the exit value
    • added gfx tests
    • now you can dump all the tests names
    • For gfx_brutal_logo_rotated, use iteration instead of time, thus making the test always behaving the same way.
    opened by Supercip971 1
Releases(milestone-4)
Owner
Brutal
Brutal
A perfect blend of C, Java, and Python tailored for those who desire a simple yet powerful programming language.

Fastcode A perfect blend of C, Java, and Python tailored for those who desire a simple yet powerful programming language. FastCode is a procedural/str

null 27 May 31, 2022
This is a product / project developed by a team of Five Members including Mithilesh Ghadge for the Engineering Clinics at Vellore Institute Of Technology

UltrasonicSensorGlasses-for-blind-people This is a product / project developed by a team of Five Members including Mithilesh Ghadge for the Engineerin

Mithilesh Ghadge 2 Oct 14, 2021
AMD K6-2 (CXT) / K6-2+ / K6-3 / K6-3+ Write Allocate / Write Combine / Write Ordering / Frequency Multiplier Initialization driver for MS-DOS

K6INIT What is this? This is a driver for MS-DOS to replace k6dos.sys which is a bit useless and unflexible. It does not support the CXT versions of t

null 8 May 26, 2022
Reverse engineering Genshin Impact anticheat to study how anticheats work on the Windows operating system.

mhyprot2 - Reverse engineering Genshin Impact anticheat for study 1. Demonstration video 2. Screenshots 2.1 Panel 3. Future updates and questions As I

João Vitor 35 Jun 26, 2022
KePOS is a 64-bit operating system. Design and implement your own operating system

KePOS is a 64-bit operating system. The purpose of this system is to combine the theoretical knowledge and practice of the operating system, and to deepen the understanding of the operating system.

null 63 Jun 8, 2022
A simple Unix like operating system from scratch.

HOS-x86 an x86 operating system written from scratch How to Build? Currently you need NASM, GCC and QEMU to build the image file. Install the packages

Jayachandra Kasarla 15 Feb 7, 2021
🦠 µnix is a UNIX-like operating system for the raspberry pi pico.

The µnix Operating System "µnix", "munix" or, "micro unix" aims to be a micro kernel based operating system targeting the Raspberry Pi Pico. "µnix" is

Sleepy Monax 57 Jun 19, 2022
SerenityOS - Graphical Unix-like operating system for x86 computers. 🐞

SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.

SerenityOS 20.2k Jun 27, 2022
A unix operating system made from scratch using c++

pranaos A unix operating system made from scratch using c++ Dependencies g++ version should be more than 10.0.0 ninja gcc compiler needed prana os is

Krisna Pranav 16 Jan 4, 2022
My Unix-like Operating System

Koerix What is Koerix? Koerix is a Unix-like hobby OS written in C++. I am mainly targeting the x86_64 (on PC) and the armv6a and AArch64 (on raspi/ra

Alexander Ulmer 3 Dec 15, 2021
Unox is an educational unix-like operating system. #JustForFun

Unox Unox is a x86_64 unix-like operating system written in c and assembly for learn about operating systems. Roadmap Write bootloader and linker Writ

Hasan Kashi 19 May 3, 2022
🏢 A bold, unapologetic, and honest operating system written in modern C

A bold, unapologetic, and honest operating system written in modern C About Striking modernist shapes and bold use of modern C are the hallmarks of BR

Brutal 817 Jun 25, 2022
Free and Open Source API and drivers for immersive technology.

OpenHMD This project aims to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head

null 1.1k Jun 28, 2022
A visualization solution for curriculum and course relationships of Hongkong University of Science and Technology(HKUST)

Curriculum Map A visualization solution for curriculum and course relationships of Hongkong University of Science and Technology(HKUST) Notice: Qt v6.

Zory 5 Jun 20, 2022
A Modern Operating System Written in C++ From Scratch!

README Features Long Mode (64-bit) OS Higher Half Kernel Stack Based - Page Frame Allocator (PMM) with O(1) time complexity Virtual Memory Manager (VM

null 7 Jun 22, 2022
DigiMahal is the First Project of Our Team in Sharif University of Technology for Basics of Programming That in this Code we Implemented an Online Shop like DigiKala

DigiMahal is the First Project of Our Team in Sharif University of Technology for Basics of Programming That in this Code we Implemented an Online Shop like DigiKala.

mhlatifi 3 Feb 2, 2022
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.

SynnixOS Epic Hobby OS targeting x86_64 CPUs, it includes some hacked together functionality for most essential OSs although, with interactivity via Q

RaidTheWeb 40 May 27, 2022
Operating system project - implementing scheduling algorithms and some system calls for XV6 OS

About XV6 xv6 is a modern reimplementation of Sixth Edition Unix in ANSI C for multiprocessor x86 and RISC-V systems.

Amirhossein Rajabpour 20 May 19, 2022
🎮 Plants vs. Zombies multiplayer battle, developed via reverse engineering, inline hook and dynamic-link library injection. Two online players defend and attack as the plant side and zombie side respectively.

Plants vs. Zombies Online Battle This project has two original repositories: https://github.com/czs108/Plants-vs.-Zombies-Online-Battle https://github

Liugw 71 Oct 14, 2021