Commit graph

528 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
c16bdd2604 Added a friendly warning that X64 cannot boot fully when booting X64. 2011-10-10 01:16:36 +02:00
Jonas 'Sortie' Termansen
4579384312 Ported the GDT and TSS to x64. 2011-10-10 01:16:36 +02:00
Jonas 'Sortie' Termansen
a1cf7e9dbc Removed unneeded and unused old memory management assembly. 2011-10-10 01:14:14 +02:00
Jonas 'Sortie' Termansen
66192d1e86 Rewrote memory management again and added support for x64 and forking. 2011-10-10 01:02:57 +02:00
Jonas 'Sortie' Termansen
23c144fe3f Don't count files in sysroot/ when counting lines. 2011-10-06 10:17:36 +02:00
Jonas 'Sortie' Termansen
ad17df4ff9 Fixed bug in mxmpp make target install. 2011-10-03 19:11:40 +02:00
Jonas 'Sortie' Termansen
f1848b9932 Added comments to x64/boot.s. 2011-09-21 21:08:43 +02:00
Jonas 'Sortie' Termansen
ab2b14fc16 Moved start.s into the subdirs for x86 and x64. 2011-09-15 22:39:19 +02:00
Jonas 'Sortie' Termansen
739b296a95 libmaxsi now has a function called upon process creation. 2011-09-14 18:11:52 +02:00
Jonas 'Sortie' Termansen
d3a7b18f69 libc now has exit() and abort() functions. 2011-09-13 16:49:08 +02:00
Jonas 'Sortie' Termansen
4bc2841ef0 Restored the partial support for x64. 2011-09-08 21:09:14 +02:00
Jonas 'Sortie' Termansen
371dec71c9 Better error handling in /Makefile. 2011-09-08 21:05:43 +02:00
Jonas 'Sortie' Termansen
cc61176e5b Restored support for JSSortix using very ugly hacks. :( 2011-09-08 11:10:41 +02:00
Jonas 'Sortie' Termansen
3859e1f566 Refactored interrupt system and got rid of old not-mine code. 2011-09-07 18:45:07 +02:00
Jonas 'Sortie' Termansen
4e05eb33d8 Ignore the ramdisk in sortix/. 2011-09-07 17:50:11 +02:00
Jonas 'Sortie' Termansen
1a2446fca6 Added a friendly message on panic, and SIGSEGV no longer panics. 2011-09-07 17:48:01 +02:00
Jonas 'Sortie' Termansen
8a085f6fa0 Added the game snake. 2011-09-07 12:20:28 +02:00
Jonas 'Sortie' Termansen
86351d9274 The initrd is now supported for local install and deb files. 2011-09-07 12:19:17 +02:00
Jonas 'Sortie' Termansen
c157e65352 Removed lots of deprecated suff! 2011-09-06 19:51:47 +02:00
Jonas 'Sortie' Termansen
ebedeeae89 Pong now shows the score on its UI. 2011-09-06 16:16:44 +02:00
Jonas 'Sortie' Termansen
d494dc2d53 Made an integer-to-string API for user-space to use. 2011-09-06 16:16:25 +02:00
Jonas 'Sortie' Termansen
00f5c627b7 mxmpp somehow got the readme of mksound, an unrelated program. 2011-09-06 15:59:43 +02:00
Jonas 'Sortie' Termansen
7037b2f002 Userspace program's makefiles now properly delete from initrd/. 2011-09-06 15:55:56 +02:00
Jonas 'Sortie' Termansen
0b373050f2 Added conway's game of life. 2011-08-29 00:09:37 +02:00
Jonas 'Sortie' Termansen
b39a5700cc Removed pong/ to games/ as it will soon store multiple games. 2011-08-29 00:09:10 +02:00
Jonas 'Sortie' Termansen
6ae297d088 Ugly hacks to restore support for Sortix on real hardware. 2011-08-28 16:59:07 +02:00
Jonas 'Sortie' Termansen
f26e6e803a The Sortix programs are now compiled into initrd/. 2011-08-28 12:42:06 +02:00
Jonas 'Sortie' Termansen
2c18d43359 Added the programs ls and help. 2011-08-28 12:38:01 +02:00
Jonas 'Sortie' Termansen
34e9ca277d Added a shell, a few programs, and added support for SIGINT. 2011-08-28 12:38:01 +02:00
Jonas 'Sortie' Termansen
2f9d08a800 Added a process execute API. 2011-08-28 12:38:01 +02:00
Jonas 'Sortie' Termansen
011addf46c The initrd now uses the mkinitrd format and the kernel now loads it. 2011-08-28 12:38:01 +02:00
Jonas 'Sortie' Termansen
d9c0c8d0cd Added a driver to parse the Sortix init ramdisk. 2011-08-27 20:08:33 +02:00
Jonas 'Sortie' Termansen
fa7834b5d6 Added a mkinitrd program that creates initrds for Sortix. 2011-08-27 16:57:03 +02:00
Jonas 'Sortie' Termansen
5c86cb4abd Processes now remember the memory segments it has loaded. 2011-08-27 16:46:00 +02:00
Jonas 'Sortie' Termansen
b9484c24f2 Added the GNU licenses used for Sortix. 2011-08-27 14:47:43 +02:00
Jonas 'Sortie' Termansen
04f5fd03f8 Added the new pong program for Sortix! 2011-08-23 21:02:15 +02:00
Jonas 'Sortie' Termansen
1fd4e6b63e Minor change in keyboard.cpp. 2011-08-23 21:02:15 +02:00
Jonas 'Sortie' Termansen
8d86dc6f6a Changing the sound frequency no longer prints to the terminal. 2011-08-23 21:02:15 +02:00
Jonas 'Sortie' Termansen
cd78c42c78 VGA Cursor code is now in vga.cpp. 2011-08-23 21:02:15 +02:00
Jonas 'Sortie' Termansen
7510708ea1 Gave user-space access to VGA color constants. 2011-08-23 21:02:15 +02:00
Jonas 'Sortie' Termansen
013c5b5e71 Processes in the initrd are now made from ELF files. 2011-08-23 21:02:00 +02:00
Jonas 'Sortie' Termansen
4898343e2f The ELF loader now uses program headers and not section headers. 2011-08-23 18:16:44 +02:00
Jonas 'Sortie' Termansen
b705bf27a1 Fixed bug in MapRange{User,Kernel}. 2011-08-23 18:16:44 +02:00
Jonas 'Sortie' Termansen
ea396ddd69 Libmaxsi now offers printf to user-space programs. 2011-08-23 01:32:49 +02:00
Jonas 'Sortie' Termansen
9db2c88aca Sortix can now load ELF executables into addresses spaces. 2011-08-23 00:42:56 +02:00
Jonas 'Sortie' Termansen
e5eaf3eeb5 Added the MapRange virtual memory functions. 2011-08-23 00:33:57 +02:00
Jonas 'Sortie' Termansen
b80195dc19 Implemented the new physical page allocator API. 2011-08-22 21:12:55 +02:00
Jonas 'Sortie' Termansen
d392045559 Extended and documented the memory management API.
Physical paging have been extended with Page::Insert() and Page::GetStats()
which allows the physical paging system to add new pages to the physical page
allocator, and still keep the "free/used pages" count accurate, and providing
this information to the kernel (and user-space at some point).

The virtual memory API has been extended with RemapKernel(), RemapUser(),
MapRangeKernel(), UnmapRangeKernel(), MapRangeUser(), and UnmapRangeUser().
This huge number of related functions have been created in the hope that it
hides the internal complexity of portable virtual memory management and avoid
bugs. It is crucial that the correct group of functions are used when solving
a problem and that they are not mixed in a manner not documented.

I probably overdocumented the code - hopefully it should help avoiding making
stupid or bothersome code.

Another problem is that code calling Page::Get() often should call something
like Page::AlwaysGetPageEvenIfYouHaveToSwap(). I'd be swell to have a function
that always gets a page under heavily-swapping conditions. Possibly Page::Get()
could become that?
2011-08-22 21:05:10 +02:00
Jonas 'Sortie' Termansen
4c1cb806ba Added a sound api. 2011-08-22 00:25:28 +02:00
Jonas 'Sortie' Termansen
55e9d358cf Hello editor now doesn't require '[' in ANSI escape sequences. 2011-08-21 20:31:17 +02:00