原创 閒着沒事,山寨個記事本玩

一直使用linux,最近發現windows上的那個簡單得不能在簡單的記事本用來記錄點臨時文本還是多舒服,linux上有很多很優秀的文本編輯器,卻沒有一個如windows記事本這樣的傻瓜。自己動手,豐衣足食,花了我一上午用python +

原创 Nginx源碼分析-事件驅動的初始化

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   Nginx的高性能應該算是事件驅動的功勞。Nginx事件處理的相關代碼位於src/event目錄中,事件驅動是Nginx的核心,所以代碼量相對也比較大。事件驅動初始化的過程主要由下

原创 “引用”學習筆記

1、所謂的引用其實就是某對象的另外一個名字,他們都表示着同一個內存單元,共用相同的數據。  2、引用必須在被定義的時候用一個合適的對象對其進行初始化。由於函數的參數傳遞以及返回一個值的語義完全相同於初始化,所以可以將一個對象作爲實參傳遞給

原创 Nginx源碼分析-進程管理之worker進程

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   上一篇博文分析了master進程,本文着手分析一下worker進程的情況。首先找到worker進程的入口地方——ngx_worker_process_cycle。這個函數不光是wo

原创 nginx源碼分析-鏈表

nginx封裝的list和我們在學習數據結構時的list略有點區別。nginx的list算是數組和鏈表的結合。其用以下兩個結構來維護一個list。 struct ngx_list_part_s { void

原创 Nginx源碼分析-master和worker進程間的通信

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   前面單獨分析了master進程和worker的工作情況,本文就大概看一下master進程和worker進程之間是如何使用channel來完成通信的。這部分實現的源碼主要分佈於src

原创 Nginx源碼分析-啓動初始化過程(二)

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   在Nginx啓動初始化過程(一)中提到main函數會調用ngx_init_cycle()初始化一個全局cycle變量,本文就來看看這個ngx_init_cycle()函數究竟做了哪

原创 Nginx源碼分析-Epoll模塊

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   Linux平臺上,Nginx使用epoll完成事件驅動,實現高併發;本文將不對epoll本身進行介紹(網上一堆一堆的文章介紹epoll的原理及使用方法,甚至源碼分析等),僅看一下N

原创 第一個python CGI程序——hello,world

Code: #!/usr/bin/env python       print 'Content-type: text/html/n'       print 'hello, world!'   當然也是第一個cgi程序。。。

原创 python中設置字符編碼

python默認採用的是ascii編碼,不能正常輸出漢字,在源文件頭做如下設置就可以改變編碼了。  #!/usr/bin/env python  # -*- coding: utf-8 -*-       <--------------採

原创 正確放置inline函數

個人感覺用c++寫出的程序再小也小不到哪裏去,不愧是開發大型項目的好手,呵呵。所以用c++寫出的程序一定要有個好的佈局,也就是合理的頭文件源文件設置(這是高手說的,哈哈)。前幾天,自己在折騰c++的時候遇到了一個及其鬱悶的事情——程序寫好

原创 Nginx源碼分析-數組

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   俄羅斯大牛在nginx中給我們封裝了非常好用的數組,在做nginx模塊開發的時候,不必再使用原始的數組了。     nginx使用以下結構來維護數組    struct ngx_a

原创 Nginx源碼分析-事件循環

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   事件循環這個概念貌似在windows編程中提得更多,Linux程序卻很少提及這個概念。本文所提及的事件循環其實就是worker cycle,由於此處將關注的不再是worker進程,

原创 Nginx源碼分析-connections數組

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   本文的標題讓我糾結了好久,不知道是connections數組合適,還是connections鏈表更合適;Nginx在此或多或少的注入了二者的特點,先不管是叫數組還是叫鏈表吧,只要能

原创 Nginx源碼分析-4個重要結構之間的關係

轉載申明:本文可以任意轉載,但需註明原文地址,謝謝!   Nginx源碼之中有着很多很多的結構,當然每一個結構都是非常重要的,本文將分析其中的4個結構之間的關係。這4個結構分別是:listening、connection、event以及r