How to become a linux device driver programmer? [closed] - linux

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Can any one suggest me how to become a linux device driver programmer.
I have many doubts as I am working as software engineer in a company (1+ yr experience ).Our project is done using C,c++ in linux and windows both,I am working in C,C++ and using Visual studio and Linux GCC for my project.Our project is mainly on remote management of servers and systems.
I am very interested linux kernel-device driver programming .
can any one tell me what is good for me,and how to start I got some books (LDD 3ed ,etc ) but only reading book is sufficient or I have to get some training.
what about this driver programming future and scope.
Kindly tell some suggestion.
Thanks

The LDD O'Reilly book is really good (Rubini et all), Also take a look at the LXR project:
http://lxr.linux.no/
It is a great cross-linked reference of the kernel source. Reading over current driver code is probably the best way to become acquainted.
The best way to learn any language or coding style is to read as much code as you can. Compile it, modify it, crash the kernel, and just play around. Kernel drivers are my personal favorite thing to write, you have a lot of exciting stuff to see!
Good luck!

Related

Which language is suitable for Linux and related programming? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
What would be the best language if I want to develop a range of Linux related things. I want to make kernel patches, Linux programs, contribute with other projects, etc. Where and with which language do I start?
The best way to decide which language is going to be useful to you is to look at the source for the projects to which you wish to contribute. Take a look around popular code repositories, such as github, google-code and sourceforge.
Diving into a language like python may be useful for some scientific projects, but not at all useful for something low-level like linux-kernel development.
I want to make kernel patches
The Linux kernel source tree is currently:
96.5 % c
2.2% assembly
1.3% "other" (documentation and makefiles, presumably).
So start with The C Programming Language and go from there!
Good luck!
You should know C (for kernel patches) and Bash (so you can actually use Linux). Maybe also Python (for general scripting).
If you want to do kernel work and a variety of other Linux core things, then C (followed by C++) would be your starting point. You also need to throw in a healthy does of bash shell programming. And gcc is the compilation tool of choice. The kernel is nearly all C and a lot of apps use C++
Learning Python is a good start, if you are familiar with Object Oriented programming. Shell scripting can help you a lot too.

Which tools to learn to develop on Linux [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I've written a C-app on Linux, but I didn't know about "make" to auto compile, just write code with Vim and manually compile my app.
Which tools, utilities that a programmer should learn to be more productive on Linux?
I know git, diff, batch, make. Can you suggest more? thanks
(more specific, what tools for C, Python, Java programming)
PS: sorry for my bad English.
You could learn more by looking into how actual free Linux software are. So try for instance to retrieve and build from its source code some utility like e.g. GNU make
You could also use GNU emacs instead of vim. It is a matter of taste (sort of "religious wars"). The main difference is that emacs users are doing all from emacs.
You could try Netbeans an IDE for writing codes?

What language are most Linux GUI applications written in? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I apologize if this is off topic. Please close if it is.
I want to get in to a bit of Linux application development. What programming language are the majority of GUI apps made in?
It usually largely depends on the DE (desktop environment) you are focusing on; each usually has one GUI toolkit that it's using the most.
For instance, GNOME mostly uses GTK+; and since GTK+ is written in C, many Linux GTK+ GUI apps use that, but there are also bindings to other languages, like Python, which I've also seen used often. And there are bindings for other languages too.
On the other hand you have KDE, which is mostly based on Qt; and, since Qt is written in C++, most apps using Qt are also written in C++.
However, honestly the choice of language doesn't matter much; it's more the toolkit that matters. I'd pick the one your DE uses, and then choose one of the languages it supports.

Best UML designing tool in Linux? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Urgently want to know best UML designing tool in Linux?
Which Also Support ERD
Is it Possible to use in NetBEANs IDE 6.9.1
Almost all UML tools are Linux compliant.
Try Papurus with Eclipse or BOUML which are free and open source. RSA is pretty good as well as Omondo but not free.
I use and prefer Umbrello.
ArgoUML is also quite good but its GUI bugs will drive you mad...
I never had any problems with dia. It's part of gnome, almost all distributions package it. Also has a Windows version but I didn't use that one for a long time. Of course, "best" is relative to what you are expecting from it.

I want to contribute to the Linux kernel [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to work with the Linux kernel, but I have no idea where to start. Is there a sort of ticketing system somewhere where bugs and such are distributed? Where can I get ideas for potentially useful contributions?
EDIT: Yes I know what I'm doing. I've been writing my own modifications for a good while now, and I'm doing an independent project under one of the operating systems researchers at my university next semester.
The reason I ask is I'd like to contribute my expertise to the dev process, and I don't know where to start in terms of organization. In terms of technical matters, I'm just about there.
Start with these: Kernel Bugs involving typo.
(Search everyday until you find something promising).
Search that bug database with keywords like "comment", "typo", "documentation", "minor bug", etc.
Also, search under the category Documentation here.
Learn the process first. Then, attempt to contribute something significant.
Pick a subsystem and subscribe to the relevant mailing list. Spend some time studying the subsystem. Start small and fix simple bugs then gradually do work of higher significance. You may want to look at the TODO files in the kernel source directory, especially for drivers in staging.
Get a GIT tutorial. You may also watch this

Resources