Linux基础第一节 概述,linux第一节概述

发布时间:2018-11-15  栏目:LINUX  评论:0 Comments

非阻塞IO

 

第一章 概述

死锁

一连俩赖加锁,加锁后,没有解锁,又累加锁,会招致死锁。
运用循环锁,可以还加锁   通过定义锁的特性,变为循环锁
 例:pthread_mutexattr_t attr;  pthread_mutexattr_init(&attr);
 pthread_mutexattr_settype(&attr,
PTHREAD_MUTEX_RECURSIVE);pthread_mutex_init(&mutex,&attr)

加锁后,忘记解锁,也会见冒出死锁
 C++中行使析构函数,可以避免忘记解锁,定义一个类

 

1.3 操作系统及应用程序

操作系统这个词语有二意性,有时候指内核,有时候指内核和系统工具软件的组合。

   图片 1    

操作系统是治本网硬件的软件。操作系统是直接运行在裸机之上。其他以软件运行于操作系统之上。

操作系统本身提供操作接口,支持用户通过该接口来操作
系统,但是系统自身提供的效用,不足于完成用户需时,则用付出应用程序来展开系统功能。

发行版:
不等之局以Linux内核,加上自己开发的体系工具软件,一起发布之Linux操作系统版本。

线程

鼠标键盘都是特念之字符文件夹设备,所以可以以函数进行监察
 一般在/dev/input/mic 文件下面  注意权限问题
 鼠标键盘读取数据,是俩独过程,注意进程的封堵问题
 可以采取字进程和父进程进行拍卖

匿名管道  pipe()创建管道

 

 

mmap  可以兑现有亲子关系进程的文件共享
 效率不如,数据写入内存,在从外存中读取数据
 运用shm_open实现文件共享也可以

文本内存共享,无法展开通信

 

透过锁,让过程共享内存进行通信  pthread_mutex_init
 需要拿锁在共享内存中  

 

fork  +  exec 让过程来两样之力量

 

http://www.bkjia.com/Linuxjc/1209387.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/1209387.htmlTechArticleLinux基础第一章 概述,linux第一章节概述 第一章节 概述
1.1 前言
本章讨论系统的概念,从硬件、操作系统角度更是深切的明白计算机体系,并快…

命令

touch:修改文件的看时间,创建文件
cat:访问文件内容
vim:编辑
ulimit:显示有限量信息(文件讲述吻合最要命价值、栈的上空尺寸)
umask:文件创建的权能掩码
getconf:对应sysconf

dd:可以拷贝块设备,但是一旦sudo权限  例  dd if=位置 of=文件名  bs=一赖稍k cout=拷贝次数

Wc:计算文件的行数  单词个数
字节数

unlink:删除软链接

 

1.5 文件

文本是一个要害的定义,一般定义也信之集纳。计算机做啊信息处理的机,文件是电脑处理的靶子。

当Unix和Linux系统中,泛化了文件的定义,设备也被架空成文件对象来进行操作。

数量的集叫做文件。
IT行业处理信息:转换,传输,存储

1.9 信号

信号是经过通信的如出一辙种手段,某个进程收到信号,该信号可能出自内核、来自外进程或来用户操作。例如:当用户以下ctrl+c时,其实是让前台进程发送了一个信号。

编程规则:

设umask=0;

调用fork,让大人进程退出。    让大人进程变为init,
 如果父亲进程不退,用俩次fork()

调用setuid创建新会话  setsid

重设当前目录/根目录     chdir        

关不欲的公文讲述符    运用循环关闭所有文件讲述吻合

高级IO

一个进程就是均等段指令

命令

touch:修改文件之造访时,创建文件
cat:访问文件内容
vim:编辑
ulimit:显示有限制信息(文件讲述吻合最老价值、栈的上空尺寸)
umask:文件创建的权杖掩码
getconf:对应sysconf

dd:可以拷贝块设备,但是倘若sudo权限  例  dd if=位置 of=文件名
 bs=一蹩脚稍k cout=拷贝次数

Wc:计算文件之行数  单词个数 字节数

unlink:删除软链接

 

1.7 错误处理

系统调用在相似情形下回来整数,并且0表示成功,小于0代表失败。当系统调用返回失败时,可以通过errno获得错误嘛,通过strerror获取错误解说,或者直接通过perror在正式错误文件中,输出错误信息。

 

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
// 通过open返回的平头,在linux中生出个特别的名
// 叫文件讲述符 file description 简称fd

int fd = open(“a.txt”, O_WRONLY|O_CREAT|O_EXCL, 0777);
if(fd < 0)//表示文件打开失败
{
perror(“open”);
return 0;
}

// 把指针放到文件开始
lseek(fd, 0, SEEK_SET);

// 对文本进行操作
write(fd, “hello”, 5);

// 关闭文件,如果非关门,内存会泄漏
// 当进程退出时,未关门的文书会自动关闭
close(fd);

}

非阻塞IO

 

线程的创建 

 pthread_created(1,2,3,4)
//1:线程的id  2:线程的之性  3:新线程的函数名字, 4:新线程的特性    要链接  -lpthread  库   

注意子线程是隶属主线程的,主线程结束,子线程无法运转    
这个 pthread_exit(0)主线程结束,子线程没有退例外

 

运用pthread_equal  判断线程是否等,先等回回0  不对等返回非零值

pthread_jion(1,&ret)  阻塞调用 1:线程id  ret:线程返回值

 

pthread_t tid = pthread_self()  得到时运行过程的id

1.9 信号

信号是经过通信的相同种植手段,某个进程收到信号,该信号也许源于内核、来自其他进程或来用户操作。例如:当用户仍下ctrl+c时,其实是叫前台进程发送了一个信号。

1.4 启动同登陆

图片 2

配置文件:
/etc/profile:系统启动时为实践
~/.bashrc:用户登陆时见面调用

高级IO

一个进程就是均等段落指令

函数:

perror:对某种错误信息进行打印

open/creat:打开文件/创建文件
read:读文件
write:写文件
close:关闭文件
lseek:定位文件读写位置
fcntl:修改文件属性
sysconf:读取系统布局
dup/dup2:复制文件讲述称
sync/fsync/fsyncdata:同步文件数量
mmap/munmap:文件映射
mkstemp:得到临时文件路径

1.6 程序、进程

1.8 用户、组、文件权限

Linux是基本上用户系统,支持多独用户以登陆系统。
为安全起见,需要针对系的权柄加于规范。

避二元个线程同时操作全局变量,第一单线程运用了锁,后面的线程在外面当,等待解锁后,后面的线程在进入

文件操作

头文件:sys/types.h  sys/stat.h
 fcntl.h  例:int fd=open(“文件路径”,mode);
 mode决定了对文件的操作办法
  第三只参数可发可无论是,对文件权限进行拍卖,   因umask存在,创建文件权限要跟上000 000 010底相反,导致用户权限开始不能够发描绘的权能

mode选项

解释

O_RDONLY

读方式打开(与后面俩个互斥)

O_WRONLY

写方式打开

O_RDWR

读写方式打开

O_CREAT

创建文件,如果文件存在,直接打开

O_TRUNC

截断

O_APPEND

追加

O_EXCL

和O_CREAT一起用,如果文件存在则失败

死锁

接连俩潮加锁,加锁后,没有解锁,又继续加锁,会招致死锁。
运用循环锁,可以重复加锁   通过定义锁的特性,变为循环锁
 例:pthread_mutexattr_t attr;  pthread_mutexattr_init(&attr);
 pthread_mutexattr_settype(&attr,
PTHREAD_MUTEX_RECURSIVE);pthread_mutex_init(&mutex,&attr)

加锁后,忘记解锁,也会见产出死锁
 C++中行使析构函数,可以避免忘记解锁,定义一个像样

 

epoll的运用

epollfd  创建文件讲述符集合

epol_ctl将文件讲述加入集合中

管道

一边读,一边写

信号

凡是决定过程通信的同样栽方式,效率高,成本低

信号处理方式:掩盖、忽略、默认处理

掩码:延迟信号的拍卖  运用信号集合   

幂不可因信号,多次殡葬,只处理同赖
  掩盖:可靠信号  处理多次

进程

fork()创建

 

读写锁

pthread_rwlock_t mutex;

pthread_rwlock_init(&mutex, NULL);

读/写锁定pthread_rwlock_rd/wrlock(&mutex);

解锁:pthread_rwlock_unlock(&mutex);

1.1 前言

本章讨论系统的概念,从硬件、操作系统角度更是深厚的知计算机体系,并迅速浏览Linux系统提供的服务。

1.1 前言

本章讨论系统的定义,从硬件、操作系统角度更是深厚的知情计算机体系,并迅速浏览Linux系统提供的劳务。

select的运用

行使文件讲述符集合  运用fd_set创建文件讲述符集合
 文件接口相对比小,跨平台应用

FD_SET(1,2) 将文件讲述符放入文件讲述符集合  1:文件讲述符
 2:集合名字

1.10 系统调用和库函数

学Linux系统开发接口时,程序员也亟需上学一般常用之老三方库,来展开程序员的编程能力。

 

图片 3

User Space和Kernel
Space是操作系统编程中常用的定义,表示目前的代码在用户空间还是基本空间运行,对于不同的运转空间,CPU对内存的处理方式稍有两样,在叙进程虚拟地址空间时再次干拖欠概念。

系调用指操作系统内核提供的功效,它提供了接口给用户空间代码调用。比如open/read/write/close等,都是属Linux系统操作接口,而fopen/fread/fwrite/fclose是属C标准提供的接口,在Linux下,fopen其实底层调用了open。

安排文件:
/etc/profile:系统启动时叫执行
~/.bashrc:用户登陆时会见调用

epoll的运用

epollfd  创建文件讲述符集合

epol_ctl将文件讲述加入集合中

select的运用

动文件讲述符集合  运用fd_set创建文件讲述符集合
 文件接口相对比小,跨平台以

FD_SET(1,2)
将文件讲述符放入文件讲述符集合  1:文件讲述符  2:集合名字

读写锁

pthread_rwlock_t mutex;

pthread_rwlock_init(&mutex, NULL);

读/写锁定pthread_rwlock_rd/wrlock(&mutex);

解锁:pthread_rwlock_unlock(&mutex);

1.6 程序、进程

图片 4

1.2 系统做

避免二元只线程同时操作全局变量,第一独线程运用了锁,后面的线程在外场当,等待解锁后,后面的线程在登

 图片 5  

匿名管道  pipe()创建管道

 

 

mmap  可以实现有亲子关系进程的文件共享
 效率不如,数据写入内存,在由内存中读取数据
 运用shm_open实现文件共享也得以

文件内存共享,无法展开通信

 

由此锁,让过程共享内存进行通信
 pthread_mutex_init  需要以锁在共享内存中  

 

fork  +  exec 让过程来不同的功用

 

看护进程

医护进程不跟极关联,注意这过程只能有一个,创建文件记录,判断这个程序是否被

第一章 概述

线程的创办 

 pthread_created(1,2,3,4) //1:线程的id  2:线程的的性质
 3:新线程的函数名字, 4:新线程的特性    要链接  -lpthread  库   

注意子线程是隶属主线程的,主线程结束,子线程无法运行    
这个 pthread_exit(0)主线程结束,子线程没有退出例外

 

运用pthread_equal  判断线程是否等于,先等回到回0  不抵返回非零值

pthread_jion(1,&ret)  阻塞调用 1:线程id  ret:线程返回值

 

pthread_t tid = pthread_self()  得到时运作过程的id

编程规则:

设umask=0;

调用fork,让老爹进程退出。    让大人进程变为init,  如果父亲进程不离,用俩次fork()

调用setuid创建新会话  setsid

重设当前目录/根目录     chdir        

关不欲的文本讲述符    运用循环关闭所有文件讲述吻合

IO复用技术

1.2 系统做

 图片 6

 

1.10 系统调用和库函数

学Linux系统开发接口时,程序员也亟需上学一般常用的老三方库,来开展程序员的编程能力。

  图片 7

User Space和Kernel
Space是操作系统编程中常用之概念,表示目前的代码在用户空间还是水源空间运行,对于不同之周转空间,CPU对内存的处理方式稍有不同,在言语进程虚拟地址空间时重涉及该概念。

网调用指操作系统内核提供的职能,它提供了接口给用户空间代码调用。比如open/read/write/close等,都是属于Linux系统操作接口,而fopen/fread/fwrite/fclose是属C标准供的接口,在Linux下,fopen其实底层调用了open。

部署文件:
/etc/profile:系统启动时吃执行
~/.bashrc:用户登陆时会见调用

1.3 操作系统和应用程序

操作系统是词语来二意性,有时候指内核,有时候指内核和系统工具软件的成。

 

 图片 8

 

 

操作系统是管理网硬件的软件。操作系统是一直运行在裸机之上。其他以软件运行于操作系统之上。

操作系统本身提供操作接口,支持用户通过该接口来操作
系统,但是系统本身提供的功力,不足于完成用户要求时,则用付出应用程序来进展系统功能。

发行版:
不等之店堂以Linux内核,加上自己支付的网工具软件,一起发布之Linux操作系统版本。

1.4 启动和登陆

图片 9

布局文件:
/etc/profile:系统启动时让实施
~/.bashrc:用户登陆时会调用

 

1.7 错误处理

系统调用在貌似情形下返回整数,并且0表示成功,小于0表示失败。当系统调用返回失败时,可以通过errno获得错误嘛,通过strerror获取错误解说,或者直接通过perror在专业错误文件被,输出错误信息。

 

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
// 通过open返回的平头,在linux中来只特别之讳
// 叫文件讲述符 file description 简称fd

int fd = open(“a.txt”, O_WRONLY|O_CREAT|O_EXCL, 0777);
if(fd < 0)//表示文件打开失败
{
perror(“open”);
return 0;
}

// 把指针放到文件开始
lseek(fd, 0, SEEK_SET);

// 对文件进行操作
write(fd, “hello”, 5);

// 关闭文件,如果非关门,内存会泄漏
// 当进程退出时,未关的文件会自行关闭
close(fd);

}

管道

一边读,一边写

信号

凡控制过程通信的如出一辙种艺术,效率高,成本低

信号处理方式:掩盖、忽略、默认处理

掩码:延迟信号的处理  运用信号集合   

幂不可因信号,多次殡葬,只处理同潮   掩盖:可靠信号  处理多次

进程

fork()创建

IO复用技术

1.8 用户、组、文件权限

Linux是大抵用户系统,支持多单用户以登陆系统。
为安全起见,需要针对网的权位加于规范。

医护进程

看护进程不跟极端关联,注意是过程只能发出一个,创建文件记录,判断这个程序是否被

Linux基础第一章 概述,linux第一节概述

过程与线程的区别:

经过:分配资源的单位  线程:调度的单位     多线程可以共享全局变量

图片 10

1.5 文件

文本是一个生死攸关之定义,一般定义为信息的成团。计算机做呢信处理的机械,文件是计算机处理的对象。

当Unix和Linux系统中,泛化了文本之概念,设备也给架空成文件对象来进行操作。

数量的聚集叫做文件。
IT行业处理信息:转换,传输,存储

函数:

perror:对某种错误信息进行打印

open/creat:打开文件/创建文件
read:读文件
write:写文件
close:关闭文件
lseek:定位文件读写位置
fcntl:修改文件属性
sysconf:读取系统部署
dup/dup2:复制文件讲述吻合
sync/fsync/fsyncdata:同步文件数量
mmap/munmap:文件映射
mkstemp:得到临时文件路径

线程

鼠标键盘都是单念之字符文件夹设备,所以可以下函数进行监控
 一般以/dev/input/mic 文件下面  注意权限问题
 鼠标键盘读取数据,是俩只经过,注意进程的隔阂问题
 可以利用字进程以及父进程进行处理

文本操作

头文件:sys/types.h  sys/stat.h  fcntl.h  例:int
fd=open(“文件路径”,mode);  mode决定了针对性文件之操作方法
  第三只参数可出可不论是,对文件权限进行处理,
  因umask存在,创建文件权限要和上000 000
010的反倒,导致用户权限开始免克生出描绘的权杖

mode选项

解释

O_RDONLY

读方式打开(与后面俩个互斥)

O_WRONLY

写方式打开

O_RDWR

读写方式打开

O_CREAT

创建文件,如果文件存在,直接打开

O_TRUNC

截断

O_APPEND

追加

O_EXCL

和O_CREAT一起用,如果文件存在则失败

经过以及线程的分:

进程:分配资源的单位  线程:调度的单位     多线程可以共享全局变量

留下评论

网站地图xml地图