|
10)用IP定义一个地址(sockaddr_in的结构的区别) Windows下addr_var.sin_addr.S_un.S_addr Linux下addr_var.sin_addr.s_addr 而且Winsock里最后那个32bit的S_addr也有几个以联合(Union)的形式与它共享内存空间的成员变量(便于以其他方式赋值),而Linux的Socket没有这个联合,就是一个32bit的s_addr。遇到那种得到了是4个char的IP的形式(比如127一个,0一个,0一个和1一个共四个char),WinSock可以直接用4个S_b来赋值到S_addr里,而在Linux下,可以用边向左移位(一下8bit,共四下)边相加的方法赋值。 (10月08日) [查看全文] Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC能够编译三种语言:C、C++和ObjectC(C语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。 如果你有两个或少数几个C源文件,也可以方便地利用GCC编译、连接并生成可执行文件。例如,假设你有两个源文件 main.c 和 factorial.c 两个源文件,现在要编译生成一个计算阶乘的程序。 (10月07日) [查看全文] 一、进程控制: fork 创建一个新进程 (10月07日) [查看全文] emory Caches kmem_cache_alloc 更多详细的内容应该查看slab分配器。 向量定位 (10月07日) [查看全文] Linux0.11进程创建函数fork() QUOTE:
QUOTE:
对所有fork()调用产生的进程,通过递增并循环的方式为其分配进程号。有一个全局变量last_pid用来记录上次使用的进程号: long last_pid=0; 在find_empty_process中,不断递增last_pid,寻找第一个未被其它进程使用的进程号作为新进程的进程号。如果递增后的值超出正数表示范围,则重新从1开始。 进程控制块中还保存有进程的任务状态段数据结构tss,用于存储处理器管理进程的所有信息。也就是说,在任务切换过程中,首先将处理器中各寄存器的当前值被自动保存当前进程的tss中;然后,下一进程的tss被加载并从中提取出各个值送到处理器的寄存器中。由此可见,通过在tss中保存任务现场各寄存器状态的完整映象,实现任务的切换。 struct tss_struct tss; 因此,一旦在task[]数组中找到空闲项和进程号,我们就可以为该进程的进程控制块结构申请一个页面的内存。这个工作是在copy_process()函数中完成的。当然copy_process()函数的最主要的任务是为子进程复制父进程信息,并设置子进程的任务状态段,其中最关键的两步是: 1. 把子进程tss中的eip设置为父进程系统调用返回地址,这样当子进程被调度程序选中后,将从父进程的fork()返回地址处开始执行。 p->tss.eip = eip; 2. 把子进程tss中的eax设置为0,而eax是存放函数返回值的地方,这样子进程中返回的是0。注意子进程并没有执行fork()函数,子进程的系统堆栈没有进行过操作,当然不会有像父进程那样的fork函数调用。但是当子进程开始运行时,就好像它从fork中返回。 p->tss.eax = 0; (10月07日) [查看全文] 问题: [MEMO]ROM:System BIOS image undefined 解决:给bochs正确配置一个*.bxrc 问题:Event type: PANIC Device: [MEM0 ] (10月07日) [查看全文] 转换环境Linux系统,整个项目要转换为多语言版本,所有文件储存格式由原来GB2312转换为UTF-8编码,为了方便,借助iconv命令写了下面脚本: #!/bin/bash if [ -z "$1" ]; if [ -z "$2" ]; (10月06日) [查看全文] 整理了Linux编程快速入门的一些资料,分享给大家。 1. 了解编译器 如果是C++写的 其中 其他选项: (10月05日) [查看全文] 基础 Linux Shell 的角色就如翻译者一般。 Sehll 就像是一个壳,它介于用户和操作系统(Kernel)中间,负责将用户的命令解释为操作系统可以接受的低级语言,同时将操作系统响应的信息以用户了解的方式来显示。 在登录到退出系统期间,用户输入的每个命令都会经过解释及执行,而这个负责的机制就是 Shell。 (10月05日) [查看全文] 下面是一则在Linux平台下编译eXosip2的笔记,可能对大家有用。 程序包准备 libosip2-3.0.1.tar.gz 将两个程序包放在同一个目录下 先编译osip2 (10月04日) [查看全文] 今天闲来无事,准备在Linux下看看sip的东西。 从网上下了osip2和eXosip2的源码,才没有多久,怎么都到3.1.0版本了。 如果是需要系统安装,则按照标准程序(解压,Makefile,make和make install),先osip,后eXosip即可。但我不想安装到系统,只想做一些应用开发,所以需要仔细看一下。 (10月04日) [查看全文] 在微软领导 C# 开发的Anders Hejlsberg,曾负责编写Turbo Pascal系统,并且是Delphi语言开发团队的首席架构师。 (10月03日) [查看全文] |
内容分类
本周热门内容
赞助商连接
|