
Linux
yz764127031
一枚渣渣
展开
-
linux编程—who命令编写
来源: 《unix/linux编程实践教程》 原理: who通过读取存放登录用户文件的信息来实现 学习点 1.open,read,close的使用 2.Unix存储时间的方式 版本一#include <stdio.h>#include <utmp.h>#include <fcnt1.h>#include <unistd.h>#define SHOWHOSTint main()原创 2016-11-07 15:23:43 · 796 阅读 · 2 评论 -
linux 系统编程学习经验
简单写一下总结 (1)书籍的选择 个人推荐一下三本: UNIX环境高级编程 https://book.douban.com/subject/1788421/ LINUX系统编程 https://book.douban.com/subject/3907181/ Unix/Linux编程实践教程 https://book.douban.com/subject/1219329/新手入门建议原创 2017-04-19 22:18:27 · 672 阅读 · 0 评论 -
《Linux内核分析》笔记与课件整理
学习思路 孟宁老师这门课并没有完整的分析Linux内核中代码,而是针对关键部分进行了讲解分析,个人认为内核代码也是存在二八定律的情况,少部分关键代码经常被使用,而理解这部分代码对我们认识操作系统的真实工作细节有很好的帮助。 总体来说,整门课程的内容可以分为三个部分: (1)内核分析所需要的知识基础 (2)系统调用的原理和实现 (3)进程管理 第一部分对X86汇编,函数调用堆栈,存储计算机原创 2017-04-30 22:48:24 · 6255 阅读 · 0 评论 -
《现代操作系统》笔记
豆瓣地址:https://book.douban.com/subject/3852290/特色: 1.讲述了操作系统演变的过程 2.没有空洞讲述概念,用图表和C代码讲了操作系统的具体实现什么是操作系统: 自顶向下看,操作系统是扩展机器,向用户提供抽象。 自底向上看,操作系统是资源管理者,给进程提供资源。设计思想: 1.利用CPU高速和人类及I/O设备之间的低速的差距,多个进程共享CPU,虚原创 2017-04-29 19:30:58 · 955 阅读 · 0 评论 -
linux编程环境
个人笔记 一个IDE通常提供编辑,编译,链接,工程管理,调试等功能。 而在使用Linux进行C/C++编程中,这些功能是由vim,gcc,make,gdb四个软件提供支持(也有其他变种)。 使用Linux环境的优势在于一方面在于自由,给开发者进行私人订制的空间,另一方面也是要求使用者对自己的程序负责任,了解程序细节。 vim 基本使用是掌握模式切换,复制粘贴,光标移动和跳转,查找字符串。原创 2017-04-03 13:31:12 · 914 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第十章 I/O重定向和管道
使用shell时,我们常使用以下这类命令:who|sort > userlist含义为shell同时执行who和sort,将who的输出字节送到sort的输出,最后将sort的输出送到userlist文件。实现上述功能的关键就在于管道和重定向。重定向 (1)unix进程使用文件描述符0,1,2作为标准输入,输出和错误的通道,并且通常通过shell运行系统工具时,stdin,stdout,stder原创 2017-03-14 22:43:22 · 319 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第九章 shell
shell脚本 本章通过下面这个简单的shell脚本script0来引入shell编程lsecho the current date/time isdateecho my name iswhoami然后可以用sh script0来执行脚本,或者可以设置文件的执行权限,然后输入文件名来执行脚本:chmod + x script0./script0shell脚本除了命令外,还拥有其他编程语言原创 2017-03-13 20:22:32 · 441 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第八章 编写命令解释器sh
shell如何运行程序 shell用fork建立新进程,用exec在新进程中运行用户指定的程序,最后shell用wait等待新进程的结束。截图 代码: sh1.c 没有使用fork,只能运行一个进程#include <stdio.h>#include <signal.h>#include <string.h>#include <stdlib.h>#define MAXARGS 20原创 2017-03-12 20:05:33 · 680 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第七章 事件驱动编程:编写一个视频游戏
本章以一个弹珠游戏为例,学习了 屏幕编程的curses库(Ubuntu中需要另外安装软件) 时间编程,使用计时器 信号处理 临界区 注意编译的命令为 gcc filename.c - o gamename -l curses游戏代码运行截图 函数调用关系: main——》control——》init——》moveball#include <curses.h>#include <sy原创 2017-03-12 18:09:40 · 530 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第六章 终端控制与信号
因为对这类话题不感兴趣,所以笔记从简。 终端模式分为三种: 规范模式,非规范模式,raw模式 规范模式最常见。驱动程序输入字符保存在缓冲区中,并且仅在接收到回车键时才会将这些缓冲的字符发送到程序,由此可以实现编辑功能,如删除字符等。 可以通过系统调用fcntl进行各种修改。信号是从内核发送给进程的一种简短信息。信号可能来自用户,其他进程或内核本身,进程可以告诉内核,在它收到信号时,需要做出什原创 2017-03-07 10:40:56 · 386 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第五章 连接控制:学习stty
设备文件 在unix系统中,每个设备都被当做一个文件,每个文件都有一个文件名,一个inode号,一个文件所有者,一个权限位的集合和最近修改时间。 且通常表示设备的文件存放在目录/dev中,但是可以在任何目录下创建设备文件。 因此设备支持所有与文件相关的系统调用:open,read,write,lseek.close,stat设备文件的inode 设备文件的inode包含指向内核子程序表的指针原创 2017-03-07 01:04:51 · 323 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第四章 文件系统:编写pwd
文件系统的内部结构 Unix文件系统由三个部分组成: (1)超级块,存放文件系统本身的结构信息。 (2)inode表,每个文件都有一个inode,用来保存文件的属性,inode的位置被称为文件的inode号,inode号是文件的唯一标识。 (3)数据区,存放文件的内容。对目录的理解: 目录是一种特殊的文件,目录是名字和指针的列表,目录中的每个入口指向一个文件或目录,目录包含了父目录和子目录原创 2017-03-07 00:22:03 · 389 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第12章 编写web服务器
本章编写的web服务器本质上只是一个集成了cat和ls的unix shell。 学习要点: (1)HTTP协议 浏览器与web服务器之间的交互主要包含客户的请求和服务器的应答。请求和应答的格式在超文本传输协议(HTTP)中有定义。 1.HTTP请求:GETGET /index.html HTTP/1.0因此我们需要知道如何识别命令和根据参数进行处理。process_rq(char *rq,i原创 2017-03-18 16:13:28 · 1439 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第三章 编写ls
概念准备 目录是一种特殊的文件,它的内容是文件和目录的名字,每一个目录都包括两个特殊的项——“.”(当前目录文件列表)和“..”(上一级目录文件列表)。可以通过命令显示隐藏的文件ls -a 显示出来,也可以通过vim .打开目录文件。 编写ls的思路就是读取.文件,通过printf打印。如何读取目录的内容? 学习三个系统调用:opendir,readdir,closedir编写ls#incl原创 2017-03-03 22:24:00 · 403 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第二章 编写who,cp命令
本人使用的操作系统是:Ubuntu 16 编写之前的准备: 学习编写who命令的第一步在于学会了解who命令的相关信息。 我们使用联机帮助命令man,来参看man的帮助。man who我们可以在描述中看到相关信息: If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common. If AR原创 2017-03-03 12:14:02 · 681 阅读 · 0 评论 -
《unix/linux编程实践教程》学习笔记:第一章概论
书籍豆瓣地址:https://book.douban.com/subject/1219329/概念学习与总结: 这本书是Linux系统编程的入门经典教材,通过使用C语言编写Linux的系统命令和系统软件来学习Linux的系统调用和内部结构。 个人而言,学习这本书主要有两个目的: (1)练习和复习C语言。 (2)复习操作系统的知识,并通过学习Linux的内部构造来理解操作系统中的抽象概念原创 2017-03-02 22:19:17 · 405 阅读 · 0 评论 -
服务器课程小结
本人是某双非一本大学的学生,本学期专业选修课之一,课程的主要内容是学习在Linux系统上部署服务器,进行一些简单的服务器配置。 这门课程学习的前半段是学习简单的Linux命令,课程使用的虚拟机为centos6.6,学习的内容可以简单列举如下: 1.文件目录管理 2.文件权限设置 3.用户管理 4.磁盘管理 5.软件包的安装和管理 6.VIM编辑器的使用以及shell的使用技巧 7.网原创 2017-01-03 20:08:50 · 941 阅读 · 0 评论 -
网络编程
网络编程网络编程的学习主要是通过《UNIX网络编程》来学习的,也看了一下《Effective TCP/IP》和一些项目。网络编程在一个项目中占到的比重一般比较小,更重要的是基于网络的功能的实现,但几乎每一个项目都离不开网络。网络编程细节上的东西也比较多,准备在这里记录一下,主要是TCP,有小部分UDP和UNIX域套接字。IP方面主要是IPv4,但也追求协议无关的编程。网络字节序和主机字节序 根据体转载 2017-05-07 22:37:15 · 671 阅读 · 0 评论