ข้อกำหนดอินเทอร์เฟซ

หน้านี้จะอธิบายถึงอินเทอร์เฟซเคอร์เนลของ Linux บางส่วนที่ Android จะต้องทำงานได้อย่างถูกต้อง การแสดงและความถูกต้องของอินเทอร์เฟซเหล่านี้ ผ่านการทดสอบเป็นส่วนหนึ่งของ Vendor Test Suite (VTS) ชุดย่อยนี้จะเพิ่มขึ้นเรื่อยๆ เมื่อเวลาผ่านไป อินเทอร์เฟซเคอร์เนลของ Android

การโทรของระบบ

การเรียกระบบทั้งหมดนั้นควรมีลายเซ็นและอรรถศาสตร์เช่นเดียวกับ ในเคอร์เนลของ Linux ต้นทางของเวอร์ชันเดียวกัน

prctl

นอกเหนือจากการดำเนินการอัปสตรีม prctl สำหรับการรองรับ เวอร์ชันเคอร์เนล Android ต้องอาศัยการดำเนินการ prctl เพิ่มเติม ซึ่งสามารถพบได้ในเคอร์เนลทั่วไปบน Android

PR_SET_TIMERSLACK_PID
PR_SET_VMA

ระบบไฟล์

เคอร์เนลของ Linux จะส่งออกอินเทอร์เฟซผ่านระบบไฟล์หลายระบบ คาดว่า Android เพื่อสื่อสารข้อมูลเดียวกันในรูปแบบเดียวกัน และ ให้ความหมายเดียวกับในเคอร์เนลของ Linux ต้นทาง สำหรับอินเทอร์เฟซที่ ไม่มีอัปสตรีม ลักษณะการทำงานที่เหมาะสมจะกำหนดโดยตัวเลือก Branch ของเคอร์เนลทั่วไปของ Android

Procfs

SDK โฆษณา B คำอธิบาย
/proc/asound/ ไฟล์แบบอ่านอย่างเดียวแสดงรายการไดรเวอร์ ALSA ที่กำหนดค่าไว้ในปัจจุบัน
/proc/cmdline ไฟล์แบบอ่านอย่างเดียวที่มีอาร์กิวเมนต์บรรทัดคำสั่งที่ส่งไปยังเคอร์เนล
/proc/config.gz ไฟล์แบบอ่านอย่างเดียวที่มีการกำหนดค่าบิลด์เคอร์เนล
/proc/cpuinfo ไฟล์แบบอ่านอย่างเดียวที่มีรายละเอียด CPU เฉพาะสถาปัตยกรรม
/proc/diskstats ไฟล์แบบอ่านอย่างเดียวแสดงสถิติ I/O ของอุปกรณ์ที่บล็อก
/proc/filesystems ระบบไฟล์ที่แสดงไฟล์แบบอ่านอย่างเดียวที่ปัจจุบันระบบรองรับ เคอร์เนล
/proc/kmsg ไฟล์แบบอ่านอย่างเดียวที่แสดงข้อความเคอร์เนลแบบเรียลไทม์
/proc/loadavg ไฟล์แบบอ่านอย่างเดียวที่แสดงค่าเฉลี่ยของการโหลด CPU และ IO เมื่อเวลาผ่านไป
/proc/meminfo ไฟล์แบบอ่านอย่างเดียวที่แสดงรายละเอียดระบบย่อยของหน่วยความจำ
/proc/misc ไฟล์แบบอ่านอย่างเดียวที่แสดงไดรเวอร์เบ็ดเตล็ดที่ลงทะเบียนไว้ใน อุปกรณ์หลักอื่นๆ
/proc/modules ไฟล์แบบอ่านอย่างเดียวที่มีข้อมูลเกี่ยวกับโมดูลเคอร์เนลที่โหลด
/proc/mounts Symlink ไปยัง /proc/self/mounts ซึ่งเป็นไฟล์แบบอ่านอย่างเดียว ที่แสดงข้อมูลเกี่ยวกับระบบไฟล์ที่ต่อเชื่อม
/proc/net ไดเรกทอรีที่มีพารามิเตอร์สแต็กเครือข่ายที่หลากหลาย
/proc/net/xt_qtaguid/ ไฟล์แบบอ่าน-เขียนที่ให้ข้อมูลเกี่ยวกับซ็อกเก็ตที่ติดแท็ก
/proc/pagetypeinfo ไฟล์แบบอ่านอย่างเดียวที่มีข้อมูลตัวจัดสรรหน้าเว็บ
/proc/stat ไฟล์แบบอ่านอย่างเดียวที่มีเคอร์เนลและสถิติของระบบต่างๆ
/proc/swaps ไฟล์แบบอ่านอย่างเดียวแสดงการใช้งานพื้นที่สลับ ไฟล์นี้ ไม่บังคับ เนื้อหาและสิทธิ์ของเนื้อหาจะได้รับการยืนยันใน VTS เฉพาะในกรณีที่ ปัจจุบัน ไฟล์
/proc/sys/abi/swp ไฟล์แบบอ่านและเขียนซึ่งจะกำหนดลักษณะการทำงานของ ARM ที่ล้าสมัย SWP ของวิธีการ
/proc/sys/fs/pipe-max-size ไฟล์แบบอ่าน-เขียนที่รายงานขนาดสูงสุด หน่วยเป็นไบต์ ที่กันรอยต่อท่อแก๊ส
/proc/sys/fs/protected_hardlinks ไฟล์แบบอ่านและเขียนที่ควบคุมลักษณะการสร้างฮาร์ดลิงก์
/proc/sys/fs/protected_symlinks ไฟล์แบบอ่านและเขียนที่ควบคุมลักษณะการสร้างสัญลักษณ์ ลิงก์
/proc/sys/fs/suid_dumpable ไฟล์แบบอ่านและเขียนที่ควบคุมโหมด Dump หลักสำหรับ setuid หรืออื่นๆ ไบนารีที่มีการป้องกัน/ค่าเทนเนอร์
/proc/sys/kernel/core_pattern ไฟล์แบบอ่าน-เขียนที่ระบุรูปแบบชื่อไฟล์หลัก Dump
/proc/sys/kernel/core_pipe_limit ไฟล์แบบอ่าน-เขียนที่ระบุจำนวนกระบวนการที่ขัดข้องที่เกิดขึ้นพร้อมกัน ไปยังแอปของผู้ใช้พร้อมกันได้
/proc/sys/kernel/dmesg_restrict ไฟล์แบบอ่าน-เขียนที่ควบคุมว่าผู้ใช้จะมีสิทธิ์เข้าถึงหรือไม่ dmesg
/proc/sys/kernel/domainname ไฟล์แบบอ่าน-เขียนที่มีชื่อโดเมน YP/NIS ของระบบ
/proc/sys/kernel/hostname ไฟล์แบบอ่าน-เขียนซึ่งกำหนดชื่อโฮสต์ของระบบ
/proc/sys/kernel/hung_task_timeout_secs ไฟล์แบบอ่าน-เขียนที่ควบคุมระยะหมดเวลาซึ่งใช้ในการกำหนดเมื่องาน ไม่ตอบสนองและควรถูกระงับ ไฟล์นี้ ไม่บังคับ เนื้อหาและสิทธิ์ของเนื้อหาจะได้รับการยืนยันใน VTS เฉพาะในกรณีที่ มีไฟล์อยู่
/proc/sys/kernel/kptr_restrict ไฟล์แบบอ่านและเขียนที่กำหนดว่าจะพิมพ์เคอร์เซอร์เคอร์เนลใน proc ไฟล์และอินเทอร์เฟซอื่นๆ
/proc/sys/kernel/modules_disabled ไฟล์แบบอ่าน-เขียนที่ควบคุมว่าจะโหลดโมดูลเคอร์เนลหรือไม่
/proc/sys/kernel/panic_on_oops ไฟล์แบบอ่านและเขียนที่ควบคุมลักษณะการทำงานของเคอร์เนลเมื่ออ๊ะ
/proc/sys/kernel/perf_event_max_sample_rate ไฟล์แบบอ่าน-เขียนที่ควบคุมอัตราการสุ่มตัวอย่างสูงสุดของประสิทธิภาพ กิจกรรม
/proc/sys/kernel/perf_event_paranoid ไฟล์แบบอ่านและเขียนที่ควบคุมการใช้งานระบบเหตุการณ์ด้านประสิทธิภาพ โดยผู้ใช้ที่ไม่ได้รับอนุญาต
/proc/sys/kernel/pid_max ไฟล์แบบอ่าน-เขียนที่มีค่าการรวมการจัดสรร PID
/proc/sys/kernel/random/boot_id ไฟล์แบบอ่านอย่างเดียวที่มีรหัสแบบสุ่มใหม่ในการเปิดเครื่องแต่ละครั้ง
/proc/sys/kernel/randomize_va_space ไฟล์อ่านและเขียนที่กำหนดนโยบายการสุ่มเลย์เอาต์ที่อยู่ สำหรับระบบ
/proc/sys/kernel/sched_child_runs_first ไฟล์แบบอ่าน-เขียนที่ควบคุมว่าจะชอบงานที่เพิ่งแยกใหม่หรือไม่ กำลังกำหนดเวลาในงานหลัก
/proc/sys/kernel/sched_latency_ns ไฟล์แบบอ่าน-เขียนที่มีเวลาในการตอบสนองสูงสุด เป็นนาโนวินาที อาจเกิดขึ้นก่อนที่จะกำหนดเวลา
/proc/sys/kernel/sched_rt_period_us ไฟล์แบบอ่าน-เขียนซึ่งมีระยะเวลาที่ใช้โดย RT ทั่วทั้งระบบ ขีดจำกัดการดำเนินการในหน่วยไมโครวินาที
/proc/sys/kernel/sched_rt_runtime_us ไฟล์แบบอ่าน-เขียนที่มีระยะเวลาเมื่อเทียบกับ sched_rt_period_us อาจพบว่าระบบอาจทำงาน RT ได้
/proc/sys/kernel/sched_tunable_scaling ไฟล์แบบอ่านและเขียนที่ควบคุมว่า sched_latency_ns ควรใช้หรือไม่ เครื่องจัดตารางเวลาจะปรับโดยอัตโนมัติตามจำนวน CPU
/proc/sys/kernel/sched_wakeup_granularity_ns ไฟล์แบบอ่าน-เขียนที่มีงานรันไทม์เสมือน A จำนวนมากที่ต้องมี มีเวลาน้อยกว่างาน B ในหน่วยนาโนวินาทีเพื่อให้งาน B จองเวลาไว้
/proc/sys/kernel/sysrq ไฟล์แบบอ่านและเขียนที่ควบคุมฟังก์ชันที่ได้รับอนุญาตให้เรียกใช้ผ่าน คีย์ sysrq
/proc/sys/net/* ไดเรกทอรีที่มีพารามิเตอร์สแต็กเครือข่ายที่หลากหลาย
/proc/sysrq-trigger ไฟล์แบบเขียนอย่างเดียวที่ใช้เพื่อเริ่มต้นฟังก์ชัน sysrq ได้
/proc/sys/vm/dirty_background_ratio ไฟล์แบบอ่าน-เขียนที่มี คิดเป็นเปอร์เซ็นต์ของหน่วยความจำทั้งหมดที่มีอยู่ (หน้าที่ฟรีและหน้าที่สามารถเรียกคืนได้) จำนวนหน้าที่ เทรดทำความสะอาดเคอร์เนลในเบื้องหลังจะเริ่มเขียนข้อมูลสกปรก
/proc/sys/vm/dirty_expire_centisecs ไฟล์แบบอ่าน-เขียนที่ระบุว่าข้อมูลสกปรกมีอายุมากพอที่จะมีสิทธิ์ สำหรับการเขียนโดยเทรดเคอร์เนล Flusher
/proc/sys/vm/drop_caches ไฟล์แบบอ่าน-เขียนที่ใช้บังคับให้เคอร์เนลล้างออกได้ แคช
/proc/sys/vm/extra_free_kbytes ไฟล์แบบอ่าน-เขียนที่มีไว้เพื่อเก็บหน่วยความจำที่ว่างเพิ่มเติมระหว่าง เกณฑ์ที่มีการอ้างสิทธิ์พื้นหลังอีกครั้ง (kSwad) เริ่มทำงาน และเกณฑ์ ที่เป็นจุดเริ่มต้นของการอ้างสิทธิ์โดยตรง (โดยการจัดสรรกระบวนการ) ไฟล์นี้ ไม่บังคับ เนื้อหาและสิทธิ์ของเนื้อหาจะได้รับการยืนยันใน VTS เฉพาะในกรณีที่ มีไฟล์อยู่
/proc/sys/vm/max_map_count อ่าน-เขียนไฟล์ที่มีจำนวนพื้นที่แมปหน่วยความจำสูงสุด อาจมีได้
/proc/sys/vm/mmap_min_addr ไฟล์แบบอ่าน-เขียนซึ่งกำหนดที่อยู่ขั้นต่ำสุด mmap
/proc/sys/vm/mmap_rnd_bits ไฟล์แบบอ่าน-เขียนที่ระบุจำนวนการสุ่มใน ที่อยู่ของ mmap
/proc/sys/vm/mmap_rnd_compat_bits ไฟล์แบบอ่าน-เขียนที่ระบุจำนวนการสุ่มใน ที่อยู่ของ mmap
/proc/sys/vm/overcommit_memory ไฟล์แบบอ่านและเขียนที่กำหนดการบันทึกบัญชีหน่วยความจำเสมือนของเคอร์เนล
/proc/sys/vm/page-cluster ไฟล์อ่านและเขียนที่ควบคุมจำนวนหน้าไม่เกิน ระบบจะอ่านหน้าที่อยู่ติดกันจากการสลับเพียงครั้งเดียว
/proc/uid_cputime/remove_uid_range ไฟล์แบบเขียนเท่านั้น ที่เมื่อเขียนแล้วจะนำ UID ออก /proc/uid_cputime/show_uid_stat
/proc/uid_cputime/show_uid_stat ไฟล์แบบอ่านอย่างเดียวที่มีเวลาที่กระบวนการของ UID ที่ผู้ใช้ใช้และ พื้นที่เคอร์เนล
/proc/uid_io/stats ไฟล์แบบอ่านอย่างเดียวที่มีรายการสถิติ I/O สำหรับ UID แต่ละรายการใน ระบบ
/proc/uid_procstat/set ไฟล์แบบเขียนเท่านั้นซึ่งใช้เพื่อกำหนดค่า UID เป็นเบื้องหน้าหรือเบื้องหลัง
/proc/uid_time_in_state ไฟล์แบบอ่านอย่างเดียวที่มีเวลาที่กระบวนการของ UID แต่ละรายการใช้ในการปฏิบัติการ แต่ละความถี่ที่มี ไฟล์นี้ไม่บังคับ เนื้อหาและ สิทธิ์จะได้รับการยืนยันใน VTS เฉพาะเมื่อมีไฟล์อยู่
/proc/uptime ไฟล์แบบอ่านอย่างเดียวที่แสดงว่าระบบทำงานมานานเพียงใด
/proc/version ไฟล์แบบอ่านอย่างเดียวที่มีสตริงที่อธิบายเวอร์ชันเคอร์เนล
/proc/vmallocinfo ไฟล์แบบอ่านอย่างเดียวที่มีช่วง vmalloc
/proc/vmstat ไฟล์แบบอ่านอย่างเดียวที่มีสถิติหน่วยความจำเสมือนจากเคอร์เนล
/proc/zoneinfo ไฟล์แบบอ่านอย่างเดียวที่มีข้อมูลเกี่ยวกับโซนหน่วยความจำ

Dev

SDK โฆษณา B คำอธิบาย
/dev/ashmem ไฟล์อุปกรณ์หน่วยความจำที่แชร์โดยไม่ระบุตัวตน
/dev/binder ไฟล์ Binder ของอุปกรณ์
/dev/hwbinder ไฟล์อุปกรณ์เชื่อมโยงฮาร์ดแวร์
/dev/tun ไฟล์อุปกรณ์ TUN/TAP สากล
/dev/xt_qtaguid ไฟล์อุปกรณ์ netfilter QTAGUID

Sysf

SDK โฆษณา B คำอธิบาย
/sys/class/net/*/mtu ไฟล์แบบอ่าน-เขียนที่มีหน่วยการส่งสูงสุดสำหรับแต่ละไฟล์ ของ Google
/sys/class/rtc/*/hctosys ไฟล์แบบอ่านอย่างเดียวที่แสดงให้เห็นว่า RTC บางรายการให้เวลาระบบหรือไม่ เมื่อเปิดเครื่องและทำต่อ
/sys/devices/system/cpu/ ไดเรกทอรีที่มีข้อมูลเกี่ยวกับการกำหนดค่า CPU และ ความถี่
/sys/kernel/wakeup_reasons ไดเรกทอรีของไฟล์แบบอ่านอย่างเดียวที่มีเวลาการระงับครั้งล่าสุดและกลับมาดำเนินการต่อ เหตุผล
/sys/power/state ไฟล์แบบอ่านและเขียนที่ควบคุมสถานะโหมดสลีปของระบบ
/sys/power/wake_lock ไฟล์แบบอ่านและเขียนที่มี Wake Lock ที่ใช้งานอยู่
/sys/power/wake_unlock ไฟล์แบบอ่านและเขียนที่มี Wake Lock ที่ไม่ทำงาน
/sys/power/wakeup_count ไฟล์แบบอ่าน-เขียนที่ใช้ทำให้ระบบเข้าสู่สถานะสลีปได้ ขณะเดียวกันก็คำนึงถึงเหตุการณ์การปลุก การตื่นนอนพร้อมกัน

Selinuxfs

เฟรมเวิร์กจะต่อเชื่อม selinuxfs ที่ /sys/fs/selinux

เส้นทาง คำอธิบาย
/sys/fs/selinux/checkreqprot ไฟล์อ่าน/เขียนที่มีแฟล็กไบนารีซึ่งเป็นตัวกำหนดการทำงานของ selinux ตรวจสอบการป้องกันในการโทร mmap และ mprotect รายการ
/sys/fs/selinux/null อุปกรณ์อ่าน/เขียนค่า Null สำหรับการใช้งานโดย Selinux
/sys/fs/selinux/policy ไฟล์แบบอ่านอย่างเดียวที่มีนโยบาย Selinux ในรูปแบบไบนารี