linux kernel 的hash散列函數 : hash_long

教課數上的hash函數一般都是對模數取餘,模數一般就是hash表的長度(桶的個數),通常為了較好的散列性,還把模數調整為一個質數.那麼核心中的hash函數是什麼樣呢?以儲存pid的hash表的hash函數 hash_long為例, 隨便測試下其散列的隨機性.測試代碼:#include <stdio.h>#include <stdlib.h>#include <time.h>unsigned long hash_long(unsigned long val,

ARM-Linux驅動–MTD驅動分析(二)

主機:Gentoo Linux 11.2 with linux kernel 3.0.6硬體平台:FL2440(S3C2440)with linux kernel 2.6.35原創作品,轉載請標明出處http://blog.csdn.net/yming0221/article/details/7205713*接上文 ARM-Linux驅動--MTD驅動分析(一)1、mtd_notifier結構體//MTD裝置通知結構體struct mtd_notifier {void

比較 Solaris、Linux、FreeBSD 核心

   我大部分時間都在教授 Solaris 內部實現、裝置驅動程式以及核心崩潰轉儲分析和調試方面的課程。向學生解釋如何在 Solaris 中實現各個子系統時,他們常常會問“在 Linux 中是怎樣實現的呢?”或“在 FreeBSD 中是這樣實現的,但在 Solaris中呢?”。本文對核心的三個基本子系統進行了探討,並對它們在 Solaris 10、Linux 2.6 和 FreeBSD 5.3 中的實現進行了比較。  

ssh串連linux伺服器中斷後,如何讓命令繼續在伺服器運行

http://blog.csdn.net/v1v1wang/article/details/6855552 轉自:http://www.diybl.com/course/3_program/java/javajs/20100719/455597.html在ssh、telnet斷開之後繼續執行程式 你是不是經常需要 SSH 或者 telent 遠程登入到 Linux 伺服器?你是不是經常為一些長時間啟動並執行任務而頭疼,比如系統備份、ftp

linux與windows間socket通訊執行個體

linux端:#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <sys/wait.h>#define MYPORT 3333#define

linux中nat的若干細節–基於2.6.8和2.6.17核心分析

在netfilter的nat模組中有一個alloc_null_binding函數,該函數在local_in這個hook點上會被調用,在nat沒有初始化的時候也會被調用,在這兩種情況會被調用,netfilter規定可在postrouting和local_in執行snat,但是local_in的時候tuplehash[IP_CT_DIR_REPLY]的目的地址是本機,轉換源地址沒有任何意義,因此只是分配一個null的映射,第二種情況中會在沒有找到nat規則的情況下調用,因為如果找到了nat規則,則會

linux關於tcp協議ack的實現–總結和公平性問題

tcp是一個可靠串連的協議,但不要指望它是什麼理論的實現,它是實踐的東西,任何實踐的東西背後都不是一個理論,而是一大堆理論,tcp正是單一停等,GBN(回退N)以及SR(選擇重傳)的結合體,單一停等是最原始的理論,但是頻寬利用率太低了,後面的GBN實現了流水線式的資料發送和確認,可靠串連的根本就在於確認-ack,而GBN的ack完全是基於接收方的,接收方很簡單的只發送最後一個按序到達的報文的序號最為確認號,而發送端收到以後將重傳該確認號之後的所有報文,這樣實現很簡單,要考慮的事情也不多,但是可能

linux核心netfilter之ip_conntrack模組的作用舉例–ftp為例

很多協議的控制資訊在應用程式層資料中被包含,這些資訊直接影響到了鏈路的建立,比如ftp協議就是這樣,ftp分為port模式和pass模式,port模式中,起初client串連server的21連接埠,然後當需要傳輸data的時候,client發送一個控制包給server,包中包含client端開啟的連接埠和自己的ip地址,server收到之後用自己的20連接埠去串連client控制包中建議的ip和連接埠,在這種情況下,如果client在nat後面使用私網地址,那麼server將無法串連clien

linux 命令全稱

/bin = BINaries/dev = DEVices/etc = ETCetera/lib = LIBrary/proc = PROCesses/sbin = Superuser BINaries/tmp = TeMPorary/usr = Unix Shared Resources/var = VARiable ?FIFO = First In, First OutGRUB = GRand Unified BootloaderIFS = Internal Field

Linux:在VNC中使用SCIMIME

終於折騰上了:)[arc@localhost urdfbqen.default]$ cat ~/.vnc/xstartup#!/bin/sh# Uncomment the following two lines for normal desktop:# unset SESSION_MANAGER# exec /etc/X11/xinit/xinitrc# added by albcamusunset LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE

Linux核心裡的延時API

7.3. 延後執行裝置驅動常常需要延後一段時間執行一個特定片段的代碼, 常常允許硬體完成某個任務. 在這一節我們涉及許多不同的技術來獲得延後. 每種情況的環境決定了使用哪種技術最好; 我們全都仔細檢查它們, 並且指出每一個的長處和缺點.一件要考慮的重要的事情是你需要的延時如何與時鐘嘀噠比較, 考慮到 HZ 的跨各種平台的範圍. 那種可靠地比時鐘嘀噠長並且不會受損於它的粗粒度的延時, 可以利用系統時鐘. 每個短延時典型地必須使用軟體迴圈來實現. 在這 2 種情況中存在一個灰色地帶. 在本章,

linux tc 對本機網卡限速

原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。http://deidara.blog.51cto.com/400447/271028今天由於項目要測試在網路環境不好的情況下,會不會對平台有所影響,要求測試限制伺服器流量,我想到了TC,我對TC不是很瞭解, google了一下,看到了不少文章都是做路由用的,對我來說不是很實用,因為我是對單機測試。先看看TC命令在說,沒想到報錯,錯誤如下:shell$> tc -s

Linux下如何?狀態檢測

本文檔的Copyleft歸yfydz所有,使用GPL發布,可以自由拷貝、轉載,轉載時請保持文檔的完整性,嚴禁用於任何商業用途。msn: yfydz_no1@hotmail.com來源:http://yfydz.cublog.cn 1. iptables規則中的state匹配 在2.4/2.6核心的Linux中的防火牆代碼netfilter中實現了狀態檢測(stateful inspection)檢測技術,在命令列介面的iptables命令是通過匹配“-m state”來實現,“-m state”

linux 命令 xxd

 當我們需要把二進位轉成c語言中使用的16進位字元數組時,命令xxd是很有用的。xxd 協助資訊如下:關鍵選項標黑。[root@localhost ]# xxd --helpUsage:xxd [options] [infile [outfile]]orxxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]Options:-a toggle autoskip: A single '*' replaces nul-lines.

Linux curl命令中,HTTP 302處理

在Linux中使用curl命令時,偶爾會遇到一些URL跳轉到新的URL,即HTTP中的3XX(redirection,重新導向)。$curl -s -I $URL > log這時在返回的報文中,有Location欄位標明了新的URL。$cat log HTTP/1.1 302 FoundExpires: -1Cache-Control: private, max-age=0Pragma: no-cacheLocation: http://182.118.2.11/youku/5571865

Linux下安裝RPM檔案包

1.如何安裝rpm軟體包 rmp軟體包的安裝可以使用程式rpm來完成。執行下面的命令 rpm -i your-package.rpm 其中your-package.rpm是你要安裝的rpm包的檔案名稱,一般置於目前的目錄下。 安裝過程中可能出現下面的警告或者提示: ... conflict with ... 可能是要安裝的包裡有一些檔案可能會覆蓋現有 的檔案,預設時這樣的情況下是無法正確安裝的可以用 rpm --force -i 強制安裝即可 ... is needed by ... ...

QEMU MINI2440 的 Linux Fedora 8 下網路設定

(原創文章,歡迎轉載,請註明出處,謝謝。)最近應朋友的要求,研究一下QEMU MINI2440下的模擬。本來我以為這個過程沒什麼的,這一研究還真發現不少問題,寫出來與大家分享。我使用的系統內容:1.使用VMware 6.5,宿主機使用 win 72.VMWare 6.5上的系統是 Linux Fedora 83.RTEMS 的編譯環境 4.9 首先我從以下網站擷取原始碼:1.擷取QEMU的原始碼:git clone git://repo.or.cz/qemu/mini2440.git 

ARM-Linux s3c2440 之中斷分析(一)

====本文系本站原創,歡迎轉載! 轉載請註明出處:http://blog.csdn.net/yyplc===硬體篇:S3C2440

Freesco實現Linux路由系統

Freesco實現Linux路由系統   Internet由網路互聯而成,而實現網際互聯的裝置就是網關。任何使用者都是通過網關串連到Internet。Internet上的網關多數是專用的路由器和交換器。目前,Linux的通用性越來越強,經過適當地配置之後,它完全可以擔當互連網的物理基石——路由器這一重要角色。互連網上的高水平開發人員對Linux進行精簡和定製後,推出了Linux軟體Freesco,它可以僅通過一張磁碟片來運行,有效降低了對硬體資源的要求,並提高了工作效率。     Freesco

原來Linux也可以運行Windows程式

在Linux裡運行Windows程式通常有兩種方法:1. 開虛擬機器2. 使用類似wine的類比程式開虛擬機器的話比較耗資源,況且我只是想運行一些簡單在Win程式。。。。先看看下面的介紹吧:-)Wine簡介許多人面臨著擁有的軟體不能在他的電腦上啟動並執行困擾。隨著 Linux 近來的流行,因為作業系統的不同而發生的更加頻繁。你的 Windows 軟體不能在 Linux 上運行,而你的 Linux 軟體不能在 Windows 上運行。

總頁數: 3662 1 .... 167 168 169 170 171 .... 3662 Go to: 前往

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.