/* * Kernel-based Virtual Machine driver for Linux * * This header defines architecture specific interfaces, x86 version * * This work is licensed under the terms of the GNU GPL, version 2.  See * the COPYING file in the top-level directory. * */ #if…
#ifndef __KVM_HOST_H #define __KVM_HOST_H /* * This work is licensed under the terms of the GNU GPL, version 2.  See * the COPYING file in the top-level directory. */ #include <linux/types.h> #include <linux/hardirq.h> #include <linux/list.…
------------[ cut here ]------------WARNING: CPU: 0 PID: 1 at ./arch/x86/include/asm/fpu/internal.h:373 0xffffffffb3022ed7Modules linked in:CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.12.5-1101 #1Hardware name: VMware, Inc. VMware Virtu…
首先在自己的程序中#include<errno.h> 添加打印errno的语句 printf("errno is: %d\n",errno); 根据errno的值查错. errno的不同值的含义: 以下来自linux 2.4.20-18的内核代码中的/usr如何查看errno 错误代码 /include/asm/errno.h #ifndef _I386_ERRNO_H #define _I386_ERRNO_H #define EPERM 1 /* Operation n…
#ifndef __LINUX_KVM_H #define __LINUX_KVM_H /* * Userspace interface for /dev/kvm - kernel based virtual machine * * Note: you must update KVM_API_VERSION if you change this interface. */ #include <linux/types.h> #include <linux/compiler.h> #i…
include/asm/io.h #define outb(value,port) \ __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) //宏定义outb用汇编实现了在端口地址port处写入值value //使用的寄存器是al,一个byte长度,而端口port使用的是2byte长度地址来标记的寄存器,注意这里寄存器的使用 #define inb(port) ({ \ unsigned char…
自己通过看代码总结的内核中包含kvm的文件夹: (1)Linux-3.17.4\Documentation\virtual\kvm\ (2)Linux-3.17.4\include\ (3)Linux-3.17.4\drivers\s390\kvm\ (4)Linux-3.17.4\virt\kvm\ (5)Linux-3.17.4\arch\*\kvm\   (*号代表以下处理器体系架构:x86.tile.s390.powerpc.mips.ia64.arm64.arm)  先研究x86体系架…
/usr/include/asm/errno.h #define EPERM 1 /* Operation not permitted */操作不允许 #define ENOENT 2 /* No such file or directory */文件/路径不存在 #define ESRCH 3 /* No such process */进程不存在 #define EINTR 4 /* Interrupted system call */中断的系统调用 #define EIO 5 /* I/O…
linux内核奇遇记之md源代码解读之四 转载请注明出处:http://blog.csdn.net/liumangxiong 运行阵列意味着阵列经历从无到有,建立了作为一个raid应有的属性(如同步重建),并为随后的读写做好的铺垫.那么运行阵列的时候到底做了哪些事情,让原来的磁盘像变形金刚一样组成一个新的巨无霸.现在就来看阵列运行处理流程: 5158 static int do_md_run(struct mddev *mddev) 5159 { 5160 int err; 5161 5162…
为了更加深入的学习虚拟化,因此我必须把KVM源代码搞清楚,这是一个必须要挖的坑.我会把自己的一些阅读的代码贴上来,可能会有理解不对的地方,希望和大家一起交流,请多提意见,以便于纠正错误.所用的内核版本为3.17.4.…
一.安装windows7虚拟机 linux mint 17.3是一个不错的桌面发行版本,我下载了 linux mint 17.3 for xfce 桌面版本,运行速度没得说,而且安装设置都挺简单,非常适合长期代替windows使用,现在长期工作于此系统中,也试验了许多新技术,比如linux下的kvm虚拟机,kvm已经属于linux内核的一部分了,在linux mint 17.3中安装好后,就已经有了,只不过要使用时还得安装与之配套的虚拟机管理软件qemu和图形管理软件virt-manager,在…
专家解读Linux操作系统内核中的GCC特性   Linux内核使用GNU Compiler Collection (GCC)套件的几个特殊功能.这些功能包括提供快捷方式和简化以及向编译器提供优化提示等等.了解这些特殊的 GCC 特性,学习如何在 Linux 内核中使用它们. GCC和Linux是出色的组合.尽管它们是独立的软件,但是 Linux 完全依靠 GCC 在新的体系结构上运行.Linux 还利用 GCC 中的特性(称为扩展)实现更多功能和优化.本文讨论一些重要的扩展,讲解如何在 Lin…
简单介绍 近期一直在看Apache OFbiz entity engine的源代码.为了能够更透彻得理解,也由于之前没有看人别人写过分析它的文章,所以决定自己来写一篇. 首先,我提出一个问题,假设你有兴趣能够想一下它的答案: JDBC真的给数据訪问提供了足够的抽象,以至于你能够在多个支持jdbc訪问的数据库之间随意切换而全然不须要操心你的数据訪问代码吗? 我以前在微博上有过关于该问题的思考:…
1 Win7下安装Mint双系统 Linux Mint支持直接从Win7硬盘引导安装,非常方便,不用制作U盘引导,更不用刻盘安装了.Mint有Cinnamon和Mate两种桌面,听说Mate更加简洁节省资源,所以就选择了Linux Mint 17 Mate版.安装过程主要参考百度经验. 1.1 清理磁盘空间 为Mint清理出空间.例如我的机器之前有C.D.E.F四个盘符,备份好E和F盘中的重要数据后,右键"我的电脑"=>"管理"=>"磁盘管理&…
比起Windows,怎样解读Linux的文件系统与目录结构? Linux 和Windows的文件系统有些不同,在学习使用 Linux 之前,若能够了解这些不同,会有助于后续学习. 本文先对Windows和 Linux 上面文件系统原理.组织概念进行区分,并给出例子.列举两者的优缺点以具体说明,最后较为详细地介绍了 Linux 系统的目录结构. Windows 和 Linux 文件系统 下面将介绍启动Windows和 Linux 后,在文件系统的角度上,它们分别是怎样看待自己世界的. 访问原理 在…
当我第一次阅读了这个文件的源代码的时候.我笑了,忽然想起前几周阿里电话二面的时候,问到了自己定义内存管理函数并处理8字节对齐问题. 当时无言以对,在面试官无数次的提示下才答了出来,结果显而易见,挂掉了二面.而这份源代码中函数zmalloc()和zfree()的设计思路和实现原理,正是面试官想要的答案. 源代码结构 zmalloc.c文件的内容例如以下: 主要函数 zmalloc() zfree() zcalloc() zrelloc() zstrdup() 字长与字节对齐         CPU…
kvm上的Linux虚拟机使用virtio磁盘 系统:centos6.6  64位 网上的文章比较少,怎麽将Linux虚拟机的磁盘改为使用virtio磁盘 因为centos6或以上系统已经包含了virtio驱动,所以不需要再执行下面语句加载内核模块 modprobe virtio virtio_pci virtio_blk virtio_net mkinitrd --with virtio --with virtio_pci --with virtio_blk --with virtio_net…
用过蛮多的linux系统 linux mint是我比较喜欢和常用的一个系统,装的是linux mint xfce 64位版本,在这里记录使用中遇到的一些问题及解决的方法,备忘,方便以后查看. 1.首先装完之后要做的第一件事就是更换软件源 mint更换软件源相对来说还是比较傲简单的,有提供图形界面程序来更换. 我更换的软件源是 主要:台湾的NHPC源 基础源:国内的阿里云源 2.更新系统,让系统保持最新 可以在终端输入命令来更新 $ sudo apt-get update $ sudo apt-g…
转载:http://www.pppei.net/blog/post/690 亲测可行! 我的系统是linux mint 17.1 64位,所用wifi位小米WIFI. 以下是原文: 此方法在linuxmint 17.1下测试通过.理论上可支持小米wifi.360wifi. 具体操作如下: 1.下载安装MT7601U驱动MT7601U驱动提取密码:2r8h这里感谢下 http://bbs.xiaomi.cn/thread-10160085-1-1.html 帖子的作者. 将下载的驱动解压,进入解压…
下载Linux Mint 17镜像,放到C盘根目录:解压出mint.iso文件中casper目录下的vmliunz和initrd.lz两个文件,同样放在C盘的根目录里. 在Win7上安装EasyBCD,打开EasyBCD在左边的标签里依次点击“Add New Entry”-“NeoGrub”-”Install”-“Configure”,如下图: 点击configure之后,在弹出的编辑器里删除所有内容,输入如下内容: title Install LinuxMintroot (hd0,1)kern…
虚拟化是走向云的第一步,同理,开源虚拟化是走向开源云的第一步.云计算所提供的产品与方案都是围绕着IT资源的新交付与消费模式.云的形式多样,私有云.公有云与混合云,无论哪种云都具有三个关键特征:虚拟化.标准化与自动化.那么,KVM是什么?它能否满足企业对云的需求? KVM是什么? KVM(Kernel-based Virtual Machine)源自一家公司叫Qumranet.2008年9月,该公司被红帽收购后大力发展KVM的社区,目的在于增强底层架构功能,简化虚拟机管理.KVM是一个开源的系统虚…
1. 怎样理解"json" 首先应该意识到,json是一种数据转换格式,既然是个"格式",就是个抽象的东西.它不是js对象,也不是字符串,它仅仅是一种格式,一种规定而已. 这个格式规定了如何将js对象转换成字符串.以及转换成如何的字符串--序列化 -- JSON.stringify 接口: 以及怎样将一个有效字符串转换成js对象--反序列化-- JSON.parse 接口: 2. 关于作者 json作者是 道格拉斯.克劳福德 ,是一位js大牛,写过一本<jav…
目录 目录 1 1. 前言 1 2. PAM 2 3. pam_limits 2 4. limits.conf的由来 3 5. 模块入口函数 4 6. 解析limits.conf 6 7. 生效limits.conf 7 8. systemctl和systemd 8 9. 总结 10 附1:资源 11 附2:编译ninja 11 附3:使用meson编译systemd 11 附4:安装Python-3.7.2 12 附5:安装libcap 12 1. 前言 本文不一定适合比较老版本的Linux,…
Linux Mint 17 Qiana Cinnamon Linux Mint 17已经发布,定名为Qiana.Mint是Linux最佳发行版之一,它定位于桌面用户,关注可用性和简洁.它携带了风格迥异的桌面环境,如Mate以及Cinnamon,并基于不同的发行版,如Ubuntu或Debian. 在本文中,我们使用的是Linux Mint 17的cinnamon版本.要获取更多关于Cinnamon版本的信息(包括下载链接),可以访问 -http://linux.cn/article-3260-1.…
转自:https://blog.csdn.net/sctq8888/article/details/7398776 转载自:http://hi.baidu.com/deep_pro/blog/item/5a9d5b9487b23314d31b7079.html 简单解读linux的/proc下的statm.maps.memmap 内存信息文件分析 * cmdline: 启动进程的命令和参数. * cwd: 指向进程当前目录的一个连接. * environ: 进程所有的环境变量. * fd: 进程…
解读Linux命令格式   环境 Linux HA5-139JK 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux   Linux命令很多,但对格式本身解读的文章几乎是空白,都在凭对格式的猜测来写命令,就此在网上搜集此类资料都很少而且很不全面,想找官方的,也没找到.根据自己的理解写一篇出来,希望对初学者有用.   一.命令的一般格式   command [options] [argu…
Git commits历史是如何做到如此清爽的? - 知乎 https://www.zhihu.com/question/61283395/answer/186122300 尤雨溪 前端开发.JavaScript.前端工程师 话题的优秀回答者   多用 rebase --- 我真是服了贵乎了,楼下居然有人能从 commit 风格看出我爱慕虚荣,哈哈哈哈,只能说这葡萄是很甜了 我 rebase 纯粹是因为我不喜欢 git log --graph 的时候一堆 branch 扰乱视线.另外,难道你不知…
SparkContext的初始化 SparkContext是应用启动时创建的Spark上下文对象,是进行Spark应用开发的主要接口,是Spark上层应用与底层实现的中转站(SparkContext负责给executors发送task). SparkContext在初始化过程中,主要涉及一下内容: SparkEnv DAGScheduler TaskScheduler SchedulerBackend SparkUI 生成SparkConf SparkContext的构造函数中最重要的入參是Sp…
概述:Apache Beam WordCount编程实战及源代码解读,并通过intellij IDEA和terminal两种方式调试执行WordCount程序,Apache Beam对大数据的批处理和流处理,提供一套先进的统一的编程模型,并能够执行大数据处理引擎上.完整项目Github源代码 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHJlYW1fYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/…
概述:Spark postgresql jdbc 数据库连接和写入操作源代码解读.具体记录了SparkSQL对数据库的操作,通过java程序.在本地开发和执行.总体为,Spark建立数据库连接,读取数据.将DataFrame数据写入还有一个数据库表中.附带完整项目源代码(完整项目源代码github). 1.首先在postgreSQL中创建一张測试表,并插入数据.(完整项目源代码Github) 1.1. 在postgreSQL中的postgres用户下,创建 products CREATE TAB…