Category Archives: Linux

linux socket网络编程

套接字是一种网络中进程间通信的方法。网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。
套接字的特性由3个属性确定:
域(domain)——指定套接字通信中使用的网络介质;
类型(type)——分为流套接字(SCOK_STREAM)和数据报套接字(SOCK_DGRAM);
协议(。protocol)——通常使用默认值。 Continue reading

文件系统中的inode

为什么需要inode?
在linux系统中,每个文件不仅有内容数据,还包括文件的各种属性,如所属用户组、所属用户、能否执行、文件建立时间、文件特殊属性等等。由于linux操作系统是一个多用户、多任务的环境,为了保护每个用户所拥有的数据的隐秘性,具有多样化的文件属性在所难免。linux文件系统从ext2开始,将文件属性和文件内容分开存储,分别由indoeblock负责。
将一个分区格式化为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