Commit Graph

136 Commits

Author SHA1 Message Date
Kevin Lange
c8b3a480c7 Scripts to run the clang analyzer 2012-10-09 21:00:50 -07:00
Kevin Lange
f79f345956 Giant ramdisks (works on my desktop)
But not on my laptop...
2012-09-18 22:20:04 -07:00
Kevin Lange
e0e7b8a7ed Double ramdisk size.
8MB can fit some freetype fonts or a dozen extra applications.

[ci skip] since Travis doesn't deal with ramdisks.
2012-09-18 20:00:50 -07:00
Kevin Lange
57534cf009 Fix things up to prepare a working ramdisk. 2012-09-18 00:06:32 -07:00
Kevin Lange
127b24a686 Bump default QEMU memory to 1GB 2012-09-14 21:53:04 -07:00
Kevin Lange
09c01eb2c5 Make docs and utils a separate build path from all
docs require too many extra dependencies and haven't been updated in
ages; utils are not required for anything.

[ci skip]
2012-09-10 22:53:39 -07:00
Kevin Lange
c8cfd50fd7 Rudimentary support for moving the viewport horiz.
Rough, still a bit broken, needs cursor tracking.

[ci skip]
2012-09-08 22:25:32 -07:00
Kevin Lange
3f5dbcaf9b Update core Makefile for building bim for Linux
[ci skip]
2012-09-08 16:49:40 -07:00
Kevin Lange
58ca0b984c Add write support; make sacrifices to the gods
- Write support!
- The widths of characters is now determined with freetype ;-;
  I really wish wcwidth() was a real thing, but it's not.
  This is a sacrifice that had to be made.

  If you are building FOR Linux -rather than toaru- you might need to
  poke at some things to make sure it builds, but in my experience it is
  working just fine (and IMEs now work properly).

  [ci skip]
2012-09-08 15:54:56 -07:00
Kevin Lange
df8afae9b9 Linux support for bim; fix a bug when opening
[ci skip]
2012-09-08 14:37:48 -07:00
Kevin Lange
89034c060f I give up; just use qemu-system-i386 everywhere. 2012-09-03 23:40:50 -07:00
Kevin Lange
bba242dd62 Add a testing framework.
This is an automated system by which we boot qemu headless and use the
serial line to capture output from a testing application that is started
on bootup, running with the VGA terminal shell. This might be expanded
to boot to the graphical display within VNC and perform more advanced
tests with the Python shim using a VNC module for Python; we'll see.
2012-09-02 02:24:25 -07:00
Kevin Lange
7274e8e938 configured run mode 2012-08-20 22:26:22 -07:00
Kevin Lange
959fff1076 Specify directories for ctags 2012-05-31 18:37:17 +09:00
Kevin Lange
fd53947564 Added some new quick-run targets to the makefile. 2012-04-19 19:59:59 -05:00
Kevin Lange
5a1a45bc09 Faster mouse response
- Discard lots of packets
- Don't yield?
2012-04-12 23:21:38 -05:00
Kevin Lange
3e70898674 Yeah, disable debug flags while we're still working on initrds... 2012-04-11 16:03:20 -05:00
Kevin Lange
5832f0545b Fix up target for ramdisk 2012-04-11 13:07:16 -05:00
Kevin Lange
0ebb0ac983 Stop building ramdisks by default. 2012-04-11 12:47:39 -05:00
Kevin Lange
a69bd63fbc Stop running with the ramdisk 2012-04-11 12:46:36 -05:00
Kevin Lange
2e4543d956 Oops, silly me. Minor little bug fixed 2012-03-16 20:05:56 -05:00
Kevin Lange
d9b82bfb06 add -k en-us to QEMU arguments, for mac users 2012-02-06 16:20:23 -06:00
Kevin Lange
b83fb0de13 Oops 2012-02-05 17:43:32 -06:00
Kevin Lange
9b5e26164f Do a better job of running check-reqs 2012-02-05 17:40:19 -06:00
Kevin Lange
2e8144493d Bootsplash testing (launches terminal afterwards) 2012-02-03 18:16:47 -06:00
Kevin Lange
119bcf6913 Remove bootloader.
We'll get back to this eventually, right now it's just cluttering the
repository, so get rid of it.
2012-01-29 16:07:15 -06:00
Kevin Lange
fd77e36013 Add bin/uname, fix disk buidling
Disk will now rebuild when userspace/*.c are updated.
Make sure you build in userspace/ first!
2012-01-28 17:10:03 -06:00
Kevin Lange
c9d5e735ed Getting ready for thread support 2012-01-28 17:06:07 -06:00
Kevin Lange
c65e458c50 Stop building binaries out of loader/
This is what userspace/ is for; consequentally, all userspace
applications now depend on the full toolchain and will build using the C
library.
2012-01-28 16:19:57 -06:00
Kevin Lange
6eb0045419 Add a target to update version.o 2012-01-27 18:47:59 -06:00
Kevin Lange
41fb7c0f9f ctags 2012-01-27 01:38:08 -06:00
Kevin Lange
339b82e10c [massive commit] Userspace terminal.
Completely removes:
* The kernel terminal (both VGA and graphical)
* The kernel ANSI parser (obviously)
* kgets() function
* Dozens of other functions that were made useless

Adds:
* Userspace terminal that should work (relatively) well
* Keyboard device driver (implemented with a "pipe" object)
* Stabalized interrupt interface
* `clear` uses the c library
* All panic screens and kprintf() output goes to the serial line ONLY
* The kernel boots directly into /bin/terminal (no arguments, unless you
  want to add them (such as -f))
2012-01-25 00:19:52 -06:00
Kevin Lange
ed31c2cbea Drop serial output from standard terminal 2012-01-23 12:36:59 -06:00
Kevin Lange
7de2ca9bd1 Per-user tmp files 2012-01-18 19:52:11 -06:00
Kevin Lange
edebb12573 [misc] Boot logging to screen 2011-12-26 19:23:58 -06:00
Kevin Lange
c0f45e0b7f VESA mode switching support.
BIOS execution is provided through the `v8086` module, which provides
software emulation of an 8086 processor. It is not currently working
with some BIOSes and may (read: probably will be) replaced with another
emulator (x86emu comes to mind) at some point in the near future. In the
meantime, the default video mode for QEMU works with this and it's
enough to get us on real VESA instead of fake VBE. The `bochs` module
will be renamed in a future commit. Userspace programs have been
adjusted to work at bitrates other than 32 *POORLY*. If you write pixels
left-to-right, they should work fine. They only work with 24-bpp
otherwise, and then you need to be careful of what pixels you are
writing when, or you will overwrite things in other pixels.

You may pass a commandline argument like the following to set display
modes:

  vid=vesa,1024,768

Or for stranger modes under QEMU or Bochs, use the bochs VBE
initializer:

  vid=bochs,1280,720

Note that the address of the linear framebuffer is still found via
hackish probing instead of PCI or trusting the VBE information, so if
you have things in the wrong memory ranges (0xE0000000+), be prepared to
have them get read.

Once again, this entire commit is a massive hack. I am happy that it
worked, and I will continue to make it less hacky, but in the meantime,
this is what we've got.

Happy holidays.
2011-12-25 00:40:40 -06:00
Kevin Lange
b8d8140530 QEMU may default to 128MB, that's bad, we need at least 256 2011-12-15 20:34:57 -06:00
Kevin Lange
67343548a7 Only mount hard disk if requested 2011-12-14 22:30:46 -06:00
Kevin Lange
8c548c0db0 Restructure directory tree for kernel modules 2011-12-14 22:15:47 -06:00
Kevin Lange
d7e5cb2556 [build] That entire rule was unused... 2011-12-01 01:09:12 -06:00
Kevin Lange
f3a52d272a Move all of the ramdisk support into the hard disk 2011-11-18 14:45:19 -06:00
Kevin Lange
b2b8185494 Load wallpaper from file on disk 2011-11-18 14:38:27 -06:00
Kevin Lange
3c0b30b5ee Wallpapers in the gits and by default 2011-11-17 19:01:14 -06:00
Kevin Lange
5716e652ad [build] Fix minor issue in makefile 2011-10-29 00:33:57 -05:00
Kevin Lange
3726a9a043 [user] We can enable optimizations and strip for smaller binaries 2011-10-28 01:21:59 -05:00
Kevin Lange
c2addf6e55 [build] Toolchain detection 2011-10-27 20:10:27 -05:00
Kevin Lange
bb3ef117ee [build] Build a hard disk image to toy with 2011-10-27 19:37:01 -05:00
Kevin Lange
fe9b4d5cbb [build] Detect compiler; force color output in clang 2011-10-27 18:19:39 -05:00
Kevin Lange
1f4b7c68b6 [build] Massive build improvements 2011-10-27 17:39:40 -05:00
Kevin Lange
d3de5634b2 [build] Make clean only do soft cleaning; add clean-hard 2011-10-27 16:36:56 -05:00