Commit Graph

90 Commits

Author SHA1 Message Date
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
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
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
742a6e7448 Fix up style in system.c, fix some bugs, too 2012-10-03 22:01:45 -07:00
Kevin Lange
8c20e96fb6 reboot syscall will sync disks 2012-09-29 00:38:45 -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
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
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
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
Kevin Lange
8ed06789ed New debug printing facilities.
- Can now register a userspace file descriptor as the output for kernel
  print statements through kprintf()
- Can set logging levels for debug print messages, which are separate
  from kernel log events and meant to be more readily visible. Log
  events are recorded in a buffer to be viewed later, though nothing
  actually using logging at the moment.
- Serial output is disabled by default now. You can enable it yourself
  by appending the logtoserial argument to the kernel on boot.
2012-09-03 22:35:11 -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
baaa8bc6c8 Stylistic whitespace update to syscall.c 2012-07-06 21:16:19 -07:00
Kevin Lange
989b43ee68 Fix malloc in libc? 2012-06-01 02:02:02 +09:00
Kevin Lange
84ccf49990 Delayed writes [use sysfunc 3 to sync disc]
Please note that 'reboot' will not call sync yet, so make sure you do it
yourself.
2012-05-31 20:52:47 +09:00
Kevin Lange
5457de3906 System Debugging Functions syscall 2012-05-16 20:51:37 -04:00
Kevin Lange
915ebc1dac Increment version to 0.2.1 2012-04-11 00:16:24 -05:00
Kevin Lange
8096d89c16 [temp] Stop freeing file nodes (XXX) 2012-04-03 13:17:26 -05:00
Kevin Lange
35eb731ccb Bump version to 0.2.0, change branch to -dev 2012-03-27 21:52:38 -05:00
Kevin Lange
f68ca25622 Boot-to-shell through kernel argument 'single' 2012-03-27 21:47:25 -05:00
Kevin Lange
0ce4e02cba Actually release directories again so we don't run out of RAM 2012-03-27 19:38:04 -05:00
Kevin Lange
639881f931 Make things faster, better, stronger, etc. 2012-03-27 19:09:11 -05:00
Kevin Lange
816ddc8f3e Lots of process cleanup implemented; improved cursor rendering 2012-03-14 22:03:55 -05:00
Kevin Lange
2791e7fd35 We've been doing some really stupid shit here... 2012-03-10 18:20:34 -06:00
Kevin Lange
66ba18fc33 Ug. 2012-03-10 15:03:59 -06:00
Kevin Lange
aa6e7ca62b Actually, I'm just a complete moron, lolz 2012-03-10 13:36:16 -06:00
Kevin Lange
cf6437c477 We were also leaking on sigkills 2012-03-10 13:34:15 -06:00
Kevin Lange
4b132c195b Thar's the problem. 2012-03-10 12:47:33 -06:00
Kevin Lange
e586a9361d No, I was an idiot. 2012-03-10 12:42:23 -06:00
Kevin Lange
1c288e1c8b We never freed nodes from the scheduler queue :( 2012-03-10 12:39:35 -06:00
Kevin Lange
1b2d0e2c75 Bump version number to 0.1.0 for EOH 2012-03-07 19:35:30 -06:00
Kevin Lange
8fb8edba3a I have no idea idea what I'm doing. 2012-03-01 21:13:52 -06:00
Kevin Lange
de7a984938 Fix a bunch of bugs in signal handling and scheduling 2012-02-20 23:31:00 -06:00
Kevin Lange
7c41cd7080 Fix compile warnings 2012-02-17 01:27:56 -06:00
Kevin Lange
220e9cbc57 Hopefully fix some latent signal bugs 2012-02-17 01:21:11 -06:00
Kevin Lange
678ed81c65 Extensive stability fixes. I think I finally squashed those stack bugs. 2012-02-16 22:43:41 -06:00
Kevin Lange
a1d821de9b Various fixes 2012-02-16 14:38:50 -06:00
Kevin Lange
a72f9bc7cf Fix stack bug. 2012-02-16 14:31:40 -06:00
Kevin Lange
c67d2796ef Finish threading (might still be some bugs) 2012-02-16 01:06:44 -06:00
Markus Schober
4453aba2de can haz threads? 2012-02-15 22:56:16 -06:00
Kevin Lange
cffbb02240 Stuff and things 2012-02-15 20:50:31 -06:00
Kevin Lange
de0bbe739b Fix a bunch of system calls... 2012-02-12 18:47:01 -06:00
Kevin Lange
9b1e227c0f Fix a dozen different things. 2012-02-12 16:45:23 -06:00
Kevin Lange
cc7354d298 Fix bad process switch handling on empty queues 2012-02-11 18:27:28 -06:00
Markus Schober
45903b204b fixed a subtle bug in shm; added a bunch of utilities to test it 2012-02-10 22:31:38 -06:00
Kevin Lange
58c176dfa0 Syscalls to share file descriptors over a shared memory region 2012-02-08 20:59:34 -06:00