Commit Graph
32 Commits
Author SHA1 Message Date
freywar dccb93fb82 Add the most important part of README 2026-08-25 21:44:01 +03:00
freywar b78ef69da8 Fix minor issues in user apps
Uninitialized variables, reading past array end, etc.
2026-08-25 21:41:25 +03:00
freywar d72169473f Finalize xHCI and USB modules
Scratchpad buffers allocation added to xHCI. Missing initialization steps
for keyboards - set configuration and set idle - added to USB. (Even
though they are specific to HID protocol, they go through USB command
endpoint, and with current module contents it's cleaner to have them
in USB module.)
2026-08-25 21:20:53 +03:00
freywar c58605b56d Fix LOG_X usage crashing the system
Each `LOG_X` call declared a rather huge variable on the stack,
and using it to dump a whole structure often led to a page fault.
Now the temporary variables are `static`, which is a bit wasteful
on the kernel binary size, but easier to maintain.

Additionally bootloader updated to load kernels bigger than 64K.
2026-08-25 21:15:16 +03:00
freywar 63c1720e60 Improve installation process
`meson.build` rewritten with DRY principle. `deploy.sh` added,
which deploys the image on a installation USB stick borrowed from
another project. Image name aligned with the installer's expectations.
2026-08-25 21:11:15 +03:00
freywar bbb9988bcf Fix xHCI event consumption 2026-08-14 20:53:39 +03:00
freywar 0cb2169c29 Add basic HID keyboard support 2026-08-14 20:51:07 +03:00
freywar e4b9a79a5f Add more logging levels 2026-08-10 21:01:39 +03:00
freywar 4813725cf3 Add basic xHCI driver and USB devices enumeration 2026-08-07 21:11:08 +03:00
freywar a2128de3e2 Add common way to access bit ranges, log all NVMe devices on startup 2026-07-27 20:45:00 +03:00
freywar 572cb7647f Improve kernel logging
Current function name is automatically prepended to all log entries.
Helper macros added to log local variables.
2026-07-27 20:41:45 +03:00
freywar 3b8125eb0c Fix GDT and remove unused code from MBR 2026-07-23 21:23:38 +03:00
freywar 065aa261f5 Add simple NVMe module and switch to NVMe emulation 2026-07-23 20:52:10 +03:00
freywar ba9beebf8e Add simple kernel logging and improve error messages 2026-07-23 20:50:51 +03:00
freywar 14c3262c14 Separate log and output streams 2026-07-17 20:30:35 +03:00
freywar 85cfbb2050 Add pipes to shell, add wc 2026-07-16 21:39:00 +03:00
freywar 4ad32dda17 Merge fat16_inode_t and fat16_node_t, make fs_node_t shared 2026-07-15 23:14:56 +03:00
freywar 1ff38ffad4 Add file removal, rm 2026-07-15 21:39:17 +03:00
freywar 1148596a81 Add file and directory creation, mkdir 2026-06-30 20:37:24 +03:00
freywar 01cd3f528c Add writing to existing files and overwriting cp 2026-06-19 23:09:11 +03:00
freywar 325dc6339a Make pipes blocking 2026-06-19 21:49:18 +03:00
freywar 415f78fd40 Add process scheduler, pipes, and separate terminal from shell 2026-06-19 21:49:29 +03:00
freywar 452125782e Convert directory reading to generic stream 2026-06-18 22:59:18 +03:00
freywar 9761e3e870 Convert file descriptors to generic streams 2026-06-18 21:46:18 +03:00
freywar bcf2e5bac6 Add file descriptors and basic cat 2026-06-17 23:20:43 +03:00
freywar 968bb02aa8 Add basic ls 2026-06-17 22:20:08 +03:00
freywar 03b3ddac73 Add subprocesses and convert terminal to an app 2026-06-17 21:20:14 +03:00
freywar 1c935cf154 Add first C user program 2026-06-11 20:19:24 +03:00
freywar b32c12b311 Add an example user space process 2026-06-08 21:17:27 +03:00
freywar 2d4f76a5dd Add process state 2026-06-05 20:48:16 +03:00
freywar c8edeab750 Use streams for inter-"process" communications 2026-06-05 21:44:09 +03:00
Freywar Ulvnaudgari fecf3b2e42 Initial commit 2026-06-04 21:52:04 +03:00