-
QEMU 中串口实现的代码分析
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.orgQEMU 中的串口实现分为两个部分, 一个是 QEMU 为 Guest 模拟的 串口设备,称为前段, 是 Guest 操作的部分, 一个是 QEMU 怎么通知该串口与外部通信,也就是 QEMU 怎么把串口的输入输出定向到其它设备, 称为后端.本文档讨论 QEMU 重定向 串口输入输出到 stdio 的情况, 分析串口的模拟实现,怎么和 stdio 通信, 其它情况类似.注意, 此时的命令...…
-
如何使用 QEMU 中的虚拟串口
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.orgQEMU 具有模拟 串口 和并口 的能力, 在 QEMU的命令行接口, 提供了 -serial 参数供用户设置把虚拟的串口重定向到哪里.本文档主要介绍如何使用这个虚拟串口, 接下来会从代码方面描述 QEMU 如何模拟一个串口.不使用串口$ qemu-kvm ArchLinux.img -serial none不管是 Linxu 还是 Window, 在 QEMU 里面禁用了串口, 但是用...…
-
串口学习笔记
串行接口(Serial port) 又称”串口”, 主要用于串行式逐位数据传输.串口曾经被广泛用于连接计算机和终端设备和各种外部设备. 常说的串口连接通常特指那些与 RS-232 标准兼容的硬件或者调制解调器的接口.某些计算机使用一个叫做 UART 的集成电路来作为串口设备.这个集成电路可以进行 字符和异步串行通讯序列之间的转换,并且可以自动地处理数据的时序. 而某些低端 设备则会让 CPU直接通过输出针来传送数据. 这种技术叫做 bit-banging. 串口, RS-232 和UART...…
-
在主机和虚机之间共享文件的N中方法
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org以下是我常用的在主机的虚拟机间通信(共享文件)的常用方法(未完待续):通过内建的 Samba 服务器很少有人知道 QEMU 内置了一个 Samba server, 按如下方式启动 QEMU, 即可启用它.$ qemu-kvm -net nic -net user,smb=shared_directory ~/Image/XP.img或者在旧的 QEMU 中版本中.(未来可能被失效)$ q...…
-
USB Redirection
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org更多的信息请参考http://hansdegoede.livejournal.com/安装必要的包在我的 Gentoo 上:$ emerge libusbx usbredir spice-protocol spicelibusbx 是 libusb-1.0 的一个fork, 由于将 USB Redirection merge 到libusb-1.0 非常缓慢(貌似两个开发者有些冲突), ...…
-
QEMU Monitor
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org转发到其他设备有的时候 QEMU 运行在远端, 但是此时需要做一些信息监控, 控制 VM 等的操作,需要用到 QEMU 的 monitor 通道(libvirt 就是基于这种方式控制 VM 的),这时候就需要把 Monitor 转发到其他设备(socket, telnet 等), 我们通过本地的 TCP client 来操作这个通道.转发到一个 TCP Socket以下指令把 Monit...…
-
内存管理
#+STYLE: <link rel="stylesheet" href="../css/zenburn-emacs.css" type="text/css" />物理内存的管理Kernel 获取物理内存布局参考 Detecting Memory(x86), BIOS一般提供了两个指令获取内存布局 INT 0x12 该指令返回小于 1M 的可用内存 INT EAX=0XE820 该指令返回一个列表, 每个列表包括: 基地址, 长度, 类型BIOS 返回的内存类型: Typ...…
-
QEMU Manual V0.0.1
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.orgInstallConfigureBoot ParamentersMisc-hda[b|c|d] file使用 file 作为磁盘 0, 1, 2, 3-cdrom file使用 file 作为 CD 映像, 不能和 -hdc file 同时使用, 如果 file 为/dev/cdrom 可以直接使用物理机的 CD-ROM.-boot [a|c|d|n]设置启动顺序 floppy (a) ...…
-
GObject
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org创建一个类定义一个类/* file name: pm-dlist.h*/#ifndef PM_DLIST_H#define PM_DLIST_H#include <glib-object.h>#define PM_TYPE_DLIST (pm_dlist_get_type ())typedef struct _PMDListNode PMDListNode;struct _...…
-
Practical Common Lisp 学习笔记
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org绪言: 为什么是 Lisp为什么是 LispCommon Lisp 的描述: “可编程的编程语言”, 意味着使用 CL 的时候,不会出现语言里 刚好缺乏某些令程序更容易编写的特性.Lisp 的诞生CL 是由 McCarthy(2012驾鹤西去)发明的 Lisp 的现代版本.曾经 Lisp 居然是系统编程语言, 主要在 Lisp 机上.所以 Lisp 现在的情况是: 计算机领域的...…
-
建立 Lisp 开发环境
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.orgSlime 是 Emacs 下的一个写Common Lisp 的一个插件Download如果是从源代码安装的话, 需要从 Slime 的官网上下载安装包, 然后进行安装.Install在 Gentoo 上安装很简单:# emerge -av slimeConfiguration(setq inferior-lisp-program "/usr/bin/sbcl")(add-to-list...…
-
qemu-nbd
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org访问 QEMU IMG 的工具, 利用 kernel 的 nbd 模块modprobe nbdqemu-nbd -c /dev/nbd0 IMGFile.imgmount /dev/nbd0p1 /mnt …
-
Emacs Gnus
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org设置设置服务器(setq gnus-select-method what-you-want-to)例如 gmail 的设置:(setq gnus-select-method '(nnimap "imap.gmail.com" (nnimap-address "imap.gmail.com") (nnimap-server...…
-
qemu-io
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org介绍使用~/Images $ qemu-img create -f qcow2 test.img 1GFormatting 'test.img', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 ~/Images $ qemu-ioqemu-io> open test.imgqemu-io> length...…
-
NetBSD 链表使用
说明很好的一套链表库, 以 list 的举例说明. le_prev 二级指针, 上一个元素的 next 成员的地址. 此处需要注意的是le_prev 是上一个元素的 next 成员的地址, *le_prev 是上一个成员的值, 所以可以通过操作 le_prev 来操作上一个节点 的 next成员. TODO/* * List definitions. */#define LIST_HEAD(name, type) \struct name { ...…
-
信号量
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.orgsignal 函数#include <stdio.h>#include <signal.h>/** * 使用: # ./test & * # kill -SIGUSR1 pid * # ./test # 然后输入 Ctrl-c * */void signal_handler(int signum){ if (signum == ...…
-
QEMU 网络配置
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org网络配置VDE 配置?内核配置:Device drivers ---> Network device support ---> [M] Universal TUN/TAP device driver supportNetworking support ---> Networking options ---> Network packet...…
-
Gentoo 搭建 LaTex 编辑环境
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org记录一下过程:使用的是 ctex 的方案, 这样我不用再为中文和各种字体头疼了, 直接使用系统中的字体. 由于系统是 Gentoo, 所以我装 zhspacing 这个包, 把依赖也一起解决了.$ sudo emerge texlive #不知道为什么安装 zhspacing 没有安装这个包$ sudo emerge zhspacing$ sudo emerge dv...…
-
在 QEMU 上使用 KGDB 调试内核
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org最近在研究 Linux Kernel, 由于我看问题喜欢直接看本质,所以直接从代码开始看起, 但是 Linux 发展到现在代码何其多, 何其复杂,里面的流程, 逻辑, 甚至各种变量绝对不是 我以前开发的项目能比的,比如说里面全局变量的大量使用, 各种 goto 的使用,所以必须要有一个好的阅读方法和好的阅读手段. 阅读代码的Emacs 和cscope 足以. 但是对于习惯 gdb调试的我...…
-
Balloon
#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.orgIntroduction简单来讲, 就是在划分给 Guest 的内存区域里面, 塞入一个气球, 当气球越大,就表示 虚拟空间现在使用的内存很少, Host 可以回收利用气球里面的内存,当气球变小, 就表示 客户机需要的内存变多.在 Balloon Driver 的使用中有两个关键的参数, maxMemory 和currentMemory : maxMemory Guest 启动...…