To the table of contents--->
     
          The main contents:
          • System call interface (UNIX SVID and IEEE POSIX 1003.1b real-time extensions and functions)
          • Some examples of device programming (RS line in i486/Pentium "protected mode" environment)
          • The kernel of a multitasking operating system (a code level example in the i486/Pentium "protected mode" environment)
          Links to my teaching environment:
          • Download the material (tar/gz), links changed to local drive (can be little bit older than the web material).

          • Start browsing from the file rtgiftoc.htm.
          • My home page
          • Vitae
          • Course materials (handouts like this)
          • Laboratory works, projects, exams, student info, course critics
          Some comments to the reader:
          • During one short operating system course You can either learn for ex. to know plenty of different scheduling algorithms as well as to learn to know all different types of threads ( a type of process) or You can learn fewer things at practical level (to do something not only to know about something). These courses are aimed for practice (the operating system part with a small embedded systems in mind). This material is not suitable for theoretical studies.
          • QNX is an example of POSIX 1003.1b real-time operating system and micro kernel (ftp://ftp.qnx.com/pub/papers).
          • POSIX 1003.1b example programs of Bill Gallmeister's excellent book can be found from (ftp://ftp.ora.com/published/oreilly/posix/posix.4).
          • Laboratory works and project works for this course are also available from web.
          • An experimental embedded system test bench, (accessible from web) uses the example kernel.
          • You can get more links to other Internet resources from my home page.
          • This material is for two different (closely connected ) courses. Chapters in the table of contents with "italic" are for operating system course. Bigger font and "bold" indicates that a chapter is for both courses.
          • You probably will find that English is not my best language- hopefully You are still able to understand the text.
           The use of the material:
          • The material is intended to support the course lectures and it is not intended for self studies
           Bibliography and further readings:
          • Advanced Programming in the UNIX Environment (Stevens/Addison-Wesley)
          • IEEE POSIX 1003.1b standard (formerly 1003.4)
          • Advanced UNIX programming ( Prentice Hall/ Rochkind )
          • Programming for the real world POSIX.4 (Bill Gallmeister/ O'Reilly)
          • The UNIX programming environment ( Kernighan/Pike/Prentice Hall)
          • Operating system design the XINU approach (Douglas Comer/Prentice-Hall)
          • uC/OS (Labrosse)
          • Concurrent systems (Bacon/ Addison-Wesley)
          • The design of the UNIX ( Bach )
          • Real time UNIX systems ( Borko ..../ Kluwer )
          • Operating Systems Design and Implementation (Tanenbaum/Prentice Hall)
          • Programming manuals HPUX ( Real-time)
        Table of contents

        Course description and bibliography
        Back to the home page
        Labs/ spring 2001 (new: a more precise requirements specification of the project 29.1.2001)

        • 1. APPENDIX/ compiler/linker/make/gdb/procedure calling conventions
        • 2. General Real Time Applications and some examples
        • 3. A common architecture of (large scale) real-time systems
        • 4. Some operating systems, terminology, POSIX, use of system calls
        • 5. Multitasking and scheduling algorithms
          • 5.1 Different scheduling algorithms
          • 5.2 When to change the running process
        • 6. Programs and processes, semaphores, shared memory
        • 7. Signals
        • 8. Berceley sockets and Client- Server model

        •  
        • Threads/Pthrerads/POSIX 1003.1c
          • Introduction
          • Example 1
          • Example 2
          • Sane example
        • 9. Record locking
        • 10. Files
        • 11. Portability
        •  12. Basic file I/O
        • 12.8 Advanced file I/O
        • 13. Terminal I/O (asynchronous terminals)

        •  
        • 14a. Device drivers and kernel (general basics)
          • 14.1 Device driver - an introduction
          • 14.2 Device switch table
          • 14.3 Linux kernel hacker tour
          • 14.4 Linux device drivers
          • 14.5 Linux sleep_on/wake_up
          • 14.6 WBS serial line driver ported to Linux (see 14b)
        • 14b. A practical device programming example (serial line)

        •  
        • 15. Kernel main functions simulated in the UNIX - environment
          • Introduction (post script)
          • Simulation phases 1 and 2 (post script)
          • 15.1 Example program 1(scheduling)
          • 15.2 Example program 2 (send/receive messages)
          From simulation to the "stand alone system"
          • The structure of the phase 3 (post script)
          • Phases 3 and 4 (post script)
        • 16. Simple multitasking kernel as an example
          • Object diagram of the kernel (post script)
        • 17. C- language listing Intel 8086/ Hitachi HS7000 RISC
        • _____________________________________________________________________
        • C- language listing Intel 8086/ Hitachi HS7000 RISC- revised- no scheduler process
        • ____________________________________________________________________
        • 18. Protected mode setup tables and structures GDT, IDT, TSS ...
        • 19. C- language listing and development tools of the kernel Intel x86/protected mode
        • 20. C-language listings and development tools of the kernel running in Intel ev386ex
        Finnish
        • 22. Kaikki ominaisuudet käyttöön Intel 386:sta ja Pentiumista (article/Prosessori 8/94)