SlideShare a Scribd company logo
1 of 32
Download to read offline
TWLKH:
Linux vsyscall and vDSO
Viller Hsiao <villerhsiao@gmail.com>
Jan. 24, 2017
24/01/2017 2
Who am I ?
Viller Hsiao
Embedded Linux / RTOS engineer
   http://image.dfdaily.com/
2012/5/4/6347169311287512
50504b050c1_nEO_IMG.jpg
24/01/2017 3
Recall to sigreturn
(gdb) info symbol __kernel_rt_sigreturn 
__kernel_rt_sigreturn in section .text of system­supplied DSO at 
0x7fb7ffd000
(gdb) info symbol __restore_rt 
__restore_rt in section .text of /lib/x86_64­linux­gnu/libc.so.6
x86_64
arm64
What is system­supplied DSO?
24/01/2017 4
Linux syscall
http://www.linux.it/~rubini/docs/ksys/ksys-figure1.png
24/01/2017 5
Making syscall Can Be Slow
“In x86 32­bit systems, you can trigger a software 
interrupt (int $0x80) to tell the kernel you wish 
to make a system call.  However, this instruction 
is expensive: it goes through the full interrupt­
handling paths in the processor's microcode as 
well as in the kernel.” ~ [1]
24/01/2017 6
vsyscall [2]
●
Virtual system call
●
maps into user space a page containing
some variable and the implementation of some 
syscalls.
●
Only apply to safe syscalls (only read a variable)
– gettimeofday()
– time()
– getcpu()
24/01/2017 7
Limitations & Problems of vsyscall
●
The memory allocated is small
●
Allows only 4 system calls
●
Statically allocated to the same address in each 
process
24/01/2017 8
vDSO
●
virtual ELF dynamic shared object
– A small shared library that the kernel automatically 
maps into the address space of all user­space 
applications.
– Get benifit of address space layout randomization 
(ASLR)
24/01/2017 9
vDSO Library 
user ABI vDSO name
─────────────────────────────
aarch64 linux-vdso.so.1
arm linux-vdso.so.1
ia64 linux-gate.so.1
mips linux-vdso.so.1
ppc/32 linux-vdso32.so.1
ppc/64 linux-vdso64.so.1
s390 linux-vdso32.so.1
s390x linux-vdso64.so.1
sh linux-gate.so.1
i386 linux-gate.so.1
x86_64 linux-vdso.so.1
x86/x32 linux-vdso.so.1
24/01/2017 10
Functions in vDSO
       symbol                   version
       ──────────────────────────────────────
       __kernel_rt_sigreturn    LINUX_2.6.39
       __kernel_gettimeofday    LINUX_2.6.39
       __kernel_clock_gettime   LINUX_2.6.39
       __kernel_clock_getres    LINUX_2.6.39
       symbol                 version
       ─────────────────────────────────
       __vdso_clock_gettime   LINUX_2.6
       __vdso_getcpu          LINUX_2.6
       __vdso_gettimeofday    LINUX_2.6
       __vdso_time            LINUX_2.6
x86_64
arm64
24/01/2017 11
Now We Know from [1],
●
vDSO
– Emulate fast syscall
– Provided by kernel, then mapped to userspace
– Loaded by ELF loader
– soname and syscall naming
24/01/2017 12
But, More Questions
●
How kernel generates ld­linux.so.1?
●
How userspace access kernel data structure?
●
Where is the page mapped to?
●
How to write a vsyscall?
●
How glibc handle it?
https://c2.staticflickr.
com/8/7133/7623744452_72
22654f38_b.jpg
24/01/2017 13
Let's Go to Find the Answers
http://cdn2.ettoday.net/images/210/d210416.jpg
24/01/2017 14
MMAP of vDSO
/* vdso man page */
void *vdso =
(uintptr_t) getauxval(AT_SYSINFO_EHDR);
●
vDSO man page says that we can get vDSO 
address from ELF auxiliary vector
– What is ELF auiliary vector?
24/01/2017 15
execve and Load ELF
execve
search_binary_handler
load_elf_binary
start_thread
●
Check and open an interpreter
●
Setup virtual memory
●
Setup stack
●
Setup credentials
●
…
●
LWN: How programs get run[4]
24/01/2017 16
ELF Auxiliary Vector
load_elf_binary()
Open ELF interpreter
setup stack
args[], auxv[], env[]
create_elf_tables()
24/01/2017 17
Final View in Stack
http://www.cnblogs.com/chenwu128/p/4194638.html
24/01/2017 18
AT_SYSINFO_EHDR
load_elf_binary()
Open ELF interpreter
setup stack
args[], auxv[], env[]
create_elf_tables()
ARCH_DLINFO
AT_SYSINFO_EHDR=
current­>mm­>context.vdso
arch_setup_additional_pages()
mm->context.vdso
24/01/2017 19
vDSO Source in Kernel
Linux/arch/arm64
kernel/vdso.c
kernel/vdso/
gettimeofday.S
sigreturn.S
vdso.lds.S
vdso.S
24/01/2017 20
Manipulate linux­vdso.so.1
Linux/arch/arm64
kernel/vdso.c
kernel/vdso/
gettimeofday.S
sigreturn.S
vdso.lds.S
vdso.S
vdso.so.dbg
linux­vdso.so.1
vdso.so
objcopy -S
incbin
24/01/2017 21
Example of Accessing vdso_data
timekeeping_update()
update_vsyscall()
update
vdso_data
vdso_data
__kernel_gettimeofday
Application
Readonly 
mapping
24/01/2017 22
arch_setup_additional_pages()
[vdso]
[vvar]
mm->context.vdso vdso_base
vdso_data
AT_SYSINFO_EHDR
vdso.so
vdso text bin
Process VM space
24/01/2017 23
vDSO Handling in
Glibc Dynamic Linker/Loader
24/01/2017 24
Related Operations
●
Read AT_SYSINFO_EHDR value
●
Read vDSO symbols address
●
vDSO functions wrapper
24/01/2017 25
Load ELF Auxiliary Vector [6]
_start() of ld.linux.so.1
_dl_start()
_dl_sysdep_start()
Setup
       _dl_argc
       _dl_argv
 _envrion
 _dl_auxv
24/01/2017 26
Read Symbols
_init()
_libc_vdso_platform_setup()
24/01/2017 27
gettimeofday() Implementation
__gettimeofday()
__vdso_gettimeofday()syscall version
__vdso_gettimeofday 
== NULL
__vdso_gettimeofday 
!= NULL
24/01/2017 28
Q & A
24/01/2017 29
Questions
●
How is gettimeofday implemented in static linked application?
– Is there vDSO in static linked application?
●
vDSO functions in RISC­V?
●
Why does some architecure implement rt_sigreturn in vDSO? 
● Why does fix­mapped vsyscall be so dangerous?
● Why are vDSO functions implemented in assembler instead of 
C ?
●
What's the purpose of vDSO seqcount?
1/24/17 30/32
Reference
[1] Linux Programmer's Manual ­ VDSO(7)
[2] Adrien schischi Schildknecht (Mar. 2014), “vsyscall and vDSO”
[3] The Definitive Guide to Linux System Calls
[4] David Drysdale (Feb. 2015), “How programs get run: ELF binaries“, LWN
[5] Kevin Brodsky (Nov. 2016), “The vDSO on arm64”, Linux Plumbers Conference
[6] Linux程序的加载、运行和终止
1/24/17 31/32
● Taiwan Linux Kernel Hackers (TWLKH) is the Facebook group about Linux kernel development
● ARM are trademarks or registered trademarks of ARM Holdings.
● Linux is a registered trademark of Linus Torvalds.
● Other company, product, and service names may be trademarks or service marks
of others.
● The license of each graph belongs to each website listed individually.
● The others of my work in the slide is licensed under a CC-BY-SA License.
● License text: http://creativecommons.org/licenses/by-sa/4.0/legalcode
Rights to Copy
copyright © 2017 Viller Hsiao
1/24/17 Viller Hsiao
THE END

More Related Content

What's hot

BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
Brendan Gregg
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
IO Visor Project
 

What's hot (20)

Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
 
spinlock.pdf
spinlock.pdfspinlock.pdf
spinlock.pdf
 
Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...Decompressed vmlinux: linux kernel initialization from page table configurati...
Decompressed vmlinux: linux kernel initialization from page table configurati...
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Physical Memory Models.pdf
Physical Memory Models.pdfPhysical Memory Models.pdf
Physical Memory Models.pdf
 
Linux Kernel - Virtual File System
Linux Kernel - Virtual File SystemLinux Kernel - Virtual File System
Linux Kernel - Virtual File System
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdf
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
 
Vmlinux: anatomy of bzimage and how x86 64 processor is booted
Vmlinux: anatomy of bzimage and how x86 64 processor is bootedVmlinux: anatomy of bzimage and how x86 64 processor is booted
Vmlinux: anatomy of bzimage and how x86 64 processor is booted
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
eBPF maps 101
eBPF maps 101eBPF maps 101
eBPF maps 101
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
malloc & vmalloc in Linux
malloc & vmalloc in Linuxmalloc & vmalloc in Linux
malloc & vmalloc in Linux
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 

Viewers also liked

OpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - DenxOpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - Denx
yang firo
 

Viewers also liked (20)

Meet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracingMeet cute-between-ebpf-and-tracing
Meet cute-between-ebpf-and-tracing
 
Linux kernel tracing
Linux kernel tracingLinux kernel tracing
Linux kernel tracing
 
Yet another introduction to Linux RCU
Yet another introduction to Linux RCUYet another introduction to Linux RCU
Yet another introduction to Linux RCU
 
Build Dynamic DNS server from scratch in C (Part1)
Build Dynamic DNS server from scratch in C (Part1)Build Dynamic DNS server from scratch in C (Part1)
Build Dynamic DNS server from scratch in C (Part1)
 
OpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - DenxOpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - Denx
 
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted In...
 
How to design your own chip?
How to design your own chip?How to design your own chip?
How to design your own chip?
 
Trace kernel code tips
Trace kernel code tipsTrace kernel code tips
Trace kernel code tips
 
mbed-os 3.0 modules dependency graph
mbed-os 3.0 modules dependency graphmbed-os 3.0 modules dependency graph
mbed-os 3.0 modules dependency graph
 
Riscv 20160507-patterson
Riscv 20160507-pattersonRiscv 20160507-patterson
Riscv 20160507-patterson
 
Introduction to ARM mbed-OS 3.0 uvisor
Introduction to ARM mbed-OS 3.0 uvisorIntroduction to ARM mbed-OS 3.0 uvisor
Introduction to ARM mbed-OS 3.0 uvisor
 
Understand more about C
Understand more about CUnderstand more about C
Understand more about C
 
Introduction to RISC-V
Introduction to RISC-VIntroduction to RISC-V
Introduction to RISC-V
 
[若渴計畫] Studying Concurrency
[若渴計畫] Studying Concurrency[若渴計畫] Studying Concurrency
[若渴計畫] Studying Concurrency
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
 
RISC-V Introduction
RISC-V IntroductionRISC-V Introduction
RISC-V Introduction
 
Cpu Cache and Memory Ordering——并发程序设计入门
Cpu Cache and Memory Ordering——并发程序设计入门Cpu Cache and Memory Ordering——并发程序设计入门
Cpu Cache and Memory Ordering——并发程序设计入门
 
NUMA overview
NUMA overviewNUMA overview
NUMA overview
 
Linux Tracing Superpowers by Eugene Pirogov
Linux Tracing Superpowers by Eugene PirogovLinux Tracing Superpowers by Eugene Pirogov
Linux Tracing Superpowers by Eugene Pirogov
 
BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2
 

Similar to twlkh-linux-vsyscall-and-vdso

Similar to twlkh-linux-vsyscall-and-vdso (20)

Accelerated Windows Malware Analysis with Memory Dumps
Accelerated Windows Malware Analysis with Memory DumpsAccelerated Windows Malware Analysis with Memory Dumps
Accelerated Windows Malware Analysis with Memory Dumps
 
2008-07-30 IBM Teach the Teacher (IBM T3), Red Hat Update for System z
2008-07-30 IBM Teach the Teacher (IBM T3), Red Hat Update for System z2008-07-30 IBM Teach the Teacher (IBM T3), Red Hat Update for System z
2008-07-30 IBM Teach the Teacher (IBM T3), Red Hat Update for System z
 
[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...
 
Linux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesLinux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slides
 
EXAM NOTES for DOD Standard 8570 CompTia Advanced Security Practitioner (CASP)
EXAM NOTES for DOD Standard 8570 CompTia Advanced Security Practitioner (CASP)EXAM NOTES for DOD Standard 8570 CompTia Advanced Security Practitioner (CASP)
EXAM NOTES for DOD Standard 8570 CompTia Advanced Security Practitioner (CASP)
 
2008-11-13 CAVMEN RHEL for System z Deep Dive
2008-11-13 CAVMEN RHEL for System z Deep Dive2008-11-13 CAVMEN RHEL for System z Deep Dive
2008-11-13 CAVMEN RHEL for System z Deep Dive
 
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
 
XPDS13: Increasing XenServer's VM density - Jonathan Davies, Citrix
XPDS13: Increasing XenServer's VM density - Jonathan Davies, CitrixXPDS13: Increasing XenServer's VM density - Jonathan Davies, Citrix
XPDS13: Increasing XenServer's VM density - Jonathan Davies, Citrix
 
Update on vDesk 3.0
Update on vDesk 3.0Update on vDesk 3.0
Update on vDesk 3.0
 
2008-10-15 Red Hat Deep Dive Sessions: SELinux
2008-10-15 Red Hat Deep Dive Sessions: SELinux2008-10-15 Red Hat Deep Dive Sessions: SELinux
2008-10-15 Red Hat Deep Dive Sessions: SELinux
 
Windows 7 in 60 minutes - New Horizons Bulgaria
Windows 7 in 60 minutes - New Horizons BulgariaWindows 7 in 60 minutes - New Horizons Bulgaria
Windows 7 in 60 minutes - New Horizons Bulgaria
 
First steps on CentOs7
First steps on CentOs7First steps on CentOs7
First steps on CentOs7
 
Monitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsMonitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstats
 
SBA Security Meetup: I want to break free - The attacker inside a Container
SBA Security Meetup: I want to break free - The attacker inside a ContainerSBA Security Meetup: I want to break free - The attacker inside a Container
SBA Security Meetup: I want to break free - The attacker inside a Container
 
2008 08-12 SELinux: A Key Component in Secure Infrastructures
2008 08-12 SELinux: A Key Component in Secure Infrastructures2008 08-12 SELinux: A Key Component in Secure Infrastructures
2008 08-12 SELinux: A Key Component in Secure Infrastructures
 
2009-10-07 IBM zExpo 2009, Current & Future Linux on System z
2009-10-07 IBM zExpo 2009, Current & Future Linux on System z2009-10-07 IBM zExpo 2009, Current & Future Linux on System z
2009-10-07 IBM zExpo 2009, Current & Future Linux on System z
 
SkillSoft IEEE.org Transcript Completed Courses
SkillSoft IEEE.org Transcript Completed CoursesSkillSoft IEEE.org Transcript Completed Courses
SkillSoft IEEE.org Transcript Completed Courses
 
XenDesktop 7 Blueprint
XenDesktop 7 BlueprintXenDesktop 7 Blueprint
XenDesktop 7 Blueprint
 
What should you know about Net Core?
What should you know about Net Core?What should you know about Net Core?
What should you know about Net Core?
 
SYN 321: Securing the Published Browser
SYN 321: Securing the Published BrowserSYN 321: Securing the Published Browser
SYN 321: Securing the Published Browser
 

Recently uploaded

Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 

Recently uploaded (20)

Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 

twlkh-linux-vsyscall-and-vdso