加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- AI行业应用、大数据、建站、语音技术、研发安全!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

操作系统设计与实现--系统调用

发布时间:2023-05-23 22:34:09 所属栏目:Unix 来源:未知
导读: 当前系统调用都采用的是POSIX标准unix系统设计,POSIX标准以其简洁易用在类Unix操作系统中流行,以至于Linux从一开始就遵从POSIX标准。
本节介绍应用程序和操作系统之间的接口系统调用。采

当前系统调用都采用的是POSIX标准unix系统设计,POSIX标准以其简洁易用在类Unix操作系统中流行,以至于Linux从一开始就遵从POSIX标准。

本节介绍应用程序和操作系统之间的接口系统调用。采用的是 POSIX ,这个接口被 MINIX3, UNIX, Linux 等许多现代操作系统所遵循。系统调用以 C 语言的形式出现。

系统调用和普通过程调用的区别:系统调用时在内核状态执行, CPU 存在一个切换。普通过程调用不存在切换。

以读文件操作为例: count = read(fd, buffer, nbytes);

MINIX 系统主要的系统调用列表:

进程管理:

pid = fork();

pid = waitpid(pid, &statloc, opts);

s = wait(&status);

s = execve(name, argv, envp);

exit(status);

size = brk(addr);

pid = getpid();

pid = getpgrp();

pid = setsid();

信号 (singnals)

l = ptrace(req, pid, addr, data);

s = sigaction(sig, &act, &oldact);

s = sigreturn(&context);

s = sigprocmask(how, &set, &old);

s = sigpending(set);

unix系统的缺点_unix系统设计_crontab是unix系统自带的吗

s = sigsuspend(sigmask);

s = kill(pid, sig);

residual = alarm(seconds);

s = pause();

文件管理:

fd = create(name, mode)

fd = mknod(name, mode, addr)

fd = open(file, how, ...)

s = close(fd);

n = read(fd, buffer, nbytes)

n = write(fd, buffer,nbytes)

pos = lseek(fd, offset, whence)

s = stat(name, &buf)

s = fstat(fd, &buf)

fd = dup(fd)

s = pipe(&fd[0])

s = ioctl(fd, request, argp)

s = access(name, amode)

s = rename(old, new)

s = fcntl(fd, cmd, ...)

目录和文件系统管理

s = mkdir(name, mode)

s = rmdir(name)

s = link(name1, name2)

s = unlink(name)

s = mount(special, name, flag)

s = umount(special)

s = sync()

s = chdir(dirname)

s = chroot(dirname)

保护权限相关

s = chmod(name, mode)

uid = getuid()

gid = getgid()

s = setuid(uid)

s = setgid(gid)

s = chown(name, owner, group)

oldmask = umask(complmode)

时间管理

seconds = time(&seconds)

s = stime(tp)

s = utime(file, timep)

s = times(buffer)

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章