c0f380ddca
kernel: lock block device before reading from it
2023-07-11 21:26:22 +01:00
3233169f25
dev: implement reading from block devices
...
reading from block devices is done using the block cache (bcache).
This cache stores sectors from a block device in pages of memory
marked as 'cached', which will allow them to be reclaimed when
memory pressure is high (TODO).
while block device drivers implement callbacks allowing reading/writing
at block-granularity, the device subsystem uses the block cache to
implement reading/writing at byte-granularity in a driver-agnostic way.
block drivers can disable the block cache for their devices, but this
will require that any clients communicate with the devices at
block-granularity.
also added an offset parameter to device and object read/write functions/callbacks.
2023-07-09 21:58:40 +01:00
a7c28e983c
kernel: tty: implement tty input using line disciplines
2023-06-11 16:47:33 +01:00
3cc72f1f24
kernel: tty: support printing output from printk()
2023-06-11 14:55:47 +01:00
d10c89544c
kexts: fbcon: implement VGA text mode tty driver
2023-06-11 09:24:22 +01:00
d09ad5838e
kernel: implement tty driver system
2023-06-10 21:41:07 +01:00
20f77893cf
dev: implement bus device enumeration
2023-06-09 21:24:51 +01:00
f83ecca490
dev: boot framebuffer support
2023-06-08 20:46:43 +01:00
b7b0691b8f
dev: implement driver objects to organise and identify devices
2023-06-02 19:35:07 +01:00
d02d05d922
obj: add read() and write() object callbacks
2023-05-14 21:11:32 +01:00
0238008986
dev: auto-generate device name in device_register if name is unspecified
2023-05-11 21:19:00 +01:00
664e5f57b2
test: report keypresses from /dev/system/misc/ps2kbd
2023-05-10 20:34:53 +01:00
bd26039102
kernel: test: adjust tick-tock multithreading test timing
2023-05-07 12:38:06 +01:00
7d321fb7f0
sched: add kernel thread creation and SMP-aware thread scheduling
2023-05-04 21:43:18 +01:00
cbd6aae037
kernel: test: replace schedule_timeout with milli_sleep
2023-05-03 19:27:58 +01:00
8a0291c9b3
sched: add timer tasks and schedule_timeout()
2023-04-30 21:09:36 +01:00
085c3d2a89
sched: add kernel-mode context switching
2023-04-30 14:27:57 +01:00
eb998860a5
kxld: implement internal kext dependency resolution and initialisation
2023-04-09 16:43:03 +01:00
9b75ca8b8c
kernel: enumerate internal kexts during boot
2023-04-08 09:27:21 +01:00
8e9127cd6a
x86_64: init local apic on boot, or legacy pic/pit as fallback
2023-03-19 20:36:36 +00:00
57eaf4e01c
kernel: implement cpu IDs and per-cpu variables
2023-03-18 19:35:00 +00:00
902df83654
sched: add struct and object types for task and thread objects
2023-03-06 11:08:26 +00:00
1a413189ab
kernel: move object_bootstrap() call to kernel_init()
2023-03-06 11:08:02 +00:00
d41ea0cd52
kernel: implement initcalls and a testing system
2023-02-26 10:05:39 +00:00
b9b3794aee
x86_64: initialise memblock using e820
2023-02-05 10:50:13 +00:00
17b90a484a
kernel: print version banner on boot
2023-02-04 19:19:48 +00:00
31cb7aab8b
kernel: add basic console registration system and printk()
2023-02-04 19:03:45 +00:00
247bb2b530
kernel: port sandbox components
2023-02-03 20:51:23 +00:00
c65f034e0e
kernel: x86_64: add machine init function called by kernel_init
2023-02-03 20:24:27 +00:00
fe6b7220df
Kernel is now compiled with -Wall -Werror -pedantic
2022-12-28 18:40:41 +00:00
26853c32c8
Implemented GDT initialisation
2022-12-24 10:28:41 +00:00
8475a6139e
Implemented some basic libc functions and a text console
2022-12-21 08:29:33 +00:00