惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
P
Privacy International News Feed
T
Tenable Blog
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
S
Securelist
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
月光博客
月光博客
T
The Blog of Author Tim Ferriss
Scott Helme
Scott Helme
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
C
Cisco Blogs
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Security Latest
Security Latest
Blog — PlanetScale
Blog — PlanetScale
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
博客园 - 三生石上(FineUI控件)
I
InfoQ
Spread Privacy
Spread Privacy
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
C
CERT Recently Published Vulnerability Notes
A
About on SuperTechFans
博客园_首页
Engineering at Meta
Engineering at Meta
Project Zero
Project Zero
Latest news
Latest news

博客园 - 飘啊飘

一个精简的vi源码(2000行) dtruss 粗糙的翻译 gdb常用命令[转] gdb中信号的处理[转] 在linux中通过进程名获得进程id busybox0.60.3源码学习开始 pygame做的贪吃蛇 python中使用struct模块处理二进制数据 使用PYGAME开发的坦克游戏[代码][思路] 一篇很好的讲/etc/inittab的文章[转] 哲学家吃空心粉问题 《代码整洁之道》笔记之函数 使用面向对象概念优化条件判断语句的一个小应用 python生成文件树的代码 深入理解软件包的配置、编译与安装[转] pygame学习之对象移动 pywin32重启电脑 - 飘啊飘 - 博客园 解决LINUX和WINDOWS时间不一置 通过状态机实现的一个配置读取函数
UNIX基础知识--《APUE》第一章笔记
飘啊飘 · 2010-10-29 · via 博客园 - 飘啊飘

内核:可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。一般而言,我们称这种软件为内核(KERNEL)。它相对较小,位于环境的中心。

UNIX系统调用:

内核,系统调用)

Shell,库函数

应用软件

最下层是内核,最上层是应用软件

Shell:Shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口。它是一个命令行解释器,它读取用户输入,然后执行命令保存用户密码的文件中,最后一个字段指名了用户使用哪个shell,系统通过检测这个字段,来选择使用哪个Shell。

操作系统:内核和程序运行环境

文件和目录:

目录的起点成为根(root),其名字是一个字符/。目录是一个包含许多目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件树形的信息。

文件属性包括:文件类型、文件大小、文件权限(其他用户能否访问该文件)以及文件最后的修改事件等。stat和fstat函数返回包含所有文件属性的一个信息结构。

文件名要求:不能出现在文件名中的字符只有斜线(/)和空操作符两个。斜线用来分割构成路径名的各文件名,空操作符则用来标示文件名的结束。

路径名:

一个或多个以斜线分割的文件名序列构成路径名,以斜线开头的路径名称为绝对路径名 ,否则称为相对路径名。文件系统根的名字(/)是一个特殊的绝对路径名,它不包含文件名

输入输出:

文件描述符:通常是一个小的非负整数,内核用它标识一个特定的进程正在访问文件。

每当运行一个进程时,所有的shell都为其打开三个描述符:标准输入,标准输出,以及标准出错。

程序和进程:

程序:程序是存放在磁盘上、处于某个目录中的一个可执行文件。使用6个exec函数由内核将程序读入存储器,使其执行。

进程:程序的执行实例称为进程。进程ID总是一非负数。获得当前进程编号:getpid()

错误处理:

规则:

1、如果没有出错,errno的值不会被一个例程清除,因此,仅当函数的返回值指明出错时,才效验期值。

2、任何一个函数都不会将errno的值置为0.

两个处理错误的函数:

char *strerror(int errnum);

void perror(const char *msg);

perror是标准库中的函数,msg参数用于说明错误出在哪

strerror返回错误信息通过错误ID

用户标识:

用户ID通过getuid来获得

组ID通过getgid来获得

用户和密码信息保存在/etc/passwd和/etc/shadow文件中

信号:

信号是通知进程已发生某种事件的一种技术。通过Ctrl+字母可以发送事件给终端下运行的程序。如果程序需要处理信号,必须先注册信号处理函数,然后当事件触发的时候,以回调的方式来响应。

时间表示:

1、日历时间:使用UTC(国际标准时间,从1970年开始)时间来表示,该时间是1970年开始所累计的秒数值。C语言中的函数都是使用这种来表示的,如time_t

2、进程时间:CPU时间,用以度量进程使用的CPU资源。UNIX提供一个类型clock_t来保存这种时间值,通过sysconf来获得。unix提供shell程序time来获得时间。