自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

远航 | FIBOS.io

区块链行业从业者(http://blog.luoyuanhang.com)

  • 博客(11)
  • 资源 (11)
  • 收藏
  • 关注

原创 分析Linux内核创建一个新进程的过程

分析Linux内核创建一个新进程的过程进程描述进程描述符(task_struct)用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct进程控制块(PCB)是操作系统核心中一种数据结构,主要表示进程状态。进程状态fork()fork()在父、子进程各返回一次。在父进程中返回子进程的 p

2015-07-29 12:45:40 2604 2

原创 分析Linux内核创建一个新进程的过程

新进程的执行源于以下前提:- dup_task_struct中为其分配了新的堆栈- 调用了sched_fork,将其置为TASK_RUNNING- copy_thread中将父进程的寄存器上下文复制给子进程,保证了父子进程的堆栈信息是一致的- 将ret_from_fork的地址设置为eip寄存器的值最终子进程从ret_from_fork开始执行

2015-07-29 12:43:09 3810 3

原创 用 Arduino Uno 给 Arduino Mini(Pro)烧录程序

用 Arduino Uno 给 Arduino Mini(Pro)烧录程序准备Arduino UnoArduino Mini(Pro)杜邦线若干接线首先去掉 Arduino 上的芯片ATMEGA328P接线Uno —– Mini 0(RX) – 0(RX) 1(TX) – 1(TX) VCC —- VCC GND —- GND RESET – RST刷入程序将 Arduino

2015-07-24 13:59:33 18612

原创 Arduino初探:让 Arduino 闪起来

Arduino初探:让 Arduino 闪起来准备:一台电脑(笔者使用的是 Mac)Arduino(笔者使用的是 Arduino UNO)安装 Arduino IDE在官网(www.arduino.cc)下载相应的 IDE,解压并安装。打开IDE。将 Arduino 连接至计算机在 Mac 上会自动安装好驱动。在 工具 -> 板 中找到所对应的 Arduino 板子(笔者的是:Arduino

2015-07-19 21:00:43 3792

原创 分析system_call中断处理过程

分析system_call中断处理过程使用gdb跟踪分析一个系统调用内核函数(以 sys_chmod为例)启动调试内核qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -Sgdb 调试另开 shellgdb(gdb) file linux-3.18.6/vmlinux #在 gdb 界面中 targ

2015-07-19 09:40:52 3077

原创 浅析 Linux 系统调用

浅析 Linux 系统调用用户态、内核态以及中断具有高执行级别的程序可以执行特权指令intel X86 CPU 具有4种级别:0 ~ 3Linux 只用了0和3(0表示内核态,3表示用户态)特权级的表示:使用 CS 寄存器的低2位内核态逻辑地址空间:0xc0000000以上 用户态逻辑地址空间:0x00000000 ~ 0xbfffffff中断是从用户态到内核态的一种方式,即通过系统调

2015-07-11 21:46:20 2862

原创 跟踪分析Linux内核的启动过程

跟踪分析Linux内核的启动过程使用 gdb 跟踪调试内核使用 qemuqemu -kernel linux-3.18.6 /arch/x86/boot/bzImage -initrd rootfs.img -s -S参数:-s:在初始化时冻结 CPU-S: 为 gdb 分配1234端口gdb 调试另开 shellgdb(gdb) file linux-3.18.6/vmlinux #在

2015-07-10 16:18:32 3065

原创 完成一个简单的时间片轮转多道程序内核代码(二)

完成一个简单的时间片轮转多道程序内核代码重要汇编代码分析 asm volatile( "movl %1,%%esp\n\t" "pushl %1\n\t" "pushl %0\n\t" "ret\n\t" "popl %%ebp\n\t" : : "c" (task[pid]

2015-07-10 10:29:37 3277

原创 完成一个简单的时间片轮转多道程序内核代码(一)

完成一个简单的时间片轮转多道程序内核代码先上代码:myPCB.h/* * linux/mykernel/mypcb.h * * describe PCB * * by Yuanhang Luo * */ #define MAX_TASK_NUM 4#define KERNEL_STACK_SIZE 1024*8struct Thread{ unsigned lon

2015-07-07 23:26:47 2960

原创 几种基本汇编指令详解

几种基本汇编指令详解常见寄存器 寄存器 16位 32位 64位 累加寄存器 AX EAX RAX 基址寄存器 BX EBX RBX 计数寄存器 CX ECX RCX 数据寄存器 DX EDX RDX 堆栈基指针 BP EBP RBP 变址寄存器 SI ESI RSI 堆栈顶指针 SP

2015-07-07 11:02:09 43900 3

原创 反汇编一个简单的C程序并分析

反汇编一个简单的C程序并分析C 源码:int g(int x){ return x+1;}int f(int x){ return g(x);}int main(void){ return f(2) + 3;}汇编源码:1 g:2 pushl %ebp3 movl %esp, %ebp4 movl 8(%ebp), %eax5

2015-07-03 22:23:58 5114

The-Code-Survival-Guide

The-Programmers-Idea-Ebook(http://www.coderslexicon.com/downloads/the-programmers-idea-book/)的配套书籍,详情请见:http://blog.jobbole.com/49762/

2016-01-19

The-Programmers-Idea-Ebook

些练手的小项目

2016-01-19

机器学习实战源代码

《机器学习实战》原书配套代码,机器学习实战源代码

2015-05-13

jna-platform-4.1.0.jar

JNA4.1.0,可以通过JNA在Java中调用C/C++的代码

2015-03-24

ncurses.tar.gz

ncurses是一个能提供功能键定义、屏幕绘制以及基于文本终端的图形互动功能的动态库

2014-09-24

arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2

arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 交叉编译工具链

2014-09-24

XML编辑器(课程设计)

Java版的XML编辑器以及代码,是课程设计的作业,拿出来给大家过个参考

2014-05-27

程序员的数学 PDF

《程序员的数学》面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读《程序员的数学》。《程序员的数学》中讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、高斯求和方法、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。

2014-04-26

软件工程模板(十三种开发文档模板)

软件工程模板(十三种开发文档模板),可以做一下参考.

2014-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除