Discussion Sections - CSCI 402, Summer 2025
[ This is a BACKUP server. Do NOT use unless the primary server is DOWN. ]
In the slides and videos section below, I will post slides and pre-recorded discussion section videos before 6PM on the day before the live discussion section. In a discussion section video, I will primarily present information regrading up-coming programming assignments. I will also post live discussion section videos there.
A live discussion section is conducted by a TA.
- Fri 10:00am - 11:10am in OHE 100C
To download all the PDF files below in one command (so you can study for exams), do the following inside a terminal in Ubuntu 16.04:
wget -r -l 1 --user=USERID --password=PASSWORD http://merlot.usc.edu/cs402-m25/summer-discussions.html
where USERID and PASSWORD are the user ID and password used to access protected content from our class web site.
But please note that the lecture slides can change at any time without notice. Therefore, it's a good idea to re-run the above command often
to synchroniza your copy with the server!
Please see the Lectures web page.
The following are tentative and final slides (in PDF format) for this semester.
- Week 1
(PDF)
(May 23, 2025)
- gdb, warmup #1
Demo (for live discussion section):
- Week 2 (PDF) (May 30, 2025) - warmup #1 (part 2)
- Week 3 (PDF) (Jun 6, 2025) - warmup #2
- Week 4
(Jun 13, 2025)
- warmup #2 (part 1 PDF), introduction to kernel assignments
(part 2 PDF)
(part 3 PDF)
Code in slides for warmup #2:
- Week 5
(PDF)
(Jun 20, 2025)
- kernel 1, kmain.c, kmain_aux.c
Code in slides:
- Week 6
(PDF)
(Jun 27, 2025)
- more on kernel 1
Code in slides:
- Week 7
(Jul 4, 2025)
- (part 1 PDF) - kernel 2
- (part 2 TXT) - kernel 2 polymorphism, vfs.c, vnode.c, vn_special.c, file.c, vfs_syscall.c, vn_mmobj_ops.c, ramfs.c, vfstest.c, faber_fs_test
Code (kernel):
- namev.c (path name resolution code)
- vfs.c
- vnode.c
- vn_special.c
- file.c
- vfs_syscall.c
- vn_mmobj_ops.c
- ramfs.c (also look for any "_ops_t" in "kernel/include/fs/*.h", "kernel/fs/*.c" and "kernel/fs/ramfs/*.c")
- vfstest.c
- faber_fs_test.c
- Week 8
(Jul 11, 2025)
- (part 1 PDF) - introduction to kernel 3, the elf32 loader
- (part 2 PDF) - more on kernel 3, address space implementation (vmarea, mmobj, pframe, page table)
Code (kernel):
- elf32.c - the elf32 loader
- exec.c
- access.c
- vn_mmobj_ops.c - code for the mmobj inside a vnode
- syscall.c (in the kernel)
Code (user):- syscall.c (in the libc user space library)
Kernel 3 FAQ: - Week 9
(TXT)
(Jul 18, 2025)
- objdump, page fault handling, hello
Code (kernel):
- pagefault.c
- syscall.c (in the kernel)
- vn_mmobj_ops.c - code for the mmobj inside a vnode
Code (user):
Kernel 3 FAQ:
Useful Linux commands:objdump --disassemble --section=".text" user/usr/bin/hello.exec objdump --disassemble --section=".text" -S user/usr/bin/hello.exec objdump --headers user/usr/bin/hello.exec xxd -g 1 user/usr/bin/hello.execUseful GDB commands:add-symbol-file user/usr/bin/hello.exec 0x08048094 b __libc_static_entry b main b *0x12345678 layout asm layout next si info registers kernel info vmmap_mapping_info curproc->p_vmmap - Week 10
(TXT)
(Jul 25, 2025)
- fork(), user space shell
Code (user):
Remaining user space programs:
Kernel 3 FAQ:Code (user):
Kernel 3 FAQ: - Week 11 (Aug 1, 2025) - (no discussion section this week)
Below is the tentative quiz schedule for this semester.
Week #Quiz #DateCoverage (subject to change)7-7/4no quiz (university holiday)8-7/11no quiz (Midterm Exam on Tue)11-8/1no quiz