linux内核文件系统(转载)
1.
概述
根据以前学习内核源码的经验,在学习文件系统实现之前,我大概定了个目标:
1
、
建立一个清晰的全局概念。为将来需要研究代码细节打下坚实基础。
2
、
只研究虚拟文件系统 VFS
的实现,不研究具体文件系统。
为什么选择 Linux 2.4.30
?因为可以参考《Linux
源码情景分析》一书,减少学习难度。
1.1.
基本概念
1、
一块磁盘(块设备),首先要按照某种文件系统(如 NTFS
)格式进行格式化,然后才能在其上进行创建目录、保存文件等操作。
在 Linux
中,有“安装”文件系统和“卸载”文件系统的概念。
一块经过格式化的“块设备”(不管是刚刚格式化完的,没有创建任何名录和文件;还是已经创建了目录和文件),只有先被“安装”,才能融入 Linux
的文件系统中,用户才可以在它上面进行正常的文件操作。
2
、
Linux
把目录或普通文件,统一看成“目录节点”。通常一个“目录节点”具有两个重要属性:名称以及磁盘上实际对应的数据。本文中,“目录节点”有时简称为“节点”
“符号链接”是一种特殊的目录节点,它只有一个名称,没有实际数据。这个名称指向一个实际的目录节点。
3
、
“接口结构”:在 内核代码中,经常可以看到一种结构,其成员全部是函数指针,例如:
struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
int (*readdir) (struct file *, void *, filldir_t);
unsigned int (*poll) (struct file *, struct poll_table_struct *);
int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
int (*mmap) (struct file *, struct vm_area_struct *);
int (*open) (struct inode *, struct file *);
int (*flush) (struct file *);
int (*release) (struct inode *, struct file *);
int (*fsync)
相关文档:
在vm下安装unbuntu linux server 9.04
安装完成 查看IP地址 ifconfig
安装telnet sudo apt-get install xinetd telnetd
因为不需要太多人TELNET 暂时不做修改配置文件。
安装FTP sudo apt-get install vsftpd
同样不需要配置 使用默认的ftp:ftp用户访问
mysql
sudo apt-get install mysql-server
apac ......
嵌入式linux基础知识大纲
其实这段时间非常的忙,忙到连做饭吃的时间都没有了。但是今天我特意抽空,来给关注我的朋友们一点点交代。(因为今天发现关注的人还蛮多的,有点受宠若惊啊!哈哈....)如题我暂时只能给大家一些大纲,很详细的学习过程要等大概半个月的时间,我有了空闲时间才能 ......
Linux下关机最要有以下方法,我想这些方法足以满足你的需要:
[root@localhost /]# shutdown [-t秒] [-arkhcncfF] [时间] [提示信息]
[root@localhost /]# shutdown -h 10 'I will shutdown after 10 mins'
-t sec : -t 后加秒数,即‘过几秒钟后关机’的意思。
-k : 不要真的关机,只是发送提示信息。
......
ICW2 用于设置芯片送出的中断号的高5位。什么意思呢,就是说从中断控制器发出的中断信号的高5位就是在ICW2里设置的。
在linux 0.11里系统把主片的ICW2设置为0x20,就表示中断请求IR0~IR7中断号的范围是0x20~0x27(8259A芯片产生的IRQ号必须是连续的,所以也只需要设置起始号就ok了!) ......