cowos

custom OS from scratch in C
git clone git://git.daat.foo/cowos.git
Log | Files | Refs | README | LICENSE

README.md (2201B)


      1 **Migrated from Rekketstone/cowos**
      2 
      3 # cowos
      4 Custom OS from scratch in C
      5 
      6 # Notes
      7 **Heavily UNDER DEVELOPMENT**
      8 
      9 I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu).
     10 
     11 ## BUILDING
     12 You'll need a few things:
     13 - LLVM/Clang (default C compiler)
     14 - LLD (linker)
     15 - xorriso (iso creation)
     16 - git
     17 - make
     18 
     19 ### OPTIONAL:
     20 - qemu (for virtual machine)
     21 - LLDB (debugging purposes)
     22 
     23 After acquiring those just run make and it'll do everything for you:
     24 ```bash
     25 make
     26 ```
     27 
     28 By default the kernel is compiled with debug symbols, if you would like to avoid this, you can simply override the CFLAGS:
     29 ```bash
     30 cd kernel/ # it is recommended to go to the actual directory yourself
     31 make CFLAGS="-O3 -pipe"
     32 llvm-strip --strip-all ./kernel/bin/cowos # strip everything
     33 cd .. # return to root
     34 make
     35 ```
     36 Eventually in the future this will be changed to be something much more convienent, however for now the inclusion of debug symbols is nessacary for development.
     37 
     38 ## RUNNING
     39 There is now a script to automate running cowos, although it's quite simple right now, this is important for the future as cowos will eventually require a root partition and other things as it grows to userspace slowly. To run, simply run this in the root of the repository:
     40 ```bash
     41 make run # This will require qemu
     42 ```
     43 
     44 For developers, running with the DEBUG flag will launch lldb with qemu to help debug issues with cowos:
     45 ```bash
     46 make DEBUG=1 run
     47 ```
     48 if you do not like LLDB, I included a script called `run-gdb` in the `scripts/` directory for the gdb fans out there. I personally want to keep this project as gnu-free as possible, since I want cowos to not be GNU/cowos, I want it to just be cowos. And this means that I will even avoid anything as simple as the debugger being used to be non-GNU. Run in the root like so:
     49 ```bash
     50 ./scripts/run-gdb
     51 ```
     52 It will automatically exit qemu if gdb is exited, and by default gdb will run in tui mode.
     53 
     54 # Credits
     55 - [Limine](https://github.com/limine-bootloader/limine): modern, advanced, portable, multiprotocol bootloader and boot manager. 
     56 
     57 ## People
     58 - [micl](https://micl.dev): random guy on the interweb in the LHL discord server gave me a free vga driver to use lol