Kevin Lange
9fd73be686
Trying a few fixes... We're still doing some things very, very wrong.
2012-03-27 16:52:46 -05:00
Kevin Lange
fb6e5d59e3
Completely rewrite rendering model for compositor.
...
We know longer accept DAMAGE and REDRAW commands. Instead, we just loop
and redraw everything anyway (efficiently, mind you). Pipes still have
issues when closed and various other different things.
2012-03-27 13:58:21 -05:00
Kevin Lange
182de81a79
[userspace] Various. BOOT TO TERMINAL
2012-03-23 17:44:37 -05:00
Kevin Lange
103dccf604
ಠ_ಠ
2012-03-20 16:37:49 -05:00
Kevin Lange
3a60e4e6bd
Comment the C++ test program
2012-03-20 16:30:59 -05:00
Kevin Lange
1038ceab72
There is something terribly wrong with how we're doing this.
2012-03-20 16:23:24 -05:00
Kevin Lange
c35af17b78
By executing ios_base::Init(), we cout will work...
2012-03-20 16:22:50 -05:00
Kevin Lange
2e4543d956
Oops, silly me. Minor little bug fixed
2012-03-16 20:05:56 -05:00
Kevin Lange
fc00d3f1f9
Terminal improvements
2012-03-16 17:09:00 -05:00
Kevin Lange
816ddc8f3e
Lots of process cleanup implemented; improved cursor rendering
2012-03-14 22:03:55 -05:00
Kevin Lange
ffbe7b7b38
A bunch of stuff.
2012-03-14 15:04:12 -05:00
Kevin Lange
2c4e4e5d03
Fix up destroy() so we can (in theory) delete windows from their owning apps
2012-03-13 17:44:19 -05:00
Kevin Lange
03ee7ed9a9
Fix a kernel elf loader bug that was breaking getopt()
2012-03-13 17:43:35 -05:00
Kevin Lange
2791e7fd35
We've been doing some really stupid shit here...
2012-03-10 18:20:34 -06:00
Kevin Lange
db617812e4
Disable resizing of windows
2012-03-10 12:39:13 -06:00
Kevin Lange
f8ca55805a
window_destroy is broken and screws up everything
2012-03-10 09:12:40 -06:00
Kevin Lange
73c6171226
Last minute bug fixes
2012-03-08 23:36:40 -06:00
Kevin Lange
a8f32e077f
lol
2012-03-08 15:43:00 -06:00
Kevin Lange
ca43444cc5
don't take location for View app
2012-03-08 02:50:33 -06:00
Kevin Lange
c7500735f4
Adjust Nyancat
2012-03-08 01:10:36 -06:00
Kevin Lange
19a12bec78
lol panel
2012-03-07 23:44:02 -06:00
Kevin Lange
c15402af4c
Use window server to determine window size for wallpaper
2012-03-07 22:40:58 -06:00
Kevin Lange
7a9961a9b2
Wallpaper application for scalable wallpaper support
2012-03-07 22:31:24 -06:00
Kevin Lange
a9519bd18a
Minor updates to userspace apps
2012-03-07 19:35:15 -06:00
Kevin Lange
f3f0a58b95
Cleaner makefile for userspace
2012-03-06 15:32:26 -06:00
Kevin Lange
8fb8edba3a
I have no idea idea what I'm doing.
2012-03-01 21:13:52 -06:00
Kevin Lange
a1a6303bee
Faster is_top by way of a depth map
2012-02-26 00:45:46 -06:00
Kevin Lange
70fa12eaf6
remove some old test applications
2012-02-26 00:17:14 -06:00
Kevin Lange
2b0d6f6759
Some very simplistic window management
2012-02-25 23:52:09 -06:00
Kevin Lange
35f5266acf
*sigh*...
2012-02-25 22:47:20 -06:00
Kevin Lange
61967e17e4
Use shmem fonts for terminal
2012-02-25 21:28:33 -06:00
Kevin Lange
7e71b3c2af
Fix focusing
2012-02-23 01:40:37 -06:00
Kevin Lange
52dd077032
Multiple terminals, fixed focusing, getopt is borked
2012-02-23 01:30:56 -06:00
Kevin Lange
ef82703d5d
Terminal actually handles input properly [kbd only]
2012-02-23 00:58:14 -06:00
Kevin Lange
db8a75071d
We have a terminal. In a window. Seriously.
2012-02-23 00:36:49 -06:00
Kevin Lange
442ad96588
lolz
2012-02-23 00:02:00 -06:00
Kevin Lange
0ab782da19
Merge markus' changes
2012-02-20 23:34:09 -06:00
Kevin Lange
2da22312a5
Merge branch 'master' of github.com:klange/osdev
2012-02-20 23:32:10 -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
5de319b816
Work on Shmem fonts
...
Still need to pass sizes around to shm_* functions as a pointer rather
than the actual size so we can retreive sizes; additionally, *p = 0
should mean "we don't want to create this buffer, we only want to
access it if it exists".
2012-02-20 18:33:09 -06:00
Kevin Lange
16b71c532f
[compositor] Load up fonts into shm
2012-02-20 12:18:13 -06:00
Kevin Lange
6268eb3f4e
Actually allocate a buffer for double buffering...
2012-02-20 09:23:10 -06:00
Kevin Lange
d768932265
Stop specifing core2 for arch in userspace.
...
This was creating binaries with invalid opcodes on i7 desktop kvm.
Which is hilarious.
2012-02-20 08:39:00 -06:00
Kevin Lange
a222c3f56a
Various bits of graphical fun stuff
2012-02-19 22:35:20 -06:00
Kevin Lange
d048006b9c
Fix bitmap loading pinkness bug
2012-02-19 21:43:13 -06:00
Kevin Lange
e335a2970a
[glogin] Working on the graphical login application
2012-02-19 21:29:40 -06:00
Kevin Lange
e1beca4127
CPU detection moved to userspace app
2012-02-19 19:39:18 -06:00
Kevin Lange
a97194f0bf
You stack'd when you should have queue'd!
2012-02-17 15:31:40 -06:00
Kevin Lange
b30cd50864
Keyboard handling in the compositor
2012-02-17 01:28:12 -06:00
Markus Schober
71fd14d6f7
shm_obtain takes a (size_t *), altering it according to the size of the
...
block it returned.
Conflicts:
userspace/compositor.c
2012-02-16 03:43:30 -06:00
Markus Schober
6dc90b1ac2
shm_obtain takes a (size_t *) and modifies the value based on the true
...
size of the block returned.
2012-02-16 03:34:42 -06:00
Markus Schober
79e67dbe16
drawlines will totally tell you if you gave it a key
2012-02-15 23:14:36 -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
8fb69d44cd
I have no frickin' clue what's causing these startup crashes. Requires further investigation.
2012-02-16 15:09:56 -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
4694c67936
Add lock options to thread demo app
2012-02-16 01:48:51 -06:00
Kevin Lange
af860d46f2
Update threadtest to actually demonstrate the classic concurrency bug
2012-02-16 01:34:12 -06:00
Kevin Lange
c67d2796ef
Finish threading (might still be some bugs)
2012-02-16 01:06:44 -06:00
Kevin Lange
cffbb02240
Stuff and things
2012-02-15 20:50:31 -06:00
Kevin Lange
3980460484
top/left offsets are SIGNED; add julia fractal thingy
2012-02-13 19:46:00 -06:00
Kevin Lange
86fc80a5e6
Fix overlaps by actually assigning real indexes...
2012-02-13 16:35:57 -06:00
Kevin Lange
c211c61369
Well, that works.
2012-02-13 16:21:52 -06:00
Kevin Lange
9e4d78e721
Fix off-by-one rendering issue
2012-02-12 22:42:25 -06:00
Kevin Lange
749c22c2eb
There are some heisenbugs here. I can taste them.
2012-02-12 22:24:02 -06:00
Kevin Lange
1f3d78f8ea
Redraw root...
2012-02-12 19:34:19 -06:00
Kevin Lange
abf1e5c837
THIS... IS... SPAAAAARTAAA!!!
2012-02-12 19:30:36 -06:00
Kevin Lange
de0bbe739b
Fix a bunch of system calls...
2012-02-12 18:47:01 -06:00
Kevin Lange
e453b08dd6
Debugging, use proper signals, etc.
2012-02-12 17:00:21 -06:00
Kevin Lange
9b1e227c0f
Fix a dozen different things.
2012-02-12 16:45:23 -06:00
Markus Schober
c47e199802
Working on window functionality
2012-02-12 05:24:40 -06:00
Kevin Lange
adf2b02b4b
[user] Remove the keyboard event loop from julia2
...
It doesn't even need one; eventually, we'll have window management and
you'll just close the app. It should technically just sit in a loop
endlessly after rendering (or waitforsignal, which we don't have yet).
2012-02-11 22:43:26 -06:00
Kevin Lange
ec391b013e
Fix merge conflict
2012-02-11 18:02:14 -06:00
Kevin Lange
49adc34013
Fix buffer overwrites and other issues in compositor
2012-02-11 18:01:21 -06:00
Markus Schober
b06b4fc576
Compositor doesn't clobber the heap anymore.
2012-02-11 17:57:22 -06:00
Markus Schober
a3384aac9e
The new compositor is armed and (almost) fully operational!
2012-02-11 15:54:01 -06:00
Kevin Lange
824f2dfb94
fix typos
2012-02-11 01:23:27 -06:00
Kevin Lange
a4178b9248
Magic, identifiers, etc.
2012-02-11 01:20:17 -06:00
Kevin Lange
3411eb380f
Protocol refinements
2012-02-11 00:06:09 -06:00
Kevin Lange
9315c95452
Command formats and numbers
2012-02-10 23:29:08 -06:00
Kevin Lange
bc692e83df
New compositing work
2012-02-10 23:23:20 -06:00
Markus Schober
d28726fae7
[userspace] really simple second compositor built on shm
2012-02-10 22:54:50 -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
e5f3e49c9d
[user] lock application (silly, command line)
2012-02-09 15:29:32 -06:00
Kevin Lange
71842055f4
Fix off-by-one
2012-02-08 22:42:11 -06:00
Kevin Lange
3eb42fe0f0
Fix RPG rendering, finally
2012-02-08 21:22:30 -06:00
Kevin Lange
d1bb652db3
Various.
...
[init] Reenable freetype in the Terminal spawned from init
[nyancat] Fix timing and update animations
[esh] Fix bug with child pid collection and signal handling
2012-02-08 15:56:27 -06:00
Kevin Lange
499184718d
just some fun
2012-02-08 12:04:03 -06:00
Kevin Lange
9daca33cb1
Minor compilation fixes
2012-02-08 12:01:25 -06:00
Kevin Lange
dcc82083ed
Compositor doesn't spawn a terminal now :D
2012-02-08 02:45:47 -06:00
Kevin Lange
65fa12f482
SIGNALS
2012-02-08 02:40:44 -06:00
Markus Schober
a09be369ea
Merge branch 'master' of git://github.com/klange/osdev
2012-02-07 02:32:40 -06:00
Markus Schober
aec24c08f1
Attaching nearly works!
2012-02-07 02:29:28 -06:00
Kevin Lange
4335ade9bc
fire demo, again from a1k0n
2012-02-07 00:11:49 -06:00
Kevin Lange
e2dc01bed7
donut checker... though it has a segfault
2012-02-07 00:06:06 -06:00
Kevin Lange
a95cc17853
Mm, donuts
2012-02-06 23:34:35 -06:00
Kevin Lange
fdaf53b0c4
[shm] Working on negotiation functions
2012-02-05 19:56:21 -06:00
Kevin Lange
c4e33117c0
mkdir and creat testing
2012-02-05 16:04:41 -06:00
Kevin Lange
06a9125c21
Drop redefs of syscalls
2012-02-04 22:57:03 -06:00
Kevin Lange
6590b285b5
Mouse improvements (stability, scaling)
2012-02-04 22:29:46 -06:00
Kevin Lange
1110a119c5
Various blootsplash enhancements.
2012-02-04 01:20:33 -06:00
Kevin Lange
505ed79da3
New compositor and boot splash tests; launches terminal eventually.
2012-02-03 21:15:26 -06:00
Kevin Lange
b0e40ae6df
Updated graphics library with sprite loading and stuff
2012-02-03 19:47:36 -06:00
Kevin Lange
2e8144493d
Bootsplash testing (launches terminal afterwards)
2012-02-03 18:16:47 -06:00
Kevin Lange
aac1d78e35
Drop packets from the mouse if the client isn't reading fast enough
2012-02-02 20:37:50 -06:00
Kevin Lange
90392d47e6
blink blink blink blink blink
2012-02-02 20:28:26 -06:00
Kevin Lange
4366a20a8f
Pipe and packet-based mouse device
2012-02-02 16:16:29 -06:00
Kevin Lange
ab5506b766
[julia] Don't clear the display, it causes problems
2012-01-31 20:47:32 -06:00
Kevin Lange
21218be799
Fix 24-bit rendering
2012-01-31 14:30:12 -06:00
Kevin Lange
dc2badc80e
Simple line editing and buffering
2012-01-31 01:25:17 -06:00
Kevin Lange
71298a5c83
Relatively broken local echo support
2012-01-31 00:16:09 -06:00
Kevin Lange
ab1958632c
hostname utility
2012-01-30 13:29:13 -06:00
Kevin Lange
93df034d2b
Fix hostname file handling
2012-01-30 12:13:11 -06:00
Kevin Lange
238278c3fc
init, get/sethostname
2012-01-30 12:10:53 -06:00
Kevin Lange
84bbcf5f95
Support backspace in login (still no local echo)
2012-01-29 20:45:40 -06:00
Kevin Lange
cbcf098e5b
Compositing test.
2012-01-29 17:05:42 -06:00
Kevin Lange
1d7c91f3b1
Unicode is hard... thus, I'm not done.
2012-01-28 22:27:37 -06:00
Kevin Lange
fd77e36013
Add bin/uname, fix disk buidling
...
Disk will now rebuild when userspace/*.c are updated.
Make sure you build in userspace/ first!
2012-01-28 17:10:03 -06:00
Kevin Lange
c65e458c50
Stop building binaries out of loader/
...
This is what userspace/ is for; consequentally, all userspace
applications now depend on the full toolchain and will build using the C
library.
2012-01-28 16:19:57 -06:00
Kevin Lange
db7020cbce
[security] Shadow Passwords, whoami, and more
...
This update includes support for shadow passwords, stored in
/etc/master.passwd, as well as support for an /etc/passwd file
containing user/uid/full name/shell associations, which are used by the
shell to get your username for display purposes, as well as by whoami
for the same reason. The login tool does not yet select the right shell
though this is planned.
* root's password is `toor` (a throwback to older times)
* local's password is `local` (because it's obvious)
2012-01-27 18:04:39 -06:00
Kevin Lange
00d0eb8fac
Simple line editing (backspace support)
2012-01-27 13:16:23 -06:00
Kevin Lange
a47fe02224
Directory switching
2012-01-27 13:10:58 -06:00
Markus Schober
405868ac8a
First commit of readdir/ls support.
2012-01-27 04:04:04 -06:00
Kevin Lange
9061f91e74
stat(), fstat(), /bin/stat
2012-01-27 03:12:29 -06:00
Kevin Lange
d112f6fedb
Reboot [and fix user/group permissions in fork()]
2012-01-26 23:11:43 -06:00
Kevin Lange
8edb567279
oops
2012-01-26 22:55:22 -06:00
Kevin Lange
ac8354d805
Add some system calls, plus a fakish /bin/login
2012-01-26 22:46:18 -06:00
Kevin Lange
b4c8d7a3ff
Fix nyancat height to work on new terminal
2012-01-25 19:04:39 -06:00
Kevin Lange
8b1b0453f8
[userspace] Update build scripts
2012-01-25 17:07:42 -06:00
Kevin Lange
e52ca55db1
[userspace] Fix multitasking-test
...
Without flushing, this doesn't work properly with the terminal pipe.
Technically, this is an issue in the pipe implementation, but as that's
not technically what we're testing there's no sense having it be broken.
For the record, everything works wonderfully.
2012-01-25 16:59:44 -06:00
Kevin Lange
3b7d737a13
Fix slow terminal by loading fonts into memory
2012-01-25 16:12:56 -06:00
Kevin Lange
7682eb6cdf
Change error number format in esh
2012-01-25 14:57:27 -06:00
Kevin Lange
a0139691dd
Fix the loader/ apps to use fds
2012-01-25 14:41:11 -06:00
Kevin Lange
d73d2e2361
[cmos] Fix userspace clock
2012-01-25 13:50:30 -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
6c042aba53
Pipes
2012-01-24 18:40:25 -06:00
Kevin Lange
fb200db703
Herp
2012-01-24 12:10:57 -06:00
Kevin Lange
6203bc0063
Fix default output colors
2012-01-24 11:56:42 -06:00
Kevin Lange
b4856c563c
Italic, Underline, X-Out support
2012-01-24 11:53:03 -06:00
Kevin Lange
dc353cd954
Update cursor style
2012-01-24 11:15:15 -06:00
Kevin Lange
436435589a
Adjusted font settings, bold support
2012-01-24 11:01:31 -06:00
Kevin Lange
e05515844d
Null device
2012-01-23 23:01:23 -06:00
Kevin Lange
9be2f43935
[term] Change sample output a bit
2012-01-23 22:37:09 -06:00
Kevin Lange
ce51204fe4
Use DejaVu with same sizings and hintings as my xterm
2012-01-23 22:26:13 -06:00
Kevin Lange
ee1ade379f
[cat] handle load failure without seg faulting
2012-01-23 14:24:23 -06:00
Kevin Lange
ed31c2cbea
Drop serial output from standard terminal
2012-01-23 12:36:59 -06:00
Kevin Lange
7e716019ec
Freetype, why are you so slow?
2012-01-23 00:13:50 -06:00
Kevin Lange
2174cfb59e
Rough test: Userspace port of the terminal.
...
Need to replace the bitfont with freetype, get the thing attached to a
pipe, start getting other stuff to run under it, and then we can remove
the kernel's graphical terminal.
2012-01-22 23:36:49 -06:00
Kevin Lange
e5330b1df0
Started work on the full ELF loader and C++ support
2012-01-18 20:12:04 -06:00
Kevin Lange
870d93c235
Add a pseudo-daemonizing clock app
2012-01-10 23:22:27 -06:00
Kevin Lange
5fa42a5d34
Fix a kgets() thread-switcing bug
2012-01-10 20:14:07 -06:00
Kevin Lange
aa748bc99a
Hmpf.
2012-01-10 19:14:30 -06:00
Kevin Lange
edebb12573
[misc] Boot logging to screen
2011-12-26 19:23:58 -06:00
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
d0be767eb8
[minor] Remove unused macro from freetype_test
2011-12-16 13:27:08 -06:00
Kevin Lange
a4d17cb382
Graphics resolution independence (targetting VESA support); update README
2011-12-16 13:16:20 -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
20fab345a8
[user] Simple little test app that triggers a stack overflow
2011-12-14 20:06:09 -06:00
Kevin Lange
d7d52555c9
[user] Redundant -O
2011-12-12 04:11:07 -06:00
Kevin Lange
c54de06083
[esh] Support &, search path
2011-12-07 15:08:40 -06:00
Kevin Lange
fa09f76582
[esh] Handle bad execs
2011-12-06 20:36:40 -06:00
Kevin Lange
dca46fffc4
[sys] wait(pid)
2011-12-06 20:13:20 -06:00
Kevin Lange
d52e73e71e
[esh] Esh, the experimental shell
2011-12-06 19:46:35 -06:00
Kevin Lange
8f6d345039
[userspace] Nyancat!
...
Also works on a standard xterm:
gcc -o nyancat nyancat.c
./nyancat
(Be sure to set your terminal to at least 128 wide and 64 tall)
2011-11-29 23:41:02 -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
3726a9a043
[user] We can enable optimizations and strip for smaller binaries
2011-10-28 01:21:59 -05:00
Kevin Lange
e3f5cb0e47
[user] Update userspace makefile
2011-10-28 01:09:55 -05:00
Kevin Lange
e54a6be038
Move userspace directory to 'userspace'
2011-10-27 20:12:31 -05:00