首页
关于
友情链接
文章归档
Search
1
centos 32位 64位 下挂vagex一键包代码
719 阅读
2
wordpress转typecho方法
615 阅读
3
一个自制的virto精简版kvm qemu win2003模板 最低64M内存可用
605 阅读
4
PHP 安装
540 阅读
5
暴雨 车被泡了~
481 阅读
默认分类
vps综合利用
登录
/
注册
Search
标签搜索
Uncategorized
安装
mysql
utf-8
网站
google
linux
free
免费
黑色
ssl
一键包
优化
40%
press
vagex
32位
64位
debian
domain
御品VPS
累计撰写
501
篇文章
累计收到
1
条评论
首页
栏目
默认分类
vps综合利用
页面
关于
友情链接
文章归档
搜索到
1
篇与
uml;user
的结果
2017-04-01
user mode linux(UML)试用
一、主要资料http://uml.devloop.org.uk/http://uml.devloop.org.uk/howto.html百度二、起因想学习Linux内核网络,通过VMware和KGDB来调试,机器受不了,编译也慢。初步弄完UML之后,发现采用UML调试和学习还是比较快的。三、环境一台上互联网的机器,好几年前的PC,window7操作系统,装VMWorkStation 10。采用PPoe上网,IP地址:192.168.0.101,路由器192.168.0.1。四、安装REHL6.4-i386虚拟机安装,过程简单。装好后,不知为何不能上网,把网卡改成桥模式,自己配了个IP地址: 192.168.0.200,加了个默认网关,手工写了个DNS(查看windows 机器的:ipconfig /all):ifconfig eth0 192.168.0.200 route add default gw 192.168.0.1手工编辑 /etc/resolv.conf添加DNS。vi/etc/resolv.conf 内容如下:nameserver 221.228.255.1nameserver 218.2.135.1ping www.sohu.com,能通。五、编译进入REHL6.4;下载4.1.1源码,解压;将最顶层 Makefile 文件中的优化选项进行修改 -O2 改成 -O1;make ARCH=um defconfigmake ARCH=um menuconfigmake ARCH=um make ARCH=modulesmake ARCH=moduels_install最后一步会将模块拷贝到/lib/modules目录下,后面要用。六、下载文件系统并更新http://fs.devloop.org.uk/我下载的是 CentOS 6.x 32bit;解压得到 CentOS6.x-x86-root_fs,工作目录就是linux源码所在目录;mkdir rammount CentOS6.x-x86-root_fs ram/ -o loopcd ram/lib/modules/cp /lib/modules/4.1.1 . -rfcd 工作目录umount ram注意:如果不将模块考入,启动UML会有烦人的打印显示。七、启动./linux ubda=CentOS6.x-x86-root_fs退出:关机即可,输入: init 0八、与REHL6.4网络互通下面步骤在主机REHL6.4上执行:iptalbels -F (免得误伤,ping的时候不通)tunctl -t tap1(安装虚拟网卡)ifconfig tap1 192.168.3.1(配置虚拟网卡地址)vi ~/dhcp.conf:default-lease-time 6000;max-lease-time 72000;option domain-name-servers 192.168.3.1;option routers 192.168.3.1;server-name "192.168.3.1";ddns-update-style none;subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.100 192.168.3.254;}dhcpd -cf ~/dhcp.conf tap1(开启DHCP服务)执行编译出来的linxu:./linux ubda=CentOS6.x-x86-root_fs eth0=tuntap,tap1,fe:f0:00:00:00:01,192.168.3.254 con0=fd:0,fd:1UML进入后ping 192.168.3.1 能通;注:1.tunctl/dhcpd命令如未安装,rpm安装一下,就在REHL6.4光盘里面;2.tap1 ip地址不要搞成192.168.0.X网段了;3.也可以不采用DHCP,进入客户机后如能看到eth0,手工配置也可以;4.不采用DHCP启动网卡时很慢,并且有可能进去后eth0没有。九、上外网客户机UML:echo 1 > /proc/sys/net/ipv4/ip_forwardroute add default gw 192.168.3.1vi/etc/resolv.conf 添加内容如下,与windows相同nameserver 221.228.255.1nameserver 218.2.135.1在主机REHL6.4上执行:iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADEiptables -I FORWARD -i tap1 -j ACCEPTiptables -I FORWARD -o tap1 -j ACCEPT客户机UML:ping www.sohu.com能通。十、GDB采用让客户机直接运行,主机gdb attach linux,可以随时添加断点。如果直接在gdb中运行linux,启动后都不知道如何退出操作系统进入gdb....。在主机上查看进程号 ps -aef | grep linuxroot 21029 2774 14 06:43 pts/0 00:00:20 ./linux ubda=CentOS6.x-x86-root_fs eth0=tuntap,tap1,fe:f0:00:00:00:01,192.168.3.254 con0=fd:0,fd:1root 21034 21029 0 06:43 pts/0 00:00:00 ./linux ubda=CentOS6.x-x86-root_fs eth0=tuntap,tap1,fe:f0:00:00:00:01,192.168.3.254 con0=fd:0,fd:1root 21035 21029 1 06:43 pts/0 00:00:02 ./linux ubda=CentOS6.x-x86-root_fs eth0=tuntap,tap1,fe:f0:00:00:00:01,192.168.3.254 con0=fd:0,fd:1root 21036 21029 0 06:43 pts/0 00:00:00 ./linux ubda=CentOS6.x-x86-root_fs eth0=tuntap,tap1,fe:f0:00:00:00:01,192.168.3.254 con0=fd:0,fd:1root 21037 21029 0 06:43 pts/0 00:00:00 [linux]root 21167 21029 0 06:43 pts/0 00:00:00 [linux]root 21316 21029 0 06:43 pts/0 00:00:00 [linux]root 21632 21029 0 06:44 pts/0 00:00:00 [linux]root 21733 21029 0 06:44 pts/0 00:00:00 [linux]root 21758 21029 0 06:44 pts/0 00:00:00 [linux]root 21765 21029 0 06:44 pts/0 00:00:00 [linux]gdb子进程号:21029 gdb ./linuxattach 21029 c客户机正常运行......gdb窗口按CTRL+C,进入gdb:gdb:^CProgram received signal SIGINT, Interrupt.0x002c3424 in __kernel_vsyscall ()(gdb) b uml_net_start_xmitBreakpoint 2 at 0x80648c3: file arch/um/drivers/net_kern.c, line 212.(gdb) cContinuing.Detaching after fork from child process 21872.Detaching after fork from child process 21876.客户机继续运行,客户机执行: ping 221.228.255.1,gdb命令窗口:Breakpoint 2, uml_net_start_xmit (skb=0xa32d6e0, dev=0xa1ee800) at arch/um/drivers/net_kern.c:212212 struct uml_net_private *lp = netdev_priv(dev);(gdb) n216 netif_stop_queue(dev);(gdb) p skb$1 = (struct sk_buff *) 0xa32d6e0(gdb) p *skb$2 = {{{next = 0x0, prev = 0xa32d6e0, {tstamp = {tv64 = 0}, skb_mstamp = {{v64 = 0, {stamp_us = 0, stamp_jiffies = 0}}}}}, rbnode = {__rb_parent_color = 0, rb_right = 0xa32d6e0, rb_left = 0x0}}, sk = 0xa0ec920, dev = 0xa1ee800, cb = "b", '\000' <repeats 46 times>, _skb_refdst = 0, destructor = 0x8218f15 <sock_wfree>, sp = 0x0, len = 98, data_len = 0, mac_len = 0, hdr_len = 0, queue_mapping = 0, cloned = 1 '\001', nohdr = 0 '\000', fclone = 0 '\000', peeked = 0 '\000', head_frag = 0 '\000', xmit_more = 0 '\000', headers_start = 0xa32d6e0, __pkt_type_offset = 0xa32d6e0 "", pkt_type = 0 '\000', pfmemalloc = 0 '\000', ignore_df = 1 '\001', nfctinfo = 0 '\000', nf_trace = 0 '\000', ip_summed = 0 '\000', ooo_okay = 0 '\000', l4_hash = 0 '\000', sw_hash = 0 '\000', wifi_acked_valid = 0 '\000', wifi_acked = 0 '\000', no_fcs = 0 '\000', encapsulation = 0 '\000', encap_hdr_csum = 0 '\000', csum_valid = 0 '\000', csum_complete_sw = 0 '\000', csum_level = 0 '\000', csum_bad = 0 '\000', ipvs_property = 0 '\000', inner_protocol_type = 0 '\000', remcsum_offload = 0 '\000', {csum = 3827571675, {csum_start = 7131, csum_offset = 58404}}, priority = 0, skb_iif = 0, hash = 0, vlan_proto = 0, vlan_tci = 0, {napi_id = 0, sender_cpu = 0}, {mark = 0, reserved_tailroom = 0}, {inner_protocol = 0, inner_ipproto = 0 '\000'}, inner_transport_header = 0, inner_network_header = 0, inner_mac_header = 0, protocol = 8, transport_header = 36, network_header = 16, mac_header = 2, headers_end = 0xa32d6e0, tail = 0xa129464 "", end = 0xa129540 "", head = 0xa129400 "", data = 0xa129402 "~蹠OB\004\376", <incomplete sequence \360>, truesize = 704, users = {counter = 1}}(gdb) where#0 uml_net_start_xmit (skb=0xa32d6e0, dev=0xa1ee800) at arch/um/drivers/net_kern.c:216#1 0x0822c218 in __netdev_start_xmit (first=0xa32d6e0, dev=0xa1ee800, txq=0xa176c00, ret=0x8ea7a80) at include/linux/netdevice.h:3610#2 netdev_start_xmit (first=0xa32d6e0, dev=0xa1ee800, txq=0xa176c00, ret=0x8ea7a80) at include/linux/netdevice.h:3619#3 xmit_one (first=0xa32d6e0, dev=0xa1ee800, txq=0xa176c00, ret=0x8ea7a80) at net/core/dev.c:2654#4 dev_hard_start_xmit (first=0xa32d6e0, dev=0xa1ee800, txq=0xa176c00, ret=0x8ea7a80) at net/core/dev.c:2670#5 0x08243b03 in sch_direct_xmit (skb=0xa32d6e0, q=0xa170c00, dev=0xa1ee800, txq=0xa176c00, root_lock=0xa170c68, validate=true) at net/sched/sch_generic.c:165#6 0x0822c499 in __dev_xmit_skb (skb=0xa32d6e0, accel_priv=<value optimized out>) at net/core/dev.c:2840#7 __dev_queue_xmit (skb=0xa32d6e0, accel_priv=<value optimized out>) at net/core/dev.c:2965#8 0x0822c64f in dev_queue_xmit_sk (sk=0xa0ec920, skb=0xa32d6e0) at net/core/dev.c:3031#9 0x08236984 in dev_queue_xmit (neigh=0xa170100, skb=0xa32d6e0) at include/linux/netdevice.h:2178#10 neigh_resolve_output (neigh=0xa170100, skb=0xa32d6e0) at net/core/neighbour.c:1291#11 0x08253cce in dst_neigh_output (sk=<value optimized out>, skb=0xa32d6e0) at include/net/dst.h:421#12 ip_finish_output2 (sk=<value optimized out>, skb=0xa32d6e0) at net/ipv4/ip_output.c:206#13 ip_finish_output (sk=<value optimized out>, skb=0xa32d6e0) at net/ipv4/ip_output.c:276#14 0x08253d8c in ip_output (sk=0xa0ec920, skb=0xa32d6e0) at net/ipv4/ip_output.c:348#15 0x082509e8 in dst_output_sk (sk=0xa0ec920, skb=0xa32d6e0) at include/net/dst.h:458#16 ip_local_out_sk (sk=0xa0ec920, skb=0xa32d6e0) at net/ipv4/ip_output.c:115#17 0x0825143b in ip_local_out (net=0x83589c0, skb=0xa32d6e0) at include/net/ip.h:119#18 ip_send_skb (net=0x83589c0, skb=0xa32d6e0) at net/ipv4/ip_output.c:1419#19 0x08251efd in ip_push_pending_frames (sk=0xa0ec920, fl4=0x8ea7c6c) at net/ipv4/ip_output.c:1439#20 0x0827352a in raw_sendmsg (sk=0xa0ec920, msg=0x8ea7e08, len=64) at net/ipv4/raw.c:641#21 0x0828043a in inet_sendmsg (sock=0x9c8fb80, msg=0x8ea7e08, size=64) at net/ipv4/af_inet.c:730#22 0x08214313 in sock_sendmsg_nosec (sock=0x9c8fb80, msg=0x8ea7e08) at net/socket.c:613#23 sock_sendmsg (sock=0x9c8fb80, msg=0x8ea7e08) at net/socket.c:623#24 0x082158ed in ___sys_sendmsg (sock=<value optimized out>, msg=<value optimized out>, msg_sys=0x8ea7e08, flags=0, used_address=0x0) at net/socket.c:1955#25 0x08215aae in __sys_sendmsg (fd=3, msg=0x80009a34, flags=0) at net/socket.c:1989#26 0x08215aea in SYSC_sendmsg (fd=3, msg=-2147444172, flags=0) at net/socket.c:2000#27 SyS_sendmsg (fd=3, msg=-2147444172, flags=0) at net/socket.c:1996#28 0x082148f5 in SYSC_socketcall (call=16, args=-1077791504) at net/socket.c:2403#29 SyS_socketcall (call=16, args=-1077791504) at net/socket.c:2321#30 0x0805f561 in handle_syscall (r=0xa1ac3b0) at arch/um/kernel/skas/syscall.c:35#31 0x08070c5b in handle_trap (regs=0xa1ac3b0) at arch/um/os-Linux/skas/process.c:174#32 userspace (regs=0xa1ac3b0) at arch/um/os-Linux/skas/process.c:399#33 0x0805cc80 in fork_handler () at arch/um/kernel/process.c:149#34 0x000b43c5 in ?? () 利用此法可以在 openvz vps 中开一个小小鸡,然后安装BBR加速 ,速锐等 玩意。 可参见另一文 转 OpenVZ的UML+BBR+SSR加速一键包http://www.ypvps.com/?post=84
2017年04月01日
166 阅读
0 评论
0 点赞