Linux系统的使用以及系统调用的开发方法OS

第2章 操作系统用户命令接口 操作系统的发布、安装、和使用 概述 软件发展的两种模式 Linux系统发布方式 Linux的硬件要求 主板总线 操作系统的安装 计算机执行的任何程序都必须存储到内存中 CPU 只能通过内存访问程序 操作系统安装过程,实际上是把存放在光盘上的Linux执行代码存入硬盘的过程 因为硬盘是PC机的固定外部存储设备,从硬盘上加载程序到内存很方便 另外,操作系统中的文件系统主要是靠硬盘提供物理支持,安装操作系统到硬盘,实际上有两方面的作用: 一是在硬盘上建立文件系统 二是把操作系统的全部内容事先存放在硬盘上以便往内存中加载操作系统核心程序时使用。 操作系统安装概念是指在硬盘上建立文件系统 当使用计算机时,从硬盘上加载操作系统到内存,然后将控制转给操作系统内核执行。 安装示意图 Shell命令举例 Shell命令 man联机帮助 a.out, cd, cat, chmod, cp, cc, ^d, echo, exit, fdisk, ftp, halt, kill, ls, logout, mail, mkdir, more, mount, umount, ps, pwd, passwd, rmdir, rm, sort, su, telnet , make, useradd, userdel , vi, wc, who , | Shell 程序 见脚本文件.profile或者.bash_profile,用户在登录时自动执行。 Shell编程举例(脚本) 修改.bash_profile脚本文件 trap “$HOME/.logout” 0 建立.logout文件 .logout的内容如下: rm –f $HOME/*.log rm –f $HOME/*.tmp echo “Bye…bye $LOGNAME” 脚本文件的建立和运行 建立create-file文件的内容如下: cp .logout log.log cp .logout log.tmp ls –l *.log ls –l *.tmp 键入命令:chmod u+x create-file PATH=$PATH:$HOME/. 运行create-file 脚本文件的建立和运行 建立cleanup文件的内容如下: #!/bin/sh #name:cleanup #this is a general cleanup script echo “starting cleanup…wait” rm *.log rm *.tmp tail –40 .logout > /tmp/messages mv /tmp/messages /var/tmp/messages ls /var/tmp echo “finished cleanup” 编程方式使用操作系统(系统调用) fork( )系统调用的使用 pipe系统调用的使用 系统调用小结 fork、exit、pipe、dup、execl open、close、read、write fork()的使用 系统调用应用举例 编制并发程序pipeline.c 编制管道写使用的程序father1.c作为父进程的一部分工作 编制管道读使用的程序child1.c作为子进程的一部分工作 pipe系统调用的使用 进程的建立 #define STD_INPUT 0 #define STD_OUTPUT 1 int fd[2]; main( ) { static char process1[]="father1",process2[]="child1"; pipe (fd); pipeline(process1,process2); exit(1); } 进程的建立(续一) pipeline(process1,process2) char *process1,*process2; { int i; while((i=fork())==-1); if(i) { close(fd[0]); close(STD_OUTPUT); dup(fd[1]);//把1分为另一个管道写指针 close(fd[1]);//关闭原管道写指针 execl(process1,process1,0); printf("-----father failed.\n"); } 进程的建立(续二) else { close(fd[1]); close(STD_INPUT); dup(fd[0]); close(fd[0]); execl(process2,process2,0); prin

linux系统调用使用方法,Linux系统的使用以及系统调用的开发方法OS.ppt相关推荐

  1. linux下geany配置python_Linux系统下搭建基于Geany+Python开发环境

    Linux系统下搭建基于Geany+Python开发环境 一.升级python mkdir /usr/local/python3 # tar xvf Python-3.6.1.tar.xz  # 解压 ...

  2. 计算机重启的两种方法,Win10系统自动重启的两种关闭方法

    大家在使用 Win10系统 的过程当中,可能会遇到一个情况,电脑总是会自动关机重启或者重启关机后又自动重启,这种状况要如何处理呢?其实很简单,只需将系统中的自动重启设置给关闭了就可以解决.下面小编就教 ...

  3. win10c语言乱码修复方法,win10系统运行UG出现乱码的解决方法

    很多小伙伴都遇到过win10系统运行UG出现乱码的困惑吧,一些朋友看过网上零散的win10系统运行UG出现乱码的处理方法,并没有完完全全明白win10系统运行UG出现乱码是如何解决的,今天小编准备了简 ...

  4. mybatis由浅入深day01_5mybatis开发dao的方法(5.1SqlSession使用范围_5.2原始dao开发方法)...

    5 mybatis开发dao的方法 5.1 SqlSession使用范围 5.1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂 ...

  5. linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法

    关于workqueue,我们还是有很多话要说. 想必大家对workqueue相关的函数(schedule_work .queue_work.INIT_WORK.create_singlethread_ ...

  6. redis linux 运行依赖,在Ubuntu系统下安装Redis Desktop Manager的方法

    以下为你介绍在Ubuntu16.04系统下安装Redis可视化工具Redis Desktop Manager.不管是哪个Redis Desktop Manager版本,都可以采用下面的安装方式进行. ...

  7. linux 取消utc时间,ubuntu系统下禁用utc时间的设置方法

    前言 大家在安装双系统以后,发现进入win7和ubuntu系统以后,显示的时间不一致,后来发现是两个系统对硬件时间的看法不一致 原因如下 1.Windows会认为BIOS时间就是你的本地时间 2.ub ...

  8. linux c++ 调用matlab,ubuntu系统下C++调用matlab程序的方法详解

    前言 最近因为工作的需要在研究C++怎么调用matlab程序,发现网上的资料较少,所以将自己学习的内容总结分享出来,下面话不多说了,来一起看看详细的介绍吧. 实验平台: ubuntu  matlab ...

  9. linux vim go语言,CentOS7系统基于Vim8搭建Go语言开发环境

    主要是在vim中通过vundle来安装vim-go插件.gocode插件,支持代码高亮.代码提示以及语法检查等功能 安装Golang 1.11.2 curl -Lo golang.tar.gz htt ...

  10. ft2232驱动安装方法_win7系统无法安装打印机驱动程序的解决方法

    打印机是我们工作中经常要使用到的办公设备,相信不少朋友在添加打印机时都会遇到,"windows无法打开添加打印机"这种提示,那么遇到这种情况要怎么办呢?下面我就为大家讲解下解决办法 ...

最新文章

  1. java string对象创建_String对象创建个数
  2. 解决mysql获取不到连接的问题
  3. rest_快速检查REST API是否有效的方法-从清单文件中获取详细信息
  4. Docker-Centos7安装Docker CE 及在Docker CE中安装RabbitMQ
  5. python哨兵循环_Python中的Sentinel(哨兵)值
  6. linux mxnet 编译,MXnet安装和编译
  7. .NET短信接口验证
  8. LSTM及其改进用于视觉任务中
  9. 自考那些事儿(七):信息资源管理(总述篇)
  10. nginx配置http访问自动跳转到https
  11. 问题来了,个人用户可以使用短信接口吗?答案很意外
  12. linux安装思源字体下载,CentOS7安装思源黑体(Source Han Sans)方法
  13. c++采集声卡输出_基于C++Builder的声卡数据实时采集的实现
  14. stvp打不开iar生成的hex文件
  15. 在spyder中设置缩进对齐线提示
  16. 思源笔记局域网内访问【使用教程】
  17. Mysql的问题 Row size too large
  18. php while 无限循环,php - 在PAMI中发起呼叫-无限while循环 - 堆栈内存溢出
  19. 慧荣SM2269XT量产开卡成功,附SM2269XT量产工具、开卡软件
  20. 红旗Linux开发商中科红旗倒闭

热门文章

  1. @Scope注解的proxyMode的作用以及如何影响IoC容器的依赖查找
  2. 字节码指令之控制转移指令
  3. spring扩展点一:BeanDefinitionRegistryPostProcessor
  4. 15张图带你彻底明白spring循环依赖,再也不用怕了
  5. Spring中的@Autowired自动装配
  6. Android开发之数据库Sqlite
  7. 浅谈Mysql底层索引原理
  8. 对于区块链在现实落地的一些技术业务关注点
  9. Go语言内幕(1):主要概念与项目结构
  10. SQLServer------基本操作