UNIX 系统家族树的详细历史(图)

下面的图表显示今天的主要版本的Unix和类Unix操作系统的历史和发展道路。 从此幅图可以清晰看到unix的家族史,其中让我注意一历史系统: SVR4,4.4BSD,FreeBSD,Linux,MAC OS X,Solaris.了解unix历史,让我们明白unix本身,产生更大的兴趣。

2015-07-30 20:04:30

阅读数:859

评论数:0

键盘处理

键盘通过中断来提醒CPU产生了数据,按下与松开都会产生扫描码。 键盘产生的扫描码个数不同,从1个到4个,这应该是键盘设计时的问题。设计时没充分考虑向后兼容,结果大量生产后像修改也无法修改。这在软件行业处处可见。

2015-07-30 19:18:28

阅读数:173

评论数:0

linux内核bootsect.S和setup.S流程

bootsect.s流程 将0x07c00的代码移动到0x90000处并跳转到0x90000处继续执行。 (0x07c00的代码BOIS加载的引导扇区) 跳转后重新设置寄存器(设置段寄存器为0x9000,sp为0x4000-12,代码段,数据段,堆栈段都设置完毕) 从内存0x00078复制原软驱...

2015-07-26 19:13:28

阅读数:777

评论数:2

Linux系统调用

目录: 1. Linux系统调用原理 2. 系统调用的实现 3. Linux系统调用分类及列表 4.系统调用、用户编程接口(API)、系统命令和内核函数的关系 5. Linux系统调用实例 6. Linux自定义系统调用 1.系统调用原理 系统调用,顾名思义,说的是操作系统...

2015-07-24 20:43:23

阅读数:303

评论数:0

Linux1.0系统调用列表

以下为linux1.0支持的系统调用sys_setup, sys_exit, sys_fork, sys_read, sys_write, sys_open, sys_close, sys_waitpid, sys_creat, sys_link, sys_unlink, sys...

2015-07-22 19:53:23

阅读数:304

评论数:0

adjtimex简介

Adjtimex介绍linux系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。另一个时间是 “System clock”也叫内核时钟或者软件时钟,是由软件根...

2015-07-22 19:32:12

阅读数:420

评论数:0

Linux系统时间写入CMOS时钟

我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2005年7月26日的命令如下。      #date -s 07/26/2005      将系统时间设定成下午11点12分0秒的命令如下。      #date -s 11:12:00      注意,这里说...

2015-07-22 19:29:32

阅读数:332

评论数:0

获取设置时间系统调用

名字 用处 time_t time(time_t *t) 获取系统时间,获取的为秒数 int stime(time_t *t) 设置系统时间,设置的为秒数 int gettimeofday(struct timeval *tv,struct timezone *tz) 设...

2015-07-21 19:58:18

阅读数:471

评论数:0

x86—EFLAGS寄存器详解

鉴于EFLAGS寄存器的重要性,所以将这一部分内容从处理器体系结构及寻址模式一文中单独抽出另成一文,这部分内容主要来自Intel Developer Mannual,在后续的内核系列中遇到的许多和EFLAGS寄存器有关的内容将直接从本文引用。众所周知,IA-32体系结构为通用系统(genera...

2015-07-19 20:09:01

阅读数:189

评论数:0

cocos2dx 安卓下文件写入

windows下开发cocos2dx程序时,直接使用相对地址对程序进行读取与写入,并未出现问题,但在编译成安卓平台下的程序时出现无法写入问题。 以下是资料: CCFileUtils::sharedFileUtils()->getWriteablePath() 实际路径 http://bl...

2015-07-18 19:59:57

阅读数:571

评论数:0

setuid seteuid setreuid 三个函数讲解

int setuid(uid_t uid) 1) 若进程具有超级用户权限,则setuid将实际用户ID、有效用户ID及保存的设置用户ID设置为uid 2) 若进程没有超级用户权限,但是uid等于实际用户ID或保存的设置用户ID,则setuid只将有效用户ID设置为uid...

2015-07-18 11:45:47

阅读数:392

评论数:0

用户管理系统调用

名字 用处 getuid() 获取用户ID setuid() 设置用户ID getgid() 获取组ID setgid() 设置组ID getgroups() 设置附加组ID setgroups() 设置附加组ID

2015-07-18 11:43:03

阅读数:357

评论数:0

uname

主机信息 正如我们可以确定用户信息一样,程序也可以确定其运行的计算机的信息。uname命令提供了这些信息。uname同时也作为一个系统调用来在一个C程序中提供同样的信息,我们可以使用man 2 uname来查看详细的信息。许 多情况都需要主机信息。我们也许希望依据在网络中一个程序所运行的机器的名字...

2015-07-17 19:52:12

阅读数:356

评论数:0

setgroups函数:设置组代码函数

函数说明:setgroups()用来将list 数组中所标明的组加入到目前进程的组设置中. 参数size 为list()的gid_t 数目, 最大值为NGROUP(32)。#include <grp.h> int setgroups(size_t size, const gid_t *...

2015-07-16 20:50:16

阅读数:1237

评论数:0

getgroups()函数:获取组代码函数

函数说明:getgroup() 用来取得目前用户所属的组代码. 参数size 为list() 所能容纳的gid_t 数目. 如果参数size 值为零, 此函数仅会返回用户所属的组数。#include <unistd.h> #include <sys/types.h>...

2015-07-16 20:45:58

阅读数:288

评论数:0

Linux读取目录函数readdir以及inode结构简介

readdir   语法: struct dirent* readdir(DIR* dir_handle);   返回值: dirent结构   函数种类: 文件存取           内容说明 本函数用来读取目录。返回目录中的文件名称...

2015-07-13 20:15:31

阅读数:604

评论数:0

readdir(系统调用)

#include <stdio.h> #include <fcntl.h> #include <linux/types.h> #include <linux/dirent.h> #include <linux/unistd.h>int e...

2015-07-13 20:13:46

阅读数:664

评论数:0

使用/dev/kmem读取内核变量的值

调试嵌入式Linux内核时,可能需要查看某个内核变量的值。/dev/kmem正好提供了访问内核虚拟内存的途径。现在的内核大都默认禁用了/dev/kmem,打开的方法是在 make menuconfig中选中 device drivers –> Character devices –>/...

2015-07-12 17:04:30

阅读数:718

评论数:0

关于设备文件

设备管理是操作系统必须完成的任务。而linux用“设备也是文件的概念”十分出色的完成了该任务。 linux下对设备进行分类,主要分为3大类,字符设备,块设备,网络设备。字符设备主要完成输入输出功能,例如鼠标设备/dev/psaux,图形界面设备/dev/fb0。块设备是硬盘,软盘等辅助存储设备,...

2015-07-11 20:21:39

阅读数:347

评论数:0

全面的framebuffer详解

一、FrameBuffer的原理 FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。 Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出 FrameBuffer这个设备来供用户态进程...

2015-07-09 20:26:04

阅读数:209

评论数:0

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