linux 0號進程 1號進程 區別(轉)

 系統允許一個進程建立新進程,新進程即為子進程,子進程還可以建立新的子進程,形成進程樹結構模型。整個linux系統的所有進程也是一個樹形結構。樹根是系統自動構造的,即在核心態下執行的0號進程,它是所有進程的祖先。由0號進程建立1號進程(核心態),1號負責執行核心的部分初始化工作及進行系統配置,並建立若干個用於快取和虛擬主存管理的核心線程。隨後,1號進程調用execve()運行可執行程式init,並演變成使用者態1號進程,即init進程。它按照設定檔/etc/initab的要求,完成系統啟動工作,

linux下查看所有使用者及所有使用者組

groups 查看當前登入使用者的組內成員groups gliethttp 查看gliethttp使用者所在的組,以及組內成員whoami 查看當前登入使用者名稱/etc/group檔案包含所有組/etc/shadow和/etc/passwd系統存在的所有使用者名稱1、/etc/group

Linux下GCC使用方法簡介

編譯:第一步、是進行先行編譯,使用-E參數可以讓GCC在預先處理結束後停止編譯過程:gcc -E hello.c -o hello.i預先處理的宏定義插入到hello.i中第二步、是將hello.i編譯為目標代碼,這可以通過使用-c參數來完成:gcc -c hello.i -o hello.o也可以通過源檔案直接產生gcc -c hello.c第三步、是將產生的目標檔案連結成可執行檔:gcc hello.o -o hello也可以通過源檔案直接產生gcc -o hello hello.c警告:1

Linux 讀書總結—–檔案

1,inode中儲存喲普檔案內容的塊號碼,Linux核心進行讀寫操作時,會根據inode中的盤塊號碼來操作相應的盤塊,完成對檔案的讀寫。mv命令用於移動一個檔案,即使要移動的檔案很大,其移動速度也很快,原因是mv命令沒有移動檔案內容而是改變了檔案的目錄項。該命令在新的目錄下建立一個新的目錄項,並將其指向原來的檔案即可。2,Linux環境使用Link函數建立一個永久連結,其函數原型:int link(const char *path1,const char*path2),第一個參數是現有檔案名稱,

Linux wait函數

      進程一旦調用了wait,就立即阻塞自己,由wait自動分析是否當前進程的某個子進程已經退出,如果讓它找到了這樣一個已經變成殭屍的子進程,wait 就會收集這個子進程的資訊, 並把它徹底銷毀後返回;如果沒有找到這樣一個子進程,wait就會一直阻塞在這裡,直到有一個出現為止。如果該進程沒有子進程,則立即出錯返回,傳回值為-1(注意,是wait()函數立即返回,而不是說該父進程也跟著結束了,父進程裡該語句後的內容還是要照樣接著執行的)wait(等待子進程中斷或結束)相關函數

linux 訊號量

訊號量及訊號量上的操作是E.W.Dijkstra 在1965年提出的一種解決同步、互斥問題的較通用的方法,並在很多作業系統中得以實現, Linux改進並實現了這種機制。訊號量(semaphore

Linux基於流的I/O

一,流與緩衝       流I/O是由C語言的標準函數提供的,這些I/O可以替代系統中提供的read和write函數。事實上流I/O的內部封裝了這兩個基本的檔案讀寫系統調用。使用流I/O在某些程度上來講要方便一些,這些I/O在效率上沒有特別大的差異。        基於流的操作最終會調用read或者write函數進行操作。為了使程式的運行效率最高,流對象通常會提供緩衝區,以減少調用系統I/O庫函數的次數。       

linux進程空間

虛擬記憶體---linux作業系統採用虛擬記憶體管理技術,使得每個進程都有獨立的進程地址空間,該空間是大小為3G,使用者看到和接觸的都是虛擬位址,無法看到實際的物理地址。利用這種虛擬位址不但能起到保護作業系統的作用,而且更重要的是使用者程式可使用比實際實體記憶體更大的地址空間。 linux將4G的虛擬位址空間劃分為兩個部分------使用者空間和核心空間。使用者空間從0----0xbfffffff,核心空間從3G----4G。使用者進程通常情況下只能訪問使用者空間的虛擬位址,不能訪問核心空間。例

Linux下Socket編程中用send發送結構體

Socket中的send函數可以發送字串,但不能直接發送結構體,因此在發送端先把結構體轉成字串,然後用send發送,在接收端recv字串,再轉換成原先的結構體,這個就是解決問題的主要思路,實現中要注意的問題在下文闡述。  為了用戶端之間能夠互相通訊,實現私聊,我採用伺服器轉寄的方式,因此使用者發送的每條訊息中除了訊息主體外,還必須包含有寄件者、接收者ID等資訊,如此採用結構體便是最佳的辦法了。我定義的結構體如下:struct send_info{char info_from[20];

linux UDP的簡單例子

伺服器端:    #include<stdio.h>    #include<stdlib.h>    #include<sys/socket.h>    #include<arpa/inet.h>    #include<string.h>    #include<errno.h>    #include<unistd.h>    #define BUFSIZE 1024    int main(void)  

搭建Linux高可用性設定組群(第一天)

    第一次在Linux下安裝軟體。 作為一個對Linux沒用過幾天的人來說,學會了如何在Linux上安裝軟體也談得上是一種收穫。對於.tar.gz類型檔案的安裝的一般步驟如下(找到該檔案,解壓,配置,編譯,安裝):[yonghu@localhost ~]#       su root[root@localhost ~]#         cd /home/new/Desktop[root@localhost Desktop]#   tar -xzvf

linux setsockopt函數

1.closesocket(一般不會立即關閉而經曆TIME_WAIT的過程)後想繼續重用該socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已經處於串連狀態的soket在調用closesocket後強制關閉,不經曆TIME_WAIT的過程:BOOL bDontLinger =

linux 裡的eclips編譯OpenGL連結不到相應庫的問題

   linux 裡的eclips本身就可以編譯C/C++這讓我感到十分欣慰,^_^。    可是編寫好OpenGL程式後確不能編譯,報錯:.....undefined reference to `glBegin'.....    結果是glut函數全都不能被識別。究其原因,是因為沒有連結到相應的庫,比如在終端裡用gcc編譯的時候需要手動連結幾個庫: -lGL -lGLU -lglut。因此需要在eclips裡加如這幾個庫。步驟如下:1,點擊Project選折下拉式清單裡的properties2

Linux守護進程的編程實現

Linux 守護進程的編程方法 守護進程(Daemon)是運行在背景一種特殊進程。它獨立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。守護進程是一種很有用的進程。Linux的大多數伺服器就是用守護進程實現的。比如,Internet伺服器inetd,Web伺服器httpd等。同時,守護進程完成許多系統任務。比如,作業規划進程crond,列印進程lpd等。

linux檔案裝置與I/O:read/write函數 與 阻塞 Block

一,read 函數從開啟的裝置或檔案中讀取資料#include <unistd.h>       ssize_t read(int fd, void *buf, size_t count);       傳回值:成功返回讀取的位元組數,出錯返回-1並設定errno,如果在調read之前已到達檔案末尾,則這次read返回0      讀上來的資料儲存在緩衝區buf 中,同時檔案的當前讀寫位置向後移。注意這個讀寫位置和使用C標準I/O庫時的讀寫位置有可能不同,這個讀寫位置是記在核心中的,

Linux下 zip 和 unzip的用法

轉自:http://www.ezloo.com/2008/01/linux_zip_unzip.html  zip命令的基本用法是:zip [參數] [檔案1] [檔案2]      簡單的例子:      把本目錄下的test檔案打包成test.zip檔案:zip test.zip test/* ,如果在檔案中用絕對的路徑,那麼在壓縮檔中也是絕對路徑。就是說,如果你 zip test.zip /home/test/* ,那麼在壓縮檔中也是這樣的層次關係。      參數列表:      -a 

linux 7788

列印ls命令man幫助檔案: man ls | lpr  lpr解釋(轉自:http://linux.chinaitlab.com/command/11571.html )  名稱: lpr     使用許可權: 所有使用者     使用方式:lpr [ -P printer ]   將檔案或是由標準輸入送進來的資料送到印表機貯列之中,印表機管理程式 lpd 會在稍後將這個檔案送給適當的程式或裝置處理。lpr 可以用來將料資送給本地或是遠端的主機來處理。     參數:     -p

linux下簡單線程池實現

/* 標頭檔:threadpool.h*/#ifndef _TP_H_INCLUDED_#define _TP_H_INCLUDED_#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <pthread.h>#include <assert.h>typedef struct worker {

讀書筆記—linux vfs

無圖無真相,先: 每個進程在PCB中都儲存著一份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有一個指向已開啟檔案的指標,已開啟的檔案在核心中用file結構體表示,檔案描述符表中的指標指向file結構體。在file結構體中維護File Status Flag(file結構體的成員f_flags)和當前讀寫位置(file結體的成員f_pos)。在中,進程1和進程2都開啟同一檔案,但是對應不同的file結構體,因此可以有不同的File Status

(推薦讀)Linux(Ubuntu)下設定環境變數的各種方法 轉:

今天交叉編譯環境變數的設定,出現了點小小的錯誤,使我的終端總提示PATH出錯,讓我感受比較深一些,首先把我從網上看到的和我知道的總結來給大家分享一下。環境變數是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的

總頁數: 4065 1 .... 147 148 149 150 151 .... 4065 Go to: 前往
Tags Index:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。