
linux源码分析
qq308845474
这个作者很懒,什么都没留下…
展开
-
linux内核之trap.c文件分析
该程序主要定义和实现了asm.s中所引用的各个硬件异常中断处理程序#include #include #include #include #include #include #include 取给定段以及偏移处的一个字节输出寄存器eax,输入寄存器eax,内存地址addr#define get_seg_byte(seg,addr) ({ /reg转载 2015-10-12 18:53:36 · 2009 阅读 · 0 评论 -
linux kernel Setup.S代码完全注释
/注释不一定全对,希望高手斧正啊。。#include #include #include #include #include #include /* Signature words to ensure LILO loaded us right */#define SIG1 0xAA55#define SIG2 0x5A5AINITSEG =转载 2015-09-25 19:28:21 · 811 阅读 · 0 评论 -
linux 0.11 内核学习 -- setup.s
参考资料 Linux内核完全注释.pdf 网上相关资料! setup程序的主要作用是利用rom bios的中断来读取机器系统参数,并将这些数据保存在0x90000! 开始的位置(覆盖掉了bootsect程序所在的位置),所取得的参数被内核的相关程序使用。注意在bootsect! 中已经将该模块和system、模块加载到内存中。! 然后setup程序转载 2015-09-25 19:33:11 · 305 阅读 · 0 评论 -
setup.s
1 ! 2 ! setup.s (C) 1991 Linus Torvalds 3 ! 4 ! setup.s is responsible for getting the system data from the BIOS, 5 ! and putting them into the appropriate places in system memory. 6 ! both转载 2015-09-25 20:23:24 · 825 阅读 · 0 评论 -
bootsect.S分析
bootsect.S分析(一篇老东东) bootsect.S ! bootsect.s (c) 1991, 1992 Linus Torvalds 版权所有 ! Drew Eckhardt修改过 ! Bruce Evans (bde)修改过 ! ! bootsect.s 被bios-启动子程序加载至0x7c00 (31k)处,并将自己 ! 移到了地址0转载 2015-09-26 18:44:14 · 662 阅读 · 0 评论 -
Bootlaoder分析详解
一。bootloader介绍bootloader是硬件在加电开机后,除BIOS固化程序外最先运行的软件,负责载入真正的操作系统,可以理解为一个超小型的os。目前在Linux平台中主要有lilo、grub等,在Windows平台上主要有ntldr、bootmgr、grldr等。这里以grub-0.97为基础描述bootloader的启动过程。一般grub主要分为stage1和stag转载 2015-10-01 04:16:02 · 2175 阅读 · 0 评论 -
[精华] 前段时间arch/i386/kernel/head.S注解
'kernel/head.S' Detail Comment /*************************************************************************** 32位启动代码: 编译程序在链接内核vmlinux的时候,将vmlinux起始位置链接到0xC0000000 + 0x100000,这 样所有的符号地址=0xC00转载 2015-10-04 13:19:27 · 13377 阅读 · 0 评论 -
linux2.4 启动代码head.S分析
32位启动代码,暂时不考虑SMP的情况。关键代码分析页目录表的起始地址在0x101000,由于目前仍然处于实模式,地址都是物理地址开始启动内核startup_32: 清方向标志位 cld 用内核数据段的地址来初始化ds,es,fs,gs寄存器 宏__KERNEL_DS在segment.h中有定义,对于i386体系结构来说__KERNEL_DS=0x18转载 2015-10-04 14:48:02 · 418 阅读 · 0 评论 -
i386 head.S完整分析【转】
/* * linux/arch/i386/head.S -- the 32-bit startup code. * * Copyright (C) 1991, 1992 Linux Torvalds * * Enhanced(增强的,提高的) CPU detection and feature setting code by Mike Jagdis * and Mart转载 2015-10-06 19:49:11 · 905 阅读 · 0 评论 -
get_base(current->ldt[1])和get_base(current->ldt[2])
free_page_tables(get_base(current->ldt[1]),get_limit(0x0f));free_page_tables(get_base(current->ldt[2]),get_limit(0x17));首先看下他调用的参数。1、get_base(current->ldt[1])和get_base(current->ldt[2])A.get_ba转载 2015-10-12 18:23:48 · 755 阅读 · 0 评论 -
Linux开机过程的分析(关于bootsect.S)
本文的目的,在于将linux kernel的boot部分做一个介绍,因为笔者觉得很少有这样的 文章来介绍一个操作系统最最开始的一步----把kernel本身载入至内存中,同时进行一些 机器相关(machine dependent)的初始化工作,由于linux刚好使用的是大家最熟悉的386, 486系列PC,所以在说明其程序流程时,也刚好可以对其相关的PC硬体架构做探讨,可以 说是一举两得。不过转载 2015-09-24 18:48:17 · 770 阅读 · 0 评论