Punktacja
Tematy prezentacji
Grupa: wtorek 7:30
- 21.11.17
- 28.11.17
- P. Knapik, Zasada działania i zastosowania RTOS’ów na przykładzie FreeRTOS i mikrokontrolera STM32
- P. Rzepka, Android – system operacyjny na urządzenia mobilne
- 5.12.17
- M. Malec, Mobilne systemy operacyjne
- A. Zema, Macierzyste systemy plików
- J. Kosowski, Protokół Kerberos
- D. Czajkowski, GRUB – czym jest i jak go skonfigurować
- B. Klag, VPN
- 12.12.17
- W. Sobieszek, Zalety i wady platform gier komputerowych
- P. Marczewski, Wirtualizacja serwerów i kontenery
- P. Szczepański, Porównanie platform embedded w zastosowaniach IoT
- K. Dudziak, Czy inteligentne domy i pojazdy są bezpieczne?
- 19.12.17
- J. Machowski, Budowa centrum multimedialnego w oparciu o system openELEC i program Kodi
- T. Kiewra, Wydajność systemów operacyjnych
- M. Babski, Konie trojańskie – trojany
- W. Lisowski, Jądro linuxa
- B. Michalak, Wstęp do ROS’a – czyli robot z własnym systemem operacyjnym
- 9.01.18
- A. Hajdasz, Bezpieczeństwo w systemach komputerowych – szyfrowanie, podpisy cyfrowe
- K. Dembski, Maszyny wirtualne – rodzaje i zastosowania
- R. Orozco, Algorytmy szeregowania zadań w rozproszonych systemach komputerowych
- J. Kuśka, Metody włamań do systemów komputerowych
- N. Herkt, Rootowanie systemu Android
- 16.01.18
- B. Jakubowski, Exploity i rootkity
- M. Drząkowski, Bezpieczeństwo danych, kopie zapasowe
- N. Celiński, Python – czyli język do szybkich rozwiązań
- A. Postawka, Podsystem Windows dla systemu Linux
- C. Królikowski, Machine learning
- 23.01.18
- M. Zakrzewska, Zabezpieczenia na stronach internetowych
- M. Kubica, Jak być anonimowym w internecie?
Grupa: piątek 7:30
- 01.12.17
- M. Wiadomski, Projektowanie systemów wbudowanych, wybór rozwiązania w zależności od wymagań aplikacji
- M. Żurowski, IoT – czy dobrze jest mieć dom w internecie?
- M. Szymczak, Systemy operacyjne na Raspberry Pi – ich działanie oraz możliwe wykorzystanie
- M. Głowacki, Cechy systemu plików btrfs
- 08.12.17
- J. Walecki, Konteneryzacja aplikacji; docker & kubernetes
- M. Bajger, Wirusy
- M. Rędzia, VPN
- R. Nowak, Systemy czasu rzeczywistego w przemyśle
- M. Brzozowy, Bezpieczeństwo w systemach komputerowych, odzyskiwanie danych/systemu po awarii/włamaniu
- 15.12.17
- M. Wójcik, Bezpieczeństwo w systemach komputerowych – ochrona przed atakami i złośliwym oprogramowaniem, analiza powłamaniowa
- M. Gottschling, Tego nie zobaczycie na studiach, czyli najdziwniejsze języki programowania
- P. Mędyk, Tor, VPN, serwer proxy – anonimowość w internecie
- B. Matysik, Technologia blockchain. Właściwości. Zastosowania. Przyszłość?
- R. Madeja, Sposoby wyłudzania danych w internecie
- 22.12.17
- M. Filipowicz, Wine – wszędzie tam gdzie Linux nie może
- J. Jarek, Oprogramowanie nowoczesnych samochodów
- K. Lisakowska, Środowiska graficzne
- A. Matyśkiewicz, Kontrola użytkownika w nowoczesnych systemach
- A. Paździor, Bezpieczeństwo w systemach komputerowych- szyfrowanie, algorytm RSA
- 05.01.18 (prawdopodobnie zajęcia będą musiały być przesunięte)
- A. Wiśniowski, Dystrybucje Linuxa
- A. Matyśkiewicz, Kontrola użytkownika w nowoczesnych systemach
- M. Gotszalk, Protokół Kerberos
- M. Marciniak, Algorytmy kompresji
- M. Skoczylas, Bezpieczeństwo w systemach mobilnych
- 12.01.18
- S. Kuprasz, Technologie sieciowe do zastosowań przemysłowych, systemów czasu rzeczywistego i systemów wbudowanych
- Ł. Lechowicz, Maszyny wirtualne – rodzaje, możliwości i zastosowania
- J. Cycoń, Android -System operacyjny na urządzenia mobilne
- E. Michalski, Mobilne systemy operacyjne – iOS
- F. Wojtowicz, Metody włamań do systemów komputerowych
- 19.01.18
Kryteria oceny – laboratorium
Lista nr 4
- Punktacja podana w instrukcji
Max 16 pkt
Lista nr 5
Zad 1
- Utworzenie procesu nadrzędnego i podprocesu – 2 pkt
- Utworzenie potoku i poprawne przesłanie danych między procesami – 4 pkt
- Przekierowanie strumienia stdin na potok i uruchomienie programu do wyświetlania obrazków – 2 pkt
- Styl: formatowanie kodu, odpowiednie nazwy zmiennych, kompilacja bez ostrzeżeń – 2 pkt
Zad 2
- Utworzenie potoku FIFO i poprawne przesłanie danych między procesami – 6 pkt
- Obsługa wielu plików w pętli nieskończonej – 2 pkt
- Styl: formatowanie kodu, odpowiednie nazwy zmiennych, kompilacja bez ostrzeżeń – 2 pkt
Max 20 pkt
Lista nr 6
- Utworzenie procesu nadrzędnego i podprocesu – 1 pkt
- Utworzenie pliku wymiany – 1 pkt
- Ustawienie odpowiedniej wielkości pliku wymiany – 2 pkt
- Zmapowanie pliku wymiany do obszaru pamięci – 3 pkt
- Wczytanie obrazu do zmapowanego obszaru pamięci wspólnej – 3 pkt
- Poprawne wyświetlenie kolejnych obrazów – 3 pkt
- Styl: formatowanie kodu, odpowiednie nazwy zmiennych, kompilacja bez ostrzeżeń – 2 pkt
Max 15 pkt
Lista nr 7
Max 15 pkt
Komunikacja między procesami – szkielet
[code lang=”cpp”]
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#define MAX_FILENAME_LEN 100
#define SHM_FILE "shm1" // It’ll be placed in /dev/shm
#define SHM_FILE_PATH "/dev/shm/"SHM_FILE
void parent_process();
void child_process();
// The program consists of two processes: a child and a parent.
// It creates the file and maps it to virtual memory adresses.
// The partent process asks user for names of files which will be readed
// and stored in shared memory. On the other hand, the subprocess reads
// data from mapped memory and displays images.
int main(void)
{
pid_t pid;
if ((pid = fork()) == -1)
{
fprintf(stderr, "Error: couldn’t create a subprocess.\n");
exit(-2);
}
if (pid > 0)
{
parent_process();
}
else
{
child_process();
}
return 0;
}
void parent_process()
{
char file_name[MAX_FILENAME_LEN];
// Create file used for data sharing
while ((option != ‘q’) && (option != EOF))
{
// Unmap memory if necessary
printf("\nPlease enter the name of the image file.\n");
scanf("%s", file_name);
if ((image_file = open(file_name, O_RDONLY)) == -1)
{
fprintf(stderr, "Error: Incorrect file path.\n");
exit(-3);
}
// Get the image file statistic and resize memory file
// Create a new mapping in virtual address space
// Read data from file and write it to the memory.
printf("\nPush ‘t’ to load next file. Otherwise push ‘q’.\n");
while ((option = getc(stdin)) == ‘\n’);
}
}
void child_process()
{
// Check if first image has been written and print all received images
}
[/code]
Sygnały
Generowanie podstawowych sygnałów:
Ctrl-C –> SIGINT (domyślnie zamyka proces)
Ctrl-Z –> SIGTSTP (domyślnie zawiesza proces)
Ctrl-\ –> SIGQUIT (domyślnie zamyka proces)
[code lang=”cpp”]
// The simple example of specific reaction definition
// on received signal (SIGQUIT in this case)
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
// The function used as a handler.
void message(int sig)
{
printf("\nReceived signal nr=%d, sig");
}
int main()
{
struct sigaction act;
act.sa_handler = message; // Pointer to handler
sigemptyset(&act.sa_mask); // Clears the mask of signals
sigaction(SIGQUIT, &act, NULL); // Sets the signal bit in signals mask
while (1)
{
sleep(2);
}
}
[/code]
Skala ocen
5.5 >= 100%
5.0 >= 90%
4.5 >= 80%
4.0 >= 70%
3.5 >= 60%
3.0 >= 50%
Strona kursu: http://sequoia.ict.pwr.wroc.pl/~witold/opsys/