Linux
bysun2013
专注于Linux,研究学习Linux内核编程
展开
-
Linux内核代码记录--“好记性不如烂笔头”
其实很久之前就看过Linux的源代码了,只是因为自己的懒无药可治,一直在脑子里来了又去,什么都没留下,所以现在下决心在阅读代码,理解内核的同时做个笔记。“好记性不如烂笔头”!总的来书, Linux内核可以分为几个部分:内存管理、进程管理、时间管理、文件系统、驱动程序进程管理可以说是整个系统的核心,所以希望能彻底的理解它,啃下这块难啃的骨头!内存管理也是一块很重要的部分,它与进程原创 2013-11-01 22:27:08 · 894 阅读 · 0 评论 -
Linux 经典书籍 推荐
入门篇 《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。驱动篇 《LINUX设备驱动程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分析比原创 2013-11-27 22:37:22 · 1020 阅读 · 0 评论 -
Heartbeat 与DRBD 配置过程
我的PC机都只有1个网卡,所以我用串口使双机通讯;192.168.119.1是我的路由器的IP,作为一个域外的服务器,检测域内服务器是否正常;首先配置host文件:127.0.0.1 localhost127.0.1.1 ubuntu-Bing192.168.119.102 ubuntu-Bing192.168.119.103 Lab-Server拷贝配置文原创 2014-03-09 21:42:06 · 1170 阅读 · 0 评论 -
DRBD安装测试过程记录(二)
两个系统的配置是一样的,只简单的记录下其中一个的配置过程。1. 首先创建硬件设备drbdmknod /dev/drbd0 b 147 0 2. 配置DRBDDRBD运行时,会读取一个配置文件/etc/drbd.conf.这个文件里描述了DRBD设备与硬盘分区的映射关系,数据一旦写入磁盘并发送到网络中就认为完成了写入操作。2.1 /etc/drbd.conf的内容一般为:原创 2014-02-15 15:00:53 · 1494 阅读 · 0 评论 -
Ubuntu 安装 Heartbeat 过程
1. 首先建立相关用户hacluster和组haclient,然后设定环境变量,最后就是安装heartbeat过程如下:(1)添加用户和组groupadd haclientuseradd -g haclient hacluster(2)设置环境变量vi /root/.bash_profile,添加如下内容:export PREFIX=/usr/local/haexp原创 2014-03-07 20:22:31 · 2577 阅读 · 0 评论 -
DRBD安装测试过程记录(一)
1. 安装配置Virtualbox虚拟机Ubuntu12.04,设置双网卡为ubuntu配置两个网卡,一个连接主机,Host-Only;另一个连接外网,Bridge。内网的虚拟网卡可以在virtualbox的全局Preference中设置添加新的虚拟网卡,同时设置为static,即取消DHCP。我设置的为IP 192.168.56.1Mask 255.255.25原创 2014-02-14 21:40:24 · 1046 阅读 · 0 评论 -
友善之臂MINI6410板子移植Linux出现串口乱码
刚刚开始学习移植mini6410,友善之臂的板子,我在Linux kernel上下载了一个2.6.39的内核,然后配置编译,烧到板上,从串口显示的都是乱码,原创 2013-12-03 18:25:37 · 1507 阅读 · 0 评论 -
MINI6410 uboot中USB下载
我使用的Friendly ARM已经配置好的U-boot,然后利用他自带的USB下载功能往ARM板上烧制内核和文件系统,不需要输入地址参数,搞得挺简单,但是不清楚内核到底下载到什么位置了,能否和内核中设置的MTD分区匹配起来?疑惑了好几天,网上百度了一些,还是没有找到下载菜单的位置,最终还是grep帮了大忙,直接拿下载菜单中的选项做关键词,在common文件中search,原创 2013-12-03 18:45:45 · 1579 阅读 · 0 评论 -
对Linux内存管理的整体理解
内存的分配归根到底是伙伴系统的分配;伙伴系统之上就是zone,它对内存的预留空间的设置和管理;__alloc_pages()是内核中对内存页面分配的最核心函数,它尽最大能力的分配所需要的内存页;slab是为了频繁利用的结构体而设置的cache,其基于页的分配;最后,连续虚拟内存的分配(vm_struct),基本操作就是先分配不连续的页面page,然后将这些page与页表项关联;这些原创 2013-11-26 21:19:31 · 816 阅读 · 0 评论 -
Linux 中断们和陷阱门
一直没有搞清楚,记在博客里省的再去查资料中断门: 用于硬件中断,DPL为0,不允许用户态直接使用int指令访问,硬件中断免去这一判断,因此可以在用户态响应中断,见set_intr_gate。DPL0 陷阱门: 用于CPU异常,DPL为0,不允许用户态直接使用int指令访问,硬件中断免去这一判断,因此可以在用户产生CPU异常,见 set_trap_gate。DPL3陷阱门转载 2013-11-18 22:12:26 · 1850 阅读 · 0 评论 -
Linux中三种进程的区别分析
内核线程拥有 进程描述符、PID、进程正文段、核心堆栈当和用户进程拥有相同的static_prio 时,内核线程有机会得到更多的cpu资源内核线程不需要访问用户空间内存, 这是再好不过了。所以内核线程的task_struct 的mm域为空核心堆栈跟task_struct的thread_info共享8k的空间,所以不用mm描述。但是内核线程总要访问内核空间的其他内核啊,没有mm域毕竟原创 2013-11-01 22:33:50 · 1156 阅读 · 0 评论 -
Linux用户态和内核态的那些事
虽然用户态下和内核态下工作的程序有很多差别,但最重要的差别就在于特权级的不同,即权力的不同。运行在用户态下的 程序不能直接访问操作系统内核数据结构和程序。当我们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成某些它没有权力和能力完成 的工作时就会切换到内核态。用户态切换到内核态的3种方式:a. 系统调用这是用户态进程主动要求切换到内核态的一种方转载 2013-11-02 16:05:28 · 2165 阅读 · 0 评论 -
Linux内核开机保留大块内存的方法总结
在开机保留内存的方式一共有三种方法:1. reserve_bootmem(addr,size,flag)2. alloc_bootmem(size)原创 2014-03-02 10:22:25 · 2139 阅读 · 0 评论