Andreas Kling
c149d2a8f0
Build ELFLoader into Kernel.
2018-10-18 15:03:10 +02:00
Andreas Kling
3649638259
Add Regions concept to Task.
2018-10-18 14:55:20 +02:00
Andreas Kling
5b10846bed
Add a simple ELF binary called _test.o to the test fs.
2018-10-18 13:16:30 +02:00
Andreas Kling
f67d695254
More paging stuff.
...
The test userspace process now runs at linear address 0x300000 which is
mapped to a dynamically allocated page from the MemoryManager. Cool!
2018-10-18 13:05:00 +02:00
Andreas Kling
89851a9ded
Use FileHandle from VFS.
2018-10-18 10:28:09 +02:00
Andreas Kling
e86cadc7af
Add an fd field to FileHandle in Kernel builds.
2018-10-18 10:27:07 +02:00
Andreas Kling
9d5de91cf3
Actually destroy tasks after they crash.
2018-10-18 00:26:30 +02:00
Andreas Kling
1a801e5737
Hang if we GPF in ring 0.
2018-10-18 00:13:06 +02:00
Andreas Kling
56c1f9db8e
A userspace process can now GPF and the OS goes on!
...
This is really rickety, but it kinda sorta works for my test GPF!
2018-10-17 23:49:32 +02:00
Andreas Kling
77299cf54d
Add basic paging. Only identity maps the bottom 4MB as a start.
2018-10-17 23:13:55 +02:00
Andreas Kling
286e27ef40
Allow running in QEMU with "./run q"
...
The kernel doesn't run in QEMU right now and I don't know why.
2018-10-17 16:58:35 +02:00
Andreas Kling
8ff394f83f
Fix a dumb in buffer_putch.
2018-10-17 16:56:47 +02:00
Andreas Kling
9aa88fe186
Add a PIC::getISR() helper.
2018-10-17 16:54:49 +02:00
Andreas Kling
e0f31d38a2
Add -fno-pic -fno-pie to build flags.
2018-10-17 16:49:30 +02:00
Andreas Kling
f82b25d4f9
Fix some minor build warnings.
2018-10-17 16:48:43 +02:00
Andreas Kling
347e202f7f
Add size_t and ssize_t to kernel builds.
2018-10-17 16:47:19 +02:00
Andreas Kling
7580ac576f
Make VFS host build work again.
2018-10-17 12:23:19 +02:00
Andreas Kling
39fa1eb2c2
Print the contents of motd.txt on boot.
2018-10-17 12:07:39 +02:00
Andreas Kling
705832f387
List the root directory after mounting /.
...
So cool that it works! It's spewing out a bunch of terminal escape sequences
that the OS console obviously doesn't support, but we'll get there too.
2018-10-17 11:47:14 +02:00
Andreas Kling
b05ed591ab
VFS mounts an ext2fs root! :^)
2018-10-17 11:44:06 +02:00
Andreas Kling
d2425495ca
VirtualFileSystem class builds inside Kernel.
2018-10-17 11:40:58 +02:00
Andreas Kling
9171521752
Integrate ext2 from VFS into Kernel.
2018-10-17 10:57:23 +02:00
Andreas Kling
aec8ab0a60
Add the basic character devices to kernel.
2018-10-16 14:33:16 +02:00
Andreas Kling
12e515735b
Add a simple IDEDiskDevice class that implements DiskDevice from VFS.
2018-10-16 14:17:43 +02:00
Andreas Kling
8293a0ff36
Rework DiskDevice's read() and write() to be non-virtual wrappers.
...
This way subclasses only have to implement readBlock() and writeBlock().
read() and write() require that the offset and length are both divisible
by the blockSize().
2018-10-16 14:13:32 +02:00
Andreas Kling
cafb5b2ad6
Fixup small.fs again.
2018-10-16 14:00:44 +02:00
Andreas Kling
5d465582a3
Start fixing up AK to work inside the kernel.
2018-10-16 13:59:28 +02:00
Andreas Kling
1203c327c7
Merge some features from gerbert into OwnPtr and RetainPtr.
2018-10-16 12:21:06 +02:00
Andreas Kling
fd708a4cb1
Reduce dependence on STL.
2018-10-16 12:11:27 +02:00
Andreas Kling
0c1a4e8de3
Add String::substring().
2018-10-16 12:07:17 +02:00
Andreas Kling
9cd0a34b5c
BlockDevice -> DiskDevice.
...
BlockDevice was the wrong name for this abstraction, since a block device
is a type of file in a unix system, and we should use that name for that
concept in the fs implementation.
2018-10-16 11:21:49 +02:00
Andreas Kling
72bb80a9ae
These changes were lying around uncommitted in the old repo.
...
I'm just gonna commit them without too much thinking and then take
it from there.
2018-10-16 11:06:35 +02:00
Andreas Kling
87d41bdca4
If an interrupt comes from the slave PIC, both PICs need an EOI.
2018-10-16 11:05:29 +02:00
Andreas Kling
9396108034
Import the "gerbert" kernel I worked on earlier this year.
...
It's a lot crappier than I remembered it. It's gonna need a lot of work.
2018-10-16 11:02:00 +02:00
Andreas Kling
f608629704
Implement creating a new directory.
2018-10-16 00:35:03 +02:00
Andreas Kling
5c50d02c2e
Fix bug where allocating a new inode forgot that inodes are 1-based.
2018-10-15 02:42:24 +02:00
Andreas Kling
b0eaca436c
"stat" command should print st_mode in octal.
2018-10-15 02:12:09 +02:00
Andreas Kling
47fc6344ac
Support the ext2 directory entry file_type field.
2018-10-15 01:57:57 +02:00
Andreas Kling
e7901476d3
Bring back the intentionally broken symlink I had for testing.
2018-10-15 01:00:01 +02:00
Andreas Kling
05b088ee2f
Add a simple /dev/random.
2018-10-15 00:44:54 +02:00
Andreas Kling
9528edab92
Move readEntireInode() up to FileSystem (from ext2.)
...
It's just a wrapper around multiple calls to readInodeBytes() now.
2018-10-15 00:16:14 +02:00
Andreas Kling
0286b5ea48
Add a "stat" command to test FileHandle::stat().
2018-10-14 23:39:11 +02:00
Andreas Kling
c7c957966a
Implement SyntheticFileSystem::readInodeBytes().
2018-10-14 23:13:45 +02:00
Andreas Kling
1f41a36c52
Add a Unix namespace for foo_t types.
...
This allows me to keep prototyping things on a random desktop machine,
even if that machine has its own ideas about foo_t types.
2018-10-14 22:57:57 +02:00
Andreas Kling
c6d6ba7512
Minor errno fixups.
2018-10-14 22:16:28 +02:00
Andreas Kling
39444c5916
Fix HashTable::find() return iterator for items found in non-0 buckets.
2018-10-14 22:08:36 +02:00
Andreas Kling
c94044a04a
Work on POSIX-like read() and lseek() support.
2018-10-14 21:19:27 +02:00
Andreas Kling
9f9b4a2382
Add a simple /dev/full.
2018-10-14 13:16:09 +02:00
Andreas Kling
fc1facf5c0
Let widget have a font() instead of using Font::defaultFont() everywhere.
2018-10-14 13:06:05 +02:00
Andreas Kling
e5acbca0e8
Disable the "create /empty" test path for now.
2018-10-14 03:02:28 +02:00