操作系统实践 Linux操作系统从入门到提高

Linux操作系统入门:基本进程编程

fork 产生的新进程和原进程这两进程各有各的执行线路, 但存在父子关系。所以, 不需要担心子进程会无限分叉, 此程序运行并不会出现一直持续分叉产生子进程的现象。基于其设计,父进程的pid 变量系统写入了子进程的进程号, 而子进程的pid 变量系统写入了0。图5.15fork 产生的父子进程执行分析图执行结果如下。在父进程睡眠时, 子进程已经执行完毕走向死亡
理论教育 2023-11-25

使用GCC编译运行程序

表5.1GCC 常用参数说明表续表3. 编译执行中的常见错误不同于运行阶段发生的结果不正确的逻辑错误, 编译阶段的报错主要是语法错误, 多数是由于编译器不能识别变量或相关功能函数, 或者书写语法有误。2011 年, ISO/IEC 9899: 2011 发布, 简称C11 标准。
理论教育 2023-11-25

Linux操作系统实践:课后训练成果

③创建空文件aa.c、 bb.c, 并将其复制到新目录mydir 中, 然后将bb.c 更名为fork.c。完成下列文件打包与压缩命令。③新增user2 用户, 密码为password, 将用户的附属组加入root 组和usergroup 组。使用数字设定法对/root/ab 文件设置权限, 用户所有者只有读取和写入权限。将/root/ab 文件的用户所有者更改为用户user1。执行vi a.txt, 将进程挂起, 然后切换到前台运行。配置一个cron 任务: 用户susa 必须配置一个定时执行任务, 每天在本地时间14:23 时执行命令/bin/echohana。按照描述完成如表2.26 所示描述的关键字。
理论教育 2023-11-25

Linux操作系统中安装GCC方法

图5.1GCC 未安装示意图图5.2GCC 已安装示意图2. 联网支持下的命令安装不同的Linux 发行版的联网安装命令不同, 红帽、 CentOS 系列的是用yum 命令, 其具体步骤如下。GCC 安装的过程参见图5.5。 下载GCC 源码包到工作目录。图5.6configure 提示的安装问题 编译。图5.7GCC 9 版本查看
理论教育 2023-11-25

操作系统实践:线程同步控制

多进程之间存在互斥和合作关系时需要同步控制以保证执行结果的逻辑正确, 多个线程共享资源和合作时, 也同样存在同步的问题, 5.5.1 引入问题时, 我们就已经看到了线程不同步造成的加和错误。而条件变量类函数通过设计条件变量, 结合共享的互斥量实现线程间同步控制,这类函数包括条件变量的创建、 销毁、 等待和释放等。所以在不同场合, 可以根据问题的需求选择不同的同步控制手段。
理论教育 2023-11-25

虚拟机联网配置实践-Linux操作系统从入门到提高

根据图7.5 和图7.6 分析可知, 该图例中物理机采用无线网络连接方式连接到外网,IP 地址为192.168.3.9, 默认路由为192.168.3.1, 说明物理实体机处在一个192.168.3.0的内网中。而物理机上的VMnet1 配置了192.168.50.0 的一个内部网络, VMnet8 上配置了192.168.138.0 的一个内部网络。在三种联网方式下, 分别设置虚拟机网卡动态获得IP, 根据分配得到的IP 地址, 结合相关网络知识, 可以用图7.7 所示的拓扑结构描述虚拟机的联网配置。图7.8虚拟机相关系统服务启动示例
理论教育 2023-11-25

安装CentOS系统-操作系统实践

准备好VMware 虚拟机软件与CentOS 7 版本安装包后, 便可以开始搭建CentOS 7 版本的Linux 环境了。)图1.4安装客户机操作系统如图1.5 所示, 选择客户机操作系统, 按需选择相应的Linux 操作系统的版本,本例选择“Linux 操作系统”, 版本为“CentOS 64 位”, 单击按钮。图1.9虚拟机设置单击“启动虚拟机”开始CentOS 7 操作系统的安装, 如图1.10 所示为“检测安装”界面。图1.18配置完成界面
理论教育 2023-11-25

Linux操作系统:Shell编程实例

/dev/null 表示一个空设备。◎注意 在Linux 系统中不支持mv .txt .doc 这样的更名命令形式, 如果需要将文件成批地更名最好编写一个Shell 脚本文件。图4.11例4-14 的运行结果思考: 如果不想让图4.11 的回显内容显示在屏幕上, 应该如何处理?运行结果如图4.14 所示, 加参数star 可以启动火狐浏览器; 加参数stop 可以结束火狐浏览器; 加参数restart 重新后台启动火狐浏览器。图4.14例4-17 的运行结果 编写脚本, 检查密码, 如果用户三次输入密码均错误, 则退出脚本。
理论教育 2023-11-25

Makefile语法规则解析

Makefile 中只有行注释, 用“#”字符起头; 如果Makefile 中使用“#”做普通字符, 需进行转义, 如: “/#”。Makefile 脚本文件还有变量、 函数等很多相关语法, 此处暂时不深入讨论。另外, 对于学习语法细节, 建议可以通过读Linux 系统中现有的脚本实例学习, 如下载GCC 源码包里的Makefile 文件。
理论教育 2023-11-25

文件链接和文件压缩技巧

默认情况下, ln 产生硬链接, 原文件与链接文件两者具有相同的inode。符号链接文件也称软链接, 等价于Windows 系统下的快捷方式文件。创建文件file 的硬链接文件file_h。 软链接文件的使用。
理论教育 2023-11-25

理解同步控制在操作系统实践中的作用

下面通过一个例子体验一下没有同步控制下的程序会有什么错误。问题实际上出在双方对z 的共同操作上。总之, 无论是多个进程还是多个线程之间, 只要存在同步问题, 都需要有同步控制才能保证程序运行结果的逻辑正确。操作系统提供的同步控制方法软硬件手段都有, 下面我们学习不同的库接口支持下的同步实现。
理论教育 2023-11-25

Linux操作系统实践:iSCSI服务配置实例

iSCSI 启动的时候, iscsid 和iscsiadm 都会读取配置文件/etc/iscsi/initiatorname.iscsi 以获得intiator 名称配置。iqn 命名规范: iqn.domaindate.reverse.domain.name: optional name, 注意日期的规范,不能丢0。注意与本机配置文件中的标识一致: /etc/iscsi/initiatorname.iscsi, 为防止写错, 最好复制而来。 登录连接iSCSI 目标。 查看新发现的SAN 硬盘。
理论教育 2023-11-25

Linux操作系统Makefile执行过程

对前述例子, 在脚本所在目录直接输入命令“make”就可以生成最终目标edit。首先, Make 会在当前目录下按顺序找GNUmakefile, makefile 或Makefile 名字的文件。如果不用默认的makefile 文件而是自己写脚本文件并命名为mymake, 可以执行命令makef mymake, 通过-f 参数指定mymake 为编译使用的makefile 文件。如果是目标下定义的操作命令执行时出错, 并不会影响make 向下找依赖关系的执行。要注意clean 规则一般放在文件末尾, 不要放在文件的开头, 不然, 这就会变成make 的默认目标。
理论教育 2023-11-25

操作系统实践:Linux基本线程编程

在Windows 系统、 Java 虚拟机、 Linux 系统上都有多线程编程。线程分内核级线程和用户级线程。给传递NULL 表示设置为默认线程属性。thread 线程以不同的方法终止, 通过pthread_join 的retval 指针得到的结果是不同的。主线程可以创建新线程, 新线程可以再创建新线程, POSIX 线程标准将它们视为等同层次。
理论教育 2023-11-25

Linux操作系统文件操作常用C库函数

不同平台、 不同编译器支持的库函数是有所不同的。标准C 库提供的文件操作类函数有fopen、 fread、 fwrite、 fclose、 fflush、 fseek 等, 注意引入stdio.h 头文件, 常用功能函数原型描述如下。若文件不存在则建立该文件。返回结果为读取到的字符, 若返回EOF 则表示到了文件尾。如果函数返回值为NULL 表示有错误发生。将数据写入文件流中。
理论教育 2023-11-25

Linux操作系统:软中断通信实践

接收进程在收到软中断信号后, 按规定执行一个事先关联的处理程序。在使用软中断进行通信时, 收发双方的工作如下。不预置则无法接收到发过来的软中断信息。查系统的软中断信号表可知, 需要定义的软中断信号序号为2, 名称为SIGINT。
理论教育 2023-11-25
-已经加载完成-