Jack Tan
码龄20年
关注
提问 私信
  • 博客:232,310
    社区:2,646
    234,956
    总访问量
  • 53
    原创
  • 1,924,408
    排名
  • 26
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2005-04-04
博客简介:

四度空间

查看详细资料
个人成就
  • 获得9次点赞
  • 内容获得13次评论
  • 获得50次收藏
创作历程
  • 3篇
    2008年
  • 45篇
    2007年
  • 13篇
    2006年
  • 11篇
    2005年
成就勋章
TA的专栏
  • C/C++
    1篇
  • CPU 微体系结构
    1篇
  • GNU/Linux
    16篇
  • x86 相关
    3篇
  • 人文精神
    5篇
  • 科学真理
  • 经济管理
    3篇
  • 龙芯相关
    11篇
兴趣领域 设置
  • 人工智能
    opencv计算机视觉机器学习神经网络tensorflow数据分析
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Linux System Programming

发布资源 2008.02.28 ·
application/pdf

PMON(龙芯修改版)常用操作命令

pmon 是一个兼有BIOS和bootloader部分功能的开放源码软件,多用于嵌入式系统。与BIOS相比功能不足,与常见的bootloader 相比,功能要丰富的多。基于龙芯的系统采用 pmon 作为类 BIOS 兼 bootloader,并做了很多完善工作。其有如下主要特点:         * 支持ext2 fat32 ram 文件系统     * 支持网络引导(tftp),磁
原创
发布博客 2008.01.10 ·
8657 阅读 ·
1 点赞 ·
0 评论 ·
19 收藏

Linux 上下文切换分析笔记 (MIPS)

1. 内核栈切换 (MIPS)调度切换至一个进程时,根据 task_struct->thread_info 的值设置 *kernelsp(当前正在运行进程之内核栈栈底),其值为 thread_info + THREAD_SIZE - 32(MIPS 下,使用 set_saved_sp 宏)。2. 异常、中断寄存器的保存 (MIPS)使 用SAVE_SOME 保存上下文时,如发现从用户态切入核心态,
原创
发布博客 2008.01.10 ·
3381 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux 存储管理分析札记

1. MIPS 与 X86 的 TLB 差别其在于对 TLB 不命中时的处理上:MIPS 会触发TLB Refill 异常,内核的 tlb_refill_handler 会以 pgd_current 为当前进程的 PGD 基址,索引获得转换失败的虚址对应的 PTE,并将其填入 TLB,完了CPU 把刚刚转换失败的虚地址再走一下 TLB 就OK了。而 X86 在 TLB 不命中时,是由硬件 MMU
原创
发布博客 2008.01.10 ·
1466 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用 graphviz 形象化有向图

将有向图数字化,可以用一个邻接矩阵表示。计算机对这个图进行一系列的处理后(比如求闭包),如果要看看处理后的图,可以借助于 graphviz 这个强大的开源工具。1. Graphviz 简介Graphviz 是 AT&T Labs-Research 开发的自动图形绘制工具, 可以很方便的可视化结构信息,把抽象的图和网络用几何的方式表现出来。支持多种格式输出,如 jpg, png, gif, svg,
原创
发布博客 2007.10.11 ·
3002 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

16KB页,32bit 地址的划分有些问题

32 bit kernel, 16KB 页大小,龙芯2E平台tlb_refill_handler为:lui       k1, %hi(pgd_current)mfc0   k0, C0_BADVADDRlw       k1, %lo(pgd_current)(k1)srl     k0, k0, PGDIR_SHIFTsll       k0, k0, PGD_T_LOG2
原创
发布博客 2007.10.11 ·
1676 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux下把共享库(SO)加载到指定的内存地址

作者:absurd   出处:http://blog.csdn.net/absurd一位朋友最近遇到一个棘手的问题,希望把共享库(SO)加载到指定的内存地址,目的可能是想通过prelink来加快应用程序的起动速度。他问我有没有什么方法。我知道Windows下是可以的,比如在VC6里设置/base的值就行了,所以相信在Linux下也是可行的。 VC有编译选项可以设置,猜想gcc也应该有吧
转载
发布博客 2007.09.12 ·
3179 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Linker script 链接器脚本

作者:firststp    出处:http://blog.csdn.net/firststp/每个链接都由链接脚本控制着,脚本由链接器命令语言组成。脚本的主要目的是描述如何把输入文件中的节(sections)映射到输出文件中,并控制输出文件的存储布局。大多数的链接脚本就是做这些事情的,但在有必要时,脚本也可以指导链接器执行一些其他的操作。链接器总是使用链接器脚本,如果你没有提供一个你
转载
发布博客 2007.09.12 ·
1518 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

龙芯版 memcpy 的实现

当前版本: 0.1完成日期: 2007-6-15作者: Dajie Tan memcpy 是为最常用之函数,多媒体编解码过程中调用频繁,属调用密集型函数,对其性能优化很有意义。1. 概述memcpy 所做的操作是把内存中的一块数据复制到内存的另一个地方,也就是内存到内存的数据拷贝,这个过程需要CPU的参与,即:先从内存取数据到CPU的寄存器,然后再从寄存器写到内存中。可以用类似如下C 代码实现:c
原创
发布博客 2007.09.06 ·
1961 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

oprofile for godson2e 移植手记

当前版本: 0.1完成日期: 2007-6-7作者: Dajie Tan 0. 概述oprofile 在Linux 上分两部分,一个是内核模块(oprofile.ko),一个为用户空间的守护进程(oprofiled)。前者负责访问性能计数器或者注册基于时间采样的函数(使用register_timer_hook注册之,使时钟中断处理程序最后执行profile_tick 时可以访问之),并采样置于内核
原创
发布博客 2007.09.06 ·
1175 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用oprofile分析性能瓶颈

当前版本: 0.1完成日期: 2007-5-25作者: Dajie Tan 1. 概述oprofile 是 Linux 平台上,类似 INTEL VTune 的一个功能强大的性能分析工具。其支持两种采样(sampling)方式:基于事件的采样(event based)和基于时间的采样(time based)。基于事件的采样是oprofile只记录特定事件(比如L2 cache miss)的发生次数
原创
发布博客 2007.09.06 ·
1636 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MIPS Linux 下添加系统调用

 添加一个系统调用有以下几个步骤: 1.  在 kernel 的系统调用表 sys_call_table 中添加你的系统调用入口 根据你用的内核位数(32/64bit) 选择需要修改的文件: arch/mips/kernel/scall32-o32.S  ------> 32bit kernel arch/mips/kernel/scall64-64.S    ------> 64bit
原创
发布博客 2007.09.06 ·
2831 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

福珑迷你PC之主板结构

其中 Local I/O 总线为: intel 风格的并行总线,8bit 数据, 19bit 地址,因此支持的最大存储空间是2^19 * 8/8 = 512KB存储PMON的flash memory(Am29LV040B)就通过 Local I/O 总线连接到北桥。
原创
发布博客 2007.09.04 ·
1383 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

绕过 libc 直接使用系统调用

当前版本: 0.1完成日期: 2007-6-15作者: Dajie Tan 系统调用是用户态进程切入内核态的唯一入口,是内核为用户态进程提供服务的接口。Linux Kernel 提供了大约300个左右的系统调用,作为用户空间进程访问内核的 API。C 语言环境下,经常使用的(如getpid)是系统基础库 libc 封装过的。在其后面究竟隐藏着什么样的秘密呢?1. 先看一个例子:#include i
原创
发布博客 2007.08.28 ·
1999 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

IEEE754 笔记

IEEE754 标准是 IEEE 对浮点数表示的规范,目的在于统一浮点数的编码,提高浮点运算程序的可移植性。IEEE754有3种浮点数格式:单精度、双精度、扩展双精度。每种格式皆由3部分组成: 符号位(s)、指数(e)和尾数(m)。single-precision :  | 31 | 30:23 | 22:0 |   (Ns=1, Ne=8, Nm=23)double-precision:  |
原创
发布博客 2007.08.24 ·
1201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Breaking Free

Troy(T):Were soaring, flyingTheres not a star in heavenThat we cant reachGabriella(G):If were tryingSo were breaking freeTroy: You know the world can see usIn a way thats different than who we a
原创
发布博客 2007.08.23 ·
737 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Chaos on Graphics About 数学库之一 SSE/SSE2

Chaos Chiao  毫无疑问,数学库是图形程序的基石,是图形程序运行效率的关键之一。一个优秀的数学库可以让图形程序运行得更流畅,甚至要快上几十倍上百倍。有时候替换一条除法运算会带来成倍的效率增长,比如用乘以 1/op 替换 vector 里的 operator /。当然,更高级的优化是使用 SIMD 优化海量运算,这就是本文的中心——SSE/SSE2 优化。在描述 SSE
转载
发布博客 2007.08.22 ·
1419 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Debian etch 基本系统 initial ram disk 的分析

         ilovestars 2007年5月3日于瀚海星云 Linux 版    自己最近花时间研究了一下 linux 的 initial ram disk,然后就写了这篇文章。 因为是要给别人看的,所以写的时候就比较小心,不能放过细节。这样就要搞清楚之前 不太在意的一些问题,对自己也是一个提高的过程。而且写的过程中发现,有些话不是 很好组织,估计是自己的写作能力下降了吧。所以,linu
转载
发布博客 2007.08.17 ·
1956 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RISC 下非对齐访问的问题

1. 问题RISC 下使用访存指令读取或写入数据单元时,目标地址必须是所访问之数据单元字节数的整数倍,这个叫做地址对齐。比 如在 MIPS 平台上,lh 读取一个半字时,存储器的地址必须是 2 的整数倍; lw 读取一个字时,存储器的地址必须是 4的整数倍; sd 写入一个双字时,存储器的地址必须是 8 的整数倍。倘若访存时,目标地址不对齐,则会引起异常,典型的是系统提示“总线错误”后,直接杀死进
原创
发布博客 2007.07.31 ·
5206 阅读 ·
2 点赞 ·
1 评论 ·
5 收藏

怎样规划你的毕业后的人生

   我今年39岁了, 25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。现在开一个小公司,赚的钱刚够养家糊口的。看看这些刚毕业的学生,对 前景也很迷茫,想抛砖引玉,谈谈自己的看法,局限于理工科的学生,我对文科的不懂,身边的朋友也没有这一类型的。  91年研究生毕业,那时出路就是1种:留在北京的国营单位,搞一个北京户口,这是最好的选择。到后来的2~3年内,户口
转载
发布博客 2007.07.31 ·
1422 阅读 ·
1 点赞 ·
1 评论 ·
3 收藏
加载更多