Skip to main content

The Ext2 File System

  • The initially developed file system was Minix which uses a partition of 64MB and the filenames of no more than 14 characters.
  • After that, A file system called ext was developed which uses a partition size of 2GB and filenames of 255 characters but it was slow compared with Minix.
  • Later the file system for Xia was developed with a partition size of 2GB and 248 characters in filename comparatively faster that Ext file system
  • Finally, Ext2 file system was developed with a faster operation.

Structure of ext2 File system

The ext2 file system was influenced by the BSD Fast File System (BSD FFS). Thus a partition is divided into a number of block groups, corresponding to the cylinder groups in FFS, with each block group holding a copy of the superblock and inode blocks and data blocks. The objective for developing the block groups is that

  • The data block should be close to the inodes
  • File inodes close to their directory inodes

clip_image001

Superblock

  • Defined as the structure ext2_super_block.
  • Contains control information on the file system, such as the number of inodes and blocks
  • It is made upto a size of 1024 bytes

Block group descriptors

  • It is following the superblock
  • Provides information about the block groups. Each block group is described by a 32byte descriptor.
  • Contains the block numbers in the inode bitmap, block bitmap and inode table, the number of free inodes and blocks and the number of directories in the block group.

Inode Table

  • It lists consecutive blocks, inodes of 128bytes in size
  • Also contains information about the entries of Access control List (ACL), time when the file was deleted, information specific to the Operating system in use.

Block Allocation in the Ext2 file system

  • The main problem in all file systems is the fragmentation of files, ie. Scattering of files into small pieces as a result of the constant deleting and creating of new files. This problem is solved by the defragmentation of files.
  • Target oriented allocation
    • New data blocks are always searched for near a target block. If this block is free, it is allocated. Otherwise a free block is sought within 32 blocks of the target block and if found, is allocated.
    • If this fails, the block allocation routine tries to find a free block which is atleast in the same block group as target block.

Comments

Popular posts from this blog

Installing ns-3.34 in Ubuntu 20.04

This post shows how to install ns 3.34 in Ubuntu 20.04 LTS Prerequisites: Fresh installation of Ubuntu Version 20.04 LTS  ns3.34 can be downloaded from here Follow the video link for complete step by step instructions on the installation.  This version fixes the compilation issues of vanet-routing-compare.cc (bug in ns3.33)  Issue the following commands after opening a terminal  $ sudo apt update $ sudo apt install g++ python3 python3-dev python-dev pkg-config sqlite3 python3-setuptools git qt5-default gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar openmpi-bin openmpi-common openmpi-doc libopenmpi-dev tcpdump wireshark libxml2 libxml2-dev Unzip or untar the ns-allinone-3.34.tar.bz2 in the home folder (in my case its /home/pradeepkumar) $ cd ns-allinone-3.34/ $ ./build.py --enable-examples --enable-tests  Once the installation is completed, you may get an output show

Installation of ns3 in Windows 10 and Windows 11 OS using WSL (Windows Subsystem for Linux)

This post shows how to install ns-3.33 in Windows 10 through WSL (Windows Subsystem for Linux) This posts works for Windows 11 also (I have tested it on a Windows 11 ISO and it works the Same way as mentioned in the following post.) This post will work for ns-3.3x version. Prerequisites : Install Windows Subsystem for Linux with GUI: Please refer the following video  System Information: OS used: Windows 10 and WSL (Ubuntu 20.04) GUI: XServer for Windows NS3 Version: ns-3.33 See the following complete video on how to install ns3 in Windows 10 Step 0 : Open XLaunch Step 1 :  Open WSL using PowerShell and open it as Administrator Command:/  wsl $ xfce4-session The GUI of Ubuntu Opens within Windows 10 OS. Step 2 : Download ns3 from nsnam.org website through Mozilla Firefox browser Step 3: Open a Terminal  $ sudo apt update $ sudo apt install build-essential autoconf automake libxmu-dev python3-pygraphviz cvs mercurial bzr git cmake p7zip-full python3-matplotlib python-tk python3-dev qt5-q

Installing NS-3.32 in Ubuntu 20.04

This is about installing ns version 3.32 in Ubuntu 20.04 LTS. #ns3 #ns3 .32 #networksimulation The commands used in the video are given here. $] sudo apt update $] sudo apt install build-essential autoconf automake libxmu-dev python3-pygraphviz cvs mercurial bzr git cmake p7zip-full python3-matplotlib python-tk python3-dev qt5-qmake qt5-default gnuplot-x11 wireshark Download the ns-allinone-3.32.tar.bz2 package from nsnam.org and copy it to /home/ folder See the full video for detailed instructions Extract it either in GUI or using command $] tar jxvf ns-allinone-3.32.tar.bz2 $] cd ns-allinone-3.32/ $] ./build.py --enable-examples --enable-tests The above command will take some time to install all the packages  You can see the output as shown below ns3 To check whether ns3 installed successfully, use the following commands. $] cd ns-3.32/ $] ./waf --run hello-simulator You should get the output as Hello Simulator $] ./waf --run first This is the example from the ns-3.32/exa