summaryrefslogtreecommitdiff
path: root/readme.txt
diff options
context:
space:
mode:
authorBenji Dial <benji@benjidial.net>2024-05-18 21:53:38 -0400
committerBenji Dial <benji@benjidial.net>2024-05-18 21:53:38 -0400
commitb1a912a8a6ff472a49b2e0a09cfd433adfc2cb24 (patch)
tree5009d4415ba13e4baa37f3d0271852528130fd3b /readme.txt
parenta8a80d326de9550b2a25b1255a2093ab43219ede (diff)
downloadhilbert-os-b1a912a8a6ff472a49b2e0a09cfd433adfc2cb24.tar.gz
reorganization, cross compiler
Diffstat (limited to 'readme.txt')
-rw-r--r--readme.txt104
1 files changed, 65 insertions, 39 deletions
diff --git a/readme.txt b/readme.txt
index bdd8e45..d48c43c 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,48 +1,74 @@
-hilbert os is a 64-bit hobby operating system, which is not
-very mature yet. to build and test it, you will need some
-dependencies. these can be installed on debian with:
- apt install g++ gcc gdb git make nasm qemu-system-x86 xorriso
+hilbert os is a 64-bit hobby operating system, which is not very mature yet. to
+build and test it, you will need some software installed. on debian, i believe
+running command [1] below as root (e.g. with sudo) is sufficient. the default
+makefile target builds a disk image at build/disk.iso that can be booted on a
+64-bit bios system. you can use command [2] to build that. finally, use command
+[3] to run the disk in qemu with gdb attached.
-then, just run "make -jx", replacing x with the number of threads to use
-while building. this will create a bios-bootable disk image in out/disk.iso.
-you can then test it in qemu with gdb attached by running "make run".
+ [1] apt install g++ gdb git make nasm qemu-system-x86 xorriso
+ [2] make -j$(nproc)
+ [3] make run
-acknowledgements (* = downloaded during make):
+acknowledgements (any under "dependencies" are downloaded during build):
- - limine bootloader*
- homepage: https://limine-bootloader.org/
- license: limine/COPYING (bsd two-clause)
+ - dependencies/binutils (gnu binutils v2.42)
+ copyright 2024 free software foundation, inc.
+ license: dependencies/binutils/COPYING (gnu gpl v2)
+ homepage: https://www.gnu.org/software/binutils/
+ note: the patch in patches/binutils.txt is applied before building
- - terminus font
- homepage: https://terminus-font.sourceforge.net/
- license: terminus/license.txt (sil open font license v1.1)
+ - dependencies/gcc (gnu compiler collection v14.1.0)
+ copyright 2024 free software foundation, inc.
+ license:
+ dependencies/gcc/COPYING3 (gnu gpl v3)
+ dependencies/gcc/COPYING.RUNTIME (gcc runtime library exception v3.1)
+ homepage: https://gcc.gnu.org/
- - photo at skeleton/assets/burdon.ppm
- photographer: aaron burdon
- source: https://unsplash.com/photos/selective-focus-photography-snowflakes-9yhy1FXlKwI
- license: https://unsplash.com/license
+ - dependencies/limine (limine bootloader v7.5.1)
+ copyright 2019 - 2024 mintsuki and contributors
+ license: dependencies/limine/COPYING (bsd two-clause)
+ homepage: https://limine-bootloader.org/
- - mintsuki's freestanding c headers*
- homepage: https://github.com/mintsuki/freestanding-headers
- license: mintsuki-freestanding-headers/LICENSE (bsd zero-clause)
+ - dependencies/minstuki-headers
+ copyright 2022 - 2024 mintsuki and contributors
+ license: dependencies/mintsuki-headers/LICENSE (bsd zero-clause)
+ homepage: https://github.com/mintsuki/freestanding-headers/
+
+ - skeleton/assets/burden.ppm
+ ("selective focus photography snowflakes" by aaron burden)
+ license: https://unsplash.com/license
+ source: https://unsplash.com/photos/selective-focus-photography-snowflakes-9yhy1FXlKwI
+
+everything in the following directories is copyright 2024 benji dial, under the
+license in license.txt (the isc license):
+
+ - applications
+ - euler
+ - kernel
+ - libraries
project structure:
- - applications/init: the first application started by the kernel
- - applications/link.ld: a common linker script used by every application
- - documentation: documentation on the kernel (not very organized)
- - kernel: the kernel of hilbert os
- - libraries/daguerre: an image loading / rendering library
- - libraries/euler: the c++ standard library and runtime for applications
- - limine: the limine bootloader (see acknowledgements)
- - mintsuki-freestanding-headers:
- mintsuki's freestanding headers (see acknowledgements)
- - obj: built object files
- - out: completed builds
- - skeleton: files that are directly copied to the initfs
- - terminus: the terminus font (see acknowledgements)
- - license.txt: the license that hilbert os is under
- - limine.cfg: the limine configuration used by the built disk
- - makefile: the makefile that is used to build the entire os
- - qmeu.gdb: a file for gdb to include when doing make run
- - readme.txt: this file
+ - applications/init:
+ the initial program loaded by the kernel. currently it displays the image
+ by aaron burden, and inverts the colors when the enter key is pressed.
+
+ - documentation:
+ documentation. currently this directory is a bit disorganized, and has
+ some descriptions of things that have not been created yet.
+
+ - euler:
+ (a minimal start to) a c/c++ standard library and runtime. the plan is to
+ follow the c++17 standard, and only add things as i need them.
+
+ - kernel:
+ the kernel.
+
+ - libraries/daguerre:
+ an image loading / rendering library.
+
+ - patches/binutils.txt:
+ a patch that is applied to gnu binutils before it is built.
+
+ - skeleton:
+ files that are copied directly to the initfs.