summaryrefslogtreecommitdiff
path: root/readme.txt
blob: bdd8e45fca8934a71c9f4ddfc32ab5f6a1bc00fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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

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

acknowledgements (* = downloaded during make):

  - limine bootloader*
    homepage: https://limine-bootloader.org/
    license: limine/COPYING (bsd two-clause)

  - terminus font
    homepage: https://terminus-font.sourceforge.net/
    license: terminus/license.txt (sil open font license v1.1)

  - photo at skeleton/assets/burdon.ppm
    photographer: aaron burdon
    source: https://unsplash.com/photos/selective-focus-photography-snowflakes-9yhy1FXlKwI
    license: https://unsplash.com/license

  - mintsuki's freestanding c headers*
    homepage: https://github.com/mintsuki/freestanding-headers
    license: mintsuki-freestanding-headers/LICENSE (bsd zero-clause)

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