Commit Graph

524 Commits

Author SHA1 Message Date
Kevin Lange
c4fc02f87d Support modules from bootloader (again) 2014-03-15 00:36:50 -07:00
Kevin Lange
99db031259 Module listing shell commands 2014-03-15 00:03:48 -07:00
Kevin Lange
818fe2787b include stuff 2014-03-14 23:47:07 -07:00
Kevin Lange
903f7f6524 Expose shell to other modules (TODO: dependencies) 2014-03-14 23:37:42 -07:00
Kevin Lange
91767bcc69 Debug shell as a module 2014-03-14 23:17:59 -07:00
Kevin Lange
e9e892bae5 Unresolved symbol handling 2014-03-12 00:18:55 -07:00
Kevin Lange
ed03c517ad More real module loading
Still need to do proper loading of the ELF sections somewhere, but other
than that, we've got a standard interface now. Needs a syscall so we can
write an insmod or something like that.
2014-03-11 23:56:08 -07:00
Kevin Lange
c67d054526 Actually need to handle these as errors, but let's just be safe. 2014-03-11 07:59:00 -07:00
Kevin Lange
47ace6c8d6 Cleanup headers 2014-03-09 23:31:13 -07:00
Kevin Lange
be7dc6fb17 Support more relocation methods 2014-03-09 23:01:30 -07:00
Kevin Lange
1389916cba quick cleanup 2014-03-09 22:37:49 -07:00
Kevin Lange
c051fe7ee1 First module load! 2014-03-09 22:31:34 -07:00
Kevin Lange
cc4391d783 Initial work on modules
There's a lot here, so let's through it:
- Lots of work to include a symbol table in the kernel. We can't rely on
  our bootloader to give us our own ELF information, so we do this
  separately. This probably should be changed to output a C source
  rather than assembly, but that's a TODO.
- Makefile can now generate modules. It works basically the same way any
  other kernel object works, expect with a slightly different linking
  scheme.
- Commands have been added to the debug shell to load modules, but they
  don't work yet - still need to get through relocation and linking.
- Commands have been added to the debug shell to print the symbol list,
  as well as print symbol values (but note that printing symbol values
  is kinda dangerous if you don't know what they are, so don't just go
  printing things willy-nilly).
2014-03-09 19:36:28 -07:00
Kevin Lange
1655cfc600 Suggested cleanups from sortie 2014-02-26 21:10:56 -08:00
Kevin Lange
d42617020f random rtl network stuff, not working yet 2014-02-26 21:00:16 -08:00
Kevin Lange
608b0406e6 Update pci headers 2014-02-26 20:59:25 -08:00
Kevin Lange
010a461d65 Minor cleanup 2014-02-26 20:59:10 -08:00
Kevin Lange
3749c6e954 more debug shell socket stuff 2014-01-14 21:21:33 -08:00
Kevin Lange
18f3f54494 kinda silly, but whatever 2014-01-10 00:45:59 -08:00
Kevin Lange
f5be45a2c9 lots of legacy cleanup 2013-12-15 21:33:46 -08:00
Kevin Lange
2ced88cf33 make kernel hashmap generic 2013-12-15 20:27:06 -08:00
Kevin Lange
6629eed64a debug shell cleanup 2013-12-14 13:47:18 -08:00
Kevin Lange
ed3c578e64 clean up some legacy util stuff 2013-12-13 20:50:04 -08:00
Kevin Lange
ebe1c24dbd Some sort of PCI subsystem, maybe 2013-12-12 23:40:52 -08:00
Kevin Lange
ee978f3dbe Fix freeing keys, add another test 2013-12-01 23:50:13 -08:00
Kevin Lange
902b0342b9 Add some more hashmap functions
And port kernel console command lookup to use a hashmap.
2013-12-01 23:29:40 -08:00
Kevin Lange
204d9bb6ce Remove debug logging from hashmap 2013-12-01 21:46:23 -08:00
Kevin Lange
6fde2533a1 Better hash function 2013-12-01 21:40:39 -08:00
Kevin Lange
26cfa78f89 Use hashmap for args
There, now it's fast.
2013-12-01 21:22:06 -08:00
Kevin Lange
68941f6afd Simple hashmap 2013-12-01 21:19:09 -08:00
Kevin Lange
a376ab2563 Fix some weirdness 2013-12-01 20:07:31 -08:00
Kevin Lange
56ad9598d0 New kernel args parser
I know, this is a lot slower than the old one, but it's a transition to
a new-new args parser that will use a hashmap... as soon as I get around
to writing a hashmap implementation.
2013-12-01 19:37:22 -08:00
Kevin Lange
1cbd26689b Some FS navigation in the debug console
Since I'm working on VFS rewrites...
2013-11-30 22:27:45 -08:00
Kevin Lange
89cb3c8dbd A reasonable shell command system 2013-11-30 00:09:04 -08:00
Kevin Lange
382a24adb8 Fix run-config to work with serial tty 2013-11-28 15:58:57 -08:00
Kevin Lange
2978d31461 Unrecognized command 2013-11-27 22:47:05 -08:00
Kevin Lange
283ac3c824 Add some tokenizing 2013-11-27 22:41:27 -08:00
Kevin Lange
8c469883bc Wrap serial console in a TTY 2013-11-27 22:24:58 -08:00
Kevin Lange
3c9a717429 Tasklet cleanups, make kttydebug useful 2013-11-27 21:21:39 -08:00
Kevin Lange
e95c9eb40b Fix procfs when no cmdline is present 2013-11-27 21:21:09 -08:00
Kevin Lange
5a422a58c7 Bump version number 2013-11-27 19:15:36 -08:00
Kevin Lange
10f4cc6811 Tasklets; fix dead sleep; kernel serial console
- Tasklets are essentially kernel threads. Still working on passing
  arguments to them, but they essentially just run functions and have
  special names like [[kttydebug]]. Eventually, I want disk scheduling
  and various (non-interrupt-driven) drivers running on these, but I'm
  still not sure how stable they are.
- Fix the scheduler so it supports not having anything to run. This took
  some tracking of what's running, and then inserting some liberal
  sleeps. Doesn't appear to break anything. Makes the system work when
  you try to sleep with only one process "running", so that's good.
- Start working on reimplementing the old kernel shell, but this time as
  a tasklet running in the background over serial. Probably going to try
  to add all the same features as before (tab completion, history, rich
  editing), but it may take some time to get it all in there. This
  console is mostly focused on helping with debugging EXT2 and other
  future stuff.
2013-11-27 19:11:58 -08:00
Kevin Lange
8dfd4ff20a Make serial devices more useful
They now use interrupts and thus can be blocked on without sitting in a
busy loop. Not sure if they still work perfectly, need to debug. Works
fine with the console "serial" stuff in qemu.

Todo: Investigate further.
2013-11-27 19:10:38 -08:00
Kevin Lange
922fdd5f38 None of this actually works, but whatever 2013-08-19 19:38:15 -07:00
Kevin Lange
7351fa308b Various fixes to help get bash working 2013-08-04 00:04:22 -07:00
Kevin Lange
948813d0be Fix buffer clearing and dumping when switching modes 2013-07-27 22:21:04 -07:00
Kevin Lange
720a62d6aa ICANON support (still a bit rough)
This is a massive hack and I admit it.
2013-07-27 22:01:08 -07:00
Kevin Lange
40f0c41932 Preliminary termios support
This is some initial work on support real PTYs.
Canonical mode is not supported at the moment.
2013-07-27 00:18:29 -07:00
Kevin Lange
6ad55d68d2 (debugging) export files to sdb with a sysfunc 2013-07-22 22:41:14 -07:00
Kevin Lange
ee90317940 bump version for new development line 2013-07-22 20:50:49 -07:00