套接字是一种网络中进程间通信的方法。网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。
套接字的特性由3个属性确定:
域(domain)——指定套接字通信中使用的网络介质;
类型(type)——分为流套接字(SCOK_STREAM)和数据报套接字(SOCK_DGRAM);
协议(。protocol)——通常使用默认值。 Continue reading
Category Archives: Linux
文件系统中的inode
为什么需要inode?
在linux系统中,每个文件不仅有内容数据,还包括文件的各种属性,如所属用户组、所属用户、能否执行、文件建立时间、文件特殊属性等等。由于linux操作系统是一个多用户、多任务的环境,为了保护每个用户所拥有的数据的隐秘性,具有多样化的文件属性在所难免。linux文件系统从ext2开始,将文件属性和文件内容分开存储,分别由indoe和block负责。
将一个分区格式化为ext2时,就必须要指定inode与block的大小,即当分区被格式化为ext2的文件系统时候,它一定胡有inode表与块区域这两个区域。 Continue reading
Day Day UP
1. Linux 包括基本shell、命令、vim等(《鸟哥Linux私房菜》),还包括基本操作系统原理(《现代操作系统》《深入理解计算机系统》)
2. C++(《C++ Primer》《Effective C++》《编程之美》)
3. Python(《Python学习手册》《Python核心编程》)
4. MySQL(《高性能MySQL》,MySQL5.6参考手册, InnoDB Plugin参考手册)
5. 数据挖掘(《数据挖掘》)
6. 分布式(Google的核心论文,leveldb|Hadoop,MapReduce)
7. 经济学原理第5版
8. 英语口语以及词汇
9. 名著一月一本
10. 象棋|围棋
11. 识地图
磁盘分区和文件系统结构图
(译)Design and Implementation of the Second Extended Filesystem(1)
Introduction
Linux类似Unix操作系统,运行于PC-386机器上。最初在Minix操作系统上扩展实现,当时最初的版本仅支持Minix文件系统。Minix文件系统包含两个致命的限制:块地址以16位integers存储,所以最大文件系统的大小受限于64兆;同时,目录包含固定大小的入口,最大文件名只可包含14个字符。
我们设计实现两类新的文件系统使其包含于标准Linux内核,它们称为“Extended File System” (Ext fs) and “Second Extended File System” (Ext2 fs),提供新的特性与限制。
本文将描述Linux文件系统的历史,简单介绍实现Unix文件系统的基础概念,提出Linux中VFS的实现原理,且详细介绍Second Extended File System内核代码和用户模式工具。
History of Linux filesystems Continue reading
Linux EXT2 文件系统笔记
在标准的ext2文件系统中,将每个文件的内容分为两个部分存储,一个是文件的属性(例如,所属用户组、所属用户、能否执行、文件建立时间、文件特殊属性等),另一个则是文件的内容。
ext2规划出inode与块来分别存储文件的属性和文件的内容。当将一个分区格式化为ext2时,必须指定inode与块的大小。
块,即逻辑块(Block)是分区进行文件系统的格式化时所指定的“最小存储单位”。(vs.扇区则为硬盘的最小物理存储单位)块用于记录“文件内容数据”的区域。
inode记录“该文件的相关属性,以及文件内容放置在哪一个块内”,除此之外,还必须具有指针的功能,即指向文件内容放置的块之中,让操作系统可以正确获取文件的内容。inode大小为128字节。 Continue reading