Linux
文章平均质量分 55
小近视爱老花镜
这个作者很懒,什么都没留下…
展开
-
解决Ubuntu 14.04 sudoers 文件修复问题
问题描述:笔者在尝试通过修改/etc/sudoers文件实现赋予普通用户root权限时遇到了一个棘手的问题,修改完之后不能使用sudo命令。解决办法: 1、重启系统 2、按住ESC键进入显示grub菜单选项,选择recovery mode 即恢复模式; 3、在恢复模式菜单选项下,选择root,使原创 2015-08-04 16:47:23 · 2548 阅读 · 0 评论 -
Xen中Credit调度算法分析
调度简介 Xen调度不同的虚拟机到处理器上运行,基本方法是虚拟机按时间片运行。Xen通过调度器实现,用户可以根据自己的需要实现不同的调度器,从而实现不同的调度策略。 struct scheduler schedulers 数组 { &sched_sedf_def, &sched_原创 2016-08-16 09:51:50 · 2122 阅读 · 0 评论 -
Linux进程地址空间
转自:http://blog.chinaunix.net/uid-27119491-id-3325943.html下图是x86_64下linux进程的默认内存布局形式:下面逐一分析以上各个地址段的含义。 text 代码段代码段,从虚拟内存地址00400000开始,使用pmap $$可以查看到,这个地址是固定的:linux原创 2016-07-28 13:38:18 · 569 阅读 · 0 评论 -
Linux内存管理
理解linux内存管理首先得理解内存映射。转自:http://blog.chinaunix.net/uid-27119491-id-3282175.html程序用的都是逻辑地址,以下为objdump反汇编程序的结果,左边一列都是逻辑地址:000000000040053c:40053c: 55 push %rbp原创 2016-07-28 13:36:14 · 567 阅读 · 0 评论 -
Linux System.map文件
当运行GNU链接器gld(ld)时若使用了"-M"选项,或者使用nm命令,则会在标准输出设备(通常是屏幕)上打印出链接映像(link map)信息,即是指由链接程序产生的目标程序内存地址映像信息。其中列出了程序段装入到内存中的位置信息。具体来讲有如下信息:目标文件及符号信息映射到内存中的位置。公共符号如何放置。链接中包含的所有文件成员及其引用的符号。通常我们会把发送到标准输出设备的转载 2016-04-24 14:52:36 · 4154 阅读 · 0 评论 -
操作系统开发系列——Bootloaders
简介欢迎光临!本章教程相信您已期待很久。本章我们将涵盖许多话题,如:启动过程——它是如何工作的Bootloader理论开发一个简单的Bootloader用NASM来汇编这个Bootloader使用VFD(Virtual Floppy Drive)软件;创建一个软盘镜像使用PartCopy;将我们的Bootloader复制到软盘镜像使用Bochs——基本的安装和使用;测试这个Boot转载 2016-05-16 14:43:50 · 1357 阅读 · 0 评论 -
Unix中,处理目标文件的工具
因为毕设的缘故,又开始重新学习操作系统,发现之前还是遗漏了很多很重要的知识点。今天就来记录下处理目标文件的工具。在Unix系统中有大量可用的工具可以帮助你理解和处理目标文件。特别的,GNU binutils包尤其有帮助,而且可以运行在每个Unix平台上。AR:创建静态库,插入、删除、列出和提取成员。STRING:列出一个目标文件中所有可打印的字符串。STRIP:从目标文件中删除符号原创 2016-04-19 20:57:07 · 497 阅读 · 0 评论 -
Linux下 kprobe工具的使用
此处转载:一、Kprobe简介kprobe是一个动态地收集调试和性能信息的工具,它从Dprobe项目派生而来,是一种非破坏性工具,用户用它几乎可以跟踪任何函数或被执行的指令以及一些异步事件(如timer)。它的基本工作机制是:用户指定一个探测点,并把一个用户定义的处理函数关联到该探测点,当内核执行到该探测点时,相应的关联函数被执行,然后继续执行正常的代码路径。kprobe实现了原创 2016-04-11 21:10:57 · 3244 阅读 · 0 评论 -
Linux 下系统调用的三种方法
系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口。当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系统调用函数。下面介绍Linux 下三种发生系统调用的方法:通过 glibc 提供的库函数glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库,即运行时库。转载 2016-07-21 17:34:55 · 432 阅读 · 0 评论 -
Linux内核中编写一个模块,实现申请一块内存,需要考虑哪些方面?
1、Linux内核模块 编写模块: 1、module_init(XXX_init); static int __init XXX_init(){...}; 2、module_exit(XXX_exit); static原创 2016-08-21 19:17:12 · 1906 阅读 · 0 评论 -
详解Linux下的自动挂载文件/etc/fstab
一、/etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。 系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。二、挂载的限制 在说明这个文件...原创 2018-08-15 15:15:13 · 6471 阅读 · 0 评论 -
Git 将本地项目上传到 GitHub
、一、本地创建本地文件夹 安装好git之后,现在本地创建一个空文件夹,并且进入该文件夹$ mkdir test //创建文件夹$ cd test //进入当前目录123二、执行git命令 1、通过git init命令让新建的文件夹成为git可管理的仓库$ git init12 执行完这一步在test文件夹里就会看到.git文件夹,它是用来跟踪和管理版本...转载 2018-05-22 16:59:07 · 3104 阅读 · 0 评论 -
python tarfile模块的基本用法
参考文档:https://docs.python.org/2/library/tarfile.html1.压缩一个文件夹下的所有文件#coding=utf8 import os import tarfile __author__ = 'Administrator' def main(): cwd = os.getcwd()原创 2018-01-09 19:34:19 · 5655 阅读 · 0 评论 -
【已解决】WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSI原创 2017-11-30 09:50:40 · 3350 阅读 · 0 评论 -
Linux Source命令及脚本的执行方式解析
原文出处:http://xiaoqinglang.blog.51cto.com/712624/1882860当修改了/etc/profile文件,想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。source命令:source命令也称为“点命令”,也转载 2017-09-15 15:03:28 · 537 阅读 · 0 评论 -
SSH的基本使用
工作中涉及到维护服务器的操作,为了操作方便及安全考虑,常常需要在服务器端安装SSH服务端,在自己机器上安装SSH客户端来连接到远程服务器上。SSH中的基本操作命令:1、连接到远程主机ssh name@serverip或 ssh serverip -l name提示输入密码后,连接到远程服务器。2、连接到远程主机某指定端口ssh name@serverip -p 端口号原创 2017-08-17 14:19:48 · 513 阅读 · 0 评论 -
sizeof浅析,求结构体大小
运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。 C语言中的构造数据类型有三种:数组、结构体和共用体。 数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素的个转载 2016-08-10 18:07:25 · 455 阅读 · 0 评论 -
linux内核分析-内存管理
转载请注明出处:http://blog.csdn.net/zhijianjingling00/article/details/9335333在内核模块中申请分配内存需要使用内核中的专用API:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages;当然,设备驱动程序也不例外;对于提供了MMU功能的处理器而言,Linux提供了复杂的内存管理系统,使得进程转载 2016-08-21 19:29:28 · 801 阅读 · 0 评论 -
/proc/iomem和/proc/ioports
在proc目录下有iomem和ioports文件,其主要描述了系统的io内存和io端口资源分布。 先来点基础知识点普及:对于外设的访问,最终都是通过读写设备上的寄存器实现的,寄存器不外乎:控制寄存器、状态寄存器和数据寄存器,这些外设寄存器也称为“IO端口”,并且一个外设的寄存器通常是连续编址的。 不同的CPU体系对外设IO端口物理地址的编址方式也不同,分为I转载 2016-04-07 19:28:16 · 3833 阅读 · 0 评论 -
【已解决】配置wget网络代理问题
wget:通过执行man wget可知道,wget是一种Linux下的文件下载方法,今天在使用时遇到了一个网络连接超时问题,后来发现并不是该网站无法访问,而是需要设置代理。使用wget方法:/usr/bin/wget -O test.txt http://www.baidu.com/test.txt设置http代理:方法一:/usr/bin/wget -O test.txt ht原创 2016-03-24 18:20:27 · 5185 阅读 · 0 评论 -
Linux下/proc目录简介
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文转载 2015-12-16 17:21:53 · 638 阅读 · 0 评论 -
【已解决】Linux下出现Segmentation Fault(core dump)错误
今天被这个问题搞了半个小时,后来通过添加printf(...)语句的方法找到了错误原因,是因为在程序中错误的输出一个为空的字符串导致。。。博客地址:http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation-fault-in-linux.html1. 段错误是什么一句话来说,段错误是指访问的内存超出转载 2015-11-25 12:19:11 · 91933 阅读 · 2 评论 -
自定义Linux 内核驱动模块的编译
将自定义驱动模块编译进Linux内核的简单四步骤。原创 2015-11-24 19:38:07 · 1716 阅读 · 0 评论 -
编译Linux内核驱动模块时出现warning错误:define but not used
今天在编译内核驱动模块的时候,在自定义的设备驱动文件中,出现一个warning,编译器视为错误并退出编译。尝试方法一:在MakeFile中添加:DEF_CFLAGS +=-w尝试方法二:在stackoverflow上看到类似的问题,原文链接如下:http://stackoverflow.com/que原创 2015-10-31 15:25:56 · 6837 阅读 · 0 评论 -
【已解决】Ubuntu输入密码后无法登陆闪屏问题
今天使用VNC连接虚拟机后,便出现了一个问题:所有宿主机上的应用程序都无法正常使用,考虑到电脑上同时运行了宿主机和虚拟机,占用了很多的内存,于是决定重启电脑,以释放内存空间。刚才的问题虽然解决了,但却遇到了一个从来没遇到的问题,输入密码登录管理员用户时,屏幕闪黑屏之后重新回到输入密码界面后来才发现是authority权限问题。【解决方法】: 1、开机后在登录界面输入A原创 2015-10-30 18:39:49 · 4919 阅读 · 1 评论 -
ubuntu12.04LTS系统升级到ubuntu14.04LTS后无法正常启动问题
问题描述:ubuntu12.04LTS系统升级到ubuntu14.04LTS后,重启系统出现黑屏并提示如下:mount: mounting /dev/loop0 on /root/ failed: No such file or directorymount: mounting /dev on /root/dev failed: No such file or directorym原创 2015-10-26 14:02:02 · 2321 阅读 · 0 评论 -
【已解决】VMWare运行虚拟机出现内部错误
因为想要自制一份ubuntu系统镜像,担心因为自己的错误操作而破坏了原系统,所以打算在VMware下创建ubuntu虚拟机,并在虚拟机内执行拷贝。(这是一个很好的办法,也是虚拟机存在的意义吧) 第一天晚上创建好虚拟机后,便关机了。今天早上再打开VMWare,开启虚拟机,却不停的提示内部错误。开始以为是虚拟机的原因,于是删除了原虚拟机,然并卵。后来在网上扒了下帖子发现原来只需要以管理员原创 2015-10-30 09:49:07 · 2076 阅读 · 0 评论 -
Ubuntu下桌面死机怎么办?--不需要重启的办法
ubuntu下桌面死机不需要重启的办法。原创 2015-10-18 15:42:55 · 8517 阅读 · 0 评论 -
Linux下使用gdb进行单步调试(一)
转自:http://blog.csdn.net/cnctloveyu/article/details/4266688 http://hi.baidu.com/hust_chen/blog/item/8ff7811135b56b06213f2ef7.htmlGDB 概述 ————GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜欢那种图形界转载 2015-12-01 17:00:32 · 1919 阅读 · 0 评论 -
Linux下使用gdb进行单步调试(三)
转自:http://blog.csdn.net/cnctloveyu/article/details/4266702 http://hi.baidu.com/hust_chen/blog/item/64f3ad458b690b85b2b7dcf0.html四、源代码的内存你可以使用 info line 命令来查看源代码在内存中的地址。 info line 后面可以跟转载 2015-12-01 17:07:33 · 635 阅读 · 0 评论 -
github常见操作和常见错误!错误提示:fatal: remote origin already exists.
如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote origin already exists. 解决办法如下: 1、先输入$ git remote rm origin 2、再输入$ git r转载 2016-03-23 13:23:18 · 675 阅读 · 0 评论 -
linux 下使用gdb调试总结
之前有总结过windbg调试,是针对windows开发而言,现在项目涉及Linux平台,为了更好的查看到内核函数的调用、系统调用以及寄存器存放内容,特意借助gdb进行linux下的代码调试。使用起来也是得心应手。1、首先编写一个简单的C程序test.c。2、在命令行编译该程序:$ gcc -g -o test test.c。可以发现这里有一个不同之处就是添加了-g参数,该参数将C程序编译成原创 2016-03-10 14:33:02 · 521 阅读 · 0 评论 -
基本的Git使用总结
第一次使用Git,才发现Git如此的强大。就像当初喜欢上Linux一样,Git作为Linux发布的分布式文件管理平台,同样受人喜欢。真正的使用Git是在项目实践中,需要位源码打补丁,于是用到了git-am指令。git-am可以一次添加多个补丁文件。有了git-am自然会想到补丁的生成:git format-patch,用来生成上一个提交节点至今所有的内容作为补丁。另外项目开发过程中还会遇到很多原创 2016-03-10 14:00:19 · 539 阅读 · 0 评论 -
Git常用命令
查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区转载 2016-03-03 13:09:14 · 417 阅读 · 0 评论 -
ldconfig命令
来自: http://man.linuxde.net/ldconfigldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态转载 2016-01-28 10:42:26 · 861 阅读 · 0 评论 -
【已解决】Ubuntu下git clone 无法连接问题
推荐一篇很好的博客,也是通过这篇博客解决了问题:http://www.cnblogs.com/zhcncn/p/3681209.html当使用git clone命令下载git协议的URL时,会出现如下错误:fata: ubable to connect to github.com查看了网上很多资料,发现这是由于防火墙导致的,Git协议要求防火墙开放9418端口,而企业级防火墙一般不允许原创 2016-01-27 16:45:17 · 11818 阅读 · 0 评论 -
【转自论坛】系统API中如何实现hotpatching。。。
原帖链接:http://bbs.csdn.net/topics/390940473?page=1#post-400726264问题的来源于调试若干个系统的API函数,发现所有的系统API函数的开始出的汇编代码都会有如下的这个样子76754A86 nop // 都会出现76754A87 nop转载 2016-01-05 14:08:10 · 821 阅读 · 1 评论 -
Linux下使用gdb进行单步调试(二)
转自:http://blog.csdn.net/cnctloveyu/article/details/4266701 http://hi.baidu.com/hust_chen/blog/item/4bb7a5009b543c011d9583f0.html一、设置断点( BreakPoint ) 我们用 break 命令来设置断点。正面转载 2015-12-01 17:04:51 · 1396 阅读 · 0 评论 -
ubuntu16.04安装、配置etcd
安装$ curl -L https://github.com/coreos/etcd/releases/download/v2.3.0-alpha.1/etcd-v2.3.0-alpha.1-linux-amd64.tar.gz -o etcd-v2.3.0-alpha.1-linux-amd64.tar.gz$ tar xzvf etcd-v2.3.0-alpha.1-linux-amd...原创 2018-10-12 10:45:48 · 2385 阅读 · 6 评论