Breaking News: Klink, the First Cross-Platform Universal Linux Device Interconnect Component, is Now Open Source on openKylin!
With the proliferation of smart terminal devices, the application scenarios for interconnection between multiple smart terminal devices are becoming increasingly diverse. In multi-device interconnectivity scenarios, developers need to implement communication protocols separately. To address the issue of cross-platform interconnectivity, the Connectivity SIG (established by the StarKylin team under KylinSoft, a member of the openKylin community council) has developed Klink, a cross-platform universal Linux device interconnect component, after extensive research and exploration.
Ⅰ. What is Klink
Klink is a device interconnect component developed by the Connectivity SIG starting in 2021. It enables various mainstream Linux distributions, including the openKylin open-source operating system and the NeoKylin desktop operating system, to achieve cross-platform interconnectivity. This significantly expands the ecosystem boundaries and contributes to the healthy and open development of foundational software. The basic architecture of Klink is shown in the following diagram.
Ⅱ. Advantages of Klink
The StarKylin Intelligent Interconnection Operating System by KylinSoft, a member of the openKylin community council, is characterized by “elastic scalability, intelligent interconnection, intrinsic security, and a unified framework”. This operating system addresses the digital application needs of nations, industries, enterprises, and individuals, initiating a new path of innovation for next-generation operating systems across all scenarios. Among these characteristics, intelligent interconnection relies on Klink as the unified communication foundation to achieve two major interconnect capabilities:
1. Distributed Hardware Resource Sharing Capability
The hardware capabilities of abstracted terminal devices, such as display, camera, and audio, are basic functionalities. Based on Klink technology, it enables instant collaboration and computing power sharing between devices.
2. Cross-Terminal Interconnectivity Capability
Klink supports device discovery, networking, authentication, and connection across multiple devices. It facilitates fast data transfer of images, files, and other content between devices, ensuring seamless content flow and supporting collaboration and screen sharing across multiple devices.
Ⅲ. Klink Usage Instructions
1. Address
01 https://gitee.com/openkylin/klink
2. Source Code Link
01 git clone https://gitee.com/openkylin/klink.git
3. Compilation
01 cd src-path # enter the source code path 02 # compile dependencies 03 # check the build-depends file 04 # use an OpenSSL library version above 3.0.0 05 # a precompiled OpenSSL library is provided under third_party/openssl/, supporting only Linux. Other platforms need to compile separately. 06 # execute 07 sudo bash ./third_party/openssl/openssl_install.sh ./third_party/openssl [amd|arm] 08 # dynamic library embedding 09 # if you are on a different platform or architecture, please compile your own openssl version. Apologies for the inconvenience. 10 mkdir build & cd build 11 cmake .. 12 make 13 sudo make install
4. Service Deployment
01 # start Klink service 02 sudo /opt/dsoftbus/bin/connectivity_softbus_server > log.file & 03 # start device management service 04 sudo /opt/dsoftbus/bin/connectivity_devicemgr_service > log.file & 05 # start authentication client (you can implement this according to the SDK interface) 06 sudo /opt/dsoftbus/bin/connectivity_devicemgr_client
5. Klink SDK Links
01 find_package(PkgConfig REQUIRED) 02 pkg_check_modules(SOFTBUS_CLIENT REQUIRED softbus_client) 03 pkg_check_modules(DEVICEMGR_SDK REQUIRED devicemgr_sdk) 04 05 include_directories(${SOFTBUS_CLIENT_INCLUDE_DIRS}) 06 include_directories(${DEVICEMGR_SDK_INCLUDE_DIRS}) 07 08 target_link_libraries ( 09 ${PROJECT_NAME} 10 PUBLIC 11 ${SOFTBUS_CLIENT_LIBRARIES} 12 ${DEVICEMGR_SDK_LIBRARIES} 13 )
Ⅳ. About Connectivity SIG
Connectivity SIG is established by StarKylin under KylinSoft, a member of the openKylin community council. It is primarily responsible for the development and maintenance of foundational interconnectivity capabilities within the openKylin community, the planning and development of system interconnectivity capabilities, as well as the exploration and research of system interconnectivity compatibility and forward-looking advancements. We welcome interested individuals to join us!
·Connectivity SIG homepage:
https://gitee.com/openkylin/community/tree/master/sig/Connectivity
·Klink homepage:
https://gitee.com/openkylin/klink