Commit Graph

236 Commits

Author SHA1 Message Date
297b58a4d5 Use em_inflate instead of miniz
Move dependencies to deps directory.
2023-02-04 23:42:57 +00:00
ff1db047ff Fix more compiler warnings (gcc and clang) 2023-02-04 21:15:27 +00:00
5b0cf9febc Get rid of poll(2), use a blocking thread for network
Finally, network doesn't load CPU on 100%. Ping is below 0.5ms.
2023-02-03 02:35:26 +00:00
d0387f7d53 [umka_os] Introduce dedicated I/O thread
Not as nice as io_uring but portable.
2023-02-02 23:52:35 +00:00
12442c72a7 Get rid of getopt, use Optparse
Well, I thought I had done this before. P for portability.
2023-02-02 16:25:20 +00:00
987095fdef Fix network, ping works again 2023-02-02 00:59:40 +00:00
be21f83af2 Split vnet driver to generic vnet part, tap and file interfaces
Fix most compilation issues of umka_shell on Windows(R)(TM), not all
of them.
2023-02-01 18:55:20 +00:00
0fdfde2b5b Sync Optparse with the upstream 2023-01-31 02:46:41 +00:00
a7cc9c091e Sync LodePNG with the upstream 2023-01-31 02:43:49 +00:00
d16177c36d Implement common command buffer for the shell and os 2023-01-31 02:38:48 +00:00
68cfb39f8d Use static_assert from assert.h 2023-01-30 06:43:39 +00:00
e03ae18548 Support different framebuffer formats, add tests 2023-01-30 06:24:23 +00:00
d8ce095598 bestline: Implement bestlineFile to override stdin/stdout 2023-01-29 20:00:39 +00:00
b5a345ad5f Merge lfbview to umka_os 2023-01-28 02:57:08 +00:00
dc48e267d6 Merge tools/lfbview to umka_monitor 2023-01-21 07:58:50 +00:00
94ebe02739 Switch to the wall clock timer, communicate via shared memory 2023-01-21 07:49:13 +00:00
65cbfbc743 qcow2: reuse cluster data for adjacent sectors (speed up ~30%) 2023-01-18 20:16:33 +00:00
dd34949209 qcow2: cache L1 table (speed up ~10% on my system) 2023-01-18 19:46:44 +00:00
76c7819882 Split I/O code to generic io* and platform specific io_async* 2023-01-18 08:32:17 +00:00
3345936052 Add lfbview tool: LFB viewer using SDL2
In theory, should work under X and Wayland.
It won't work under Windows though because of used system calls.
2023-01-18 03:04:02 +00:00
53683cf146 umka_os: route virtual device IRQs via IDT 2023-01-18 02:58:09 +00:00
da8f029e5d Move static variables to context structures 2023-01-17 00:58:28 +00:00
74a593746e Pass a tool number to umka_init command
Implemented tools:
 + umka_shell
 + umka_fuse
 + umka_os
 + umka_gen_devices_dat
2023-01-16 05:49:24 +00:00
783545bdf8 Create platform specific I/O module, prepare for io_uring 2023-01-16 04:54:34 +00:00
f1b6893e4d vdisk: use file descriptors instead of FILE*s
This should help with io_uring later.
2023-01-16 03:14:48 +00:00
99c50bd258 Make umka_os use a start up script, don't hardcode 2023-01-16 02:51:46 +00:00
102dad1daf Compile in core/sys32.inc 2023-01-12 21:24:06 +00:00
e8f75d1d03 Fix samehash and lookup_v5 tests 2023-01-09 04:07:36 +00:00
59ac33c787 Fix XFS lookup tests 2023-01-09 02:10:40 +00:00
436aa461b0 Use sgdisk to partition images 2023-01-09 02:07:42 +00:00
d80c240abd Update {gen,mk}samehash tools for xfs, add new fat* and ext* tests 2023-01-09 02:07:28 +00:00
4a6f3e3039 Add mksamehash utility to make same-hash directories
Yes, first you generate names with gensamehash (very slow) and then
make many directories with mksamehash (relatively fast).
2023-01-09 02:07:20 +00:00
eb243bf14f Switch image generation from GNU Make to GNU Bash
Should have been done long time ago.
2023-01-09 02:07:20 +00:00
bbc42c6436 Implement qcow2 support, convert most images from raw
This allows exbibyte-sized images, compression and (potentially)
non-destructive writing.
2023-01-09 02:07:20 +00:00
ef72da6b76 Make shell:disk_list_partitions() report PiB ad EiB
I.e. pebibytes and exbibytes. 1 zebibyte (ZiB) is 2^70 bytes which is
above 2^64 bytes, so ignore it so far.

Btw, 2^80 bytes is 1 yobibyte (YiB).
2023-01-09 02:07:07 +00:00
464b92cda4 Change filename suffix of raw images from .img to .raw 2023-01-09 02:07:05 +00:00
887b904904 Split vdisk to vdisk_raw and vdisk_qcow2
vdisk_raw got existing functionality, no new features. Qcow2 support is
yet to be implemented. Miniz was imported with that in mind.
2023-01-09 02:06:52 +00:00
e76dea6bf1 Remove some boilerplate and hardcode, add lookup tests 2023-01-09 02:06:46 +00:00
f291ffc03b Make shell:disk_list_partitions() more verbose
Show disk sector size and capacity, partition's size and start sector.
2023-01-03 20:39:10 +00:00
b0be99a9e9 Make all the test hdd images use MBR instead of GPT
Well, it's just easier to generate MBR because GPT requires a few
sectors at the very end of a disk. A separate test for GPT should be
written: with tens of partitions and so on.
2023-01-02 02:26:56 +00:00
fecf7be637 Add two tools: mkdoubledirs and gensamehash
mkdoubledirs creates pairs of directories a/a, b/b, c/c etc. This is to
test file lookup code: there must be a directory named blah only if the
current directory is named blah too.

gensamehash generates file names with the same XFS hash to test the
code that resolves collisions. In principle, can be updated for other
hashes: ext*, exfat, etc.
2023-01-02 01:50:02 +00:00
cb8c3274af Add XFS nrext64 image and test 2022-12-29 03:45:36 +00:00
3cef60408b Use 64bit time_t, add XFS bigtime test, allow atime and mtime testing 2022-12-28 20:39:21 +00:00
715c181582 Wrap kos_osloop, add a test for resizing cursors 2022-06-28 20:13:41 +04:00
395f75d1f7 Speed up coverage, not drastically 2022-06-28 17:10:21 +04:00
bf1af355fe Sync LodePNG with upstream 2022-06-28 12:25:04 +04:00
155df83d73 Clean up vnet, update README 2022-06-28 12:23:14 +04:00
7f88bbf11c Update copyright headers and years 2022-06-27 21:36:56 +04:00
f0f8cb8e37 Get rid of umka_ping hack! Use vnet_init 2022-06-27 16:41:29 +04:00
ac151ef588 [umka_os/linux] Simulate hw interrupts via signals 2022-06-26 23:57:02 +04:00