Department of Computing

Local Navigation

Unit Outline: ITEC856

Semester 2, 2008

Convenor: Milton Baar

Prerequisites: It is strongly recommended that prospective students have an understanding of Linux and are competent in programming with C.  If you cannot program in C but you are competent in Java, you should consider this unit but also consider gaining more C skills before week 2.

This unit will not teach C nor Linux introductory concepts.  If you are not familiar with the Linux environment, you should not select this unit.

About This Unit

In order to support new devices and constructs, operating systems require continual revision and expansion of their core facilities, from process management through to networking. The goal of this course is to introduce students to fundamental systems programming, patterns and properties, including modularity, textuality, transparency and configurability. The practical component of the course will introduce procedural programming using C, and students will be required to develop device drivers for the Linux operating system to explore the real-time hardware-software interface.

The practical component of the course will introduce procedural programming using C, and students will be required to develop device drivers for the Linux operating system to explore the real-time hardware-software interface.  Towards the end of the unit some comparisons with kernel-mode operations in other operating systems will be explored.

This unit is related to ITEC854 Information Security Management and ITEC851 Vulnerabilities in Commercial Operating Systems.  ITEC854 provides detailed content on Information Security Management and gives the student more insight and practical skills into managing information risks.  ITEC851 provides deeper technical skills in several commercial operating systems and focuses on technical and security architectures.

Teaching Staff

Role Name Email Room Office hours
Convenor, Lecturer Milton Baar mbaar@ics.mq.edu.au    

All emails related to ITEC856 should be sent to ITEC856-admin@ics.mq.edu.au and must include your full name and your student id number.

Classes

Each week you should attend 2 hours of lectures and a two hour tutorial/practical. For details of days, times and rooms consult the timetables webpage.

Note that Tutorials commence in week 3.

If you do not have a class, or if you wish to change one, you should see the enrolment operators in the E7B courtyard during the first two weeks of the semester. Thereafter you should go to the Student Centre.

Attendance at class is not compulsory but without successfully completing the lab work and three in-class quizzes, you are unlikely to acquire sufficient information to pass the unit.

Required and Recommended Texts

Major text:

Recommended reading:

Unit Web Page

The web page for this unit can be found at http://online.mq.edu.au/pub/ITEC856. Note that some of the unit materials are publicly available, some material requires you to log in to Blackboard to access it and the major text must be purchased (at the time of course commencement it was not in stock).

The unit will make use of discussion boards hosted within Blackboard. Please post questions there, they will be monitored by the staff on the unit.

Learning Outcomes

A student completing the unit should have:

  1. Practical experience in building custom Linux kernels and successfully creating custom modules for inclusion;
  2. An understanding of the importance of memory structures, file systems, kernel and user space and 32bit v 64bit architectural differences;
  3. An introductory understanding of the importance of secure programming practices; and
  4. Practical skills in creating kernel-mode drivers that interface with real-world devices.

In addition to the discipline-based learning objectives, all academic programs at Macquarie seek to develop students' generic skills in a range of areas. One of the aims of this unit is that students develop their skills in the following:

Teaching and Learning Strategy

ITEC856 is taught via lectures, tutorials and practical sessions. Lectures are used to introduce new material, give examples of operating systems architectural principles and programming techniques and put them in a wider context of custom development of device drivers and other kernel-mode entities. While lectures are largely one to many presentations, you are encouraged to ask questions of the lecturer to clarify anything you might not be sure of. Tutorials give you the opportunity to interact with your peers and with a tutor who has a sound knowledge of the subject. You will be given problems to solve each week prior to the tutorial; preparing solutions is important because it will allow you to discuss the problems effectively with your tutor and maximise the feedback you get on your work. The tutorial/lab problem will also be the foundation of components that you may need in your project.

Each week you should:

Lecture notes will be made available each week but these notes are intended as an outline of the lecture only and are not a substitute for your own notes or the textbook.

Topic List

Week

Topic

1

Introduction & Course Outline

2

The Kernel

3

Memory & processes

4

Multiprocessing and System calls

5

Interrupts and handlers & Quiz 1

6

File system & device drivers (part 1)

7

Networking and modules

8

Device drivers (part 2)

9

Debugging & Quiz 2

10

Timers, synchronisation

11

Security considerations

Comparisons with other OS kernels

12

Project presentations (part 1) & Quiz 3

13

Project presentations (part 2)

 

Relationship Between Assessment and Learning Outcomes

  1. Improved problem solving skills and enhanced ability to think algorithmically: all quizzes involve problems solving and analysis and many of the problems involve algorithmic solutions.
  2. An understanding of the importance of testing and coding correctly within kernel mode: these aspects are taken into account in the marking of the project and quizzes.
  3. An understanding of the basics of Linux architecture, including security structures and program execution modes: architecture questions will feature in two quizzes.
  4. Demonstrating that you can apply the taught theory in a practical project: your understanding of Linux programming and architectural concepts will be demonstrated by a fully documented and operational project.
Task Planned Date Total Marks
In-class Quizzes (3) Weeks  5, 9, 12 45%
Project, peer assessment Due Week 12 10%
Project, lecturer assessment Due Week 12 45%

 

Your final grade will depend on your performance in each part separately. In particular:

All project documentation should be handed in via the online Blackboard system at http://online.mq.edu.au/ by the time specified in the project description.

All work submitted should be readable and well presented.

Late work will be accepted with a penalty of 10% of the marks for the project per day submitted late (not including peer assessment component). Hence, a project submitted five days late will get no marks. If you cannot submit on time because of illness or other circumstances, please contact the lecturer before the due date.

Examinations

There is no examination for this unit.

Plagiarism

Please refer to the Department of Computing Plagiarism Policy for the definition of plagiarism, advice on avoiding it and the penalties in place if you are found to have submitted plagiarised work.

University Policy on Grading

Academic Senate has a set of guidelines on the distribution of grades across the range from fail to high distinction. Your final result will include one of these grades plus a standardised numerical grade (SNG).

On occasion your raw mark for a unit (i.e., the total of your marks for each assessment item) may not be the same as the SNG which you receive. Under the Senate guidelines, results may be scaled to ensure that there is a degree of comparability across the university, so that units with the same past performances of their students should achieve similar results.

It is important that you realise that the policy does not require that a minimum number of students are to be failed in any unit. In fact it does something like the opposite, in requiring examiners to explain their actions if more than 20% of students fail in a unit.

Student Support Services

Macquarie University provides a range of Academic Student Support Services. Details of these services can accessed at http://www.student.mq.edu.au.

Staff-Student Liaison Committee

The Department has established a Staff-Student Liaison Committee at each level to provide all students studying a Computing unit the opportunity to discuss related issues or problems with both students and staff.

For each meeting, an agenda is issued and minutes are taken. These are posted on the web at:

Details of the regular meeting dates will be posted on the unit home page. Anyone with an interest in Computing units may attend. This includes staff involved in the teaching and administration of the units, and all students currently taking a Computing unit at that level. There are formal Liaison Committee representatives for each unit who attend to present the views of the student body; all students are welcome and are encouraged to attend.

The meetings are usually held in the Department of Computing Meeting Room, E6A357.

To forward agenda items or get in touch with your representative, send an email to ITEC856liaison@ics.mq.edu.au.

If you have exhausted all other avenues, then you should consult the Director of Teaching (Dr Steve Cassidy) or the Head of Department (Assoc. Prof. Tony Sloane). You are entitled to have your concerns raised, discussed and resolved.

Copyright & Site information

  • CRICOS Provider No 00002J, ABN 90 952 801 237
  • Authorised by: HOD