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

推荐订阅源

T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Hacker News - Newest:
Hacker News - Newest: "LLM"
V2EX - 技术
V2EX - 技术
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Fortinet All Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
A
Arctic Wolf
美团技术团队
Cloudbric
Cloudbric
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
S
Security Affairs
T
Tenable Blog
MyScale Blog
MyScale Blog
W
WeLiveSecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
博客园_首页
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
月光博客
月光博客
宝玉的分享
宝玉的分享
博客园 - Franky
PCI Perspectives
PCI Perspectives
H
Hacker News: Front Page
D
Docker
博客园 - 司徒正美
L
LINUX DO - 最新话题
GbyAI
GbyAI
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
InfoQ
Microsoft Azure Blog
Microsoft Azure Blog
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
T
Threatpost
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
Y
Y Combinator Blog
AI
AI
有赞技术团队
有赞技术团队
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
O
OpenAI 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来获得时间。