Operating Systems I

Base Knowledge

The course assumes that students have basic knowledge of:

  • Computer usage;
  • Data communication networks;
  • Basic programming concepts.

Given the current curriculum, an introduction to these topics is provided within this course.

Teaching Methodologies

The content will be developed on the basis of a theoretical and theoretical-empirical approach, building a basic reference framework, either through lectures or through research and synthesis work. These approaches will be complemented by the practical application of the concepts, using practical worksheet(s), laboratory activities involving the installation and configuration of computers, servers, virtualizers, security policies and programming in shell scripting.

 Lectures:

  • Exposition and theoretical discussion of the topics taught.

 Practical classes:

  • Very short sessions introducing new topics and providing examples.
  • Solidification of knowledge through the practical application of concepts, using practical worksheet(s).
  • Laboratory activities to install and configure computers, servers and virtualizers.
  • Laboratory activities on configuring file systems and defining security policies.
  • Solving exercises involving programming in shell scripting and programming for Unix/Linux environments

Learning Results

This course aims to provide students with:

  • Basic competencies in operating systems;
  • The ability to use and administer Unix systems;
  • An understanding of system programming fundamentals in Unix;
  • The ability to automate daily tasks.

Students should acquire knowledge about the fundamental functioning of operating systems, with a focus on the Unix/Linux family. This includes the ability to use, configure, and efficiently manage these systems.

Program

  1. Operating system fundamentals. Objectives and system components. OS, Process and User Management. Levels of Privileges.
  2. Unix/Linux Operating Systems Basics: Architecture. Components
  3. Unix file systems. Permissions and security. User management Configuration files.
  4. Installation and configuration of Unix/Linux systems. Using Unix/Linux command line. Commands for: file manipulation and management, manipulation and extraction of information in text files. Redirect Commands for machine management and user management. Command line desktop configuration.
  5. Bash Script Programming. Unix task automation through Bash Script.
  6. Scheduling. Processor management Escalation algorithms.
  7. C programming for Unix environment: Process management. Signals. Files Redirect

Grading Methods

  • All students must ensure that their mailbox is operational, checked daily, and has sufficient space to receive regular emails, maintaining a reliable communication channel with the course coordinator. Deadlines and other elements communicated via email that are not met may result in failure of the course.
  • The evaluation methodology adopted in this Course Unit (CU) will be the one designated by the School as M1. As clarified in an email from the Vice-President of ISEC (2021/11/19; 18:07), this methodology consists of continuous and/or periodic assessment types, concluding before the exam period, with no further assessment or exam opportunities afterward.
  • Students with special status, duly recognized by the Academic Services, that formally justifies their inability to regularly attend classes must communicate this fact in a properly documented manner via email to the course coordinator as soon as possible, so that alternative assessment moments can be scheduled in accordance with the constraints justified by their status. These students are also responsible for following the course from the beginning of the semester and maintaining regular contact via email and the Nónio platform with the course coordinator.
  • Students who attended the previous edition of the course without passing but met the minimum required attendance (75% or more of classes, including justified absences) should proceed as described above for students under special status who are unable to attend the course regularly.
  • Any student unable to attend an assessment moment due to a justified reason validated by the program coordinator must inform the course coordinator via email as soon as possible to arrange an alternative assessment date.
  • To pass, students must attend at least 75% of theoretical and practical classes, except in justifiable exceptional cases. Students covered by special regimes, such as working students, are exempt from this requirement.
  • Students who submit or present assessment elements that are not their own genuine work or to which they have not contributed acceptably within their assigned group will have the notation EF (Excluded for Fraud) recorded in the official grade report and will be subject to the corresponding disciplinary procedure as per the current regulations.
  • Students who fail to meet deadlines, mandatory tasks, minimum requirements per objective, or any other assessment rule will have their evaluation in all course components interrupted, with the notation NRC (Does Not Meet Requirements) recorded in the official grade report.

Continuous Assessment:

All grades are expressed on a 0-20 scale.
Attendance and punctuality will be valued. Weekly class questions may be included.

The theoretical component accounts for 8 points of the final grade, while the practical component represents 12 points.

Practical: 12 points

  • 10 points: Tests, exercise sheets, and questions, individual or group-based, conducted in class, with no minimum requirements.
  • 2 points: Participation and behavior in class (1 point each).

Theoretical: 8 points

  • 6 points: Tests conducted in class, with no minimum requirements.
  • 2 points: Participation and behavior in class (1 point each).

The final UC grade is calculated using the following formula: Final Grade = (8 × Theoretical Grade + 12 × Practical Grade) / 20


    Internship(s)

    NAO

    Bibliography

    • Marques, J., Guedes, P. (1998). Fundamentos de sistemas operativos (4ª ed). Lisboa : Editorial Presença

    • Marques, J., Ferreira, P., Ribeiro, C., Veiga, L., Rodrigues, R. (2012). Sistemas Operativos (2ª Ed). FCA

    • Garrott, J., Amador, J., Castro, J. (2002). UNIX Curso Completo (3ª ed). FCA

    • Matthew, N., Stones, R. (2007). Beginning Linux programming (4th ed). Birmingham : Wrox Press