Satellite-borne linux operating system remote management system
By designing a remote management system based on a satellite-borne Linux operating system, and utilizing Protobuf data serialization technology and traditional remote control and telemetry transmission, the limitations of satellite-to-ground communication were overcome, achieving stability and efficiency in on-board remote management, adapting to the intermittent nature of satellite-to-ground communication, and improving the level of satellite management.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- AEROSPACE DONGFANGHONG SATELLITE
- Filing Date
- 2025-12-05
- Publication Date
- 2026-04-21
Smart Images

Figure CN121900989A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of satellite technology, and in particular relates to a remote management system for a satellite-borne Linux operating system. Background Technology
[0002] With the development of aerospace technology, the computing power of spaceborne computers has been significantly enhanced, and more and more satellites are adopting Linux kernel-based operating systems to run various missions and services. In the ground environment, mature tools such as SSH, SecureCRT, and MobaXterm can meet the remote operation and maintenance needs of Linux operating systems, covering functions such as remote connection and access, remote file transfer, remote script execution, and task scheduling. However, due to the high latency, low bandwidth, intermittent communication, and compatibility limitations of traditional TCP / IP protocol stacks in space-to-ground communication, commonly used Linux remote management solutions cannot be directly ported to spaceborne systems. Summary of the Invention
[0003] The technical problem solved by this invention is to overcome the shortcomings of the prior art and provide a remote management system for a spaceborne Linux operating system, which can efficiently and securely manage and maintain the satellite remotely, thereby improving the management level and technical support capabilities during satellite operation.
[0004] The objective of this invention is achieved through the following technical solution: a remote management system for a spaceborne Linux operating system, comprising: a communication module, a command interpretation and response module, and a telemetry acquisition module; wherein, the communication module: receives command data, decapsulates the command data to obtain command packets, and transmits the command packets to the command interpretation and response module; receives telemetry space packets and buffers the telemetry space packets; when it receives a CAN bus polling sequence of telemetry packets sent by the spacecraft computer, it encapsulates the telemetry space packets into CAN frame format and sends them to the bus; the command interpretation and response module: receives command packets, determines the type of the command packets, and when the command packet is a file annotation command, performs file annotation on the command packet to obtain file annotation information. The system receives and encapsulates file annotation information into a file annotation information telemetry space packet and sends it to the communication module. When the command packet is a file download command, it processes the command packet to obtain file download information and sends it to the telemetry acquisition module. When the command packet is a shell command, it processes the command packet to obtain the terminal output result and sends the terminal output result to the telemetry acquisition module. The telemetry acquisition module: receives file annotation information, encapsulates the file annotation information into a file annotation information telemetry space packet and sends it to the communication module; receives file download information, encapsulates the file download information into a file download telemetry space packet and sends it to the communication module; receives terminal output results, encapsulates the terminal output results into a terminal output result telemetry space packet and sends it to the communication module.
[0005] In the aforementioned remote management system for the onboard Linux operating system, the command interpretation and response module includes a command distribution component, a shell command management component, a file annotation management component, and a file download management component. Specifically, the command distribution component receives command packets, determines their type, and sends them to the file annotation management component if the command packet is a file annotation command, a file download command, or a shell command. The file annotation management component receives command packets, performs file annotation on them to obtain file annotation information, and sends this information to the telemetry acquisition module. The file download management component receives command packets, processes them to obtain file download information, and sends this information to the telemetry acquisition module. The shell command management component receives command packets, processes them to obtain terminal output results, and sends these results to the telemetry acquisition module.
[0006] In the above-mentioned remote management system of the onboard Linux operating system, the file annotation includes: (1) judging the sequence flag of the command packet. If the sequence flag is the first packet, proceed to step (2); otherwise, proceed to step (3); (2) reset the file auxiliary information capture flag to not acquired, wait for the received packet count to be 0, perform deserialization operation on the file auxiliary information, and if the corresponding file name, file ID, version number, file type, and file size are successfully parsed and there is no conflict in the file, then set the file auxiliary information capture flag to acquired, wait for the received packet count to be incremented by 1, and write the file data in the current packet to the local specified path; (3) judging the file auxiliary information capture flag to not acquired, wait for the received packet count to be incremented by 1, and write the file data in the current packet to the local specified path; If the file auxiliary information capture flag is obtained, proceed to step (4); (4) Determine whether the count of waiting to receive packets is consistent with the current packet count. If they are consistent, proceed to step (5); (5) Determine the current packet sequence flag. If it is an intermediate packet, increment the count of waiting to receive packets by 1, append the file data in the packet to the specified path, and update the remaining amount of data to be received in the file; otherwise, increment the count of waiting to receive packets by 1, calculate the hash checksum to be written to the file, and compare it with the hash checksum contained in the tail packet. If the comparison passes, fill the status code with the correct code; otherwise, delete the locally saved file and fill the status code with the error code.
[0007] In the aforementioned remote management system of the onboard Linux operating system, the file download management component receives a command packet, parses the specific parameters of the file download command through Protobuf deserialization, and after determining that the folder path / file exists, puts the download task in the currently received command packet into the download task queue. The file download management component continuously retrieves download tasks from the download task queue, processes the files according to compression requirements, and then pushes the file auxiliary information, the processed file content, and the file checksum into the file download FIFO in segments.
[0008] In the aforementioned remote management system for the onboard Linux operating system, the shell command management component processes the command package as follows: It obtains the shell command string through protobuf deserialization; it creates a pipe object to read the standard output and error output of the shell command; it starts a child process to execute the shell command, closes the child process's standard input stream, and redirects the child process's standard output and standard error output streams to the pipe object; it reads the standard output and error output of the shell command line by line from the pipe object, combines them into a string, and then performs a serialization operation; after the child process finishes, it places the serialized terminal output result into the terminal output result FIFO.
[0009] In the aforementioned remote management system based on the onboard Linux operating system, the telemetry space package includes a file annotation information telemetry space package, a file download telemetry space package, and a terminal output result telemetry space package.
[0010] In the aforementioned remote management system for the onboard Linux operating system, the command packages include remote control packages for file annotation commands, file download commands, and shell commands.
[0011] In the aforementioned remote management system of the onboard Linux operating system, the packet format of the file annotation command remote control packet includes a sequence marker indicating whether the packet is the first packet, intermediate packet, or last packet, as well as the cumulative packet sequence count; the first packet of the file annotation command remote control packet contains file auxiliary information after Protobuf serialization, the file content is split into multiple blocks and encapsulated into intermediate packets in sequence, and the last packet contains the file's hash checksum.
[0012] In the aforementioned remote management system for the onboard Linux operating system, file auxiliary information includes filename, file ID, version number, file type, and file size.
[0013] In the aforementioned remote management system of the onboard Linux operating system, the file download telemetry space packet includes a sequence marker indicating whether the packet is the first packet, an intermediate packet, or the last packet, as well as a cumulative packet sequence count.
[0014] Compared with the prior art, the present invention has the following advantages:
[0015] (1) The remote management system of the satellite-borne Linux operating system in this invention runs stably, relies on traditional remote control and telemetry for information transmission, supports breakpoint resume, adapts to the intermittent characteristics of satellite-to-ground communication, and effectively avoids the problems of unexpected termination of remote command execution, uncontrollable execution results, and frequent disconnection and reconnection caused by satellite leaving the station, attitude adjustment, equipment failure and other factors that cause satellite-to-ground communication interruption.
[0016] (2) The present invention uses Protobuf data serialization technology to transmit effective data. On the one hand, the length of each field is dynamically adjusted according to the actual usage, which is highly flexible and improves the utilization rate of the current limited uplink and downlink channel capacity. On the other hand, the serialization technology directly operates memory through pre-generated code, avoiding the manual parsing overhead of traditional methods (such as string splitting, type conversion, etc.). Attached Figure Description
[0017] Various other advantages and benefits will become apparent to those skilled in the art upon reading the following detailed description of preferred embodiments. The accompanying drawings are for illustrative purposes only and are not intended to limit the invention. Furthermore, the same reference numerals denote the same parts throughout the drawings. In the drawings:
[0018] Figure 1 This is a structural block diagram of the remote management system for the onboard Linux operating system provided in an embodiment of the present invention;
[0019] Figure 2 This is a schematic diagram of the software receiving and processing flow of the file annotation command package / file download telemetry package provided in the embodiments of the present invention. Detailed Implementation
[0020] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the disclosure to those skilled in the art. It should be noted that, unless otherwise specified, the embodiments and features described herein can be combined with each other. The present invention will now be described in detail with reference to the accompanying drawings and embodiments.
[0021] The current satellite field urgently needs to design customized remote management methods for onboard Linux operating systems, which can efficiently and securely manage and maintain remotely to ensure the smooth execution of missions.
[0022] Figure 1This is a structural block diagram of the spaceborne Linux operating system remote management system provided in an embodiment of the present invention. Figure 1 As shown, this embodiment provides a remote management system for a spaceborne Linux operating system. The system includes: a communication module, a command interpretation and response module, and a telemetry acquisition module. Among them,
[0023] The communication module: receives command data, decapsulates the command data to obtain command packets, and transmits the command packets to the command interpretation and response module; receives telemetry space packets transmitted by the telemetry acquisition module and buffers the telemetry space packets; when it receives the telemetry packet CAN bus polling sequence sent by the spacecraft computer, it encapsulates the telemetry space packets into CAN frame format and sends them to the bus; wherein, the telemetry space packets include file annotation information telemetry space packets, file download telemetry space packets, and terminal output result telemetry space packets.
[0024] The command interpretation and response module: receives command packets, determines the type of the command packet; when the command packet is a file annotation command, it performs file annotation on the command packet to obtain file annotation information and sends the file annotation information to the telemetry acquisition module; when the command packet is a file download command, it processes the command packet to obtain file download information and sends the file download information to the telemetry acquisition module; when the command packet is a shell command, it processes the command packet to obtain terminal output results and sends the terminal output results to the telemetry acquisition module.
[0025] The telemetry acquisition module: receives file annotation information, encapsulates the file annotation information into a file annotation information telemetry space packet and sends it to the communication module; receives file download information, encapsulates the file download information into a file download telemetry space packet and sends it to the communication module; receives terminal output results, encapsulates the terminal output results into a terminal output result telemetry space packet and sends it to the communication module.
[0026] The command interpretation and response module includes a command distribution component, a shell command management component, a file annotation management component, and a file download management component. Specifically, the command distribution component receives command packets, determines their type, and sends them to the file annotation management component if the command packet is a file annotation command, the file download management component if the command packet is a file download command, and the shell command management component if the command packet is a shell command. The file annotation management component receives command packets, performs file annotation on them to obtain file annotation information, and sends the file annotation information to the telemetry acquisition module. The file download management component receives command packets, processes them to obtain file download information, and sends the file download information to the telemetry acquisition module. The shell command management component receives command packets, processes them to obtain terminal output results, and sends the terminal output results to the telemetry acquisition module.
[0027] The file annotation includes: (1) Determining the sequence flag of the command packet. If the sequence flag is the first packet, proceed to step (2); otherwise, proceed to step (3); (2) Resetting the file auxiliary information capture flag to not acquired, waiting for the received packet count to be 0, performing deserialization on the file auxiliary information. If the corresponding file name, file ID, version number, file type, and file size are successfully parsed, and the file does not have any conflicts, then the file auxiliary information capture flag is set to acquired, the received packet count is incremented by 1, and the file data in the current packet is written to the local specified path; (3) Determining the file auxiliary information capture flag, if If the file auxiliary information capture flag is obtained, proceed to step (4); (4) Determine whether the count of waiting to receive packets is consistent with the current packet count. If they are consistent, proceed to step (5); (5) Determine the current packet sequence flag. If it is an intermediate packet, increment the count of waiting to receive packets by 1, append the file data in the packet to the specified path, and update the remaining amount of data to be received in the file; otherwise, if it is a tail packet, increment the count of waiting to receive packets by 1, calculate the hash checksum to be written to the file, and compare it with the hash checksum contained in the tail packet. If the comparison passes, fill the status code with the correct code; otherwise, delete the locally saved file and fill the status code with the error code.
[0028] The file download management component receives a command packet, parses the specific parameters of the file download command through Protobuf deserialization, and after determining that the folder path / file exists, puts the download task in the currently received command packet into the download task queue. The file download management component continuously retrieves download tasks from the download task queue, processes the files according to compression requirements, and then pushes the file auxiliary information, the processed file content, and the file checksum into the file download FIFO in segments.
[0029] The shell command management component processes command packets as follows: It obtains the shell command string through protobuf deserialization; it creates a pipe object to read the standard and error output of the shell command; it starts a child process to execute the shell command, closes the child process's standard input stream, and redirects the child process's standard output and standard error output streams to the pipe object; it reads the standard and error output of the shell command line by line from the pipe object, combines them into a string, and then performs a serialization operation; after the child process finishes, it places the serialized terminal output result into the terminal output result FIFO.
[0030] The command packages include remote control packages for file annotation commands, file download commands, and shell commands.
[0031] The file annotation command remote control packet format includes a sequence marker indicating whether the packet is the first, middle, or last packet, as well as a cumulative packet sequence count. The first packet of the file annotation command remote control packet contains file auxiliary information after Protobuf serialization. The file content is split into multiple blocks and sequentially encapsulated into the middle packets. The last packet contains the file's hash checksum. The file auxiliary information includes the filename, file ID, version number, file type, and file size.
[0032] The file download telemetry space packet contains sequence markers indicating whether the packet is the first, middle, or last packet, as well as a cumulative count of the added packet sequences.
[0033] like Figure 1 As shown, the remote management system is divided into three modules: a communication module, a command interpretation and response module, and a telemetry acquisition module.
[0034] The communication module is responsible for communicating with other devices through external interfaces. Specifically, it includes: 1. Receiving command data from the CAN bus, decapsulating the CAN frame, and transparently forwarding the spatial packet of the frame data field to the command interpretation and response module for processing; 2. Receiving command data through the high-speed 422 interface, decapsulating the high-speed frame, and transparently forwarding the spatial packet to the command interpretation and response module for processing; 3. Receiving and buffering the telemetry spatial packets generated by the telemetry acquisition module, and encapsulating them into CAN frame format when the space station computer sends the corresponding telemetry packet CAN bus polling sequence to the device, sending them to the bus, and then transmitting them to the ground via the space station computer and transponder.
[0035] The telemetry acquisition module is responsible for collecting telemetry data from within the remote management software, encapsulating it into a telemetry space packet, and transferring it to the communication module.
[0036] The command interpretation and response module is responsible for interpreting, executing, and distributing commands received by the communication module from external interfaces. Command types include file annotation commands, file download commands, and shell commands. This module comprises components for command distribution, shell command management, file annotation management, and file download management. Upon receiving a command, the module uses the command distribution component to determine the command type and then distributes the command to the corresponding backend processing component. The shell command management component, file annotation management component, and file download management component are the backend processing components, responsible for executing shell commands, file annotation commands, and file download commands respectively, and returning responses.
[0037] When a file needs to be remotely uploaded to the satellite, the ground-based processing data block loads file auxiliary information, file content, and file checksum into a file upload command remote control packet conforming to the CCSDS standard, encapsulates it into a high-speed remote control frame, and sends it to the satellite via the high-speed uplink channel. The file upload command remote control packet format includes sequence markers indicating whether the packet is the first, middle, or last packet, as well as a cumulative packet sequence count. The valid data content of each file upload command remote control packet is as follows: Figure 2 As shown, the first packet contains auxiliary information about the file after Protobuf serialization (such as filename, file ID, version number, file type, file size, etc.), the file content is split into multiple blocks and encapsulated into each intermediate packet in turn, and the last packet contains the file's hash checksum.
[0038] The communication module receives high-speed remote control frames forwarded by the transponder via a high-speed 422 interface. After decapsulation, it transparently forwards the file packets to the command interpretation and response module for processing. The command distribution component of the command interpretation and response module determines that the command packet is a file and then sends it to the file annotation management component for processing. During initialization, the file annotation management component sets the file auxiliary information capture flag to "not acquired" and the wait packet count to 0. The software reception and processing flow of the file annotation command packets by the file annotation management component is as follows: Figure 2 As shown, the steps are as follows: (1) Determine the sequence flag. If the sequence flag is the first packet, proceed to step (2); otherwise, proceed to step (3).
[0039] (1) Determine the sequence flag. If the sequence flag is the first packet, proceed to step (2); otherwise, proceed to step (3).
[0040] (2) Reset the file auxiliary information capture flag to not acquired, wait for the received packet count to 0, perform deserialization operation on the file auxiliary information, if the corresponding file name, file ID, version number, file type, file size, etc. are successfully parsed, and the file does not have a conflict, then set the file auxiliary information capture flag to acquired, wait for the received packet count to +1, write the file data in the current packet to the local specified path, and calculate the remaining amount of data to be received in the file; otherwise, return the response information with error code to the command distribution component.
[0041] (3) Determine the file auxiliary information capture flag. If the flag indicates that the file has been captured, proceed to step (4); otherwise, return an error code.
[0042] (4) Determine whether the count of packets waiting to be received is consistent with the current packet count. If they are consistent, proceed to step (5); otherwise, return an error code.
[0043] (5) Determine the current packet sequence flag. If it is an intermediate packet, wait for the received packet count to increase by 1, append the file data in the packet to the specified path, and update the remaining amount of data to be received in the file. Otherwise, if it is a tail packet, wait for the received packet count to increase by 1, calculate the hash checksum to be written to the file, and compare it with the hash checksum contained in the tail packet. If the comparison passes, fill the status code with the correct code. Otherwise, delete the locally saved file and fill the status code with the error code.
[0044] The file annotation management component provides an interface for obtaining file annotation status, which can be called by the telemetry acquisition module to return relevant file annotation information.
[0045] The telemetry acquisition module periodically collects file annotation information provided by the file annotation management component, encapsulates it into a file annotation information telemetry space packet, and sends it to the communication module.
[0046] When the communication module receives the telemetry information from the satellite computer and polls the CAN bus, it encapsulates the telemetry packet into a CAN frame format and sends it to the bus. The data is then transmitted to the ground for analysis via the satellite computer and transponder.
[0047] When remote download of onboard files is required, the ground processing data block loads the file download parameter information (including file path, compression requirements, etc.) into a file download command remote control packet conforming to the CCSDS standard after Protobuf serialization, and encapsulates it into a remote control frame, which is then sent to the satellite via low-speed / high-speed remote uplink.
[0048] The communication module receives file download commands via the CAN interface / high-speed 422 interface, decapsulates the data packet, and transparently forwards it to the command interpretation and response module for processing. The command distribution component of the command interpretation and response module determines that the command packet is a file download command and then sends it to the file download management component for processing.
[0049] The file download management component receives a file download command data packet, parses it using Protobuf deserialization to extract the specific parameters of the file download command, and after verifying the existence of the folder path / file, places the currently received download task into the download task queue. Simultaneously, the file download management component continuously retrieves tasks from the download task queue, processes the files according to compression requirements, and then pushes the file auxiliary information, processed file content, and file checksum into the file download FIFO in segments as shown in the table below. A file download information retrieval interface is provided for the telemetry acquisition module to call. When the FIFO is not empty, the segmented content in the file download FIFO is returned; otherwise, emptiness is returned.
[0050]
[0051]
[0052] The telemetry acquisition module periodically collects file download information provided by the file download management component. When the collected content is not empty, it encapsulates it into a file download telemetry spatial packet and sends it to the communication module. The file download telemetry packet has a similar format to the file annotation command remote control packet, containing a sequence flag indicating whether the packet is the first, middle, or last packet, as well as a cumulative packet sequence count.
[0053] When the communication module receives a file download telemetry CAN bus polling from the space station computer, it encapsulates the telemetry packet into a CAN frame format and sends it to the bus, where it is then transmitted to the ground for processing via the space station computer and transponder.
[0054] The ground processing logic is similar to the on-board processing logic when uploading files, such as... Figure 2 As shown, when the first packet of the file download telemetry packet is received, the Protobuf serialized data in the first packet is deserialized to extract the corresponding file auxiliary information for further processing. Each packet of the above-mentioned file needs to be validated (packet format, packet count continuity). If valid, the valid data is appended to the specified directory. When the last packet is received, the hash code to be written to the file is calculated and compared with the hash code of the last packet. If the comparison passes, the local file is saved; otherwise, the locally saved file is deleted.
[0055] When it is necessary to remotely control the onboard Linux operating system to execute shell commands, the shell command is entered in the ground software. The ground processing data block loads the shell command into a shell command remote control packet conforming to the CCSDS standard after Protobuf serialization, and encapsulates it into a remote control frame, which is then sent to the satellite via low-speed / high-speed remote control uplink.
[0056] The communication module receives shell commands via the CAN interface / high-speed 422 interface, decapsulates them, and transparently forwards the shell command data packets to the command interpretation and response module for processing. The command distribution component of the command interpretation and response module determines that the command packet is a shell command and then sends it to the shell command management component for processing.
[0057] The shell command management component receives a shell command data packet and processes it as follows:
[0058] 1) Obtain the shell command string through protobuf deserialization;
[0059] 2) Create a pipe object to read the standard output and error output of shell commands;
[0060] 3) Start the child process to execute shell commands, close the child process's standard input stream, and redirect the child process's standard output stream and standard error output stream to the pipe object;
[0061] 4) Read the standard output and error output of the shell command line by line from the pipe object, combine them into a string, and then perform serialization.
[0062] 5) After the child process finishes, put the serialized terminal output into the terminal output FIFO.
[0063] The shell command management component provides an interface for retrieving terminal output results, which can be called by the telemetry acquisition module. When the FIFO is not empty, it returns the segmented content of the terminal output FIFO; otherwise, it returns empty.
[0064] The telemetry acquisition module periodically collects the terminal output results provided by the shell command management component. When the collected content is not empty, it encapsulates it into a telemetry space packet of terminal output results and sends it to the communication module.
[0065] When the communication module receives the telemetry CAN bus polling result from the terminal output of the satellite computer, it encapsulates the telemetry packet into a CAN frame format and sends it to the bus. The packet is then transmitted to the ground via the satellite computer and transponder. The ground software performs decapsulation, data splicing, and deserialization operations to display the feedback results of the shell commands executed on the satellite in real time.
[0066] The remote management software, acting as a daemon, is deployed on a standalone device running the Linux operating system. Managed by the systemd service manager, the software automatically starts and runs continuously upon power-up. This standalone device can be a spaceborne computer or other equipment, receiving high-speed data from the transponder via high-speed RS422. When the standalone device is another type of equipment, it needs to exchange remote control and telemetry data with the spaceborne computer via a CAN bus. Considering that this scenario is more complex than direct deployment on the spaceborne computer, the following description is based on this scenario.
[0067] Uplink low-speed / high-speed remote control, downlink telemetry, and CAN bus communication data are all transmitted using the CCSDS space packet protocol format published by the Consultative Committee for Space Data Systems (CCSDS), enabling transparent transmission of space packets between the ground, the spacecraft computer, the transponder, and the device.
[0068] File upload commands, file download commands, and Linux shell commands rely on traditional remote control packet uploads, while file upload information, file download content, and Linux shell command terminal output results rely on traditional telemetry packet downloads.
[0069] The file uploading command includes file auxiliary information, the content of the uploaded file, and a hash checksum, and is performed via a high-speed remote control channel. The file auxiliary information includes the filename, file ID, version number, and file type, and needs to be serialized using Protobuf before being packaged into the file uploading command packet. Upon receiving the file uploading command packet, the remote management software performs a validity check on each packet. It deserializes the file auxiliary information in the first packet to extract the filename, file ID, version number, and file type, and then performs appropriate processing. The remote management software performs validity checks on each uploaded file packet (packet format, packet count continuity). If an error occurs, it returns a response with an error code; if correct, it writes the valid data to the specified directory. When the last packet is received, it calculates the hash code of the file to be written, compares it with the hash code of the last packet, and returns a status code based on the consistency result. If the comparison passes, the status code is filled with a correct code; if the comparison fails, the locally saved file is deleted, and the status code is filled with an error code.
[0070] The file download command contains information such as the file's on-board storage path and whether it is compressed. After Protobuf serialization, it is encapsulated into a remote control packet and uploaded via a low-speed remote control channel. The remote management software receives the file download command, deserializes the Protobuf serialized data contained in the command, and obtains the file download information. After confirming the existence of the folder path / file, it performs preprocessing according to compression requirements, and then serializes the file auxiliary information and content, segmenting and encapsulating them into multiple telemetry space packets, which are then sequentially transmitted to the ground. The ground software decapsulates and deserializes the continuously received file download telemetry packets to extract the file auxiliary information. After packet count continuity checks and hash code verification, the downloaded file is extracted by data concatenation.
[0071] Linux shell commands, containing shell command strings, are serialized using Protobuf and encapsulated into remote control packets, then uploaded via a low-speed remote control channel. The remote management software receives the Linux shell command data packet, deserializes it to extract the shell command statements, starts a child process to execute the shell command, and captures the terminal output. The terminal output is then serialized, segmented, and encapsulated into multiple telemetry space packets, which are sequentially transmitted to the ground. Ground software decapsulates, concatenates, and deserializes the continuously received telemetry packets, then displays the real-time terminal output of the executed shell commands on the satellite.
[0072] Unlike mainstream ground-based Linux remote management tools, which are based on the TCP / IP protocol stack and rely on stable network conditions, the spaceborne Linux operating system remote management software in this embodiment runs stably, relies on traditional remote control and telemetry for information transmission, supports breakpoint resumption, adapts to the intermittent nature of space-to-ground communication, and effectively avoids problems such as unexpected termination of remote command execution, uncontrollable execution results, and frequent disconnections and reconnections caused by space-to-ground communication interruptions due to factors such as satellite departure, attitude adjustment, and equipment failure.
[0073] Unlike traditional methods that fill fields with information at fixed positions and byte lengths during information transmission, this embodiment employs Protobuf data serialization technology to transmit valid data. On one hand, the length of each field is dynamically adjusted according to actual usage, offering high flexibility and improving the utilization rate of the limited uplink and downlink channel capacity. On the other hand, the serialization technology directly manipulates memory through pre-generated code, avoiding the manual parsing overhead of traditional methods (such as string splitting and type conversion).
[0074] This embodiment utilizes a traditional remote control and telemetry channel, employing the CCSDS space packet protocol for information transmission. It supports remote file uploads from the ground to the satellite, remote file downloads from the ground to the satellite, and remote Linux shell command initiation from the ground to the satellite, with the results returned to the ground in a user-friendly manner. Some information, such as file auxiliary information and shell commands, uses the Protocol Buffers (Protobuf) protocol for serialization and deserialization, solving the problems of inflexible hard-coding and resource waste in traditional designs. This invention reduces the difficulty of ground-based operation and management of the onboard Linux operating system, effectively improving the satellite's usability.
[0075] Although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make possible changes and modifications to the technical solutions of the present invention by utilizing the methods and techniques disclosed above without departing from the spirit and scope of the present invention. Therefore, any simple modifications, equivalent changes and alterations made to the above embodiments based on the technical essence of the present invention without departing from the content of the technical solutions of the present invention shall fall within the protection scope of the technical solutions of the present invention.
Claims
1. A remote management system for a spaceborne Linux operating system, characterized in that... include: The module consists of a communication module, a command interpretation and response module, and a telemetry acquisition module; among which, The communication module: receives command data, decapsulates the command data to obtain command packets, and transmits the command packets to the command interpretation and response module; receives telemetry space packets and buffers the telemetry space packets; when it receives the telemetry packet CAN bus polling sequence sent by the spacecraft computer, it encapsulates the telemetry space packets into CAN frame format and sends them to the bus. The command interpretation and response module: receives command packets, determines the type of the command packet; when the command packet is a file annotation command, it performs file annotation on the command packet to obtain file annotation information, and sends the file annotation information to the telemetry acquisition module; when the command packet is a file download command, it processes the command packet to obtain file download information, and sends the file download information to the telemetry acquisition module; when the command packet is a shell command, it processes the command packet to obtain terminal output results, and sends the terminal output results to the telemetry acquisition module. The telemetry acquisition module: receives file annotation information, encapsulates the file annotation information into a file annotation information telemetry space packet and sends it to the communication module; receives file download information, encapsulates the file download information into a file download telemetry space packet and sends it to the communication module; receives terminal output results, encapsulates the terminal output results into a terminal output result telemetry space packet and sends it to the communication module.
2. The spaceborne Linux operating system remote management system according to claim 1, characterized in that: The command interpretation and response module includes a command distribution component, a shell command management component, a file annotation management component, and a file download management component; among which... The command distribution component: receives command packets, determines the type of the command packets, and if the type of the command packet is a file upload command, sends the command packet to the file upload management component; if the type of the command packet is a file download command, sends the command packet to the file download management component; if the type of the command packet is a shell command, sends the command packet to the shell command management component. The file annotation management component: receives command packets, performs file annotation on the command packets to obtain file annotation information, and sends the file annotation information to the telemetry acquisition module; The file download management component receives command packets, processes the command packets to obtain file download information, and sends the file download information to the telemetry acquisition module. The shell command management component receives command packets, processes the command packets to obtain terminal output results, and sends the terminal output results to the telemetry acquisition module.
3. The spaceborne Linux operating system remote management system according to claim 1 or 2, characterized in that: The notes on the document include: (1) Determine the sequence flag of the command packet. If the sequence flag is the first packet, proceed to step (2); otherwise, proceed to step (3). (2) Reset the file auxiliary information capture flag to not acquired, wait for the received packet count to be 0, perform deserialization operation on the file auxiliary information, if the corresponding file name, file ID, version number, file type, and file size are successfully parsed, and the file does not have a conflict, then set the file auxiliary information capture flag to acquired, wait for the received packet count to be incremented by 1, and write the file data in the current packet to the local specified path; (3) Determine the file auxiliary information capture flag. If the file auxiliary information capture flag is already captured, proceed to step (4). (4) Determine whether the count of packets waiting to be received is consistent with the current packet count. If they are consistent, proceed to step (5). (5) Determine the current packet sequence flag. If it is an intermediate packet, wait for the received packet count to increase by 1, append the file data in the packet to the specified path, and update the remaining amount of data to be received in the file. Otherwise, if it is a tail packet, wait for the received packet count to increase by 1, calculate the hash checksum to be written to the file, and compare it with the hash checksum contained in the tail packet. If the comparison passes, fill the status code with the correct code. Otherwise, delete the locally saved file and fill the status code with the error code.
4. The spaceborne Linux operating system remote management system according to claim 2, characterized in that: The file download management component receives a command packet, parses the specific parameters of the file download command through Protobuf deserialization, and after determining that the folder path / file exists, puts the download task in the currently received command packet into the download task queue. The file download management component continuously retrieves download tasks from the download task queue, processes the files according to compression requirements, and then pushes the file auxiliary information, the processed file content, and the file checksum into the file download FIFO in segments.
5. The spaceborne Linux operating system remote management system according to claim 2, characterized in that: The shell command management component processes command packages as follows: Obtain the shell command string through protobuf deserialization; Create a pipe object to read the standard output and error output of the shell command; Start the child process to execute shell commands, close the child process's standard input stream, and redirect the child process's standard output stream and standard error output stream to the pipe object; Read the standard output and error output of the shell command line by line from the pipe object, combine them into a string, and then perform serialization. After the child process finishes, the serialized terminal output is placed into the terminal output FIFO.
6. The spaceborne Linux operating system remote management system according to claim 1, characterized in that: The telemetry space package includes a file annotation information telemetry space package, a file download telemetry space package, and a terminal output result telemetry space package.
7. The spaceborne Linux operating system remote management system according to claim 1, characterized in that: The command packages include remote control packages for file annotation commands, file download commands, and shell commands.
8. The spaceborne Linux operating system remote management system according to claim 7, characterized in that: The packet format of the remote control packet in the file annotation command includes a sequence flag indicating whether the packet is the first packet, middle packet, or last packet, as well as the cumulative packet sequence count. The first packet of the file annotation command remote control package contains auxiliary information about the file after Protobuf serialization. The file content is split into multiple blocks and encapsulated into the middle packets in sequence. The last packet contains the file's hash checksum.
9. The spaceborne Linux operating system remote management system according to claim 8, characterized in that: File auxiliary information includes file name, file ID, version number, file type, and file size.
10. The spaceborne Linux operating system remote management system according to claim 7, characterized in that: The file download telemetry space packet contains sequence markers indicating whether the packet is the first, middle, or last packet, as well as a cumulative count of the added packet sequences.