E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
0.11
[置顶] linux-
0.11
调试教程,源起,从linux内核完全注释的几处错误说起
本系列文章调试linux-
0.11
,大部分都是一些新内容,小部分是对代码的一些印证。
sitelist
·
2013-01-15 11:00
Linux内存管理
Linux
0.11
的内存管理总结。。。许多其它内容参见“地址翻译”部分1、分页相关的页目录表和页表 Linux
0.11
中的内存管理是分页式的内存管理。
yanlinwang
·
2013-01-14 19:00
GPU Gems 1: Chapter 22. Color Controls
OriginColor–float3(0.5,0.5,0.5))*fContrast+float3(0.5,0.5,0.5));饱和度:floatfGrayScale=dot(OriginColor,float3(0.3,0.59,
0.11
Pulaski
·
2013-01-14 13:00
linux-
0.11
调试教程,task3(04),sa_restore函数
返回用户态之后,先运行的是用户定义的信号处理程序,既sa_handler,然后sa_handler函数最后是ret!!!ret之后运行sa_restore函数,sa_restore函数最后也是ret!!!再返回到int0x80下面的语句,既old_eip位置处继续运行。所以第一需要改变的是信号处理所在的用户程序的内核态堆栈中的eip,第
sitelist
·
2013-01-14 07:00
linux
0.11
调试教程,task3概述
linux-
0.11
调试教程,task3(01),/etc/rc文件linux-
0.11
调试教程,task3(02)
sitelist
·
2013-01-12 18:00
linux-
0.11
调试教程,task3(01),/etc/rc文件
init/main.c中相关代码: if(!(pid=fork())){ close(0); if(open("/etc/rc",O_RDONLY,0)) _exit(1); execve("/bin/sh",argv_rc,envp_rc); _exit(2); }/etc/rc文件内容:/etc/update&echo"/dev/h
sitelist
·
2013-01-12 16:00
linux-
0.11
调试教程,task3(02)系统调用sys_alarm和sigaction结构
系统调用sys_alarm相关代码:intsys_alarm(longseconds){ intold=current->alarm; if(old) old=(old-jiffies)/HZ; current->alarm=(seconds>0)?(jiffies+HZ*seconds):0; return(old);}current->alarm的值为jiffies的
sitelist
·
2013-01-11 13:00
linux-
0.11
内核 任务的堆栈切换
一直缠绕的两个问题:怎样标识的内核栈与用户栈?如何在内核态堆栈与用户态堆栈之间切换? 用户态堆栈指针:ss和esp;内核态堆栈指针:ss0和esp0;二者均位于任务的tss结构中。这里的任务是指除任务0和1之外的普通任务。CPU进行用户态堆栈到内核态堆栈的切换操作时,CPU会从当前任务的任务状态段TSS中取得新堆栈的段选择符和偏移值,即从TSS的ss0和esp0字段中获取,在定位了新堆栈(内核态
stonehorse
·
2013-01-10 11:14
linux
硬件
linux-
0.11
调试教程,task4
相关代码: if(!pid){ close(0);close(1);close(2); setsid(); (void)open("/dev/tty0",O_RDWR,0); (void)dup(0); (void)dup(0); _exit(execve("/bin/sh",argv,envp
sitelist
·
2013-01-09 20:00
linux-
0.11
调试教程,task2
相关代码:if(!(pid=fork())){ close(0); if(open("/etc/rc",O_RDONLY,0)) _exit(1); execve("/bin/sh",argv_rc,envp_rc); _exit(2); }图1进程2的堆栈是0xffa00,close(0)之后,filep[0]被置为NULL。filep
sitelist
·
2013-01-09 20:00
linux-
0.11
调试教程 tty_table
图一0x19170是tty_table的地址,图二是“Freemem:12582912bytes”对应的写队列缓冲区的一部分内容46:F,72:r,65:e,65:e,20:空格,6d:m... ... 图二图三图三是是tty队列结构,0x00000103表示队列里面的head位置。看来head和
sitelist
·
2013-01-08 18:00
linux-
0.11
调试教程 minix 文件系统1.0 下篇(3)文件表 file_table
(void)open("/dev/tty0",O_RDWR,0); (void)dup(0); (void)dup(0);下面的图是复制文件句柄0之后得到文件句柄1和文件句柄2,之后的情形。 图一图一表示进程1的task_struct,突出显示的task_struct->file[NR_OPEN]中的filp[0],filp[1]
sitelist
·
2013-01-08 17:00
linux-
0.11
调试教程,task3(03),do_signale之后的用户栈
下面是do_signal之前和之后iret之前的内核态堆栈的变化情况,主要是原esp和原eip的变化情况。相关代码:voiddo_signal(longsignr,longeax,longebx,longecx,longedx, longfs,longes,longds, longeip,longcs,longeflags, unsignedlong*esp,longss){ ..
sitelist
·
2013-01-08 12:00
linux-
0.11
调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0
setup((void*)&drive_info); (void)open("/dev/tty0",O_RDWR,0); (void)dup(0); (void)dup(0); printf("%dbuffers=%dbytesbufferspace\n\r",NR_BUFFERS, NR_BUFFERS*BLOCK_SIZE); printf("Freemem
sitelist
·
2013-01-07 19:00
linux
0.11
minix1.0文件系统 下篇 根节点的 buffer_head结构,根节点内容
第一个i节点块的第一个i节点对应的是根节点,因为这个节点的izone[0]为0x027e!!!41ed是文件类型0x19294是根节点对应的内存i节点地址,izone[0]是0x02740x1fc50是根目录的buffer_head指针,既缓冲头指针,根目录的块号为0x027e,数据所在的高速缓冲区地址是0x003f400。下面是根目录文件的内容,大小是0xb0,每个目录项是一行既16个字节,头两
sitelist
·
2013-01-06 19:00
linux
0.11
minix 1.0 文件系统 中篇 hash_table
上篇地址链接structbuffer_head*s_imap[8]; 0x0001faa0 0x0001fac4 0x0001fae8 structbuffer_head*s_zmap[8]; 0x0001fb0c 0x0001fb30 0x0001fb54 0x0001fb78 0x0001fb9c 0x
sitelist
·
2013-01-06 18:00
i节点
以Linux
0.11
为实例,兴趣所至,个人总结,不保证正确性。。。[i节点] i节点是表征文件的方式,因此在linux
0.11
内核中,有一系列专门操作i节点的函数,在fs/inode.c中。
yanlinwang
·
2013-01-06 13:00
linux
linux
linux
磁盘
i节点
Linux文件系统概述
以Linux
0.11
为实例,个人总结,不保证正确性。。。[文件系统]磁盘上的数据以块为单位进行读写,每一个块称为一个逻辑块。在理解磁盘的逻辑视图时,以逻辑块为单位来理解。
yanlinwang
·
2013-01-05 13:00
linux
linux
linux
文件系统
linux
0.11
调试教程,minix 1.0 文件系统,上篇(03),super_block,137f和301看见了么?
相关代码:sys_setup()函数调用mount_root()函数,mount_root()函数又调用read_super()函数。structsuper_block{ unsignedshorts_ninodes; 4e20 unsignedshorts_nzones; ea60 unsignedshorts_imap_blocks; 0003 u
sitelist
·
2013-01-04 11:00
linux
0.11
,进程0,进程1,进程2运行的先后顺序
环境,ROOT_DEV=/dev/hd11,进程0,然后state等于12,进程1,然后state等于13,进程2。
sitelist
·
2013-01-03 14:00
Linux
0.11
内核--内核态与用户态
内核态与用户态intelx86 架构的 CPU 分 Ring0-Ring3 三种级别的运行模式,Ring0级别最高,Ring3 最低。 针对不同的级别,有很多的限制,比如说传统的 in,out 指令,就是端口的输入输出指令,在 Ring0 级下是可以用的,但在 Ring3 级下就不能用,你用就产生陷井,告诉你出错了,当然限制还有很多了,不只是这一点。 操作系统下是利用这个特点,当操作系统自己的代码
X_White
·
2013-01-02 21:00
Linux
0.11
内核--内存组织和进程结构
进程结构Linux
0.11
中的每个进程都有如下的结构:在gdt中占有两项,一项是tss段描述符,一项是ldt段描述符。
X_White
·
2013-01-02 20:00
MySQL学习笔记3:表的基本操作介绍
我们就可以在此数据库之中创建表了创建表mysql>createtablestudent(->idint,->namevarchar(20),->sexboolean->);QueryOK,0rowsaffected(
0.11
sec
·
2013-01-02 10:23
linux 简单分析
我选择linux源码版本是linux
0.11
,为什么选择它?因为它代码量少且资料多。 针对它的分析是建立于网上资料之上(快捷、效果好)。
banketree
·
2012-12-24 09:00
linux
linux
linux
Linux高速缓存详解(一)
在Linux高速缓存概述中介绍了Linux
0.11
中的高速缓存的基础结构,这一部分将详细分析Linux高速缓存部分的相关函数。
yanlinwang
·
2012-12-17 11:00
linux
linux
linux
buffer
buffer
高速缓存
Linux高速缓存概述
高速缓冲含有最近被使用过的磁盘块的数据在Linux内核
0.11
中,它默认最多支持16M的物理内存。对系统内存的分配情况如下:Linux内核占用物理内存最前段的一部分。
yanlinwang
·
2012-12-16 13:00
linux
linux
linux
高速缓存
在windows下使用insight实现源码级调试 linux内核
tid=11074&extra=page%3D1&page=1]在linux
0.11
目录下有start_bochs.bat和start_gdb.bat两个文件,分别运行之,调试过程请参考截图debug-linux.JPG
dj0379
·
2012-12-13 07:00
linux内核版本命名
其次是0.02,0.03,0.10,
0.11
,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。
luyx30
·
2012-12-09 11:17
linux
H5
target
p
blank
linux-
0.11
系统调用 int 0x80 实现
如题,这个是转来的,不过自己真的看透了哦,其它的中断也是一个意思吧,实际上都是那本
0.11
注释里面的系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。
goldfighter
·
2012-12-06 19:00
Linux
0.11
初步总结
Linux
0.11
内核只有8000多行代码,是学习操作系统基本原理的好材料,也是进一步学习linux后期版本的好基础。
qq85609655
·
2012-11-27 10:00
linux
Linux内核完全注释
Linux
0.11
虽然不是什么“珠穆朗玛峰”,但它肯定还是“华山”或“泰山”。虽然有路但你还是需要最基本的努力和花费一定的代价才能“攀登”上去。 1.
qq85609655
·
2012-11-25 17:00
linux
Linux
0.11
内核--内核态与用户态
http://blog.csdn.net/yming0221/article/details/6314220内核态与用户态intelx86架构的CPU分Ring0-Ring3三种级别的运行模式,Ring0级别最高,Ring3最低。针对不同的级别,有很多的限制,比如说传统的in,out指令,就是端口的输入输出指令,在Ring0级下是可以用的,但在Ring3级下就不能用,你用就产生陷井,告诉你出错了,
junmuzi
·
2012-11-25 15:00
交叉编译ushare
ushare是网络上一个DMS的源代码,下面要交叉编译到目标平台上:编译环境:编译器:arm-hisiv200-linux-gcc主机:ubuntu10.4源码包:ffmpeg-
0.11
.tar.bz2
crazyman2010
·
2012-11-22 15:00
Linux信号系统详解
代码对应linuxkernelv
0.11
[Linux信号系统简介] 在Linux系统中,信号机制是在软件层次上对中断机制的一种模拟。
yanlinwang
·
2012-11-18 22:00
linux
linux
linux
信号
Signal
linux内核
信号系统
Linux进程状态详解
以下部分的代码示例,来自于Linux内核的
0.11
版本源码在定义进程的数据结构task_struct时,有一个state字段是用来表示进程状态的,这里总结了下关于state字段的操作关于进程的几个状态值在
yanlinwang
·
2012-11-17 14:00
Linux中断详解
这里以linux-kernel
0.11
版本为基础整理中断相关知识,目的在于对于中断有一个全面、清晰和简洁的认识1、Linux的中断类型 Linux的各种中断都是由系统负责统一处理的。
yanlinwang
·
2012-11-14 18:00
linux
linux
linux
中断
Linux中的栈
一、linux中的堆栈 Linux
0.11
核中总共涉及到了四种栈:系统引导时候的临时栈;内核初始化使用的栈;内核态栈;用户态栈。1)
zhuyi2654715
·
2012-11-11 03:00
bochs 里玩 linux-
0.11
安装bochs......编译linux-
0.11
内核下载内核linux-
0.11
-081030.tar.gz,这个内核是经过别人修改的,应该在他的机器上可以编译,但是在ubuntu上有一下问题,搜索解决方法如下
goldfighter
·
2012-11-07 16:00
Linux 设置单网卡多VLAN支持
8021q.modules 过程:(以VLAN11、VLAN22 桥接与eth0为例说明)1、修改eth0配置文件如下:DEVICE=eth0ONBOOT=yes2、新建虚拟网卡配置文件ifcfg-eth
0.11
penguim
·
2012-11-06 11:33
linux
多vlan
Linux 设置单网卡多VLAN支持
8021q.modules过程:(以VLAN11、VLAN22桥接与eth0为例说明)1、修改eth0配置文件如下:DEVICE=eth0ONBOOT=yes2、新建虚拟网卡配置文件ifcfg-eth
0.11
刀匠
·
2012-11-06 11:33
Linux
多vlan
Linux
trac简介
使用超链接方式把软件缺陷数据库、版本控制系统和wiki内容结合起来,并作为版本控制系统的web接口,支持的版本控制系统包括Subversion,Git,Mercurial,Bazaar,Perforce,Darcs.在
0.11
txf_7337
·
2012-10-17 15:00
trac
svn
wiki
trac简介
使用超链接方式把软件缺陷数据库、版本控制系统和wiki内容结合起来,并作为版本控制系统的web接口,支持的版本控制系统包括Subversion,Git,Mercurial,Bazaar,Perforce,Darcs.在
0.11
txf_7337
·
2012-10-17 15:00
trac
svn
wiki
trac简介
在
0.11
版本之前,Trac的web展示前端由ClearSilver web模板系统提供,自
0.11
开始
txf_7337
·
2012-10-17 15:00
SVN
Trac
wiki
linux内核学习之进程管理------task_struct结构体
今天随便看了一下代码,就把控制进程的数据结构拿出来了,2.6的可以
0.11
的复杂的多的多。
wallwind
·
2012-09-28 00:00
thread
struct
list
Signal
linux内核
credentials
Python实践——datetime日期操作脚本
utf-8 -*- #countDays.py # version 0.10 edited by lingyue.wkl 20110819 11:00:00 # version
0.11
jjwspj
·
2012-09-25 20:00
优化
Date
python
list
脚本
Linux
0.11
版源代码分析——init/main.c(进程0及fork)
进程0是一个特殊的进程,它是所有其它进程的祖先进程,所有其它的进程都是fork通过系统调用,复制进程0或者其后代进程产生的。但是进程0却不是通过fork调用产生的。进程0的代码就是内核system模块的代码,所以可以认为系统一启动进程0就开始运行。但是此时并不是真正的进程0,应为此时gdt中还没有设置tss和ldt描述符,直到sched_init()中才设置了tss和ldt并且把tss加载到tr寄
weixin_30390075
·
2012-09-16 09:00
操作系统
linux kernel 命名规则
其次是0.02,0.03,0.10,
0.11
,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。[16]从0.95版有许多的补丁发布于主要版本版本之间。
Start-up
·
2012-09-16 00:00
kernel
2012/9/13一些网站,资源收集
IDE编程环境(吴垠)ComingHometoVIMgvim下安装taglist(windows)gvim下安装taglist(Linux)vim插件安装路径Linux相关Linux内核完全剖析—基于
0.11
zjushawnelee88
·
2012-09-13 19:00
linux
android
vim
Linux
0.11
版源代码分析——init/main.c
Linux
0.11
版源代码中,main.c在代码中的位置十分重要,完成系统的初始化,并启动进程。涉及到进程、内存管理、文件管理等等。尽管这部分代码看起来十分简单,但是分析起来,难度很大。
weixin_30951231
·
2012-09-09 09:00
内存管理
Linux进程-进程的创建
今天学习了Linux的进程创建的基本原理,是基于
0.11
版本核心的。下面对其作一下简单的总结。
kongweile
·
2012-09-07 23:00
linux
上一页
34
35
36
37
38
39
40
41
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他