33Awkernel is a safe and realtime operating system.
44It can execute async/await applications in kernel space safely.
55
6- ## Progress
7-
8- - [x] Zero-copy communications
9- - [x] Publish and subscribe
10- - [x] Service
11- - [x] Action
12- - [x] Channels
13- - [x] Bounded channel
14- - [x] Unbounded channel
15- - [x] Session-type based channel
16- - [x] Memory space isolation
17- - [x] Timer interrupts
18- - [x] AArch64
19- - [x] x86_64
20- - [x] Interrupt Controllers
21- - [x] AArch64
22- - [ x] Raspberry Pi 3
23- - [ x] GICv2
24- - [ x] GICv3
25- - [x] x86_64
26- - [x] xAPIC
27- - [x] x2APIC
28- - [ ] Frame buffer
29- - [ ] AArch64 virt
30- - [x] Raspberry Pi 3 and 4
31- - [x] x86_64
32- - [ ] Diagnostics
33- - [ ] Measurement
34- - [ ] Power Management
35- - [ ] Shutdown
36- - [ ] Reboot
37- - [ ] Schedulers
38- - [x] FIFO scheduler
39- - [x] Round robin scheduler
40- - [ ] Priority Based Round robin scheduler
41- - [ ] EDF scheduler
42- - [ ] DAG scheduler
43- - [ ] Memory allocators
44- - [x] O(1) memory allocator
45- - [x] DMA pool
46- - [ ] NUMA aware memory allocator
47- - [ ] DVFS
48- - [ ] AArch64
49- - [ ] x86_64
50- - [ ] PCIe
51- - [ ] MSI
52- - [ x] x86_64 xAPIC and x2APIC
53- - [ ] AArch64 GICv3
54- - [ ] MSI-X
55- - [x] x86_64 xAPIC and x2APIC
56- - [ ] AArch64 GICv3
57- - Network controllers
58- - [x] Intel Gb Ethernet Controller (e1000 Series)
59- - [ ] Intel 2.5Gb Ethernet Controller (I225/I226 series)
60- - [x] Intel 10Gb Ethernet Controller (X520 Series)
61- - [ ] Mellanox ConnectX-5 series
62- - [x] genet for Raspberry Pi
63- - Networking
64- - [x] IPv4
65- - [ ] IPv6
66- - [x] UDP
67- - [x] TCP
68- - [ ] VLAN
69- - [x] IP multicast
70- - [ ] Offloading
71- - [ ] TSO
72- - [ ] IPv4 header checksum
73- - [x] UDP checksum
74- - [ ] TCP checksum
75- - [ ] VLAN hardware tagging
76- - [ ] XHCI
77- - [ ] Block devices
78- - [ ] NVMe
79- - [ ] AHCI
80- - [ ] File systems
81- - [ ] FAT32
82- - [ ] Journaling file system
83-
846## Dependencies
857
868### Compiler Tools
@@ -116,14 +38,14 @@ $ cargo binstall mdbook-mermaid
11638- [ awkernel_async_lib] ( ./awkernel_async_lib/ )
11739 - asynchronous library for no_std
11840- [ awkernel_async_lib_verified] ( ./awkernel_async_lib_verified/ )
119- - verified library for awkernel_async_lib
120- - pure Rust (no dependencies on external functions and no inline assembly)
41+ - verified library for awkernel_async_lib
42+ - pure Rust (no dependencies on external functions and no inline assembly)
12143- [ awkernel_futures_macro] ( ./awkernel_futures_macro/ )
12244- [ awkernel_drivers] ( ./awkernel_drivers/ )
12345- [ awkernel_aarch64] ( ./awkernel_aarch64/ )
12446- [ userland] ( ./userland/ )
12547- applications
126- - [ awkernel_shell] ( ./applications/awkernel_shell/ )
48+ - [ awkernel_shell] ( ./applications/awkernel_shell/ )
12749
12850``` mermaid
12951graph TD;
@@ -292,9 +214,9 @@ $ make aarch64 BSP=raspi4 RELEASE=1
292214### Boot
293215
294216- Serial
295- - port: GPIO 14 (Tx) and 15 (Rx)
296- - 8N1: eight data bits, no parity, one stop bit
297- - Speed: 115200
217+ - port: GPIO 14 (Tx) and 15 (Rx)
218+ - 8N1: eight data bits, no parity, one stop bit
219+ - Speed: 115200
298220
299221---
300222
@@ -333,24 +255,6 @@ Debug build.
333255$ make riscv64
334256```
335257
336- ### Boot
337-
338- ``` text
339- $ make qemu-riscv64
340- ```
341-
342- ---
343-
344- ## RISC-V (32bit, Qemu)
345-
346- ### Compile
347-
348- Release build (recommended).
349-
350- ``` text
351- $ make riscv32 RELEASE=1
352- ```
353-
354258Debug build.
355259
356260``` text
@@ -360,7 +264,7 @@ $ make riscv32
360264### Boot
361265
362266``` text
363- $ make qemu-riscv32
267+ $ make qemu-riscv64
364268```
365269
366270---
@@ -369,16 +273,16 @@ $ make qemu-riscv32
369273
370274### Compile
371275
372- Debug build.
276+ Release build (recommended) .
373277
374278``` text
375- $ make riscv32
279+ $ make riscv32 RELEASE=1
376280```
377281
378- Release build.
282+ Debug build.
379283
380284``` text
381- $ make riscv32 RELEASE=1
285+ $ make riscv32
382286```
383287
384288### Boot
0 commit comments