All  devices are represented by files called special files that are located  in /dev directory. Thus, device files and other files are named and  accessed  in the same way. A 'regular file' is just an ordinary data  file in the disk. A 'block special file'  represents  a  device  with  characteristics similar to a disk (data  transfer  in  terms  of   blocks). A 'character special file' represents a device with  characteristics similar to a keyboard (data transfer is by stream of  bits in sequential order).
2. What is 'inode'?
All  UNIX files have its description stored in a structure called 'inode'.  The inode contains info about the file-size, its location, time of last  access, time of last modification, permission and so  on.  Directories   are  also  represented  as  files  and  have  an  associated  inode.  In   addition  to descriptions about the file, the  inode contains pointers  to the data blocks of the file. If the file  is large,  inode  has   indirect  pointer  to  a  block  of  pointers  to  additional  data   blocks  (this  further aggregates for larger files). A block is  typically 8k.Inode consists of the following fields:
- File owner identifier
- File type
- File access permissions
- File access times
- Number of links
- File size
- Location of the file data
3. Brief about the directory representation in UNIX.
A  Unix directory  is a  file containing a correspondence between   filenames and  inodes. A directory  is  a  special  file  that  the   kernel  maintains.  Only  kernel  modifies  directories,  but processes   can  read  directories.  The  contents  of  a  directory  are  a  list   of  filename  and  inode number pairs. When new directories are  created, kernel makes two entries named '.' (refers to the directory  itself) and '..' (refers to parent directory). System call for creating  directory is mkdir (pathname, mode).
4. What are the Unix system calls for I/O?
- open(pathname,flag,mode) - open file
- creat(pathname,mode) - create file
- close(filedes) - close an open file
- read(filedes,buffer,bytes) - read data from an open file
- write(filedes,buffer,bytes) - write data to an open file
- lseek(filedes,offset,from) - position an open file
- dup(filedes) - duplicate an existing file descriptor
- dup2(oldfd,newfd) - duplicate to a desired file descriptor
- fcntl(filedes,cmd,arg) - change properties of an open file
- ioctl(filedes,request,arg) - change the behaviour of an open file
- The difference between fcntl anf ioctl is that the former is intended for any open file, while the latter is for device-specific operations.
5. How do you change File Access Permissions?
Every file has following attributes: 
- owner's user ID ( 16 bit integer )
- owner's group ID ( 16 bit integer )
- File access mode word
(user permission) - (group permission) - (others permission)
To change the access mode, we use chmod(filename,mode).
Example 1:
To change mode of myfile to 'rw-rw-r--' (ie. read, write permission for user - read,write permission for group - only read permission for others) we give the args as:
chmod(myfile,0664) .
Each operation is represented by discrete values
'r' is 4
'w' is 2
'x' is 1
Therefore, for 'rw' the value is 6(4+2).
Example 2:
To change mode of myfile to 'rwxr--r--' we give the args as:
chmod(myfile,0744).
6. What are links and symbolic links in UNIX file system?
A  link   is a second name (not a file) for a file. Links can be used to assign  more than one name to a file, but cannot be used to assign a directory  more than one name or link filenames on different computers. Symbolic link 'is' a file that only contains the name of another file.Operation on the symbolic link is directed to the file pointed by the it.Both the limitations of links are eliminated in symbolic links.
Commands for linking files are:
Link "ln filename1 filename2"
Symbolic link "ln -s filename1 filename2"
7. What is a FIFO?
FIFO  are otherwise called as 'named pipes'. FIFO (first-in-first-out) is a  special file which is said to be data transient. Once data is read from  named pipe, it cannot be read again. Also, data can be read only  in   the order written. It  is used  in  interprocess communication where a  process writes to one end of the pipe (producer) and the other reads  from the other end (consumer).
8. How do you create special files like named pipes and device files?
The system call mknod creates special files in the following sequence. 
- kernel assigns new inode,
- sets the file type to indicate that the file is a pipe, directory or special file,
- If it is a device file, it makes the other entries like major, minor device numbers.
If the device is a disk, major device number refers to the disk controller and minor device number is the disk.
9. Discuss the mount and unmount system calls.
The  privileged mount system call  is used to attach a file system to a  directory of another file system; the unmount system call detaches a  file system. When you mount another file system on  to  your  directory,   you  are  essentially  splicing  one  directory  tree  onto  a  branch   in  another directory  tree. The  first  argument  to mount  call  is   the mount  point,  that  is  ,  a  directory  in  the current file  naming system. The second argument is the file system to mount to that  point. When you  insert  a  cdrom  to  your  unix  system's  drive,  the   file  system  in  the  cdrom  automatically mounts to "/dev/cdrom" in  your system.
10. How does the inode map to data block of a file?
Inode  has 13 block addresses. The  first 10 are direct block addresses of   the  first 10 data blocks in the file. The 11th address points to a  one-level index block. The 12th address points to a  two-level (double   in-direction)  index block. The 13th address points  to a  three-level(triple  in-direction)index block. This provides a very large  maximum file size with efficient access to large files, but also small  files are accessed directly in one disk read.
11. What is a shell?
A  shell is an interactive user interface to an operating system services  that allows an user to enter commands as character strings or through a  graphical user  interface. The shell converts  them  to system calls  to   the OS or  forks off a process  to execute  the command. System call   results and other  information  from  the  OS  are  presented  to  the   user  through  an  interactive  interface. Commonly used shells are  sh,csh,ks etc.



 

 


0 comments:
Post a Comment
you can comment here