華中科技大學計算機操作系統實驗報告兩篇
實驗目的
掌握Linux操作系統的使用方法;
瞭解Linux系統內核代碼結構;
掌握實例操作系統的實現方法。
一、實驗要求
1、掌握Linux操作系統的使用方法,包括鍵盤命令、系統調用;掌握在Linux
下的編程環境。
編一個C程序,其內容為實現文件拷貝的功能;
編一個C程序,其內容為分窗口同時顯示三個併發進程的運行結
果。要求用到Linux下的圖形庫。
2、掌握系統調用的實現過程,通過編譯內核方法,增加一個新的系統調用。
另編寫一個應用程序,調用新增加的系統調用。
實現的功能是:文件拷貝;
3、掌握增加設備驅動程序的方法。通過模塊方法,增加一個新的設備驅動
程序,其功能可以簡單。
實現字符設備的驅動;
4、瞭解和掌握/proc文件系統的特點和使用方法
瞭解/proc文件的特點和使用方法
監控系統狀態,顯示系統中若干部件使用情況
用圖形界面實現系統監控狀態。
5、設計並實現一個模擬的文件系統(選作)
二、實驗一
1、編一個C程序,其內容為實現文件拷貝的功能
要實現文件拷貝功能,主要用到的函數是fopen、fputc、fgetc。
主要用到的頭文件:
#include
#include
設計思路:由scanf函數獲取2個文件名,根據其文件名和路徑分別打開該2個文件,設置一個循環,從源文件複製1個字節到目的文件,直到源文件指針到文件尾,最後關閉2個文件。
在可能出錯的地方需要加上相應的'報錯代碼,並輸出錯誤信息,以方便調試。
理清楚設計思路後,首先搭建linux下編程環境。
安裝gcc: sudo apt-get install build-essential
安裝codeblocks: sudo apt-get install codeblocks
在集成開發環境Code::Blocks IDE下根據需求寫出相應的源代碼copy.c ,將程序編譯並生成exe可執行文件。
然後手動創建一個測試文件 ,運行文件,並輸入
篇二:華中科技大學計算機操作系統實驗報告
實驗目的
掌握Linux操作系統的使用方法;
瞭解Linux系統內核代碼結構;
掌握實例操作系統的實現方法。
一、 實驗要求
1、 掌握Linux操作系統的使用方法,包括鍵盤命令、系統調用;掌握在Linux
下的編程環境。
編一個C程序,其內容為實現文件拷貝的功能;
編一個C程序,其內容為分窗口同時顯示三個併發進程的運行結
果。要求用到Linux下的圖形庫。
2、 掌握系統調用的實現過程,通過編譯內核方法,增加一個新的系統調用。
另編寫一個應用程序,調用新增加的系統調用。
實現的功能是:文件拷貝;
3、 掌握增加設備驅動程序的方法。通過模塊方法,增加一個新的設備驅動
程序,其功能可以簡單。
實現字符設備的驅動;
4、 瞭解和掌握/proc文件系統的特點和使用方法
瞭解/proc文件的特點和使用方法
監控系統狀態,顯示系統中若干部件使用情況
用圖形界面實現系統監控狀態。
5、 設計並實現一個模擬的文件系統(選作)
二、 實驗一
1、 編一個C程序,其內容為實現文件拷貝的功能
要實現文件拷貝功能,主要用到的函數是fopen、fputc、fgetc。
主要用到的頭文件:
#include
#include
設計思路:由scanf函數獲取2個文件名,根據其文件名和路徑分別打開該2個文件,設置一個循環,從源文件複製1個字節到目的文件,直到源文件指針到文件尾,最後關閉2個文件。
在可能出錯的地方需要加上相應的報錯代碼,並輸出錯誤信息,以方便調試。
理清楚設計思路後,首先搭建linux下編程環境。
安裝gcc: sudo apt-get install build-essential
安裝codeblocks: sudo apt-get install codeblocks
在集成開發環境Code::Blocks IDE下根據需求寫出相應的源代碼copy.c ,將程序編譯並生成exe可執行文件。
然後手動創建一個測試文件 ,運行文件,並輸入
與。
這樣就能將源文件複製到目標文件
程序源代碼 copy.c:
#include
#include
int main()
{
char a[20],b[20];
scanf("%s",a);
get);
scanf("%s",b);
FILE *p=NULL,*q=NULL;
p=fopen(a,"rb");
if(p==NULL){printf("%s default",a);return 0;}
q=fopen(b,"wb+");
char c;
while((c=fgetc(p))!=EOF)
{
fputc(c,q);
}
printf("copy success");
return 0;
}
2、 編一個C程序,其內容為分窗口同時顯示三個併發進程的運行結果。要
求用到Linux下的圖形庫。 安裝Linux下的GTK+: sudo apt-get install build-essential
這將安裝gcc/g++/gdb/make 等基本編程工具
sudo apt-get install gnome-core-devel
這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件 sudo apt-get install pkg-config
用於在編譯GTK程序時自動找出頭文件及庫文件位置
sudo apt-get install devhelp
這將安裝 devhelp GTK文檔查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc
這將安裝 gtk/glib 的API參考手冊及其它幫助文檔
sudo apt-get install glade libglade2-dev
這將安裝基於GTK的界面GTK是開發Gnome窗口的c/c++語言圖形庫
sudo apt-get install libgtk2.0*, gtk+2.0
所需的所有文件統通下載安裝完畢
編寫一個GTK+程序的基本步驟如下: 初始化Gtk 建立控件 登記消息與消息處理函數 執行消息循環函數gtk_main()
題名
初始化主要使用的函數有 gtk_init(&argc,&argv);//啟動GTK gtk_window_new(GTK_WINDOW_TOPLEVEL); //創建窗口 gtk_window_set_title(GTK_WINDOW(window),"標題名"); //設置窗口標gtk_widget_set_usize(window, 200, 200); //設置窗口大小 gtk_widget_show(window); //顯示窗口建立控件的一般流程
/*創建表格準備封裝*/ gtk_table_new ( //創建多少列
gint rows,
gint columns,
gint homogeneous);
//創建多少欄 //用來決定表格如何來定大小 /*這個函數是將表格table,結合到窗口window裏*/ gtk_container_add(GTK_CONTAINER(window),table);
gtk_widget_show(table); // 顯示該表格
/*要把物件放進box中,可用以下函數*/
void gtk_table_attach_defaults (
GtkTable*table, //參數("table")是選定某表格
GtkWidget*widget, //("child")是想放進去的物件
gintleft_attach, //以下參數是指定把物件放在哪裏, 及用多少個boxes
gintright_attach,
ginttop_attach,
gintbottom_attach);
在Code::Blocks IDE創建GTK+工程如下流程:
首先在codeblocks選中File,然後選擇New,最後Project。出現如上圖所示界面。
在該界面中選中GTK+Project然後Go進入下一步。
繼續Next,直到如下圖輸入工程名稱與路徑。
然後Next->Finish
這樣,就創建了一個GTK+工程。
直接運行剛才創建的GTK+工程中的默認程序,得到一個包含2個按鈕的窗口界面應用,如下圖所示:
此時,可以按此模板修改源代碼,也可以刪除重寫。
併發進程:
創建3個如上GTK+工程,生成3個不同的exe文件。
if ((p1=fork()) == 0)
{
execv("../1",NULL);
}
else if ((p2=fork())==0)
{
execv("../2",NULL);
}
else if ((p3=fork()==0))
-
win10內存佔用過高的解決方法
很多小夥伴在使用win10系統的時候,關閉了所有應用後,內存使用率依舊在90%以上,下面整理了win10內存佔用過高的.解決方法,希望對大家有所幫助!解決方法1看必要條件。2關閉windowsupdate。設置後效果:內存使用率明顯下降,開機控制在2G左右,玩遊戲QQ、YY、音樂、網頁等全...
-
Linux運維工程師的崗位職責15篇
隨着社會一步步向前發展,我們每個人都可能會接觸到崗位職責,制定崗位職責有助於提高內部競爭活力,提高工作效率。大家知道崗位職責的格式嗎?以下是小編幫大家整理的Linux運維工程師的崗位職責,歡迎大家借鑑與參考,希望對大家有所幫助。Linux運維工程師的崗位職責1職...
-
win7如何免費升級到win10
Windows10國內升級渠道,主要是通過兩個途徑,一個是360,而另一個則是鵝廠,就目前所知情況而言,不管是否是盜版用户,只要滿足標準都可以升級至Win10,下面是小編給大家整理的一些有關win7免費升級到win10的方法,希望對大家有幫助!win7免費升級到win10的方法啟動360安衞士...
-
Windows10的週年更新中無法關閉Cortana
導讀:備受期待的Windows10的週年更新中將會帶來諸多新特性,包括更實用的開始菜單、WindowsInk、強化的WindowsDefender,甚至還有一個無法關閉的語音助手Cortana。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!目前在Windows10...