All Projects → miselin → pedigree

miselin / pedigree

Licence: other
The Pedigree Operating System

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
objective c
16641 projects - #2 most used programming language
assembly
5116 projects
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to pedigree

airyx
A BSD-based OS project that aims to provide an experience like and some compatibility with macOS (formerly known as airyxOS)
Stars: ✭ 2,490 (+5087.5%)
Mutual labels:  osdev, operating-system
utero
The Operating System (for x86_64) written in Crystal as much as possible
Stars: ✭ 55 (+14.58%)
Mutual labels:  osdev, operating-system
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+420.83%)
Mutual labels:  osdev, operating-system
SnowFlake
Technology is free, SnowFlakeOS
Stars: ✭ 38 (-20.83%)
Mutual labels:  osdev, operating-system
cxos
Operating System development experiment in Ada
Stars: ✭ 32 (-33.33%)
Mutual labels:  osdev, operating-system
Osmanthus
A developing operating system
Stars: ✭ 36 (-25%)
Mutual labels:  osdev, operating-system
SynnixOS
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.
Stars: ✭ 40 (-16.67%)
Mutual labels:  osdev, operating-system
chaos-2
A hand-made SMP-aware kernel
Stars: ✭ 20 (-58.33%)
Mutual labels:  osdev, operating-system
GeeOS
The Gee (寂) Operating System, written in YuLang.
Stars: ✭ 22 (-54.17%)
Mutual labels:  osdev, operating-system
georgios
Hobby Operating System
Stars: ✭ 19 (-60.42%)
Mutual labels:  osdev, operating-system
Polaris
A WIP 64-bit UNIX-like kernel
Stars: ✭ 72 (+50%)
Mutual labels:  osdev, operating-system
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-66.67%)
Mutual labels:  osdev, operating-system
Macaron
A sweet hobby made operating system written in C++ for x86 CPUs with GUI
Stars: ✭ 34 (-29.17%)
Mutual labels:  osdev, operating-system
KSOS
Our very own Operating System built from scratch for x86 architecture systems!
Stars: ✭ 83 (+72.92%)
Mutual labels:  osdev, operating-system
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 (-2.08%)
Mutual labels:  osdev, operating-system
DentOS
Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C
Stars: ✭ 32 (-33.33%)
Mutual labels:  osdev, operating-system
osfree
osFree - open source Operating System/2 clone, usermode parts.
Stars: ✭ 77 (+60.42%)
Mutual labels:  osdev, operating-system
Cardinal
Operating system designed to be fast and secure.
Stars: ✭ 20 (-58.33%)
Mutual labels:  osdev, operating-system
beeos
A simple "Unix-like" kernel trying to be POSIX compliant
Stars: ✭ 103 (+114.58%)
Mutual labels:  osdev, operating-system
poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (+352.08%)
Mutual labels:  osdev, operating-system

The Pedigree Operating System

Build Status

Downloads

The latest disk image is the most recent successful build of Pedigree from our Buildbot. There are no guarantees of stability or even functionality of these builds.

The nightly disk image is from nightly builds on our Buildbot, with the same disclaimer.

Build Dependencies

You'll need at least the following to build Pedigree and its compilers:

  • SCons (>1.2.0)
  • libmpfr, libgmp, and libmpc headers (typically via -dev packages)
  • SQLite3
  • genisoimage and/or mkisofs
  • perl
  • autoconf

Building Pedigree with Easy Build

We highly recommend you first try one of our Easy Build scripts before you try and run SCons manually. There's a little bit of work involved in setting up a build of Pedigree for the first time, which the Easy Build script handles for you. After that it's as easy as just running scons at the command line.

Just run ./easy_build_[target].sh to build Pedigree. Valid options for target include:

  • x64
  • arm
  • hosted (for a version of the kernel that runs on Linux)

Dependencies and a cross-compiler will be installed and/or created, allowing you to jump straight into testing Pedigree.

To build Pedigree at any point after this, just run scons. The build system remembers the configuration the Easy Build specified for you.

Different Targets

To switch between architectures, just remove options.cache and .autogen.cache, and then run an Easy Build script.

Building Pedigree Manually

Alternatively, you can build manually.

Step 1: Cross-Compiler

To build a cross-compiler, in the root of the Pedigree tree, run:

$ ./scripts/checkBuildSystemNoInteractive.pl $TARGET-pedigree \ $PWD/pedigree-compiler

If you are building on OSX, you should also pass osx-compat as the final parameter to the script.

Valid targets include:

  • x86_64
  • armv7

Step 2: Pedigree Base

Configure the Pedigree UPdater (pup) to start:

$ ./setup_pup.py amd64 # (or arm) && ./run_pup.sh sync

You'll need at least Pedigree's libtool to continue:

$ ./run_pup.sh install libtool

Now, build an initial libc and libm:

$ scons CROSS=$PWD/pedigree-compiler/bin/$TARGET-pedigree- build/libc.so \ build/libm.so

With this complete, the compiler build process can be completed:

$ ./scripts/checkBuildSystemNoInteractive.pl $TARGET-pedigree \ $PWD/pedigree-compiler libcpp

Step 3: Required Packages

Install necessary packages to build the full userspace:

$ ./run_pup.py install libpng
$ ./run_pup.py install libfreetype
$ ./run_pup.py install libiconv
$ ./run_pup.py install zlib
$ ./run_pup.py install bash
$ ./run_pup.py install coreutils
$ ./run_pup.py install fontconfig
$ ./run_pup.py install pixman
$ ./run_pup.py install cairo
$ ./run_pup.py install expat
$ ./run_pup.py install mesa
$ ./run_pup.py install ncurses
$ ./run_pup.py install gettext
$ ./run_pup.py install pango
$ ./run_pup.py install glib
$ ./run_pup.py install harfbuzz
$ ./run_pup.py install libffi
$ ./run_pup.py install gcc

Step 4: Final Build

Finally, build the rest of the kernel and userspace:

$ scons

From now on, you can simply run scons to build Pedigree.

Running Pedigree

Boot from build/pedigree.iso, with an attached disk for build/hdd.img, to run Pedigree.

You can also specify createvmdk=1 and/or createvdi=1 to create VMDK or VDI disk images for your emulator. These options require qemu-img.

Images Directory

The images/local directory allows you to use pup, Pedigree's package manager, to manage your hard disk image file set. If you ran the Easy Build script, pup is already configured and ready to go.

Simply run:

$ ./run_pup.sh sync

to synchronise your local pup repository with the server.

Then you can run: $ ./run_pup.sh install <package> to install a package.

Visit http://pup.pedigree-project.org to see a list of all packages that are available and can be downloaded.

Remember to re-run scons after installing a package to ensure your disk image has the new package on it. You may need to rm build/hdd.img if SCons doesn't detect that the images directory has changed.

You can also add arbitrary files to the images/local directory to use them at runtime. For example, you could create a directory under users for yourself, and add a .bashrc and .vimrc.

User Management

A utility script, scripts/manage_users.py, is provided to add or remove users from the database for use at runtime.

Reporting Issues

Report any issues on the project tracker at http://pedigree-project.org

Contact

You can find us in #pedigree on Freenode IRC.

Contributing

We welcome contributions. The preferred mechanism for contributing is via pull requests. See the issue trackers at http://pedigree-project.org if you need ideas. Alternatively, come join us in our IRC channel on Freenode (see above).

We highly recommend working through a successful build and playing with some of Pedigree's features in a VM before leaping into contributing. This will help with understanding much of what you see in the code, and also potentially give you some more ideas about areas to contribute to.

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].