linux怎么卸载vmtools,linux卸载vmtools
《操作系统》课程设计报告课程设计题目:操作系统课程设计 设计时间:2016/1/10一、 课程设计目的与要求需要完成的内容:(1) 安装虚拟机:Vmware、Vmware palyer (free)(推荐)、Virtualbox(推荐)、VMLite、Xen、Virtuozzo、KVM(2) 安装和使用Linux(推荐SUSE)(注意包含内核源码和内核开发工具等)(3) Linux内核源代码配置和重编(4) 找到VFS和一个具体文件系统的源代码(ext3或ext4)(5) 读懂VFS和具体文件系统如何关联(如何体现virtual file switch)(6) 找到具体文件系统的read或write函数,使用printk(使用方法和printf一样)向后台打印文件读写信息。(read或write函数选一个即可)(7) 使用dmesg –c查看后台的输出。可以附加的功能(8) 复制ext3或ext4的源代码(注意与当前使用的文件系统有区别),修改Makefile文件,使用模块编译方式(9) 修改ext3或ext4的源代码,实现新的文件系统。(至少需要修改文件系统的名称,最好能对文件写操作向系统后台打印出信息。)(10) 动态加载和卸载新的文件系统。二、 课程设计内容(1) 安装虚拟机(2) 安装和使用Linux(3) Linux内核源代码配置和重编(4) 提取并动态加载和卸载新的文件系统三、 课程设计设备与环境设备信息:PC
虚拟机:VM11
四、 设计正文(包括分析与设计思路、各模块流程图、带注释的主要算法源码、内核编译过程以及动态模块加载过程等,如有改进或者拓展,请重点用一小节进行说明)(1) 安装虚拟机(2) 安装和使用Linux(推荐SUSE)(注意包含内核源码和内核开发工具等)安装OpenSUSE,并下载相近版本的内核源码
初始内核版本
下载的源代码包
(3) Linux内核源代码配置和重编利用vmtools(虚拟机提供的可以在宿主机和虚拟机之间自由复制文件的工具)将内核源码包复制进虚拟机,解压到/home/a123/linux-3.12.51
*因为分配的磁盘空间比较小,所以没有按照惯例把内核源码放在/usr/src目录下(如果放在这里,会出现空间不足的情况)附:磁盘分配情况/swap(交换分区) 2.4G/(根目录) 11G/home(用户目录) 13G
解压好的内核源码文件在编译前需要稍作修改(6),并且缺乏一个config文件告诉编译器编译哪些功能。Config文件可以用make menuconfig命令生成,但是需要自己选择相应的功能,太过复杂,这里有一个简便的方法因为下载的内核源码是相近的版本,所以可以使用现有版本的config文件,该文件在/boot目录下使用cp /boot/config-3.11.6-4-desktop .config命令将此文件复制过来
注意:应当在内核所在的文件目录下使用此命令复制成功
执行 make menuconfig命令,进入选择界面,直接保存退出即可虽然新版本的Linux可以直接执行make一步完成所有的编译工作,但此次课程设计仍然采用以前的编译的方式
执行 make bzImage命令——编译压缩的内核编译完成
执行 make modules命令——编译模块
执行 make modules_install命令——安装模块
注:
在make menuconfig时我在General setup中把版本号改过
执行 make install命令——安装新内核
Reboot重启
说明内核修改安装完毕,成功(4) 找到VFS和一个具体文件系统的源代码(ext3或ext4)VFS:虚拟文件系统,顾名思义。它为应用程序员提供一层抽象,屏蔽底层各种文件系统的差异。Linux的文件系统采用面向对象的方式设计,这使得Linux的文件系统非常容易扩展,我们可以非常容易将一个新的文件系统添加到Linux中。在此主要对象之一super_block位于中
代码量巨大,此为部分代码Ext4在fs文件夹下的ext4文件夹内
此处打开file.c用vim打开file.c部分代码如下
(5) 读懂VFS和具体文件系统如何关联(如何体现virtual file switch)在(4)中已经提到,VFS是C语言写的一个面向对象的设计,比如我们要调用alloc_inode方法:sb->s_op->alloc_inode(sb)。这里与面向对象语言的差别是,面向对象语言里实例方法可以访问到this,这样就可以访问到自身的所有成员,但是在C里却做不到,所以需要将自身作为参数传入到函数中、图一表示了对文件写操作的调用过程
(6) 找到具体文件系统的read或write函数,使用printk(使用方法和printf一样)向后台打印文件读写信息。(read或write函数选一个即可)因为Linux系统对文件的操作是通过函数调用来实现的,所以在此我修改的是vfs这一层,找到fs,目录下的read_write.c并打开找到do_sync_read函数,在其返回前加入printk语句
(7) 使用dmesg –c查看后台的输出。
(8) 复制ext3或ext4的源代码(注意与当前使用的文件系统有区别),修改Makefile文件,使用模块编译方式
(9) 修改ext3或ext4的源代码,实现新的文件系统。(至少需要修改文件系统的名称,最好能对文件写操作向系统后台打印出信息。)
使其在加载和卸载的时候能够printk到buffer缓冲中(10) 动态加载和卸载新的文件系统。使用insmod语句加载使用lsmod语句加载
加载成功接下来使用dmesg 查看缓冲区内容
成功接下来使用rmmod语句卸载模块
成功五、 课程设计结果及分析课程设计结果:成功分析:Linux文件系统使用了面向对象的设计方法,保证了其对用户的透明,VFS层实现了系统与文件系统的无关性,增加了系统对不同文件系统的兼容性。六、 总结与进一步改进设想总结:1.编译内核的时候,可以使用make XXX –j8这样可以开启多线程编译(我的虚拟机分配的是8核心),加快编译速度2.printk语句我写的是printk(”””DoingRead”);本意是利用printk的优先级,将其输出到用户态的控制台,结果语法错误,并没有输出到控制台改进设想:修改的文件前加上语句,实现对控制台的输出
define KERN_EMERG 0(因为缺少这个宏,导致系统并没有理解我的0是什么意思)
七、 答辩(或汇报)记录(包括问题和答案,每个人不少于3个)
显示内核版本
使用dmesg –c命令
加载新模块
八、 参考文献
鸟哥的Linux私房菜
百度百科:printk概述http://baike.baidu.com/link?url=Kv5e2xb9thGENkIvSQmjpkYb8kbKoNvEhmt2oICTmDAn0wj2YADVf8dsrzBtz2fRt0uwa_3joQ-o40wKwwL68a
Linux虚拟文件系统(VFS)http://www.cnblogs.com/yuyijq/archive/2013/02/24/2923855.html
LinuxEXT4文件系统分析http://wenku.baidu.com/link?url=Wi-vyrROUIJqRk4eSsuwOwRe0Sf-ydXamWNR0H2HCrN9CPHJg80lXpu0Gi_ZGT-X5yKnknl86ooHdckHhJxybmyBR2szWsPDOV0IPJ6fJXO
linux怎么卸载vmtools,linux卸载vmtools相关推荐
- linux 安装删除命令,Linux如何使用命令行卸载安装包
导读 严格地说,Linux是内核.Linux发行版由Linux内核.安装脚本.shell.编译器.桌面和其他组件组成.因此,卸载包或软件的Linux命令取决于Linux发行版的名称和类型.本文说明如何 ...
- linux用卸载软件管理,Linux下软件的安装卸载管理
一.Linux应用程序组成 1. 普通执行程序文件,保存在"/usr/bin"目录中 2. 服务器执行程序文件和管理程序文件,保存在"/usr/sbin"目录中 ...
- windown下linux子系统的安装和卸载
windown下linux子系统的安装和卸载 原文:windown下linux子系统的安装和卸载 安装 第一步 打开开发人员模式 第二步 勾选适用linux的window子系统 第三步 打开po ...
- Linux下Oracle 12c的卸载
注:本文来源于:<Linux下Oracle 12c的卸载> 与Windows下Oracle的安装容易卸载麻烦相反,Linux下Oracle的安装麻烦下载简单. 1.关闭Oracle数据库 ...
- pd怎么卸载linux系统,parallels desktop11怎么卸载?parallels desktop11卸载方法
parallels desktop11是一款功能强大的MAC虚拟机软件,用户通过该软件可在mac系统下运行安装windows或Linux操作系统,不过很多时候用户在安装后,由于后期没有使用虚拟机的需求 ...
- Linux/deppin 中安装、卸载软件的几种命令
title: Linux/deppin 中安装.卸载软件的几种命令 date: 2019-04-28 00:00:00 Linux/deppin 中安装.卸载软件的几种命令 1.在终端里 apt-ge ...
- linux显卡驱动卸载和安装,Linux下Nvidia显卡驱动卸载和卸载后的问题
Linux下Nvidia显卡驱动卸载和卸载后的问题 由于在Ubuntu下安装了Nvidia显卡驱动后开机一直处于循环登录界面,密码输入正确也是进不去,然后就决定卸载Nvidia显卡驱动. 首先是在能使 ...
- linux文件挂载和卸载命令,Linux基础命令(八)——挂载、卸载文件系统
前言:在Linux系统中,对各种存储设备中的资源访问(如读取.保存文件等)都是通过目录结构进行的,虽然系统核心能够通过"设备文件"的方式操纵各种设备,但是对于用户来说,还需要增加一 ...
- linux卸载文件系统什么意思,Linux文件系统的安装和卸载
本文介绍Linux文件系统的安装和卸载如何控制,以及当中需要了解的原理和注意事项.阅读本文之后,您将会了解如何安装您的 Linux 文件系统:配置和使用可移动 USB.IEE 1394 或其他设备:正 ...
- 安装 卸载 mysql linux,Linux 下MySQL 安装与卸载
参考博客:http://www.cnblogs.com/steven_oyj/archive/2010/05/24/1742808.html http://www.linuxidc.com/Linux ...
最新文章
- 隐藏在Win XP中的28个秘密武器
- 高通平台:USB充电
- 集合到文件数据排序改进版
- SQL Server聚集索引的选择
- [即将举行的网络研讨会]对Kubernetes进行故障排除:您需要具备的7个关键组件
- JS 对象(Object)和字符串(String)互转
- 陈华钧 | 知识图谱构建,将成为智能金融的突破口
- oracle 本年1月1号 yy,ORACLE 日期函数
- 超级卷的卷烟厂,名校生争当操作工,做一天休一天
- RESTful架构与RPC架构
- vba判断是否为数字的方法小集
- eclipse中怎么复制错误提示
- Java EE开发四大常用框架(1)
- 可用性测试启发式评估十条原则介绍
- python数据类型二(列表和元组)
- 阵列信号处理-学习笔记003-波束形成
- java商品管理系统(增删改查)
- 服务器上的360不显示网速慢,服务器网速慢怎么解决
- 高斯勒让德(Gauss-legendre)求解多重积分(python,数值积分)
- Java的笔记开源软件_jnote