Linux
文章平均质量分 79
Lucius89
睡觉是一件很美好的事,但是为了我的阿里梦,该起来工作了!
邮箱:zj_lingxin@163.com
展开
-
第3章 Linux/UNIX 系统编程概念
第3章 系统编程概念本章涉及到的多个主题是系统编程的预备知识。我们首先会介绍系统调用(system calls)以及在执行过程中的细节。然后我们会讲到库函数,以及它们与系统调用之间的区别,同时对C库(GNU)进行相关描述。当我们使用系统调用或者调用一个库函数时,我们应该经常检查一下返回的状态,以确保是否成功返回了结果。我们会描述如何执行这些检查,并且给出一组函数,用于诊断示例程序中的系统调用和...翻译 2018-10-01 21:36:53 · 219 阅读 · 0 评论 -
第4章 文件IO:通用的IO模型
我们现在正式看一下系统调用API。文件是一个很好的起点,因为它们是UNIX的核心。本章的重点是用于执行文件输入和输出的系统调用。我们会介绍 文件描述符(file descriptor) 的概念,然后看一下I/O模型中用到的系统调用。这些系统调用用于打开和关闭文件,读取和写入数据。我们主要介绍磁盘文件的I/O。但是这里涉及到的大部分知识点与后面章节相关,因为执行I/O的系统调用适用于所有文件类型...翻译 2018-10-03 17:32:47 · 515 阅读 · 0 评论 -
第5章 文件IO:更多详情
在本章中,我们接着讨论文件I/O。继续open()系统调用的讨论,我们会解释 原子(atomicity) 的概念–系统调用以单个不间断的步骤执行的行为。这是许多系统调用正确执行的必要步骤。我们介绍另一个文件相关的系统调用–多用途的 fcntl() ,并且展示它的一个用途:获取和设置打开文件的状态标志(status flags)。接下来,我们看一下内核中用于表示文件描述符和打开文件的数据结构。...翻译 2018-10-03 22:24:13 · 527 阅读 · 0 评论 -
第8章 用户和组
每个用户都有唯一的 登录名 和相关的数值型 用户标识符(UID) 。用户可以属于一个或多个 组(group)。每个组都有唯一 名称 和 组标识符(GID) 。UID和GID的主要目的是决定各种系统资源的所有权和控制进程访问这些资源的权限。例如,每个文件都属于一个特定的用户和组,每个进程都有一些UIDs和GIDs,决定了进程的所有者是谁,访问文件是有哪些权限(详情请看第9章)。在本章中,我们介绍...翻译 2018-10-11 23:17:33 · 788 阅读 · 0 评论 -
第2章 Unix/Linux 系统基本概念
Unix/Linux 系统编程基本概念2.1 The Core Opreating System: The KernelTasks performed by the kernellinux kernel:用于管理和分配计算机资源的核心软件。kernel负责执行以下任务:进程调度:一个计算机有一个或者多个核心处理单元(central processing units, CPUs),用于执...翻译 2018-09-28 17:56:29 · 785 阅读 · 0 评论 -
第9章 进程凭证
每个进程都有一组与之相关的数值型用户标识符(UIDs)和组标识符(GIDs)。有时,把这些标识符称之为 进程凭证(process credentials) 。这些标识符有:实际 【真实】 (real)用户ID和实际组ID;有效(effective)用户ID和有效组ID;保存的set-user-ID(saved set-user-ID)和保存的set-group-ID;文件系统用户ID和文...翻译 2018-10-14 21:48:34 · 433 阅读 · 0 评论 -
第6章 进程
在本章中,我们看下进程的结构,重点关注进程虚拟内存的布局和结构。还会介绍下进程的某些属性。在后续的章节中,会进一步介绍进程的属性 (例如,在第9章中介绍进程凭证,在第35章介绍进程优先级和调度) 。从第24章到27章,我们会介绍进程是如何创建的,如何终止的,如何执行新的程序。6.1 Processes and Programs一个 进程(process) 是一个正在运行程序(program)的...翻译 2018-10-08 21:33:20 · 625 阅读 · 0 评论 -
第7章 内存分配
很多系统程序需要为动态数据结构(例如链表和二叉树)分配额外的内存。动态数据结构的大小(size)取决于运行时的信息。本章阐述了用于在堆中或栈中分配内存的函数。7.1 Allocating Memory on Heap进程可以通过增大堆(heap)来分配内存。堆是一块可变大小的连续内存,随着内存的分配和释放而增大和减小(见Figure 6-1)。堆的当前界线(current limit)被称为 ...翻译 2018-10-09 23:30:56 · 404 阅读 · 0 评论 -
第11章 系统限制和选项
每个UNIX实现对各种系统特性和资源设置了 限制(limits),并提供(或选择不提供)由各种标准定义的选项。包含如下例子:进程同时可以打开多少文件?系统是否支持实时的信号?int类型的变量中可以存储的最大值是什么?程序中的参数列表最大可以有多少?路径名的长度最大是多少?虽然我们可以在应用中对假定的limit和选项进行硬编码(hard-code),但这降低了可移植性,因为限制和选项...翻译 2018-10-16 21:42:54 · 613 阅读 · 0 评论 -
第12章 系统和进程信息
在本章中,将介绍访问各种系统和进程信息的方法。本章的主要重点是讨论 /proc 文件系统。还将阐述uname()系统调用,用于获取各种系统标识符。12.1 The /proc 文件系统在旧的UNIX实现中,一般没有简单的方法通过查看分析(或者改变)内核的属性来回答以下问题:系统中有多少个正在运行的进程,这些进程的所属者是谁?进程打开了哪些文件?哪些文件当前是锁住的,哪些进程持有这些锁?...翻译 2018-10-20 19:54:54 · 296 阅读 · 0 评论 -
设置ssh免密码登录
本文是我看传智播客赵老师视频所记的笔记。初学Hadoop,难免会有一些理解上不正确的地方,欢迎批评指正。配置ssh免密码登录需要生成一对密钥(公钥和私钥)。ssh-keygen -t rsa (-t表示加密的类型,采用rsa加密算法)也可以直接执行:ssh-keygen (默认采用的是rsa加密算法) 执行之后产生了id_rsa (私钥)和 id_rsa.pub(公...原创 2015-03-27 16:37:12 · 1322 阅读 · 0 评论 -
Centos中使用yum安装java时,没有jps的问题的解决。
解决方法:需要安装java-1.X.X-openjdk-devel这个包,他提供了jps这个工具。原创 2015-12-11 15:13:04 · 23001 阅读 · 3 评论 -
文件I/O缓冲
为了速度和效率起见,I/O系统调用(即内核)和标准C库的I/O函数(即stdio函数)在对磁盘文件进行操作时,会缓冲(buffer)数据。本章我们将介绍缓冲的类型以及它们是如何影响性能的。我们还会阐述影响和禁用缓冲的各种技术,并且探讨名为 直接I/O(direct I/O) 的技术,用于在某些情况下绕过内核缓冲。13.1 Kernel Buffering of File I/O: The Buf...转载 2018-10-31 14:59:52 · 594 阅读 · 0 评论