Git Product home page Git Product logo

webclinic017 / beastix Goto Github PK

View Code? Open in Web Editor NEW

This project forked from beastix/beastix

0.0 0.0 0.0 322.41 MB

A BSD-style base system using linux kernel

Shell 1.63% C++ 4.50% Scheme 0.36% Python 0.04% Perl 0.25% C 90.86% Emacs Lisp 0.01% Objective-C 0.40% Java 0.01% OCaml 0.02% Lua 0.01% Scala 0.01% Eiffel 0.01% Pure Data 0.01% Fortran 0.03% Clojure 0.01% SuperCollider 0.05% Tcl 0.01% R 0.05% D 1.80%

beastix's Introduction

	Beastix Release 0.1-CURRENT


WHAT IS BEASTIX?

Beastix is a BSD-style base system for the Linux kernel consisting of the kernel, basic unix utilities, a compiler toolchain and pkgsrc as well as other useful tools.
The goal is to have an operating system that updates all in one piece similar to how BSD systems handle updates with the whole system in one piece rather than multiple packages.

Note that at present the only supported platform is x86_64 though the system should be possible to port to other platforms easily.



FREQUENTLY ASKED QUESTIONS

Q: Is it possible to update the versions of components included in the base system?
A: The kernel can probably be replaced with any other linux kernel, though the build process will not work the same way. Other components (such as gcc) have been specially patched and can't easily
   be replaced with newer versions. It is highly recommended that you instead install updated packages from ports if you require them.

Q: Why musl instead of glibc?
A: glibc is the most widely used C library on GNU/Linux distributions, but it is not necessarily the best and can have some performance issues. Aside from that, musl is far slimmer and takes up less
   space.

Q: How do I configure my network?
A: At present time, you do so by adding ifconfig and route commands to /etc/rc.network - this will be replaced with a real configuration file in a future release

Q: How can I make the compilation go faster?
A: Throwing more silicon at it always helps, alternatively if you have enough RAM you can build the system in RAM, just clone the source tree into /dev/shm/beastix and build in there, make sure you have
   it mounted without the noexec bit

BUILDING AND INSTALLING

There are two methods to get started with Beastix, either starting from source or using the installer CD. If you are using the installer CD, simply burn it to a disc, boot up and select the install option.
At the present time the installer does not support dual-boot configurations and will use the full harddisk, therefore please back up any important data before installing.

Alternatively, follow the instructions below to get started from source.

Assuming you're already on a GNU/Linux system, first you need to bootstrap the compiler toolchain. Beastix makes use of musl as the libc and the binutils and gcc in the tree have been patched.

On debian you can install the build dependencies like so:

	sudo apt-get install build-essential
	sudo apt-get install ash

The method for other systems may vary, but you need to have available a working gcc install and GNU make to get started. gcc version 4.7.2 is recommended and is the version currently in Beastix itself.

After installing dependencies you can bootstrap the musl toolchain by issuing the following command:

	make bootstrap

Note that "make bootstrap" will sometimes fail if the kernel has not yet been built, if that is the case simply run "make buildkernel" before bootstrapping.

You should not encounter any errors at this point on most systems, if you do encounter a build error please double check you have the correct gcc version installed and try again. Should the bootstrap fail
please report the issue at https://github.com/beastix/beastix/issues and provide a full copy of all build output and details about the platform you are building on.

After bootstrapping, you can issue these famous commands to build the system:

	make buildkernel
	make buildworld

This process can take a long time, so please be patient. When complete, binaries will be placed in obj/ and you can prepare for installation using the releng (release engineering) scripts:
	
	cd releng/
	make release-final
	make iso-image

The releng scripts attempt to create an iso, to do so syslinux is used in combo with mkisoimage from cdrtools, if you require the installer iso please ensure these packages are available before issuing
the "make iso-image" command.

After all this, you will find a copy of the system in releng/release that can be installed to a real system or booted inside of an emulator such as qemu. During development, the system is commonly tested
with kvm-qemu to directly load the kernel and initrd_live.img files and then by booting the iso image. If you test this way, be sure to use a system with at least 1GB of RAM allocated.



USING THE SYSTEM

After the system is built, it can be booted up from the iso image and used directly in live mode or installed to a harddrive. Whatever method is chosen, the system boots up fairly quickly and presents a
standard login prompt.

By default the root password is empty (though the installer will configure a real password for you), it is recommended that you change this first thing.

After changing the root password a good first test of the system is to rebuild it by extracting the source tree into /usr/src and performing the following as root, note that this should not be attempted on
the live CD unless plenty of RAM is available:
	
	make buildworld
	make buildkernel
	make installkernel
	make installworld

If all goes well, the system will rebuild itself and reinstall, this process is also used for updates. Once the system is rebuilt, reboot to ensure a clean environment.

At this stage you are ready to start installing packages via the ports tree from the CD:
	
	mkdir /usr/ports
	mount /dev/sr0 /mnt/cdrom
	cd /usr/ports
	cp /mnt/cdrom/ports.tgz .
	gunzip ports.tgz
	tar xvf ports.tar
	rm ports.tar

The ports tree is also available from git at https://github.com/beastix/beastix-ports and follows the same branching policy as the base system, it should be updated any time you update the base system.

beastix's People

Contributors

gwennelson avatar pikhq avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.