Time of Update: 2018-12-04
教課數上的hash函數一般都是對模數取餘,模數一般就是hash表的長度(桶的個數),通常為了較好的散列性,還把模數調整為一個質數.那麼核心中的hash函數是什麼樣呢?以儲存pid的hash表的hash函數 hash_long為例, 隨便測試下其散列的隨機性.測試代碼:#include <stdio.h>#include <stdlib.h>#include <time.h>unsigned long hash_long(unsigned long val,
Time of Update: 2018-12-04
主機: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
Time of Update: 2018-12-04
Linux 下的 rename 命令有兩個版本:C語言版本Perl語言版本其中,C語言版本的命令如下: rename 原字串 新字串 檔案名稱 範例1: 目錄 test 下存在兩個檔案: a_01 、a_02,若需要將檔案名稱中的 a 替換為 b, 其他部分保持不變,則 (1) 若 當前位於 test 目錄下,則執行 rename a b * (2) 若當前位於test的父目錄,則執行 rename a b
Time of Update: 2018-12-04
RADIUS主要用於對遠程撥入的使用者進行授權和認證。它可以僅使用單一的“資料庫”對使用者進行認證(效驗使用者名稱和口令)。它主要針對的遠程登入類型有:SLIP、PPP、telnet和rlogin等。 其主要特徵有: 1. 客戶機/伺服器(C/S)模式
Time of Update: 2018-12-04
我大部分時間都在教授 Solaris 內部實現、裝置驅動程式以及核心崩潰轉儲分析和調試方面的課程。向學生解釋如何在 Solaris 中實現各個子系統時,他們常常會問“在 Linux 中是怎樣實現的呢?”或“在 FreeBSD 中是這樣實現的,但在 Solaris中呢?”。本文對核心的三個基本子系統進行了探討,並對它們在 Solaris 10、Linux 2.6 和 FreeBSD 5.3 中的實現進行了比較。
Time of Update: 2018-12-04
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
Time of Update: 2018-12-04
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
Time of Update: 2018-12-04
在netfilter的nat模組中有一個alloc_null_binding函數,該函數在local_in這個hook點上會被調用,在nat沒有初始化的時候也會被調用,在這兩種情況會被調用,netfilter規定可在postrouting和local_in執行snat,但是local_in的時候tuplehash[IP_CT_DIR_REPLY]的目的地址是本機,轉換源地址沒有任何意義,因此只是分配一個null的映射,第二種情況中會在沒有找到nat規則的情況下調用,因為如果找到了nat規則,則會
Time of Update: 2018-12-04
tcp是一個可靠串連的協議,但不要指望它是什麼理論的實現,它是實踐的東西,任何實踐的東西背後都不是一個理論,而是一大堆理論,tcp正是單一停等,GBN(回退N)以及SR(選擇重傳)的結合體,單一停等是最原始的理論,但是頻寬利用率太低了,後面的GBN實現了流水線式的資料發送和確認,可靠串連的根本就在於確認-ack,而GBN的ack完全是基於接收方的,接收方很簡單的只發送最後一個按序到達的報文的序號最為確認號,而發送端收到以後將重傳該確認號之後的所有報文,這樣實現很簡單,要考慮的事情也不多,但是可能
Time of Update: 2018-12-04
/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
Time of Update: 2018-12-04
終於折騰上了:)[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
Time of Update: 2018-12-04
7.3. 延後執行裝置驅動常常需要延後一段時間執行一個特定片段的代碼, 常常允許硬體完成某個任務. 在這一節我們涉及許多不同的技術來獲得延後. 每種情況的環境決定了使用哪種技術最好; 我們全都仔細檢查它們, 並且指出每一個的長處和缺點.一件要考慮的重要的事情是你需要的延時如何與時鐘嘀噠比較, 考慮到 HZ 的跨各種平台的範圍. 那種可靠地比時鐘嘀噠長並且不會受損於它的粗粒度的延時, 可以利用系統時鐘. 每個短延時典型地必須使用軟體迴圈來實現. 在這 2 種情況中存在一個灰色地帶. 在本章,
Time of Update: 2018-12-04
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。http://deidara.blog.51cto.com/400447/271028今天由於項目要測試在網路環境不好的情況下,會不會對平台有所影響,要求測試限制伺服器流量,我想到了TC,我對TC不是很瞭解, google了一下,看到了不少文章都是做路由用的,對我來說不是很實用,因為我是對單機測試。先看看TC命令在說,沒想到報錯,錯誤如下:shell$> tc -s
Time of Update: 2018-12-04
本文檔的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”
Time of Update: 2018-12-04
當我們需要把二進位轉成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.
Time of Update: 2018-12-04
在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
Time of Update: 2018-12-04
1.如何安裝rpm軟體包 rmp軟體包的安裝可以使用程式rpm來完成。執行下面的命令 rpm -i your-package.rpm 其中your-package.rpm是你要安裝的rpm包的檔案名稱,一般置於目前的目錄下。 安裝過程中可能出現下面的警告或者提示: ... conflict with ... 可能是要安裝的包裡有一些檔案可能會覆蓋現有 的檔案,預設時這樣的情況下是無法正確安裝的可以用 rpm --force -i 強制安裝即可 ... is needed by ... ...
Time of Update: 2018-12-04
(原創文章,歡迎轉載,請註明出處,謝謝。)最近應朋友的要求,研究一下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
Time of Update: 2018-12-04
====本文系本站原創,歡迎轉載! 轉載請註明出處:http://blog.csdn.net/yyplc===硬體篇:S3C2440
Time of Update: 2018-12-04
Freesco實現Linux路由系統 Internet由網路互聯而成,而實現網際互聯的裝置就是網關。任何使用者都是通過網關串連到Internet。Internet上的網關多數是專用的路由器和交換器。目前,Linux的通用性越來越強,經過適當地配置之後,它完全可以擔當互連網的物理基石——路由器這一重要角色。互連網上的高水平開發人員對Linux進行精簡和定製後,推出了Linux軟體Freesco,它可以僅通過一張磁碟片來運行,有效降低了對硬體資源的要求,並提高了工作效率。 Freesco