Things to know for the test
-
Hardware Stuff
-
What is a PIC?
-
How does the speaker work?
-
What is a tick?
-
How would you change the value for tick?
-
Kernel Interface
-
General Stuff
-
How do you get the PID, UID, etc
-
How do you get the current time of day
-
How can you tell if a pointer is a valid pointer?
-
What do you return if the pointer is invalid?
-
What is a module
-
What's the module init code, and what does it return, and how can you change
it's name.
-
What's the module finish code, and what does it return, and how can you
change it's name.
-
Suppose you don't want your module to load, how can you prevent it
-
Where does the detect-the-device code go
-
How can I tell what modules are already loaded
-
How do I load and unload
-
What is the module_author, module_description macros?
-
File System Basics
-
What is a device file
-
What are major and minor numbers, how big can they be, are they signed
-
What's the difference between block and char
-
Can a block and a char share the same major and minor number
-
Can more than one device file share a common major and minor number
-
How do I make a device file? Must I be root?
-
The File System calls
-
What is an fops structure? What do
-
What generates an open, read, write, release?
-
How does caching effect this?
-
What do you return for eof? What do you return for permission denied?
-
If they should not access the file, which function decides that?
-
What if they ask for 1000 bytes, and you give them 500?
-
What if they ask for 1000 byte, and you give them 2000?
-
Proc file system
-
How do I register a file? How about a device file, or a directory?
-
Do proc files have a major and minor number
-
Memory managment
-
How can I allocate ram? Is this ram swappable? Whats the
most I can allocate
-
What is __va?
-
Are pointers from the user in userspace or kernelspace?
-
How do you copy from/to userspace?
-
How do I delay and then get a function called
-
Driver Basics
-
What is the top and bottom half?
-
How do you register a major number?
-
How do you register a minor number?
-
Where is the file position kept?
-
What is a fileposition?
-
How do you change that (at least two answers)
-
What is file->f_privatedata
-
How do you read or write to a port?
-
Other things
-
If I allocate an array outside of any function, does it survive between
function calls?
-
What is 'static'?
-
makefiles
-
#define
-
FUSD
-
What is it
-
What are the advantages/disadvantages
-
What are it's components
-
USB
-
Speed
-
Four transfer types
-
Is it a block or a char device?