Convert from a high-level OOP to Linux Kernel programmer [closed] - linux-kernel

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I need to convert myself from a high-level OOP programmer to a kernel device driver programmer.
So i must somehow learn low level stuff ( e.g. advanced bit manipulation and stuff ), Linux kernel plus device driver programming.
This is my new job, so my only option is to comply.
A list of books or tutorials will be much appreciated.
Thanks.

For an introduction http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf . Others may be
Linux Device Drivers, 3rd Edition - Jonathan Corbet,
Linux System Programming: Talking Directly to the Kernel and C Library - Robert Love,
Understanding the Linux Kernel - Daniel P. Bovet.

Learn C. I mean really learn, not just how to make something work, but understand pointers inside out, be able to know what complex expressions do, type promotions etc.
And in parallel just start working on it. Learning by experiencing usually works very well. Maybe try a simple driver that just exports something through sysfs, and then the same with procfs, debugfs, device file. Issues with multiple readers/writers ... there's always some scenario you can make up and then try to solve it.

Get hold of a target machine
Reading books alone is not enough, the best way would be to get a target board (I prefer Raspberry Pi) to load and test the kernel that you will be compiling, the driver that you will be writing.
Among other things, following are the best resources on the internet:
LWN - Has articles on linux kernel features, some of them wriiten by the original authors of those features
Linux Journal - A magazine of linux kernel tools and features
LXR - Online indexed Linux source code
Mailing lists - Subscribe to one of the linux kernel mailing lists that relates to what you would be working on to stay updated
And these are very valuable resources for linux kernel information:

Related

x86 assembly from Windows perspective? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm wanting to learn assembly programming and have found some great resources online, but the majority of them are oriented towards Linux users, DOS users, or use a high level assembler. I have no problem with Linux, but I just prefer Windows. Are there any resources (preferably online, but book is fine) that are oriented towards Windows users. I also would like it to give a strong explanation of the hardware.
To really learn the Intel/AMD processor, you may want to read from the source:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html?iid=tech_vt_tech+64-32_manuals
This will give you everything you need to know about all the instructions. It won't tell you how to write code for your assembler, though. However, Intel uses the same syntax as Microsoft uses, so it should be a perfect match.
Note that AMD has similar books that you can also download. I prefer the Intel docs, but unless you want to use extensions from one of these brands, you'll be good with either one.
These books are free too.
Yes, get a book.
But you'll also want programming tools. Visual Studio Express for C and C++ includes ML, an x86 assembler, and a quite nice development environment. To my amazement, it is free. Guess MS is making tons of money on Word.
This suggests you should get a book that is focused on Microsoft assembler, often called "MASM" in spite of being filed under "ML.exe".
There's plenty of good info on the web. http://masm32.com/ for instance. Also, look up "wininc" (which can be used with jwasm). Microsoft's own online documentation is a bit challenging to search/read, but has all the details you'll need.

Completely open sourced ARM board [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 8 years ago.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Improve this question
I am learning to customize the Linux kernel to make it portable on embedded systems. To test my customized kernel , i want a completely open sourced ARM board. I investigated the Raspberry pi but some it's firmware (i.e. "start.elf") is not open source. Can anybody name an ARM board which is completely open source?
Also are there any such board whose ROM/AVRAM contents can also be replaced?
Thank you !
If by "completely open source" you mean open source bootloader, kernel and OS (correct me if I'm wrong), then I would recommend one of Beagle family boards -- they are inexpensive, user friendly and have a good community support. Their open source stack consists of U-Boot, Linux kernel and one of few available distributions. If you need advanced features, check out EVM's by Texas Instrument, but they cost much more.
Jetson-TK1 from nvidia, is a developer platform,
does have u-boot loader, Linux Kernel and rootfs,
The board layout is also shared, you can recompile things for you.
It comes with 2GB RAM, a 2.3GHz Quad core processor, with GPU that is ready for CUDA kind of high level programming
http://www.newegg.com/Product/Product.aspx?Item=N82E16813190005

Practical guide on machine learning for developers? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Machine learning seems to be a buzzword on startups, but as a traditional developer dealing mainly on MySQL, Python/PHP, Javascript, etc, I cannot find any really helpful tutorial online that can get me started on using machine learning techniques to enhance existing web projects.
So what I have in mind is like
- categorizing/tagging user submitted post automatically
- provide personalized recommendation
At the risk of being close as non constructive, might I ask here: would there be a "Hello World" kind of projects, or basic use-cases that help introducing machine learning techniques to practical programmers? Or at least some guides as to how to get started on this track?
Although many would recommend Elements of Statistical Learning, by Hastie, Tibshirani and Friedman, I feel the following resources more suited for people with a programming background rather than a mathematical background:
Machine Learning for Hackers, Drew Conway and John Myles White, O'Reilly, 2012
Algorithms for the Intelligent Web Haralambos Marmanis and Dmitry Babenko, Manning, 2009
To really get hands on, choose a language and find a machine learning library in that language, along with an accompanying tutorial. For instance Apache Mahout, or Weka for Java, Scikit-learn for Python, etc.
Also, PyGotham2011 features a video tutorial on developing machine learning-based features for web development.
There's quiet a nice, practical hands-on book which might give you some basic insights on what is going on:
Collective Intelligence - Building smart Web2.0 applications
ISBN-10: 0596529325
ISBN-13: 978-0596529321
It is using Python as example language, but I think it should give you some ideas.
Regarding Recommendations, there is also a good Introduction to Mahout Recommenders:
https://cwiki.apache.org/confluence/display/MAHOUT/Recommender+Documentation
Mahout also has the capabilities of doing clustering / categorizing texts, so it's worth to have a look into this machine learning library.

What resources would you recommend for learning about OS security? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I'm interested to discuss security and want to work in this field.
I need a difference of useful resources!
I first want to study the security of operating systems,
both Windows and a version of Linux.
Which Linux version is better for security work, and what is the best resource for learning?
What is the best resource for learning Windows Security?
What are the resources for learning programming under these operating systems?
I do not mean to be rude, but Google will really fetch you some updated articles on what you want. Trust me, I've been there. Also try YouTube.
There's no Linux "version". What you want is a distribution, or a distro! Try BackTrack Linux. It is hot among the sec guys, as it comes pre-loaded with all the security auditing tools you may need.
Get the book called "The Art of Exploitation" and get your hands dirty, even if that means running a deliberately vulnerable Linux kernel (old, unpatched). That'll get you to learn the concepts of overflows, format-string attacks, injections etc.
The book mentioned discusses about Windows security(?) as well.
As far as programming is concerned, learn C/C++ first. Understand the low level UNIX system calls. Then, move on to learning WIN API (go to msdn and search) for Windows and strengthen your programming skills on Linux using a library related to what you like : study OpenGL/GLUT if you're into graphics, learn QT if you wish to build X-platform GUIs.
and, GET YOUR DATA STRUCTURES RIGHT.
"Programming" is an art that no one, nor any "resource" can teach you. You have to survive those segfaults, hair-pulling moments and evening-to-early-morning code marathons to actually bring out the "programmer" in you :)
EDIT: subscribe to security mailing lists :)
Happy (never-ending) journey,
keep learning,
regards,
Yati

Are there any High Level, easy to install GUI libraries for Common Lisp? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Are there any good, cross platform (SBCL and CLISP at the very least) easy to install GUI libraries?
Ltk is quite popular, very portable, and reasonably well documented through the Tk docs. Installation on SBCL is as easy as saying:
(require :asdf-install)
(asdf-install:install :ltk)
There's also Cells-Gtk, which is reported to be quite usable but may have a slightly steeper learning curve because of its reliance on Cells.
EDIT: Note that ASDF-INSTALL is integrated this well with SBCL only. Installing libraries from within other Lisp implementations may prove harder. (Personally, I always install my libraries from within SBCL and then use them from all implementations.) Sorry about any confusion this may have caused.
clg is a binding of GTK for Common Lisp. Both complete and lispish.
If you want to design graphical interfaces in CL, you might want to take a look at CLIM, too, which some kind of standard API for GUIs. Allegro and Lispworks have their own implementation of it, and there's a free software one, McCLIM.
Also, just found a Smoke library QT bindings, called CommonQt for CL
There's also wxCL, providing CFFI bindings for wxWidgets.
LispWorks comes with CAPI, it's portable accross Mac, Windows and Linux and even has some GUI-Builder. It's free for personal use.

Resources