I implement these Linux Kernel/Driver programs independently.
- 
01_mprobe_and_generanl_driver: - A kernel module uses hashtable and synchronization
- A mprobe module can debug the previous kernel module.
- Both parts have testing programs and README.
 
- 
02_Concurrent_HC-SR04_miscdeivces: - Two HC-SR04 driver instances registered through miscdevice are equipped with two modes of one-shot and periodical sampling. This kernel module can operate two HC-SR04 sensors in the same time.
 
- 
03_Concurrent_HC-SR04_SYSFS_Platform_Drivers: - This part exports HC-SR04 module to the SYSFS interface as well as Linux Platform Driver interface within PCI mechnaisms.
 
- 
04_barrier_driver_module: - I implemented the Barrier through kernel driver module. This module should be used through open/read/write/close POSIX intferface.
 
- 
05_barrier_system_call: - I implemented the Barrier through three system calls.
- barrier_init(int count, unsigned int* barrier_id)
- barrier_wait(int barrier_id)
- barrier_destroy(int barrier_id)
- For efficient development and quick debugging, I also provide a driver module (04_barrier_driver_module) in same logic of this synchronzation.
- For system call and driver module, I also support testing programs.