Linux
文章平均质量分 50
dangzy
这个作者很懒,什么都没留下…
展开
-
使用bochs+gbd调试geekos
1、在.bochsrc中添加gdbstub:enabled=1,port=1984,text_base=0,data_base=0,bss_base=02、运行bochs,显示Waiting for gdb connection on port 19843、运行gdb,输入命令symbol-file geekos/kernel.exe加载符号4、gdb中输入target remote原创 2012-07-24 17:11:11 · 688 阅读 · 0 评论 -
iptables
简单地说,就是设定一些规则,对进来和出去的数据包的ip做检查,符合规则的通行,不符合的做响应的处理,要了解这个流程中的三个表:nat表,filter表,mangle表,五条链:INPUT链,OUTPUT链,FORWARD链,PREROUTING链,POSTROUTING链。1)对于进来的包:经过IP校验后,经过第一条链PREROUTING处理,一般是做DNAT;然后经过路由,决定是到本转载 2014-02-05 20:18:25 · 513 阅读 · 0 评论 -
修复grub
没有liveCD和启动U盘时使用,比使用启动U盘简单。转载 2016-09-07 20:04:30 · 496 阅读 · 0 评论 -
putty工具命令行参数
putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]hostExample: putty -ssh -l vagrant -pw vagrant -P 2222 127.0.0.1 -V print version information and exit -pgpfp print PGP key fingerpri转载 2014-01-11 22:41:42 · 1388 阅读 · 0 评论 -
编写linux module
Linux内核模块编程的资料有些纷繁复杂,有的过于简单,有的过于庞杂,我试图用笔记的形式想读者展示怎样来进程Linux模块编程,力图做到简明扼要,这篇文章也是作为本人备忘的资料,所以有些地方过于简略是难免的。本来这篇文章的目的就是让用户知其然,至于所以然还是请参考相应的资料,其实最好的资料莫过于Linux Kernel Source。适用范围:* Linux Kernel >= 2.6.0转载 2013-07-21 22:09:27 · 776 阅读 · 0 评论 -
Linux Mint编译insight笔记
编译的版本是6.8-1,下载地址ftp://sourceware.org/pub/insight/releases/insight-6.8-1a.tar.bz21、切换到解压出的insight目录,输入./configure --disable-werror,如果不输入--disable-werror的话编译器每次遇到warning都当作error处理,停止编译,源代码中有一堆warning,原创 2012-07-25 14:41:50 · 463 阅读 · 0 评论 -
Makefile中用宏定义进行条件编译
在源代码里面如果这样是定义的: #ifdef MACRONAME //可选代码 #endif 那在makefile里面 gcc -D MACRONAME=MACRODEF 或者 gcc -D MACRONAME 这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。 对于GCC编译器,有如下选项: -D macro=string,等价于在头文转载 2013-04-14 14:14:35 · 670 阅读 · 0 评论 -
开启Linux 路由转发功能
如何使用iptables的NAT功能把红帽企业版Linux作为一台路由器使用?方法:提示: 以下方法只适用于红帽企业版Linux 3 以上。1、打开包转发功能:echo "1" > /proc/sys/net/ipv4/ip_forward2、修改/etc/sysctl.conf文件,让包转发功能在系统启动时自动生效:# Controls IP pa转载 2013-04-29 11:27:33 · 804 阅读 · 0 评论 -
linux kernel学习笔记(一)
include/linux/init.hmodule_init\module_exit\__setup1、通过alias可以指定函数的别名。2、同时加载不同的动态库时,即使有相同的函数名也不会引起任何异常,并且可以分别进行调用。include/asm-i386/unistd.hThis file contains the system call numbers.原创 2013-06-10 17:32:26 · 1002 阅读 · 0 评论 -
linux kernel map
转载 2013-06-23 14:28:37 · 1424 阅读 · 0 评论 -
gcc同时使用动态和静态链接
场景是这样的。我在写一个Nginx模块,该模块使用了MySQL的C客户端接口库libmysqlclient,当然mysqlclient还引用了其他的库,比如libm, libz, libcrypto等等。对于使用mysqlclient的代码来说,需要关心的只是mysqlclient引用到的动态库。大部分情况下,不是每台机器都安装有libmysqlclient,所以我想把这个库静态链接到Nginx模转载 2013-06-30 15:14:16 · 464 阅读 · 0 评论 -
Cygwin编译Mplayer笔记
1、安装Cygwin,并增加g++、gcc、make这三个包,默认是没有选择的,gcc和g++我选择的是3.*的版本4.*的版本貌似编译某些其他软件时会有问题。下载地址:http://cygwin.com/setup.exe2、将安装后的Cygwin的bin目录添加到环境变量path中。3、下载Mplayer,编译版本是1.1,链接:http://www.mplayerhq.hu/MPla原创 2012-07-31 11:48:02 · 1118 阅读 · 0 评论 -
Linux下patch的制作和应用
转自:http://blog.chinaunix.net/u3/100239/showart_1984963.html首先介绍一下diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。所以必须学会这几个选项。1、diff--------------------NAMEdiff - find diffe转载 2013-03-17 21:49:25 · 442 阅读 · 0 评论 -
Linux静态库和动态库
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为转载 2013-04-14 15:06:58 · 393 阅读 · 0 评论 -
linux kernel内存回收机制
http://www.wowotech.net/linux_kenrel/233.html无论计算机上有多少内存都是不够的,因而linux kernel需要回收一些很少使用的内存页面来保证系统持续有内存使用。页面回收的方式有页回写、页交换和页丢弃三种方式:如果一个很少使用的页的后备存储器是一个块设备(例如文件映射),则可以将内存直接同步到块设备,腾出的页面可以被重用;如果页面没有后转载 2018-01-02 22:20:12 · 406 阅读 · 0 评论