mcpField
C
cs-os

cs-os

github.com/alphaonedev开发45 次安装
代码仓库

关于 cs-os

cs-os 是面向操作系统学习和系统编程的技能,可生成代码并解释操作系统基础知识,涵盖 POSIX 进程、线程、内存、文件系统、IPC 和系统调用。

主要功能

  1. 01生成进程管理代码
  2. 02解释线程与同步机制
  3. 03使用虚拟内存 API
  4. 04处理文件系统和目录操作
  5. 05演示 IPC 机制
  6. 06讲解 POSIX 系统调用与标准

适用场景

  1. 01创建 POSIX 子进程
  2. 02排查线程同步或内存问题
  3. 03使用管道或套接字实现 IPC

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill cs-os

安装后在 Claude Code 中输入/cs-os确认已加载。

详细介绍

用途

此技能使 AI 能够生成代码、解释概念并处理与操作系统基础知识相关的任务,重点涵盖进程、线程、纤程、完全公平调度器(CFS)、虚拟内存、文件系统、进程间通信(IPC)、系统调用和 POSIX 标准。可使用此技能为操作系统相关查询生成准确、可执行的代码片段或详细说明。

适用场景

当用户查询涉及进程管理(例如创建进程)、线程同步、通过虚拟内存 API 分配内存、挂载或读取目录等文件系统操作、管道或套接字等 IPC 机制,或符合 POSIX 标准的系统调用时,请使用此技能。在构建多线程服务器或调试内存泄漏等编码场景中也可使用。

主要能力

  • 进程:使用 fork() 创建进程,通过 waitpid() 终止进程,并使用 exec() 系列函数及 EXEC_ENV 等标志进行管理。
  • 线程/纤程:使用 pthread_create() 创建线程并设置 pthread_attr_t 等属性;使用 Boost.Context 等用户空间库创建纤程。
  • CFS 调度:解释 CFS 算法,包括它如何使用虚拟运行时间(vruntime)实现公平调度;生成使用 sleep() 和 getpriority() 模拟调度的代码。
  • 虚拟内存:使用 mmap() 和 MAP_PRIVATE 等标志管理映射,并通过 munmap() 取消映射;使用带有 PROT_NONE 的 mprotect() 处理页错误。
  • 文件系统:执行 open() 等操作并使用 O_CREAT|O_EXCL 标志;按指定偏移读写;使用 opendir()/readdir() 遍历目录。
  • IPC:使用 pipe() 数组实现管道;通过 msgget()/msgsnd() 使用消息队列;使用 socket(AF_INET, SOCK_STREAM, 0) 创建套接字。
  • 系统调用:在 C 代码中封装 getpid() 或 kill() 等 POSIX 系统调用,并使用 errno 检查错误。
  • POSIX:使用 POSIX.1 等标准处理线程和文件 I/O,并编写符合实时扩展规范的代码。

使用模式

在查询前添加技能 ID,以调用此技能,例如“cs-os:编写创建进程的代码”。请务必说明具体情境,例如“cs-os:用 C 模拟说明 CFS”。生成代码时,请指定使用 C 或 C++,并包含 POSIX 头文件。模式:查询 -> AI 生成 2-4 行代码片段 -> AI 说明用法。对于多步骤任务,可与其他技能搭配使用,例如先使用 cs-os 编写进程代码,再与网络技能结合。请在 Linux 等 POSIX 环境中测试生成的代码。

常用命令/API

  • 进程:使用 fork() 创建子进程;示例:pid_t pid = fork(); if (pid == 0) execl("/bin/echo", "echo", "Child", NULL);
  • 线程:使用线程函数调用 pthread_create();示例:pthread_t thread; pthread_create(&thread, NULL, my_function, NULL); pthread_join(thread, NULL);
  • CFS 调度:使用 sched_setscheduler() 和 SCHED_OTHER 策略进行模拟;示例:struct sched_param param; sched_setscheduler(0, SCHED_FIFO, &param);
  • 虚拟内存:使用 mmap() 映射内存;示例:void *mem = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, 0); if (mem == MAP_FAILED) exit(1);
  • 文件系统:使用 open() 打开文件;示例:int fd = open("file.txt", O_RDWR|O_CREAT, 0644); write(fd, buffer, size); close(fd);
  • IPC:创建管道;示例:int pipefd[2]; pipe(pipefd); write(pipefd[1], "Message", 7); read(pipefd[0], buffer, 7);
  • 系统调用:使用 getpid();示例:pid_t mypid = getpid(); printf("PID: %d\n", mypid);
  • POSIX:在线程中使用 pthread_mutex_lock();示例:pthread_mutex_t mutex; pthread_mutex_lock(&mutex); /* Critical section */ pthread_mutex_unlock(&mutex); 如果外部操作系统工具(例如基于云的 VM)需要身份验证,请设置 $OS_API_KEY 等环境变量以进行 API 调用;但 POSIX 系统调用通常不需要身份验证。

集成说明

在 AI 工作流中集成此技能,可在响应处理程序中通过技能 ID 调用,例如,在 Python 脚本中:response = ai_invoke('cs-os', query='Generate fork code')。确保环境符合 POSIX 标准(例如 Ubuntu),并在生成的代码中包含 <unistd.h> 或 <pthread.h> 等必要头文件。对于配置格式,请使用 JSON 设置模拟参数,例如 {"process_count": 5, "memory_size": 1024}。如果与其他技能组合使用,请将输出作为输入传递,例如,将 cs-os 生成的代码用于 cs-networking 技能,以通过套接字实现 IPC。务必使用 gcc 编译并测试代码片段:gcc -o output.c -lpthread。

错误处理

对于系统调用,务必检查返回值并使用 errno;例如:if (fork() == -1) { perror("Fork error"); exit(errno); }。对于线程,使用 pthread_create 的返回码处理 pthread 错误:if (pthread_create(&thread, NULL, func, NULL) != 0) { fprintf(stderr, "Thread creation failed\n"); }。对于文件操作,请验证 fd:if (open("file.txt", O_RDONLY) == -1) { errno_check(); }。使用 strerror(errno) 输出错误消息。对于 IPC,请检查队列 ID:if (msgget(key, 0666) == -1) { handle_error("msgget"); }。在代码生成时,指示 AI 在较高层级的封装中加入 try-catch,或在 C 中优雅退出。

具体用法示例

  1. 用法:用户要求管理一个用于日志记录的进程。调用:“cs-os: Write code to fork a child process that logs to a file.” AI 响应:生成并解释:pid_t pid = fork(); if (pid == 0) { int fd = open("log.txt", O_WRONLY|O_CREAT, 0644); write(fd, "Log entry", 9); close(fd); } else { waitpid(pid, NULL, 0); } 然后建议在 Linux 上使用 ./program 进行测试。
  2. 用法:用户询问缓存的虚拟内存。调用:“cs-os: Explain CFS and code for mapping memory.” AI 响应:“CFS 使用 vruntime 进行调度;以下是内存映射代码:void *cache = mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0); if (munmap(cache, 8192) == -1) perror('Unmap failed');”接着:编译并运行,以确认没有发生段错误。

图关系

  • 关联集群:computer-science
  • 共享标签:os、processes、memory、filesystems、cs、ipc、syscall、posix
  • 关联技能:cs-networking(通过 IPC 套接字)、cs-algorithms(通过调度模拟)

评论

支持 Markdown