diff options
author | Benji Dial <benji@benjidial.net> | 2024-05-18 21:53:38 -0400 |
---|---|---|
committer | Benji Dial <benji@benjidial.net> | 2024-05-18 21:53:38 -0400 |
commit | b1a912a8a6ff472a49b2e0a09cfd433adfc2cb24 (patch) | |
tree | 5009d4415ba13e4baa37f3d0271852528130fd3b /readme.txt | |
parent | a8a80d326de9550b2a25b1255a2093ab43219ede (diff) | |
download | hilbert-os-b1a912a8a6ff472a49b2e0a09cfd433adfc2cb24.tar.gz |
reorganization, cross compiler
Diffstat (limited to 'readme.txt')
-rw-r--r-- | readme.txt | 104 |
1 files changed, 65 insertions, 39 deletions
@@ -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. |