Time of Update: 2018-12-03
Linux 串口編程的一些問題解決 Linux下串口編程的文章網上是滿天飛,但大都是出自一篇文章,而且寫的都是些基本的操作,像控制RTS/CTS等串口引腳狀態,接收發送位元據等,都沒有很好的說明,我在使用中遇到了些問題,寫出來,希望能對大家有所協助,少走彎路,呵呵! 我使用的作業系統是Redhat9,gcc版本是3.2.2 其實在linux下對串口的設定主要是通過termios這個結構體實現的,但是這個結構體卻沒有提供控制RTS或獲得CTS等串口引腳狀態的介面,可以通過ioctl系統調用來獲得/
Time of Update: 2018-12-03
Linux下的UDP協議編程劉 暢,彭楚武 (湖南大學電氣與資訊工程學院,湖南長沙 410082) 摘 要:介紹UDP協議,並提供一個適用於用戶端和伺服器端的執行個體子程式。 關鍵詞:Linux;UDP協議;TCP/IP協議;程式設計 UDP Protocol Program Based on LinuxLIU Chang, PENG Chuwu(School of Electrical Engineering, Hunan University,
Time of Update: 2018-12-03
索引:1.建立線程pthread_create2.等待線程結束pthread_join3.分離線程pthread_detach4.建立線程鍵pthread_key_create5.刪除線程鍵pthread_key_delete6.設定線程資料pthread_setspecific7.擷取線程資料pthread_getspecific8.擷取線程標示符pthread_self9.比較線程pthread_equal10.一次執行pthread_once11.出讓執行權sched_yield12.修改
Time of Update: 2018-12-03
本問分析基於Linux 0.11核心,轉載請標明出處http://blog.csdn.net/yming0221/archive/2011/06/06/6528490.aspxcopy_mem(int nr, struct task_struct *p)函數是為進程設定段基址,限長,並複製頁表。下面是其代碼// 設定新任務的代碼和資料區段基址、限長並複製頁表。// nr 為新任務號;p 是新任務資料結構的指標。int copy_mem (int nr, struct task_struct
Time of Update: 2018-12-03
windows靜態庫檔案就是.lib檔案,動態庫檔案就是.dll檔案。內容一樣,都是將函數封裝在一起編譯後供自己或他人調用。好處在於編譯後的庫檔案看不到原始碼,可保密;同時不會因為不小心修改了函數而出問題,便於維護。 兩種庫的區別在於靜態庫被調用時直接載入到記憶體,而動態庫再是在需要的時候載入到記憶體,不使用的時候再從記憶體釋放。 unix系統的靜態庫檔案和動態庫檔案尾碼分別是.a和.so
Time of Update: 2018-12-03
本文分析基於Linux 0.11核心,轉載請表明出處http://blog.csdn.net/yming0221/archive/2011/06/05/6527337.aspx Linux在move_to_user_mode()之後,進程0通過fork()產生子進程實際就是進程1(init進程)。其中fork()是通過內嵌彙編的形式給出#define _syscall0(type,name) /type name(void) /{ /long __res; /__asm__ volatile
Time of Update: 2018-12-03
Linux是一個多使用者多任務的作業系統。多使用者是指多個使用者可以在同一時間使用電腦系統;多任務是指Linux可以同時執行幾個任務,它可以在還未執行完一個任務時又執行另一項任務。進程是Linux系統中一個重要的概念,Linux系統中一個重要特點就是可以同時啟動多個進程。根據作業系統的定義:進程是系統資源管理的最小單位。現在,多進程技術已經被許多作業系統所支援,包括Windows/NT/2000和 Linux。在作業系統設計上。
Time of Update: 2018-12-03
感覺關於linux系統基礎方面的知識越來越模糊。好些東西知道大概是怎麼回事。但是要說就說不清楚了。現在再整理一下。一、進程標識1) 什麼是進程ID每個進程都會有一個唯一非負整數的ID,就稱為進程ID,因為其具有唯一性,常用來做其它標識符的部分以保證唯一性。2) 特殊的進程IDl 0 調度進程ID,也稱為交換進程,它是核心的一部分。也被稱為系統進程l 1 inid進程,在自舉過程結束時由核心調用;i n i
Time of Update: 2018-12-03
Linux的I/O多路轉接模型: 在這種模型下,如果請求的I/O操作阻塞,它不是真正阻塞I/O,而是讓其中一個函數等待,在這期間,I/O還能進行其他動作。select()和poll()就屬於這種模型。 select()函數說明標頭檔#include<sys/types.h>#include<sys/time.h>#include<unistd.h>原型int select(int numfds,fd_set *readfds,fd_set
Time of Update: 2018-12-03
我這裡說的ioctl函數是在驅動程式裡的,因為我不知道還有沒有別的場合用到了ioctl,所以就規定了我們討論的範圍。為什麼要寫篇文章呢,是因為我前一陣子被ioctl給搞混了,這幾天才弄明白它,於是在這裡清理一下頭腦。一、 什麼是ioctl。ioctl是裝置驅動程式中對裝置的I/O通道進行管理的函數。所謂對I/O通道進行管理,就是對裝置的一些特性進行控制,例如串口的傳輸傳輸速率、馬達的轉速等等。它的調用個數如下:int ioctl(int fd, ind cmd,
Time of Update: 2018-12-03
#include<pthread.h>建立線程[原型]:int pthread_create((pthread_t * thread,pthread_attr_t * attr, void*(*start_routine)(void*),void *arg))[參數] thread: 線程標識符attr: 線程屬性設定start_routine:線程函數的起始地址arg:傳遞給start_routine的參數[返回]0:成功 -1:出錯[原型]void
Time of Update: 2018-12-03
在 Linux 上實現基於 Socket 的多進程即時通訊周欣 (jones_zhou@yahoo.com.cn), 軟體工程師簡介: 套介面(Socket)為目前 Linux 上最為廣泛使用的一種的處理序間通訊機制。但是它不能直接用來多進程之間的相互即時通訊。本文提出一個基於 Socket 的多進程之間通訊的實現方法,並給出樣本程式的實現和說明。本文的標籤: linux, socket, 上實現基於, 在, 的多進程即時通訊標記本文!發布日期: 2005 年 3 月 01 日 層級: 初級
Time of Update: 2018-12-03
從檔案 I/O 看 Linux 的虛擬檔案系統吳 美清 (yolanda_wumq@hotmail.com), 研究生, 北京大學 軟體與微電子學院簡介: Linux 允許眾多不同的檔案系統共存,並支援跨檔案系統的檔案操作,這是因為有虛擬檔案系統的存在。虛擬檔案系統,即VFS(Virtual File System)是 Linux 核心中的一個軟體抽象層。它通過一些資料結構及其方法向實際的檔案系統如 ext2,vfat 提供介面機制。本文在簡要介紹 VFS 的相關資料結構後,以檔案 I/O
Time of Update: 2018-12-03
linux段錯誤的調試方法 相關博文:http://blog.csdn.net/htianlong/article/details/7439030http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.htmlhttp://www.cnblogs.com/panfeng412/archive/2011/10/24/2222413.htmlhttp://hi.baidu.com/zmohadnaadbfntr/item/57321
Time of Update: 2018-12-03
Microsoft .NET Development Platform的Linux版本出現小氣的神 2001.08.18Microsoft .NET development platform的Linux版本(Mono)出現。 一家叫Ximian的公司在2001-07-09宣布了Mono project啟動,這將是一個Microsoft .NET development platform的Linux版本,整個Mono
Time of Update: 2018-12-03
1)/etc/sysconfig/network-scripts/ifcfg-interface-name設定檔ifcfg-interface-name包含了初始化介面所需的大部分詳細資料。其中interface-name將根據網卡的類型和排序而不同,一般其名字為eth0、eth1、ppp0等,其中eth表示以太(eth0)類型網卡,0表示第一塊網卡,1表示第二塊網卡,而ppp0則表示第一個point-to-poirt
Time of Update: 2018-12-03
文章來源:http://www.top-e.org/jiaoshi/class/ 這得從vmliux.bin的產生過程說起。從核心的產生過程來看核心的連結主要有三步:第一步是把核心的原始碼編譯成.o檔案,然後連結,這一步,連結的是arch/i386/kernel/head.S,產生的是vmlinux。注意的是這裡的所有變數地址都是32位頁定址方式的保護模式下的虛擬位址。通常在3G以上。第二步,將vmlinux objcopy 成arch/i386/boot/compressed/vmlinux
Time of Update: 2018-12-03
1.SIGHUP訊號 UNIX中進程組織圖為 session
Time of Update: 2018-12-03
核心是從哪裡開始執行的呢?幾乎任何一本Linux核心原始碼分析的書都會給出詳細的答案。不過,我試圖從一個不同的角度(一個初學者的角度)來敘述,而不是一上來就給出答案。從熟悉的事物入手,慢慢接近陌生的事物,這是比較常見的思路。既然都是二進位代碼,那麼不妨從最簡單的使用者態C程式,hello world開始。說不定能找到共同點。恰好我是一個喜歡尋根究底的人。也許,理解了hello world程式的啟動過程,有助於更好地理解核心的啟動。好,開始尋根究底吧。從普通的C語言使用者態程式開始寫。先寫一個簡單
Time of Update: 2018-12-03
相關知識:熟悉Linux平台開發的朋友應該都知道fork這個系統調用。Linux系統下,fork系統調用用於從當前進程(父進程)中建立一個新進程(子進程)。要使用fork,只需在程式中引用unistd.h庫,即#include