Commit Graph

418 Commits

Author SHA1 Message Date
Kevin Lange
22f04f137b Relatively compliant uname() implementation
Also, sleep() as a function (implemented by way of nanosleep) and new
absolute and relative sleep system calls added to newlib.

[ci skip] I damn well know this is going to break CI.
2013-03-13 21:55:25 -07:00
Kevin Lange
09ec69340c New version tree 2013-03-03 17:11:41 -08:00
Kevin Lange
c4545dcc51 bump version in light of toolchain updates 2013-01-25 21:39:12 -08:00
Kevin Lange
acb362e191 Update copyright in kernel/main.c 2013-01-04 20:42:18 -08:00
Kevin Lange
3b06b5c464 bump version to 0.4.2 2012-12-10 20:38:59 -08:00
Kevin Lange
3a977369af Timed process sleeping (and bug fixes) 2012-12-10 20:28:31 -08:00
Kevin Lange
0e3c9f1241 Fix leap year calculation 2012-12-09 17:08:03 -08:00
Kevin Lange
e83f88bacb Add time support to vfs 2012-12-09 16:59:55 -08:00
Kevin Lange
3cdb7b8748 make most of ext2fs use debug_print 2012-12-09 16:19:25 -08:00
Kevin Lange
a1099c1566 Bump kernel version 2012-12-08 00:25:01 -08:00
Kevin Lange
cd929b1ceb Fix some minor input issues 2012-12-08 00:24:43 -08:00
Kevin Lange
3ca94a0528 fix unsigned/signed compare 2012-12-07 19:29:54 -08:00
Kevin Lange
a5b00112af Add tick counts 2012-12-07 19:06:43 -08:00
Kevin Lange
a9d895a923 unify logging 2012-12-07 18:33:07 -08:00
Kevin Lange
f5b5b8821d Clean up some minor bits and pieces. 2012-12-04 20:09:06 -08:00
Kevin Lange
a201ea07b1 Clean up kernel/devices/kbd
Remove a bunch of unused macros and variables.
2012-12-04 15:41:01 -08:00
Kevin Lange
c90bf5cbc9 Remove a bitmask.
Adds a byte to the process struct, but avoids GCC-specific extensions of
using a single byte for a bitmask. May or may not have any effect
anywhere, but will make ./analyze happier.
2012-12-04 15:16:53 -08:00
Kevin Lange
ce1a0ed15d bump to 0.4.0 2012-12-03 00:10:31 -08:00
Kevin Lange
6cb9664b69 Fix some VESA woes 2012-12-02 23:28:29 -08:00
Kevin Lange
3b316b0603 add some indication of video driver status 2012-12-02 22:41:40 -08:00
Kevin Lange
3a45200d3d lol wat 2012-12-02 22:16:59 -08:00
Kevin Lange
50ea1462c3 Fix IDE on new qemu, virtualbox 2012-12-02 21:43:54 -08:00
Kevin Lange
c9448437dc Fix long-standing issues in qemu/bochs
and possibly other environments - fixes the long-standing issue with
keyboard/mouse getting disabled sometimes on bootup, especially if you
tried to interact with the qemu window during the boot process
2012-11-30 19:32:38 -08:00
Kevin Lange
193158079d Bunch of kernel cleanup 2012-11-30 18:26:47 -08:00
Kevin Lange
ed5b9543fb Big commit: Serial console
* fix some terminal bugs (some, not all)
* add a serial device to the VFS
* fix up serial so it works better
* add a serial-console application
* fix a bug in some other stuff relating to allocations
* change size of the terminal described by toaru.terminfo
* adds a new system call
2012-11-28 23:05:19 -08:00
Kevin Lange
6e909acd07 Save/restore FPU state on task switch 2012-10-21 20:17:47 -07:00
Kevin Lange
5fc2a56c05 Meh.
I'm trying to get PATA access to work on real hardware (and in
VirtualBox, specifically), but it's not working out well. Unless there's
a major breakthrough tomorrow, I'm going to set it aside for a while.
2012-10-17 22:23:10 -07:00
Kevin Lange
4da4ab63c0 [debug] warn if vid mem can't be located 2012-10-16 23:31:55 -07:00
Kevin Lange
05728b0e2f Fix large files on modern ext2 configurations 2012-10-16 22:30:57 -07:00
Kevin Lange
5e39fe9bfa Fix something I failed to clear out. 2012-10-14 20:27:04 -07:00
Kevin Lange
7d5eb42400 Userspace keyboard handling
Kernel driver sends raw scancodes, compositor or terminal handle the
rest. Support for F* keys will be added soon, in the mean time userspace
applications can know about the status of modifiers (control, shift,
alt, and super).

Compositor actions have been changed to Alt+Left Click for move and
Alt+Middle Click for resize. I'll work on adding more mouse events once
I get them to be faster (they're annoyingly slow at the moment... I want
more accuracy and less latency).
2012-10-14 19:53:16 -07:00
Kevin Lange
9d84988778 Bump version number to 0.3.7
Getting close to the big 0.4.0, but I really want to fix my ATA drivers
and possibly get some CD/ISO stuff in before then.

[ci skip]
2012-10-13 22:06:51 -07:00
Kevin Lange
217f66e23e Mouse-driven window resizing 2012-10-13 20:19:43 -07:00
Kevin Lange
deaa6ad513 Rough support for environment variables
- libc functions not implemented yet
- see `env` for an example of reading variables
- see `esh` for an example of how to set and maintain variables for
  sending to other applications

  Both of the above will be the basis for the libc implementation.
2012-10-07 20:46:35 -07:00
Kevin Lange
77ed41c225 kernel vga term, commas in arguments, ide fixes 2012-10-03 22:03:21 -07:00
Kevin Lange
742a6e7448 Fix up style in system.c, fix some bugs, too 2012-10-03 22:01:45 -07:00
Kevin Lange
2eb953f1f1 Massive fixes to the EXT2 driver.
* Works with different block sizes
* Works with different inode sizes
* Tested on a real EXT2 file system made with mkfs.ext2

* MBR reading is available
* You can specify a partition with hdd=0 or hdd=1 etc.

* If you make a "real" disk image, you can get GRUB installed in
  its MBR, toss in a suitable config file, and boot right off the
  disk rather than having to use QEMU to boot the kernel or using
  some silly CDROM ramdisk nonsense.
2012-09-29 00:39:01 -07:00
Kevin Lange
8c20e96fb6 reboot syscall will sync disks 2012-09-29 00:38:45 -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
9f282a7916 Fix alloc init bug, bump version.
We'll keep that graphic testing thing in there just in case.
2012-09-18 01:19:30 -07:00
Kevin Lange
57534cf009 Fix things up to prepare a working ramdisk. 2012-09-18 00:06:32 -07:00
Kevin Lange
a212a93942 Draw some pretty stuff and halt without a disk img
Don't push this to master!

[ci skip]
2012-09-17 22:58:49 -07:00
Kevin Lange
777b442a1e Finish rename of bochs driver to lfb driver.
* Removed some deprecated header stuff.
* Renamed functions / global variables.
2012-09-17 22:46:43 -07:00
Kevin Lange
5ce042f2d8 Deprecate VESA support.
This is in favor of bootloader-assisted mode switching. Grub has a
wonderful option we will exploit to set the video mode.

My laptop supports a couple of 32-bit video modes, which is nice,
because I'm not support 24-bit modes.

I'm not sure whether the super-sketchy video memory locator will work
in the real world, but we'll find out sometime soon.
2012-09-17 22:22:25 -07:00
Kevin Lange
4c67b5da84 Completely rewrote compositing engine
The compositor itself still needs work, but the compositing engine
within now does full blitting and is faster than the old method.
Transparency is now supported properly, though telling the compositor to
use it on a window will degrade performance. One terminal is usually
okay, and everything runs faster than it did before; two terminals is
pushing it; three will make you very sad. The stacking logic has also
been updated. Presumably, alpha blitting for transparent windows could
be done with SIMD instructions and be extremely fast.

All graphics libraries have also been updated to (hopefully) work
properly with alpha bits.
2012-09-13 22:12:47 -07:00
Kevin Lange
cea692b577 And now with more login.
* Also cleaning up some kernel logging options here.
* You can log in as local or root with passwords local and toor
* Graphical sessions are still buggy, so don't kill that terminal.
2012-09-12 23:19:07 -07:00
Kevin Lange
ba358a51ff Bump kernel version
* Panel now displays actual kernel version using the uname hack
2012-09-12 20:08:30 -07:00
Kevin Lange
03181de68b One line fix to a big bug in the ext2 driver
[ci skip]
2012-09-11 00:26:39 -07:00
Kevin Lange
af6be648d4 A lot of refactoring 2012-09-07 20:17:00 -07:00
Kevin Lange
5914a09735 Neglected to remove an include... 2012-09-04 20:58:19 -07:00