Commit Graph

45 Commits

Author SHA1 Message Date
c424e8127e kernel: bsp: update vm-region api usage 2026-02-08 15:52:04 +00:00
409725f9d4 kernel: implementing mapping and execution of bsp executable 2026-02-08 13:13:03 +00:00
1c74291b99 kernel: add a temporary syscall dispatch system 2026-02-08 13:12:24 +00:00
14ebcd4875 kernel: implement object handle tables 2026-02-08 12:55:47 +00:00
4de1463e7c object: add functions to track handle allocation 2026-02-08 12:37:08 +00:00
5304e5be00 object: rename deref to unref 2026-02-08 12:36:32 +00:00
0490541dc9 kernel: adjust formatting 2026-02-08 12:32:48 +00:00
129e782e99 kernel: add functions to get/set the bsp boot module location 2026-02-08 11:38:50 +00:00
e1aeac9562 obj: remove redundant object functions; move to kernel/ subfolder 2025-05-20 23:14:16 +01:00
62ec4c93ab meta: rename 2024-11-02 11:31:51 +00:00
3f992d84fb kernel: remove everything that is related to device/fs management
this is now a microkernel.
2024-09-17 17:47:50 +01:00
b0c021d4e9 kernel: add kernel.early-console and kernel.console boot args
kernel.early-console is used to specify which output device the
kernel boot log should be written to. the first thing the kernel
does on boot after initialising the bootstrap processor is initialise
the early console, making it useful for debugging problems that
occur early in the boot process. this arg accepts a list of hard-coded
values for output devices, such as tty0 for the display or ttyS0
for the serial port. the exact values supported will depend on the
platform.

once all drivers are loaded, the kernel switches to the device specified
by kernel.console for output. unlike kernel.early-console, this arg
specifies the name of a tty device in /dev/tty. this means that, not
only are more devices supported (any device provided by a tty driver),
but the kernel can also get input from the user using this console too
(not used by the kernel itself, but will be used by the user to interact
with userspace programs, like the shell).
2023-12-30 09:09:18 +00:00
53e756eca0 kernel: add boot argument parsing 2023-12-27 17:34:59 +00: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
31a4e00fdc tty: retain reference to foreground tty and input devices 2023-06-14 21:45:05 +01:00
2656696757 tty: reading input from a tty is now handled by the line discipline 2023-06-14 17:38:11 +01:00
cdb9fef36c tty: remove tty event queues 2023-06-11 19:00:55 +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
0245d2254b kernel: tty: support for printing newlines 2023-06-11 14:54:39 +01:00
abe4af093e tty: implement read/write support 2023-06-11 09:23:57 +01:00
d09ad5838e kernel: implement tty driver system 2023-06-10 21:41:07 +01:00
ff8902ef1c kernel: add more status codes 2023-06-08 20:46:20 +01:00
6cf8f4234a x86_64: print stack trace during panic 2023-05-06 22:18:40 +01:00
94ea756b31 kernel: write to all registered consoles with printk() 2023-05-06 21:32:19 +01:00
cec6b644ac kernel: add functions to query the number of available/online CPUs 2023-05-05 15:25:44 +01:00
bb524c1576 kernel: add support for getting percpu variables that belong to other CPUs 2023-05-04 21:42:51 +01:00
a52571eb19 kernel: add panic() function that accepts a cpu_context 2023-05-03 19:26:09 +01:00
40762ffb95 kernel: add function to query the current preempt count 2023-05-01 08:26:41 +01:00
72d8facd47 kernel: add standard clock system 2023-04-28 20:51:51 +01:00
e7fe5a8f8e kernel: add function to query CPU clock cycle count 2023-04-22 21:07:34 +01:00
b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs 2023-04-13 11:40:52 +01:00
981a5f2a0d kernel: add kern_status_string() 2023-04-09 16:38:31 +01:00
da415c7f6d kernel: implement panic() 2023-04-09 16:35:15 +01:00
7d003da960 sched: add current_task(), current_thread(), and preempt_disable/enable() 2023-03-28 21:40:56 +01:00
768e6c4ff6 kernel: fix off-by-one in per-cpu area allocation size 2023-03-19 20:35:25 +00:00
57eaf4e01c kernel: implement cpu IDs and per-cpu variables 2023-03-18 19:35:00 +00:00
5b9bdd4848 kernel: add definitions for a TTY device interface. 2023-02-09 11:35:35 +00:00
d56fc961fa kernel: print log messages directly to the console if log_buffer is full 2023-02-08 17:10:13 +00:00
31cb7aab8b kernel: add basic console registration system and printk() 2023-02-04 19:03:45 +00:00
d0a431c860 kernel: add basic spinlocks 2023-02-04 19:03:30 +00:00
247bb2b530 kernel: port sandbox components 2023-02-03 20:51:23 +00:00
40f83922da sandbox: moved all sources to main kernel tree 2023-02-03 20:43:38 +00:00
bcdf101779 kernel: add stub logging function 2023-02-03 20:26:02 +00:00
8475a6139e Implemented some basic libc functions and a text console 2022-12-21 08:29:33 +00:00