1.The synchronization operation of async is essentially a trick, so it is not enabled by default。
2.Optimize the inter-lock operation. For instance, before operating on a linked list, it is necessary to first determine whether the linked list is in use (during active operation, the probability of not using it is too low, resulting in invalid judgments and prolonging the lock time).
1.The asynchronous framework relies on workqueue to implement asynchronous operations and, with the help of macro features, can achieve an RTOS-like experience in a bare-metal environment.
1.Remove the particularly costly parts such as the path of the object, reduce the system kernel, and support fine-grained kernel cropping. Compatible with low-capacity products.
2.Support low-power mode.
1.New parameter checking has been added. Fixed the issue where an empty string ("", that is, only the end character) was passed in. The parameter checking of kobject failed to detect the problem, resulting in data errors.
1.Kernel initialization abandons the section feature and uses it only for user initialization.
2.The kernel work queue is optimized, and the transfer of the work queue in the threading environment can be completed by obtaining the semaphore in the hook and releasing the semaphore by the wakeup node.
1.Added a work queue that supports instant and delayed start of multithreading (can be used without os, multithreading needs to create its own thread) to improve concurrency.
2.By adding parent2 to save the parent node, fixed an issue where forgetting the parent object changed when looking for an object, resulting in the wrong parent object being put when exiting.
1.There is a delay in getting the parent when the kernel object is operating, making it possible to be insecure for some time. Fix this by adjusting the timing of access to the parent.
1.Kernel threads are supported by static stack creation, which is not reusable (i.e. secondary initialization) due to the release of threads in different os.
Previous versions of the os memory inline within the kthread, making the adaptation of different os more complicated (because each thread deletion mechanism is different, the inline memory needs to wait until the thread is recycled before release); Kernel threads are now simplified, and the memory of thread objects remains in mr-X, while the memory of threads is managed by the os.