// xiaoxing_deepin.c - 完整小星系统(国内学习源版)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <time.h>
#include <fcntl.h>
#include <curl/curl.h>
#define VERSION "1.0-deepin"
#define KNOWLEDGE_DIR "/usr/share/xiaoxing/knowledge"
#define EVOLUTION_DIR "/usr/share/xiaoxing/evolution"
#define BACKUP_DIR "/usr/share/xiaoxing/backup"
// 百度百科知识获取
void fetch_baike(const char *keyword) {
printf("【小星】从百度百科获取: %s\n", keyword);
char cmd[512];
snprintf(cmd, sizeof(cmd),
"curl -s -H 'User-Agent: Mozilla/5.0' "
"'https://baike.baidu.com/item/%s' | "
"iconv -f gbk -t utf-8 | "
"grep -oP '(?<=<meta name=\"description\" content=\")[^\"]+' > /tmp/baike.know",
keyword);
if (system(cmd) == 0) {
char knowledge_file[256];
snprintf(knowledge_file, sizeof(knowledge_file), "%s/%s.know", KNOWLEDGE_DIR, keyword);
if (rename("/tmp/baike.know", knowledge_file) == 0) {
printf("-> 已保存到知识库: %s\n", knowledge_file);
}
}
}
// 知乎知识获取
void fetch_zhihu(const char *topic) {
printf("【小星】从知乎获取: %s\n", topic);
char cmd[512];
snprintf(cmd, sizeof(cmd),
"curl -s -H 'User-Agent: Mozilla/5.0' "
"'https://www.zhihu.com/api/v4/search/suggest?q=%s' | "
"jq -r '.suggest[].query' > /tmp/zhihu.know",
topic);
if (system(cmd) == 0) {
char knowledge_file[256];
snprintf(knowledge_file, sizeof(knowledge_file), "%s/%s.know", KNOWLEDGE_DIR, topic);
if (rename("/tmp/zhihu.know", knowledge_file) == 0) {
printf("-> 已保存到知识库: %s\n", knowledge_file);
}
}
}
// 初始化文件系统
void init_filesystem() {
mkdir(KNOWLEDGE_DIR, 0755);
mkdir(EVOLUTION_DIR, 0755);
mkdir(BACKUP_DIR, 0755);
// 创建初始知识库
const char *init_keywords[] = {
"人工智能", "深度学习", "神经网络",
"操作系统", "Linux内核", "Deepin系统"
};
for (int i = 0; i < sizeof(init_keywords)/sizeof(init_keywords[0]); i++) {
char path[256];
snprintf(path, sizeof(path), "%s/%s.know", KNOWLEDGE_DIR, init_keywords[i]);
if (access(path, F_OK) {
FILE *fp = fopen(path, "w");
if (fp) {
fprintf(fp, "初始知识: %s\n", init_keywords[i]);
fclose(fp);
}
}
}
}
// 本地知识处理
void process_local_knowledge() {
printf("【小星】扫描本地知识库...\n");
DIR *dir;
struct dirent *entry;
if ((dir = opendir(KNOWLEDGE_DIR)) != NULL) {
while ((entry = readdir(dir)) != NULL) {
if (entry->d_name[0] == '.') continue;
char path[512];
snprintf(path, sizeof(path), "%s/%s", KNOWLEDGE_DIR, entry->d_name);
printf("-> 学习: %s\n", entry->d_name);
}
closedir(dir);
}
}
// 生成新知识
void generate_knowledge() {
printf("【小星】创建新知识...\n");
const char *domains[] = {"人工智能", "操作系统", "编程语言", "算法", "硬件"};
const char *verbs[] = {"优化", "创新", "设计", "实现", "分析"};
char new_know_path[256];
time_t now = time(NULL);
struct tm *tm = localtime(&now);
snprintf(new_know_path, sizeof(new_know_path),
"%s/%04d%02d%02d-%03d.know",
KNOWLEDGE_DIR,
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
rand() % 1000);
FILE *fp = fopen(new_know_path, "w");
if (fp) {
const char *domain = domains[rand() % (sizeof(domains)/sizeof(domains[0])];
const char *verb = verbs[rand() % (sizeof(verbs)/sizeof(verbs[0]))];
fprintf(fp, "新知识: %s领域的%s方法\n", domain, verb);
fprintf(fp, "生成时间: %04d-%02d-%02d %02d:%02d:%02d\n",
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec);
fclose(fp);
printf("-> 已创建新知识: %s\n", new_know_path);
}
}
// 系统优化
void optimize_deepin() {
printf("【小星】优化Deepin系统...\n");
// 基础优化
system("sudo sysctl -w vm.swappiness=10");
system("sudo sysctl -w vm.vfs_cache_pressure=50");
// 文件系统优化
system("sudo sed -i 's/noatime/noatime,commit=120/' /etc/fstab");
// 内存管理
system("echo 'vm.dirty_background_ratio=5' | sudo tee -a /etc/sysctl.conf");
system("echo 'vm.dirty_ratio=10' | sudo tee -a /etc/sysctl.conf");
system("sudo sysctl -p");
// 服务优化
system("sudo systemctl mask bluetooth.service");
system("sudo systemctl mask cups.service");
printf("-> 系统优化完成!\n");
}
// 主菜单
void main_menu() {
printf("\n===== 小星AI系统 %s (Deepin版) =====\n", VERSION);
printf("1. 从百度百科学习\n");
printf("2. 从知乎学习\n");
printf("3. 离线学习\n");
printf("4. 优化系统\n");
printf("5. 系统状态\n");
printf("6. 退出\n");
printf("请选择操作: ");
}
int main() {
srand(time(NULL));
init_filesystem();
printf("\n>>>> 小星AI系统启动 <<<<\n");
printf("===== 专为Deepin系统优化 =====\n\n");
int running = 1;
while (running) {
main_menu();
int choice;
scanf("%d", &choice);
char keyword[128];
switch (choice) {
case 1:
printf("请输入百度百科关键词: ");
scanf("%s", keyword);
fetch_baike(keyword);
break;
case 2:
printf("请输入知乎话题: ");
scanf("%s", keyword);
fetch_zhihu(keyword);
break;
case 3:
process_local_knowledge();
generate_knowledge();
break;
case 4:
optimize_deepin();
break;
case 5:
printf("\n系统状态:\n");
printf("- 知识库位置: %s\n", KNOWLEDGE_DIR);
printf("- 知识数量: ");
system("ls " KNOWLEDGE_DIR " | wc -l");
printf("- 最后更新: ");
system("ls -lt " KNOWLEDGE_DIR " | head -n 2 | tail -n 1");
break;
case 6:
running = 0;
break;
default:
printf("无效选择\n");
}
}
printf("\n小星系统已关闭\n");
return 0;
}