{"id":24430799,"url":"https://github.com/gusanmaz/bmb311_os","last_synced_at":"2025-04-12T12:45:16.686Z","repository":{"id":64464731,"uuid":"546897295","full_name":"gusanmaz/BMB311_OS","owner":"gusanmaz","description":"NKÜ Bilgisayar Mühendisliği BMB311 Isletim Sistemleri Dersi Uygulama Notları, Projeleri ve Ödevleri","archived":false,"fork":false,"pushed_at":"2023-03-05T10:38:46.000Z","size":25807,"stargazers_count":28,"open_issues_count":2,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-26T07:23:15.797Z","etag":null,"topics":["c","linux","operating-system","pthreads"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gusanmaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-06T20:39:34.000Z","updated_at":"2024-10-30T10:58:44.000Z","dependencies_parsed_at":"2023-02-05T12:46:43.270Z","dependency_job_id":null,"html_url":"https://github.com/gusanmaz/BMB311_OS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusanmaz%2FBMB311_OS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusanmaz%2FBMB311_OS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusanmaz%2FBMB311_OS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gusanmaz%2FBMB311_OS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gusanmaz","download_url":"https://codeload.github.com/gusanmaz/BMB311_OS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248570460,"owners_count":21126441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","linux","operating-system","pthreads"],"created_at":"2025-01-20T14:57:54.509Z","updated_at":"2025-04-12T12:45:16.661Z","avatar_url":"https://github.com/gusanmaz.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# BMB311 Uygulama Notları, Projeleri ve Ödevleri\n\nBu repo'da uygulama derslerine ait materyallere (ders notlari, odev bilgileri, proje bilgileri, duyurular vb.) ulasabilirsiniz.\n\n## DUYURU\n\n***Proje 0 (Ekstra Proje) ilan edilmistir.***\n\n[Detaylar](https://github.com/gusanmaz/BMB311_OS/blob/main/projects.md)\n\n### Iletisim\n\nArs. Gor. Güvenç Usanmaz\n\nOda: B207\n\nBolum: Bilgisayar Muhendisligi\n\nEmail: gusanmaz \u003catt\u003c nku nokta edu nokta tr\n\n###\n\n### Onerilen Kaynaklar\n\n#### Isletim Sistemleri\n\n* [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/) ***Teorik Kaynak***\n* [Advanced Linux Programming](https://mentorembedded.github.io/advancedlinuxprogramming/alp-folder/) ***Pratik Kaynak***\n* [Operating Systems: Crash Course Computer Science #18](https://www.youtube.com/watch?v=26QPDBe-NB8) ***~10 dakikada isletim sistemleri***\n* [Turkce Linux Dersleri](https://linux-dersleri.github.io/)\n* [Belgeler.org (Muhtemelen Guncel Degil)](http://www.belgeler.org/)\n* [Prof. Kemal Bıçakçı İşletim Sistemleri Ders Videoları](https://www.youtube.com/watch?v=sqtkwd09KXs\u0026list=PLmPsb7nQhv7NLRWdIiDVNBDCMOtuUn6WZ) - Ilgili videolarda kaynak kitap olarak **Operating Systems: Three Easy Pieces** kullanilmaktadir.\n\n#### Komut Satiri ve Kabuk Programlama\n\n* [Linux Tutorial](https://ryanstutorials.net/linuxtutorial/)\n* [Linux/Mac Tutorials - Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTvGhHkpvfmKWOiIPF8UVy6c)\n* [Bash Scripting](https://ryanstutorials.net/bash-scripting-tutorial/)\n* [UNIX: Making Computers Easier To Use -- AT\u0026T Archives film from 1982, Bell Laboratories](https://www.youtube.com/watch?v=XvDZLjaCJuw\u0026t)\n\n#### C Programlama\n\n* [C Programming Language, 2nd Edition](https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628/ref=sr_1_1?crid=YQFLRR2SUKAG\u0026keywords=c+programming\u0026qid=1665091837\u0026qu=eyJxc2MiOiI1LjIxIiwicXNhIjoiNC42OCIsInFzcCI6IjQuNjMifQ%3D%3D\u0026s=books\u0026sprefix=c+programming%2Cstripbooks-intl-ship%2C275\u0026sr=1-1)\n\n* C dilinde kendini eksik goren ogrencilerimizin https://exercism.org/tracks/c sayfasindaki alistirmalari kodlamalari ve dogru kodladiklari alistirmalari baskalarinin nasil kodladigini incelemeleri tavsiye edilir.\n\n### Onerilen Linux Dagitimlari\n\n* [Distrowatch](https://distrowatch.com/)\n* Ubuntu\n* KDE Neon\n* Pop!_OS\n* OpenSuse\n* Manjora\n\n#### Linux Kurulumu\n* Dual-boot\n* Single-boot\n* Sanal makine (Virtual Box, WMvare)\n* Windows Subsystem for Linux (WSL)\n* Virtual Private Server (VPS)\n* B205 (?)\n* Cygwin (?)\n* [Repl.it](replit.com)\n\n### AWS'de Linux Istance'i Olusturma\n\n[https://github.com/Mona-Roza/Notes/tree/main/About%20Server%20%26%20About%20Linux](https://github.com/Mona-Roza/Notes/tree/main/About%20Server%20%26%20About%20Linux)\n\n### Oracle VM VirtualBox Üzerine Debian Linux Kurulumu\n\n[https://medium.com/@zeynepssasmaz953/oracle-vm-virtualbox-u%CC%88zerine-debian-linux-kurulumu-2c87dbe64aa9](https://medium.com/@zeynepssasmaz953/oracle-vm-virtualbox-u%CC%88zerine-debian-linux-kurulumu-2c87dbe64aa9)\n\n#### Kurulumda Dikkat Edilecekler\n* Onemli Verilerin Yedeklenmesi\n* BIOS Boot Oncelikleri\n* Disk Bicimlendirme (Gparted vb.)\n* Once Windows, sonra Linux Kurulumu (?)\n* USB ISO Creator (Etcher, UnetBootin)\n* Legacy boot vs. UEFI\n* Secure boot\n\n#### Beklentiler\n* Github hesabi acmak\n* Bilgisayara Linux dagitimi kurmak\n* Github Discussion sayfasinda aktif olmak\n* Bu sayfayi duzenli araliklarla kontrol etmek\n* Bu sayfada ilan edilecek proje ve odevlerde istenilenleri yapmak\n* Universite email hesabinizi duzenli araliklarla kontrol etmek.\n\n## Proje Notlandirmalari\n\n* [Proje 1](https://gusanmaz.github.io/BMB311_OS/grades/p1.html)\n* [Proje 2](https://gusanmaz.github.io/BMB311_OS/grades/p2.html)\n* [Proje 3](https://gusanmaz.github.io/BMB311_OS/grades/p3.html)\n* [Proje 4](https://gusanmaz.github.io/BMB311_OS/grades/p4.html)\n\n* Tablolarda her satirda odev gonderen bir ogrencinin o projedeki testlerdeki basari durumu gorulebilir.\n* REPO URL'sinden o ogrencinin proje icin gonderdigi `main.c` dosyasina ve uygulanan testlerle ilgili detayli bilgiler iceren json dosyasina erisilebilmektedir.\n* Kodlari test etmek icin kullanilan programin kodlarina [https://github.com/gusanmaz/gracode](https://github.com/gusanmaz/gracode) baglantisindan erisebilirsiniz.\n\n### Proje Test Dosyalari\n\n* [Proje 1](https://github.com/gusanmaz/BMB311_OS/tree/main/docs/test_files/p1)\n* [Proje 2](https://github.com/gusanmaz/BMB311_OS/tree/main/docs/test_files/p2)\n* [Proje 3](https://github.com/gusanmaz/BMB311_OS/tree/main/docs/test_files/p3)\n* [Proje 4](https://github.com/gusanmaz/BMB311_OS/tree/main/docs/test_files/p4)\n\n* Test dosyalari `commands.sh` isimli Bash scripti dosyalarina yazilmistir.\n* `gracode.json` isimli dosyada testlerin puan bilgisi, her test icin ogrencinin kodunun, referans kod ile karsilastirmasi icin hangi Python fonksiyonunun\nkullanilacagi gibi bilgiler yer almaktadir.\n* Referans kod ile ogrenci kodunun ciktilarinin (stdout ve stderr) karsilastirilmasi icin kullanilan Python fonksiyonlarini  [funcs.py](https://github.com/gusanmaz/gracode/blob/main/funcs.py) dosyasindan erisebilirsiniz.\n\n### Referans Proje Kodlari\n\n* [Proje 1](https://github.com/gusanmaz/BMB311_OS/blob/main/docs/codes/masked/p1/g******z/main.c)\n* [Proje 2](https://github.com/gusanmaz/BMB311_OS/blob/main/docs/codes/masked/p2/g******z/main.c)\n* [Proje 3](https://github.com/gusanmaz/BMB311_OS/blob/main/docs/codes/masked/p3/g******z/main.c)\n* [Proje 4](https://github.com/gusanmaz/BMB311_OS/blob/main/docs/codes/masked/p4/g******z/main.c)\n\n### Performans Analizi\n\n* Her odev icin `perf` komutu ile performans analizi yapilmistir. Bu komutun kodunuz icin urettigi ciktiya ilgili json dosyasindan erisebilirsiniz.\n* Kodlarin notlandirilmasinda kodlarin performansi kriter olarak kullanilmamistir.\n* Bununla birlikte her testin belli bir surede tamamlanmasi beklenmektedir. Her test icin ayri belirlenen bu sureleri `commands.sh` dosyalarini inceleyerek gorebilirsiniz. Eger JSON dosyasinda bir test icin `timeout` degeri `True` gozukuyorsa ilgili kodun testte verilen maksimum sure icinde calismasini bitiremedigi anlasilmalidir.\n\n### Tablo Okuma\n\n* Mouse imlecini tablolarin basligindaki testlerin uzerine getirerek referans kodun o test icin urettigi ciktiyi (stdout, stderr) gorebilirsiniz.\n* Ayni sekilde belirli bir sekilde ogrenci icin mouse imlecini testlerin uzerine getirerek ilgili kodun o test icin urettigi ciktiyi (stdout, stderr) gorebilirsiniz.\n*  `stdout` ve `stderr` ciktilarinin cok uzun olmasi durumunda bu ciktilari tablo uzerinde goremeyebilirsiniz. Bu durumda ilgili ciktilara ilgili JSON dosyasindan erisebilirsiniz.\n*  Tablolarda sadece kurallara uygun gonderim yapan ogrencilerin isimleri gozukmektedir.\n*  Tablolardaki satirlar ogrenci numarasina gore siralidir.\n*  Tablolardaki son test aslinda bir test degildir! Ilk proje disindaki projelerde son testte `perf` komutu calistirilmaktadir. Tablodaki butun ogrenciler icin bu test basarili gozukmektedir. Bu test basarili olmanin projeden alinan toplam puana katkisi 0'dir.\n\n### JSON\n\n* `https://github.com/gusanmaz/BMB311_OS/blob/main/docs/codes/masked/` altindaki bir json dosyasini incelemek istiyorsaniz bu dosyayi once bilgisayariniza indirmeniz veya JSON verisinin tamamini bilgisayarinizda bir metin editorune kopyalayip, json uzantisiyla kaydetmeniz tavsiye edilir.\n* Daha sonra bilgisayarindaki bu JSON dosyasini bir JSON Goruntuleyici program yardimiyla daha rahat goruntuleyebilirsiniz. \n* Pek cok ucretsiz JSON Goruntuleyici (JSON Viewer) program bulunmaktadir.\n* JSON dosyalarinin goruntulemek icin `Mozilla Firefox` internet tarayicisini da kullanabilirsiniz.\n\n### Beklenilenden Dusuk Not Alma Nedenleri\n\n* Olusturulan repoya ogrenci_no.txt isimli dosya eklememek\n* Olusturulan repodaki kodlari main.c isimli dosya haricinde bir dosyaya yazmak.\n* Proje aciklamalarinda argumanlarin komut satirindan alinacagi belirtilmesine ragmen `scanf` gibi fonksiyonlarla kullanicidan input almaya calismak\n* Her bir proje icin ayri bir repo davet linki verilmesine ragmen butun proje kodlarini tek bir repoya yuklemek\n* Gonderilen kodun derlenmemesi\n\n### Proje Notlandirma Detaylari\n\n1. proje 100\n2. proje 130\n3. proje 145\n4. proje 120\n\npuan uzerinden degerlendirilmistir.\n\n3. proje https://github.com/gusanmaz/BMB311_OS/tree/main/proje3-test-dosyalari baglantisindaki metin dosyalari kullanilarak test edilmistir.\n\n* Otomatik degerlendirme programi Fedora Linux 37 uzerinde gcc 12.2.1 kullanilarak calistirilmistir.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusanmaz%2Fbmb311_os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgusanmaz%2Fbmb311_os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgusanmaz%2Fbmb311_os/lists"}