Linux系统基础知识(二)
Linux进程怎样才能获取属于它自己的线性地址空间呢,比如 0x08048000到0x0804c000这段线性地址空间被分配给了一个进程,进程就可以访问这段地址空间,线性地址空间的开始和结束都必须以4KB对齐
这里有以下几种情况:
1.刚刚创建的新进程;
2.使用exec系统调用装载一个新的程序运行;
3.将一个文件(或部)映射到进程地址空间中去;
4.当用户堆栈不够的时候,扩展堆栈对应的线性区;
相关文档:
这两天同事在Octeon开发板上调试Linux程序,遇到了一个问题:无法让gdb单步跟踪进入静态库(libcrypto.a和libcvmx.a)对应的源文件。
我自己在PC上写了一个小程序进行验证,发现果然是这样。如果把全部.o文件(用-ggdb3选项编译,带调试信息)直接编译成可 ......
关于linux下两种内存引导模式的区别
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。
initrd 的英文含义是 boot loader ......
简介
模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能
独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。
使用模块的优点:
1,将来修改内核时,不必全部重新编译整个内核,可节省不少时间
2,系统 ......
创建linux服务,使得test client可以开机启动,步骤如下:
1.创建目录/usr/local/test/
2.复制testc到/usr/local/test/
3.编写文件/etc/init.d/testc.sh
testc.sh
--------------------begin(not included)-----------------------
#! /bin/sh
#
### BEGIN INIT INFO
# Provides: &nbs ......
如果在linux C\C++环境下判断某个文件是否存在,可以使用access函数:
#include <unistd.h>
#include <stdio.h>
int main()
{
const char* file1 = "access.cpp";
const char* file2 = "access1.cpp";
& ......