Commit Graph

23 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
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
816ddc8f3e Lots of process cleanup implemented; improved cursor rendering 2012-03-14 22:03:55 -05: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
de7a984938 Fix a bunch of bugs in signal handling and scheduling 2012-02-20 23:31:00 -06:00
Kevin Lange
a72f9bc7cf Fix stack bug. 2012-02-16 14:31:40 -06:00
Markus Schober
4453aba2de can haz threads? 2012-02-15 22:56:16 -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
180342822a Merge branch 'master' of github.com:klange/osdev 2012-02-08 20:09:33 -06:00
Kevin Lange
79fcaf5136 Stability fixes. 2012-02-08 20:09:28 -06:00
Markus Schober
27d0deed5b [shm] fork() and execve() don't wreak havoc on shm 2012-02-08 19:59:34 -06:00
Kevin Lange
65fa12f482 SIGNALS 2012-02-08 02:40:44 -06:00
Markus Schober
aec24c08f1 Attaching nearly works! 2012-02-07 02:29:28 -06:00
Kevin Lange
89d9265c73 Actually deschedule processes when they are waiting 2012-01-31 19:27:38 -06:00
Kevin Lange
a47fe02224 Directory switching 2012-01-27 13:10:58 -06:00
Kevin Lange
d112f6fedb Reboot [and fix user/group permissions in fork()] 2012-01-26 23:11:43 -06:00
Kevin Lange
1a2cb28fc1 [pipe] Fix write overrun and other issues 2012-01-25 00:54:59 -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
d9c0c8efb6 Pipes, dup2, and an almost-kinda-working terminal 2012-01-24 19:06:07 -06:00
Kevin Lange
ddc71135af [proc] Fix some latent management bugs 2011-12-15 21:08:48 -06:00
Kevin Lange
021585e9ef [misc] Massive improvements to process handling
- Free process resources when a process exits (reaped in next process
  cycle; should probably reap after a wait() or something)
- Free process struct after wait()
- Fix page allocation
- Fix fork() return value for child process (attempted to write to an
  invalid point in kernel-stack memory)

We shouldn't be triple faulting randomly anymore!

Continue investigating the fork() return value, as there was a bugged
return at some point during executon of a test run of thrash-process.
2011-12-15 17:21:28 -06:00
Kevin Lange
8c548c0db0 Restructure directory tree for kernel modules 2011-12-14 22:15:47 -06:00