v0.01 有 66 个系统调用。以下是其中的列表:
access acct alarm break brk chdir chmod
chown chroot close creat dup dup2 execve
exit fcntl fork fstat ftime getegid geteuid
getgid getpgrp setsid getpid getppid
getuid gtty ioctl kill link lock lseek
mkdir mknod mount mpx nice open pause
phys pipe prof ptrace read rename rmdir
setgid setpgid setuid setup signal stat
stime stty sync time times ulimit umask
umount uname unlink ustat utime waitpid write
它支持读取、写入、创建和删除文件和目录。此外,还支持其他基本概念,例如chmod(2)(权限)、chown(2)(所有者)和pipe(2)(进程间通信)。
fork(2)并execve(2)在那里。仅a.out支持可执行格式。
套接字的概念没有实现。因此,没有网络支持。
诸如此类的一些功能mount(2)尚未实现。他们只是返回ENOSYS:
以下是对这些系统调用的简要解释:
- `access`: 用于检查进程是否具有对指定文件的访问权限。
- `acct`: 用于打开或关闭进程计费功能。
- `alarm`: 用于设置定时器,在指定的时间间隔后触发信号。
- `break`: 用于改变进程数据段的结束地址。
- `chdir`: 用于改变当前工作目录。
- `chmod`: 用于改变文件的访问权限。
- `chown`: 用于改变文件的所有者和所属组。
- `chroot`: 用于改变进程的根目录。
- `close`: 用于关闭文件描述符。
- `creat`: 用于创建新文件。
- `dup` 和 `dup2`: 用于复制文件描述符。
- `execve`: 用于执行新的程序。
- `exit`: 用于终止进程并返回退出状态。
- `fcntl`: 用于对文件描述符进行各种操作,如复制、关闭、设置标志等。
- `fork`: 用于创建一个新进程。
- `fstat`: 用于获取文件的状态信息。
- `ftime`: 用于获取系统时间。
- `getegid`: 用于获取有效组ID。
- `geteuid`: 用于获取有效用户ID。
- `getgid`: 用于获取实际组ID。
- `getpgrp`: 用于获取进程组ID。
- `setsid`: 用于创建一个新的会话。
- `getpid`: 用于获取进程ID。
- `getppid`: 用于获取父进程ID。
- `getuid`: 用于获取实际用户ID。
- `gtty`: 用于获取和设置终端的属性。
- `ioctl`: 用于对文件描述符进行各种控制操作。
- `kill`: 用于发送信号给指定的进程或进程组。
- `link`: 用于创建一个硬链接。
- `lock`: 用于对文件进行锁定操作。
- `lseek`: 用于改变文件的当前偏移量。
- `mkdir`: 用于创建新目录。
- `mknod`: 用于创建一个设备节点。
- `mount`: 用于挂载文件系统。
- `mpx`: 已经过时,不再使用。
- `nice`: 用于改变进程的优先级。
- `open`: 用于打开文件。
- `pause`: 用于使进程暂停,直到接收到信号。
- `phys`: 已经过时,不再使用。
- `pipe`: 用于创建管道。
- `prof`: 已经过时,不再使用。
- `ptrace`: 用于跟踪和控制进程。
- `read`: 用于从文件描述符读取数据。
- `rename`: 用于重命名文件。
- `rmdir`: 用于删除空目录。
- `setgid`: 用于设置实际组ID和有效组ID。
- `setpgid`: 用于设置进程组ID。
- `setuid`: 用于设置实际用户ID和有效用户ID。
- `setup`: 已经过时,不再使用。
- `signal`: 用于设置信号处理器。
- `stat`: 用于获取文件的状态信息。
- `stime`: 已经过时,不再使用。
- `stty`: 用于获取和设置终端的属性。
- `sync`: 用于将文件系统缓冲区中的数据刷新到磁盘。
- `time`: 用于获取当前时间。
- `times`: 用于获取进程的运行时间统计信息。
- `ulimit`: 用于设置进程的资源限制。
- `umask`: 用于设置创建文件时的默认权限掩码。
- `umount`: 用于卸载文件系统。
- `uname`: 用于获取系统信息。
- `unlink`: 用于删除文件。
- `ustat`: 已经过时,不再使用。
- `utime`: 用于改变文件的访问和修改时间。
- `waitpid`: 用于等待指定进程的退出状态。
- `write`: 用于向文件描述符写入数据。
这些系统调用是操作系统提供的基本接口,用于进行文件和进程管理、权限控制、进程间通信等操作。每个系统调用都有特定的功能和参数,通过调用这些系统调用,应用程序可以与操作系统进行交互并完成各种任务。