xv6操作系统中添加用户应用程序
xv6系统中,可以自己写一段C语言程序,并通过修改Makefile的方式,使得自己的应用程序成为系统的一部分,可以在xv6上通过shell执行。
1、新建一个源代码,命名后缀为.c
2、在代码中编写自己的应用程序
在这里举的例子是博主所做的是一个ps指令(用于实现类似于Linux系统中ps指令列出进程的功能),该指令通过系统调用cps()函数打印各个进程的名字,具体实现如下:
(cps的实现细节见博主的另一篇文章:https://blog.csdn.net/yyd19981117/article/details/95200267)
#include "types.h"
#include "stat.h"
#include "user.h"int main(int argc, char *argv[])
{if(argc!=1)printf(1, "Usage: ps\n");elsecps();exit();
}
自己的应用程序可以是另外其他的任何功能,这里只是举个例子,需要加入系统的应用程序只要是正确的,就行。
写完之后,重命名为另一个名字,博主这里命名为ps.c。
3、修改Makefile,一共有两处
(1)164行左右的UPROGS=\需要加入你写的这个代码名字,将其名字按格式插入即可。(这里就是之后的文件目录啦)
(2)247行左右的EXTRA=\处,添加入自己的.c程序,建议添加在wc.c之后。
4、执行make
5、执行make qemu-nox,进入该系统,输入ls查看文件目录,可以看到你的用户程序已经包括在内了
6、执行命令:ps(程序名)
如果是其他带输入的应用程序,还需要输入参数,跟在后面即可。因此,之前的应用程序main函数一定要是标准写法,带上参数argc和argv。
xv6操作系统中添加用户应用程序相关推荐
- 使用PHP往Windows系统中添加用户
可以实现, 方法有二. 一.再Web中添加用户 因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数 ...
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- MySql中添加用户/删除用户
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- 解决ios系统在safari浏览器中添加web应用程序到主屏幕,打开子链接会跳转到safari的问题
解决ios系统在safari浏览器中添加web应用程序到主屏幕,打开子链接会跳转到safari的问题 前言 ios系统的safari浏览器有一个功能可以将web应用程序添加到主程序,使得web程序像a ...
- Android P 解决“从锁定屏幕中添加用户”功能不起作用
问题描述 打开设置–>系统–>高级–>多用户,如下图所示: 测试同事发现当没有启用这个功能时候,在锁屏页面还是可以添加新用户,默认是没有打开这个功能的.先看看锁屏页面,在锁屏页面调出 ...
- 在Tomcat中添加用户和权限
Tomcat中添加用户和权限 1.添加用户和权限 2.验证添加的用户和权限是否可以使用 在使用Tomcat时, 我们往往会需要添加用户和权限, 如: Jenkins 在部署项目到 Tomcat 服务器 ...
- 在linux中加用户,Ubuntu使用教程——在Ubuntu中添加用户
Ubuntu是一个多用户操作系统.多用户操作系统意味着多个用户可以通过独立的.个人的HOME文件夹,文件和设置访问计算机.用户A可以登录并修改他/她自己的配置文件而不会影响用户B的配置文件. 因此,你 ...
- 计算机管理中添加用户属性,如何在计算机右键菜单栏中添加属性选项
如何在计算机右键菜单栏中添加属性选项 电脑是现在最常用的工具之一,有些用户想知道如何在计算机右键菜单栏中添加属性选项,接下来小编小编就给大家介绍一下具体的操作步骤. 具体如下: 1. 首先第一步按下[ ...
最新文章
- nodejs 开发企业微信第三方应用入门教程
- 数组的一些常用方法记录
- Google Maps Android API V2使用及问题解决
- 纸飞机html,Flyaway.css-炫酷纯CSS3纸飞机动画特效
- 云上的精准医疗——公有云、私有云案例分析和比较
- Java parallel control
- SpringCloud+Seata1.4+Nacos1.4+MySQL8实现分布式事务(客户端)
- opencv 眼睛识别 linux,用opencv测试人脸识别眨眼练习及问题
- python环境介绍_Python介绍以及Python环境搭建
- easyui学习笔记一:主要结构
- 软件测试三种错误的是,软件测试中的三种排错方法(知识篇)
- Laravel的CURD操作
- c语言判断奇偶素数,用C语言如何判断素数
- TopJUI通过简单的代码实现复杂的批量提交功能
- [ios] - TommyBros(山寨马里奥) – 开源游戏
- 南方cass计算表面积_CASS在工程中的应用“计算表面积”的方法
- Mysql5.7下载安装步骤详解
- vue网易云二维码登录
- “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用。 【谨以此文共勉。】 来源: 胡野的日志
- 1、串口(UART/COM/TTL/RS232/RS485)
热门文章
- 今日报错系列:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加 “#include “stdafx.h“”?
- 共享打印机设置与常见故障解决
- 鼠标为什么突然不会动,拔出来重插有可以?
- 粒计算是什么,和云计算有什么关系?
- android 技术大牛 BLOG
- 《炬丰科技-半导体工艺》一步清洁取代RCA两步清洁法用于Pre-Gate清洁
- html定义图像位置的源代码,在HTML源代码中,图像用( )标记来定义。
- hfs网络文件服务器 2.3
- Interview:Java岗位面试—面试求职攻略之一个JAVA程序员面试心得(非常值得收藏)
- 【ResNet】肺炎CT影像识别