Linux进程控制:我的心得 (linux进程控制 心得)

随着计算机技术的不断发展,操作系统已经成为了计算机系统中不可或缺的一部分。而进程是操作系统中最基本也是最重要的概念之一。追根溯源,操作系统的本质其实就是对进程的管理和控制。由于Linux操作系统应用广泛,因此Linux进程控制便成为了宝贵的资产。在这篇文章中,我将会分享我在学习Linux进程控制方面的心得。

进程是什么?

在我们深入研究Linux进程控制之前,首先需要了解进程的概念。简单来说,进程是正在运行的程序的一个实例。在Linux操作系统中,每个进程都有一个唯一的进程ID(PID),该ID由系统自动生成。

进程的状态

进程的运行状态可以被分为三类:运行状态(Running),就绪状态(Ready),以及阻塞状态(Blocked)。

– 运行状态:指进程正在执行的状态;

– 就绪状态:指进程已经准备好执行,但是当时CPU资源已经被其他进程占用时,为了排队,只能等待;

– 阻塞状态:指进程在等待一些事件的发生,如等待输入/输出(I/O)操作完成或等待信号量解锁等等,该进程被阻塞,无法执行。

进程的控制

进程的控制是指应用程序在运行时,进程的创建、运行和销毁的过程。Linux操作系统提供了多种API函数和系统调用,可以使程序员通过代码来操控进程。在这里,我将着重介绍进程的创建、运行和销毁这几个方面。

1. 进程的创建

在Linux中,创建进程有两种方式:

1.1 fork()函数

fork()函数是一个系统调用,它有一个返回值,如果是在父进程中执行,那么fork()函数返回的是子进程的PID,如果在子进程中执行,那么fork()函数返回的则是0。下面是fork()函数的示例代码:

“`

#include

#include

int mn() {

pid_t pid;

pid = fork();

if(pid == 0) {

printf(“In child process.\n”);

} else {

printf(“In parent process. Child PID:%d\n”,pid);

}

return 0;

}

“`

1.2 exec()函数族

exec()函数族可以用来启动其他的进程,与fork()函数不同的是,exec()函数族调用成功后,原先进程中的代码被替换为新的执行程序,也就是说调用exec()函数后,原进程已经不存在了,只剩下新产生的进程。exec()函数族一共有6个函数,下面是它们的名称以及用法:

2. 进程的运行

进程的运行是指进程状态变为Running状态,开始执行任务或程序。

2.1 wt()函数

wt()函数是父进程用来等待子进程的结束的函数。下面是wt()函数的示例代码:

“`

#include

#include

#include

#include

int mn() {

pid_t pid;

int status;

pid = fork();

if(pid == -1) {

perror(“fork fled.”);

exit(EXIT_FLURE);

}

if(pid == 0) {

printf(“In child process.\n”);

exit(EXIT_SUCCESS);

} else {

printf(“In parent process. Child PID:%d\nWting for child process to complete…\n”,pid);

wt(&status);

if(WIFEXITED(status)) {

printf(“Child process exited normally with code:%d\n”,WEXITSTATUS(status));

}

if(WIFSIGNALED(status)) {

printf(“Child process was terminated by signal with signal num:%d\n”,WTERMSIG(status));

}

}

return 0;

}

“`

2.2 exec()函数族

在进程运行状态中,如若想要替换进程的执行文件,可以使用exec()函数族。这些函数都是用来执行其他的可执行程序,调用了函数后,进程运行状态被改变为新的程序的运行状态。

3. 进程的销毁

销毁进程的主要目的是为了释放已经被占用的内存、缓存等资源。在Linux中,进程的销毁有以下三种方法:

3.1 exit()函数

exit()函数是一个系统调用,它用来终止正在调用的进程。该函数可以使用0-255(8bit)范围内的整数值作为退出码,这个退出码的值可以被其他进程收集和使用。

3.2 kill()函数

kill()函数的作用是向指定PID进程发送指定信号。如果进程接收到该信号,进程便会被销毁。kill()函数的常用信号有:

3.3 abort()函数

abort()函数用于向系统发送SIGABRT信号,该信号会致使进程强制终止。

结语

相关问题拓展阅读:

linux论文

我是一个LINUXD的初学者,在看了N篇LINUX的介绍之后,在本着大胆和心细的原则下,尝试了一回安装LINUX。现把我的一些心得和体会和大家分享,希望对一些入门级的兄弟姐妹有所帮助。

我装的是RED

HAT

LINUX

9.0,我原来的操作系统是WIN2023,本着学习LINUX的和省钱至上的想法,我选择了安装2023和LINUX的双系统,我在我们的校园网上下载了LINUX的3CD印象文件(就是ISO文件),先保存在随意的一个硬盘里,只要不是你要准备装LINUX

的那个硬盘就行。然后开始对你的硬盘分区,关于怎么个分法,这一类的文章相信用GOOGLE一搜,肯定好几十页,我就是这么看了两天的。在这里我讲一下实际操作。

你首先要有一个未使用的分区,就是空的分区,并且保证这个分区是你逻辑分区的最后的分区。当然,其他也不是一定不可以,但是等你装好LINUX后,那么原先的分区文件的注册表将遭到破坏,所以我建议更好还是把最后的那个分区清空,空间吗喊搭,根据要安装的类型而定,我建议10G,反正现在的硬盘都挺大的,要是空间有问题,那就请PQMAGIC来帮忙吧,不会破坏原来的文件。

再下来是做一些准备工作,更好准备一些系统设备的信息,比如键盘类型,鼠标型号什么什么的,在系统的设备管理栏都有显示,你要是嫌麻烦,还有更简便的,用系统优化大师,保存所有系统信息,然后打印。一般在安装的时候用不了那么多,但有备无患嘛。呵呵!然后有两种方法可以引导系统的安装程序,看你怎么选择,之一就是从进入DOS,在DOS下启动AUTOBOOT命令(通常在光盘的之一张碟里有个dosutils文件,用虚拟光驱工具把它COPY出来,保存好,在DOS下就从这个路径启动AUTOBOOT命令)。还有一种方法就是做一张引导软盘,做引导软盘的文章很多,我这里就不讲了。从DOS启动特点是方便,用芦告引导软盘呢,做盘麻烦一点,做好盘以后,插入盘就点重启,就可以等着进入安装界面了。选哪一种就看个人爱好了!不妨,两个都准备好。:)

在进入安装界面后,有询问ISO文件位置,键盘类型,语言,安装类型的对话界面,一路选好后就到了选择安装目标位置的地方,这个地方一定要谨慎!首先选中你准备安装LINUX的分区,删除它!再重新分配这个空间,建议分两个区,一个根分区,挂载点为“/”,类型选EXT3。另一个分区为交换分区,类型是陪渗明SWAP,大小是你内存大小的一到两倍。假如你有很多用户,或是有很多用途,还可以分一些BOOT区、URS区等等,请参照其它一些相关说明文章,我没有用,在这里也就不敢瞎说了,呵呵!

在后来有选择软件包和鼠标类型的对话界面,很轻松就可以搞定了,后来有一个界面是决定LILO的安装位置的,LILO是一个双系统引导程序,假如你已经有了2023或其他的WIN操作系统,我建议你把它装在MBR,也就是整个硬盘的引导区。要是你不怕麻烦也可以把它装在LINUX的根分区,以后可以通过设置LINUX分区为活动分区,达到引导双系统的目的。最后你就等机器慢慢安装吧,时间视机器速度而定,我的128内存,用了40分钟左右,最后安装好了,会提示是否创建启动盘,我和LINUX的建议一样,强烈建议建一个,以后大有用处!!

经过一大段的OK之后,你就正式进入LINUX了。在之一次进入LINUX时候,系统回要求你做一些回答,很简单,几乎一路点下去就可以了。再往后就要看你怎么去跑你的REDHAT了。

Linux系统使用越来越广泛,关系Linux的安全越来越受到人们的重视,本文结合笔者在Linux系统安全管理方面的一些经验体会,从账户、密码策略、文件权限,日志管理、远程访问等5个方面,对linux系统安全谈谈自己的体会,供大家参考。

一、引言

随着Internet/Intranet网络的日益普及,Linux作为一个现代的操作系统,正在各个方面得到广泛的应用。Linux在服务器、嵌入式等方面已经取得不俗的成绩,在桌面系统方面,也逐渐受到欢迎。于是Linux的安全问题也逐渐受到人们的重视。

Linux是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入 Linux系统,或者盗取Linux系统上的重要信息。因此,详细分析Linux系统的安全机制,找出它可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。针对Linux的基本安全防护,笔者这里稍做介绍。

二、Linux系统的安全策略

1.Linux系统的用户账号策略

管理员的工作中,相当重要的一环就是管理账号。在管理 Linux 主机的账号时,一个最重要的方面就是确保每一个UID仅仅使用一次。

另外就是设置有限的登陆次数来预防无休止的登陆攻击,通过编辑/etc/pam.d/system-auth,添加下面两句可以设置账户最多连续登陆5次,超过5次账户将被锁定,只有管理员才能帮助解锁。

auth required pam_tally.so deny=5

account required pam_tally.so

2.密码策略要求

(1)口令时效和口令长度的设置。口令时效和口令长度是一种系统机制,用于强制口令在特定的时间长度后失效。对用户来说,这可能带来了一些麻烦,但是它确保了口令会定期进行更改,是一项很好的安春岩判全措施。默认情况下,绝大多数的Linux版本并没有打开口令时效,不过要想打开却非常简单。通过编辑/etc/login.defs,你可以指定几个参数,来设置口令实效和口令长度的默认设定:

PASS_MAX_DAYS99999

PASS_MIN_DAYS 0

PASS_MIN_LEN5

PASS_WARN_AGE7

当设置口令时效的天数为99999时,实际上相当于关闭了口令时效。一般设定为90天或者更短时间来更改一次。PASS_MIN_DAYS参数则设定了在本次密码修改后,下次允许更改密码之前所需的最少天数。PASS_MIN_LEN是指密码设置的最小长扒改度,一般定义为8位以上。PASS_WARN_AGE的设定则指明了在口令失效前多少天开始通知用户更改密码(一般在用户刚刚登陆系统时就会收到警告通知)。

(2)控制密码使用频率。控制适度的密码重用频率,也可以为密码的安全策略提供良好的保护,可以通过编辑/etc/pam.d/system-auth设定密码重用。一般枣侍设置重用密码前更换密码的最小次数为4次。

password required pam_unix.so remember=3 use_authtok md5 shadow 或者 password sufficient pam_unix.so remember=3 use_authtok md5 shadow。

3.Linux的基本文件权限要求

Linux中每一个文件都具有特定的属性,主要包括文件类型和文件权限两个方面。可以分为5种不同的类型:普通文件、目录文件、链接文件、设备文件和管道文件。所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行。Linux 是一个多用户操作系统,它允许多个用户同时登录和工作。因此正确的文件权限设定是非常重要的。与系统安全关系较为密切的几个文件目录权限设置要求如下表:

4.Linux日志文件管理

日志对于系统安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。因此,保护系统日志安全,不被内部用户或外部入侵者修改或删除显得尤为重要。

在Linux系统中,有三个主要的日志子系统:

连接时间日志——由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

进程统计——由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。

错误日志——由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

Linux的日志文件很多,但是/var/log/wtmp,/var/log/messages,/var/log/faillog(权限设置为600) ,/var/log/secure (如果是Debian,/var/log/auth.log将代替它)更好是存在的。

如果服务器支持很多的用户的话,这些日志文件的大小会很快地增加,在服务器硬盘不是非常充足的情况下,必须采取措施限制日志文件的大小,定期做好日志备份和清除是非常重要的。

5.Linux的远程登录:使用OPENSSH代替FTP和Telnet

我们通常使用的网络传输程序FTP和Telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,黑客利用嗅探器非常容易截 获这些口令和数据。SSH的英文全称是Secure SHell。通过使用SSH,用户可以把所有传输的数据进行加密,这样即使网络中的黑客能够劫持用户所传输的数据,如果不能解密的话,也不能对数据传输构成真正的威胁。另外,传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP提供一个安全的“传输通道”。在不安全的网路通信环境中,它提供了很强的验证机制与非常安全的通信环境。SSH(Secure Shell)最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH。命令行使用OPENSSH比较麻烦。这里介绍gFTP和OPENSSH整合在一齐,提供一个图形化加密传输方案。gFTP和Windows下的 CuteFTP一样使用非常简单,而且几乎所有的Linux发行版本都带有gFTP,不需要安装就可以使用本论文由无忧论文网整理提供 。Windows下支持SSH的客户端软件不少,推荐使用Putty和Filezilla。

目前很多公司企业对信息安全问题日益重视,完善的信息安全控制架构,先进的管理和技术的结合,才能真正满足公司企业的需要。

参考文献:

王一川 Linux黑客大曝光:Linux安全机密与解决方案.清华大学出版社,2023~10~1

汪 辉等:Linux安全更大化(第二版).电子工业出版社, 2023~1~1

前导工作室 Linux安全:入侵防范、检测、恢复.机械工业出版社,2023~1~1

本论文由无忧论文网整理提供

嘿嘿,我们一个老师,我也在找这题目,南昌大学

南昌大学的吧,选修课的论文吧。。。。。嘿嘿

关于linux进程控制 心得的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux进程控制:我的心得 (linux进程控制 心得)