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
Kevin Lange
fd0dea66d5
[build] Split clean into multiple pseudo-targets
2011-10-26 18:39:36 -05:00
Kevin Lange
df21db6beb
[build] updates to makefile, new 'build' target 'kvm'
2011-05-07 19:21:09 -05:00
Kevin Lange
03a8066742
Uh, we need more space.
2011-04-24 22:30:48 -05:00
Kevin Lange
eb0c5d05e1
[sys] Holy crap.
2011-04-17 17:44:29 -05:00
Kevin Lange
254ceb51ab
[sys] More system calls, more stability, kill bad processes
2011-04-17 13:26:31 -05:00
Kevin Lange
ad7d5d7acc
[sys] read/write/open/close, also cat
2011-04-16 20:01:04 -05:00
Kevin Lange
d2ff4c474e
[ansi] Support for more escape sequences.
2011-04-15 21:48:20 -05:00
Kevin Lange
332920fe2d
[bin] Some minor updates to the test apps
2011-04-15 16:31:58 -05:00
Kevin Lange
8b84dfa688
[bin] Yes.
2011-04-15 13:18:01 -05:00
Kevin Lange
06c41369cc
[sys] And now for the user side too
2011-04-11 16:51:31 -05:00
Kevin Lange
4a35852df8
[build] Touch a file to indicate that we passed
2011-04-11 15:25:26 -05:00
Kevin Lange
56c9feade8
[build] Trying to add some 'oops, you're missing x'
2011-04-11 15:13:34 -05:00
Kevin Lange
3db19d1605
[build] Dammit, make, stop deleting my object files!
2011-04-10 23:08:34 -05:00
Kevin Lange
fe40c7bbf6
[elf] Fix argument passing
2011-04-08 16:02:30 -05:00
Kevin Lange
d5a3728b12
[readelf] Build environment setup
2011-04-06 16:54:57 -05:00
Kevin Lange
9b3c3a1e60
[bin] Working on ELF binaries. Redid some multiboot stuff (larger ramdisks should work now)
2011-04-06 16:50:37 -05:00
Kevin Lange
5450546a15
[vga_font] Font rendering updates.
2011-03-28 16:29:59 -05:00
Kevin Lange
6d95cf95a0
[mem] Various fixes. gcc4.4 and 4.5 hate me, use 4.3 or a clange >2.0
2011-03-28 00:26:35 -05:00
Kevin Lange
f4f780ed90
[TEMP FIX] This is a temporary attempt to fix forking.
2011-03-27 23:52:02 -05:00
Kevin Lange
9a46092e4c
[bochs] Proper bitmap reading, smaller boot logo.
2011-03-27 18:08:41 -05:00
Kevin Lange
a62649aafe
[main] Kernel argument parsing (of a limited sort); qemu vid mode defaults
2011-03-26 13:30:08 -05:00
Kevin Lange
4d3118bad7
[vid] Working on VBE graphics support for Bochs/Qemu
2011-03-25 22:29:54 -05:00
Kevin Lange
dcd341cdc9
[clean] Oops.
2011-03-22 01:59:17 -04:00
Kevin Lange
731ecfe10c
[boot] Progress? mb
2011-03-22 01:48:07 -04:00
Kevin Lange
bcd06ac136
[boot/initrd] Add stage2 to initial ramdisk, move kernel.
2011-03-22 01:14:54 -04:00
Kevin Lange
65a53722bb
[build] Gah, stop yelling at me
2011-03-22 00:51:30 -04:00
Kevin Lange
7c079ecb5e
[util] Utility workspace, currently for bootloader.
2011-03-22 00:50:50 -04:00
Kevin Lange
6e7ae2251d
[docs] More stuff.
2011-03-18 19:57:10 -05:00
Kevin Lange
826e0d9e96
[build] docs is a phony target...
2011-03-18 19:35:51 -05:00
Kevin Lange
4a9471d853
Update documentation system
2011-03-18 19:18:08 -05:00
Kevin Lange
a6c5d1c365
Loader workspace, documentation workspace.
2011-03-17 21:45:26 -05:00
Kevin Lange
ee04a7271d
[task] Holy crap, tasking. That took forever and it's still broken.
2011-03-01 17:48:39 -06:00
Kevin Lange
4f8cd57996
[vari] Fix a typo, move some stuff
2011-02-27 21:08:55 -06:00
Kevin Lange
fd57f9df32
[clean] Get rid of bootdisk on clean...
2011-02-21 23:51:59 -06:00
Kevin Lange
20efbe7b74
[boot] Well now, we have a stage two that almost does something
2011-02-21 23:51:06 -06:00
Kevin Lange
6067f11faf
:[
2011-02-21 20:35:37 -06:00
Kevin Lange
da9cf859c2
[build] stuff
2011-02-21 19:44:09 -06:00
Kevin Lange
3ebdbfa3f0
[boot] Fix that...
2011-02-21 19:42:52 -06:00
Kevin Lange
7c74503da7
[boot] Ug, ext2, make a boot floppy instead...
2011-02-21 19:41:37 -06:00
Kevin Lange
ebd3efb47b
Revert "[boot] A third stage? Really?"
...
This reverts commit c23080c46c
.
2011-02-21 19:36:18 -06:00
Kevin Lange
c23080c46c
[boot] A third stage? Really?
2011-02-21 19:09:57 -06:00
Kevin Lange
8275d02e44
[build] Generate an appropriate Stage2
2011-02-21 15:48:18 -06:00
Kevin Lange
64bebd826a
[build] Stage1 + Stage2
2011-02-21 15:37:25 -06:00
Kevin Lange
545627e1ad
[clean] Remove test disk if it's there...
2011-02-21 15:26:41 -06:00
Kevin Lange
ed99d52ada
[boot] Move read to the C so we can pass it arguments easily.
2011-02-21 15:24:44 -06:00
Kevin Lange
76c8c1652f
[boot] Read stuff
2011-02-21 14:58:27 -06:00
Kevin Lange
987b1a07d3
[build] Initrd depends on stage2
2011-02-21 13:31:53 -06:00
Kevin Lange
8e49e88857
[boot] Stage 2
2011-02-21 13:29:09 -06:00
Kevin Lange
a86253784f
[build] Use yasm instead of nasm
2011-02-21 13:21:28 -06:00
Kevin Lange
f3f854cc18
[build] meh
2011-02-21 12:03:58 -06:00
Kevin Lange
c3c63db8e9
[boot] holy crap
2011-02-21 03:11:30 -06:00
Kevin Lange
a8a6fce250
[boot] Integrate stage 2 into build process
2011-02-20 20:15:39 -06:00
Kevin Lange
9e31a2c07c
[boot] Some Makefile integration
2011-02-18 22:22:25 -06:00
Kevin Lange
0da56e6e51
[meta] Restructure directory tree and output files.
2011-02-12 16:47:20 -06:00
Kevin Lange
f414baa81e
[build] Use clang (and fix va_list in kprintf)
2011-02-10 23:55:03 -06:00
Kevin Lange
52a5b9e6cf
[serial] Serial logging.
2011-02-10 21:45:29 -06:00
Kevin Lange
fa79d54ce2
[build] Fix Makefile color output, not all echos support \e
2011-02-10 12:59:44 -06:00
Kevin Lange
e04865649c
[build] Neglected to drop -fda from qemu
2011-02-10 00:59:06 -06:00
Kevin Lange
15ea3f885c
[build] Screw Grub, qemu will boot us raw.
2011-02-10 00:58:19 -06:00
Kevin Lange
d79c8a024d
[build] purdy colors
2011-02-09 15:58:27 -06:00
Kevin Lange
d0505da0f3
[build] Minor Makefile adjustments
2011-02-09 15:33:03 -06:00
Kevin Lange
7b6fc96cab
[build] Typo
2011-02-09 14:33:42 -06:00
Kevin Lange
7d3d404264
[build] Restructure build process.
2011-02-09 14:32:49 -06:00
Kevin Lange
afa85d9b39
[shell] Kernel debug shell and all the things I needed to make to support that.
2011-02-07 14:30:17 -06:00
Kevin Lange
beaa7fda54
[make] Fix core target
2011-02-07 12:16:20 -06:00
Kevin Lange
09f530604e
[ext2] Fix up some warnings
2011-02-05 13:27:04 -06:00
Kevin Lange
8c818ea064
[make] Clean everything up nice and tidy.
2011-02-05 13:12:27 -06:00
Kevin Lange
b61b48f8c8
[make] Fix some Makefile initrd stuff
2011-02-04 23:14:54 -06:00
Kevin Lange
db4643d4ec
[initrd] Replace initial ramdisk with one we generate with genext2fs
2011-02-04 22:41:28 -06:00
Kevin Lange
768ca852c7
[Make] Put our ramdisk image in the local boot directory on install
2011-02-02 00:03:24 -06:00
Kevin Lange
d067e3d8a6
[ext2] Read files from deep directories.
2011-01-29 14:52:44 -06:00
Kevin Lange
21260c345c
[ext2] Read ext2 initial ramdisk image and print out a file's content
2011-01-28 23:09:09 -06:00
Kevin Lange
f6c73d0229
[vfs] Fix VFS and add the initrd to the disk image and grub menu
2011-01-22 01:22:46 -06:00
Kevin Lange
9c476e9426
[make] remove bootdisk on clean
2011-01-19 13:54:01 -06:00
Kevin Lange
e349d70557
[disk] Stop tracking changes to bootdisk
2011-01-19 09:51:59 -06:00
Kevin Lange
ac2a767373
[core] Fix up everything to read multiboot parameters and print them out.
2011-01-19 00:04:27 -06:00
Kevin Lange
21ed31f8da
[make] Restructure directories.
2011-01-17 13:58:31 -06:00
Kevin Lange
94de5f557b
[make] Install kernel to /boot directory on local system.
2011-01-17 13:46:38 -06:00
Kevin Lange
e043f15cd4
[sys] kprintf
2011-01-17 10:24:55 -06:00
Kevin Lange
f5d2053132
[keyb] Keyboard support of sorts
2011-01-16 13:45:51 -05:00
Kevin Lange
14325e9972
[time] Timer, fix IRQs, 99 Bottles
2011-01-16 11:56:44 -05:00
Kevin Lange
ed01e7119a
[irq] Interrupt handling
2011-01-15 23:17:42 -05:00
Kevin Lange
a331c106f6
[isrs] Interrupt Service Routines
2011-01-15 22:41:17 -05:00
Kevin Lange
9fe8d53cc2
[idt] IDT
2011-01-15 22:11:17 -05:00
Kevin Lange
79330973d2
[gdt] Global Descriptor Table driver
2011-01-15 20:59:11 -05:00