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操作系统中添加用户应用程序相关推荐

  1. 使用PHP往Windows系统中添加用户

    可以实现, 方法有二. 一.再Web中添加用户 因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数 ...

  2. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  3. MySql中添加用户/删除用户

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  4. mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  5. 解决ios系统在safari浏览器中添加web应用程序到主屏幕,打开子链接会跳转到safari的问题

    解决ios系统在safari浏览器中添加web应用程序到主屏幕,打开子链接会跳转到safari的问题 前言 ios系统的safari浏览器有一个功能可以将web应用程序添加到主程序,使得web程序像a ...

  6. Android P 解决“从锁定屏幕中添加用户”功能不起作用

    问题描述 打开设置–>系统–>高级–>多用户,如下图所示: 测试同事发现当没有启用这个功能时候,在锁屏页面还是可以添加新用户,默认是没有打开这个功能的.先看看锁屏页面,在锁屏页面调出 ...

  7. 在Tomcat中添加用户和权限

    Tomcat中添加用户和权限 1.添加用户和权限 2.验证添加的用户和权限是否可以使用 在使用Tomcat时, 我们往往会需要添加用户和权限, 如: Jenkins 在部署项目到 Tomcat 服务器 ...

  8. 在linux中加用户,Ubuntu使用教程——在Ubuntu中添加用户

    Ubuntu是一个多用户操作系统.多用户操作系统意味着多个用户可以通过独立的.个人的HOME文件夹,文件和设置访问计算机.用户A可以登录并修改他/她自己的配置文件而不会影响用户B的配置文件. 因此,你 ...

  9. 计算机管理中添加用户属性,如何在计算机右键菜单栏中添加属性选项

    如何在计算机右键菜单栏中添加属性选项 电脑是现在最常用的工具之一,有些用户想知道如何在计算机右键菜单栏中添加属性选项,接下来小编小编就给大家介绍一下具体的操作步骤. 具体如下: 1. 首先第一步按下[ ...

最新文章

  1. nodejs 开发企业微信第三方应用入门教程
  2. 数组的一些常用方法记录
  3. Google Maps Android API V2使用及问题解决
  4. 纸飞机html,Flyaway.css-炫酷纯CSS3纸飞机动画特效
  5. 云上的精准医疗——公有云、私有云案例分析和比较
  6. Java parallel control
  7. SpringCloud+Seata1.4+Nacos1.4+MySQL8实现分布式事务(客户端)
  8. opencv 眼睛识别 linux,用opencv测试人脸识别眨眼练习及问题
  9. python环境介绍_Python介绍以及Python环境搭建
  10. easyui学习笔记一:主要结构
  11. 软件测试三种错误的是,软件测试中的三种排错方法(知识篇)
  12. Laravel的CURD操作
  13. c语言判断奇偶素数,用C语言如何判断素数
  14. TopJUI通过简单的代码实现复杂的批量提交功能
  15. [ios] - TommyBros(山寨马里奥) – 开源游戏
  16. 南方cass计算表面积_CASS在工程中的应用“计算表面积”的方法
  17. Mysql5.7下载安装步骤详解
  18. vue网易云二维码登录
  19. “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用。 【谨以此文共勉。】 来源: 胡野的日志
  20. 1、串口(UART/COM/TTL/RS232/RS485)

热门文章

  1. 今日报错系列:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加 “#include “stdafx.h“”?
  2. 共享打印机设置与常见故障解决
  3. 鼠标为什么突然不会动,拔出来重插有可以?
  4. 粒计算是什么,和云计算有什么关系?
  5. android 技术大牛 BLOG
  6. 《炬丰科技-半导体工艺》一步清洁取代RCA两步清洁法用于Pre-Gate清洁
  7. html定义图像位置的源代码,在HTML源代码中,图像用(   )标记来定义。
  8. hfs网络文件服务器 2.3
  9. Interview:Java岗位面试—面试求职攻略之一个JAVA程序员面试心得(非常值得收藏)
  10. 【ResNet】肺炎CT影像识别