Skip to content

Latest commit

 

History

History
25 lines (24 loc) · 2.25 KB

README.md

File metadata and controls

25 lines (24 loc) · 2.25 KB

tlpi

the linux programming interface overview

  • BSD: Berkeley Software Distribution
  • Ken Thompson graduated at Berkeley university
  • 1969 the first implementation of UNIX same year Linus Torvalds was born
  • OS do: managing, allocates resources and run software
  • functions: process scheduling, memory management, provisioning files system, creation and termination program, access to device, provisioning a system call application programming interface, networking
  • SUSv3: [-._a-zA-Z0-9] this is portable filename character set that recommend a file to follow when naming
  • the UNIX system have no term of end-of-file, the end of file is where a read that return no data
  • new line is a character(ASCII code: 10)
  • process is an instance of program
  • process divided into 4 segments:
    • text: the instruction of program
    • data: the static variables used by the program
    • heap: the area in which program can dynamically locate in extra memory
    • stack: the piece of memory that grow and shrinks as function called and return and that is used to allocate storage for local variables and function call linkage information
  • the process can create new process by using fork(), the new process refer as child process, the kernel create the child process by making duplicate of the parent process
  • execve() (exec): system call to load and execute an entirely new program, this can destroy text, data stack and heap base on the code of new program
  • the init process: first running process when system booting, which is have processID = 1 with root user. init process cannot be kill even root user, can only by terminate when system is shutdown. the main task is to create and monitor process that required for running system
  • daemon is process that running when program start and terminate when system is shutdown,it running in background and dont need controlling terminal.
  • environment list: a list of environment variables that maintained whithin user space memory.
  • environment variable PATH: which is a list of directories that the shell should search when looking for programs corresponding to command enter by the user
  • memory mapping(mmap()): use for allocate new zero-filled memory.