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

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

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

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

รายละเอียด

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

PR_SET_TIMERSLACK_PID
PR_SET_VMA

ระบบไฟล์

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

procfs

อินเตอร์เฟซ คำอธิบาย
/proc/เสียง/ ไฟล์แบบอ่านอย่างเดียวแสดงรายการไดรเวอร์ ALSA ที่กำหนดค่าไว้ในปัจจุบัน
/proc/cmdline ไฟล์แบบอ่านอย่างเดียวที่มีอาร์กิวเมนต์บรรทัดคำสั่งที่ส่งผ่านไปยังเคอร์เนล
/proc/config.gz ไฟล์แบบอ่านอย่างเดียวที่มีการกำหนดค่าการสร้างเคอร์เนล
/proc/cpuinfo ไฟล์แบบอ่านอย่างเดียวที่มีรายละเอียด CPU เฉพาะสถาปัตยกรรม
/proc/diskstats ไฟล์แบบอ่านอย่างเดียวที่แสดงสถิติ I/O ของอุปกรณ์บล็อก
/proc/ระบบไฟล์ ระบบไฟล์รายการไฟล์แบบอ่านอย่างเดียวที่เคอร์เนลรองรับในปัจจุบัน
/proc/kmsg ไฟล์แบบอ่านอย่างเดียวที่แสดงข้อความเคอร์เนลแบบเรียลไทม์
/proc/loadavg ไฟล์แบบอ่านอย่างเดียวที่แสดง CPU และ IO โหลดโดยเฉลี่ยเมื่อเวลาผ่านไป
/proc/meminfo ไฟล์แบบอ่านอย่างเดียวที่แสดงรายละเอียดระบบย่อยหน่วยความจำ
/proc/เบ็ดเตล็ด ไฟล์แบบอ่านอย่างเดียวแสดงรายการไดรเวอร์เบ็ดเตล็ดที่ลงทะเบียนไว้ในอุปกรณ์หลักเบ็ดเตล็ด
/proc/โมดูล ไฟล์แบบอ่านอย่างเดียวที่มีข้อมูลเกี่ยวกับโมดูลเคอร์เนลที่โหลด
/proc/เมานต์ Symlink ไปที่ /proc/self/mounts ซึ่งเป็นรายการไฟล์แบบอ่านอย่างเดียวเกี่ยวกับระบบไฟล์ที่เมาท์
/proc/net ไดเร็กทอรีที่มีพารามิเตอร์สแต็กเครือข่ายที่หลากหลาย
/proc/net/xt_qtaguid/ ไฟล์อ่าน-เขียนที่ให้ข้อมูลเกี่ยวกับซ็อกเก็ตที่ติดแท็ก
/proc/pagetypeinfo ไฟล์แบบอ่านอย่างเดียวที่มีข้อมูลตัวจัดสรรหน้า
/proc/stat ไฟล์แบบอ่านอย่างเดียวที่มีสถิติเคอร์เนลและระบบต่างๆ
/proc/swaps ไฟล์แบบอ่านอย่างเดียวที่แสดงการใช้พื้นที่สว็อป ไฟล์นี้เป็นทางเลือก เนื้อหาและการอนุญาตจะถูกตรวจสอบใน VTS เฉพาะเมื่อมีไฟล์อยู่
/proc/sys/abi/swp ไฟล์อ่าน-เขียนซึ่งกำหนดลักษณะการทำงานของ SWP คำสั่ง ARM ที่ล้าสมัย
/proc/sys/fs/pipe-max-size ไฟล์อ่าน-เขียนที่รายงานขนาดสูงสุดเป็นไบต์ของบัฟเฟอร์ไพพ์แต่ละตัว
/proc/sys/fs/protected_hardlinks ไฟล์อ่าน-เขียนที่ควบคุมพฤติกรรมการสร้างฮาร์ดลิงก์
/proc/sys/fs/protected_symlinks ไฟล์อ่าน-เขียนที่ควบคุมพฤติกรรมการสร้างลิงก์สัญลักษณ์
/proc/sys/fs/suid_dumpable ไฟล์อ่าน-เขียนที่ควบคุมโหมดดัมพ์หลักสำหรับ setuid หรือไบนารีที่ได้รับการป้องกัน/ไม่บริสุทธิ์
/proc/sys/kernel/core_pattern ไฟล์อ่าน-เขียนที่ระบุรูปแบบชื่อไฟล์ core dump
/proc/sys/kernel/core_pipe_limit ไฟล์อ่าน-เขียนที่กำหนดจำนวนกระบวนการที่ขัดข้องพร้อมกันที่อาจส่งไปยังแอปพลิเคชันของผู้ใช้แบบขนาน
/proc/sys/kernel/dmesg_restrict ไฟล์อ่าน-เขียนที่ควบคุมว่าผู้ใช้ที่ไม่มีสิทธิพิเศษจะสามารถเข้าถึง dmesg ได้หรือไม่
/proc/sys/kernel/domainname ไฟล์อ่าน-เขียนที่มีชื่อโดเมน YP/NIS ของระบบ
/proc/sys/เคอร์เนล/ชื่อโฮสต์ ไฟล์อ่าน-เขียนที่กำหนดชื่อโฮสต์ของระบบ
/proc/sys/เคอร์เนล/hung_task_timeout_secs ไฟล์อ่าน-เขียนที่ควบคุมการหมดเวลาที่ใช้ในการพิจารณาว่างานไม่ตอบสนองเมื่อใด และควรถือว่าหยุดทำงาน ไฟล์นี้เป็นทางเลือก เนื้อหาและการอนุญาตจะถูกตรวจสอบใน VTS เฉพาะเมื่อมีไฟล์อยู่
/proc/sys/เคอร์เนล/kptr_restrict ไฟล์อ่าน-เขียนที่กำหนดว่าเคอร์เนลพอยน์เตอร์ถูกพิมพ์ในไฟล์ proc และอินเทอร์เฟซอื่นๆ หรือไม่
/proc/sys/เคอร์เนล/modules_disabled ไฟล์อ่าน-เขียนที่ควบคุมว่าจะโหลดโมดูลเคอร์เนลหรือไม่
/proc/sys/เคอร์เนล/panic_on_oops ไฟล์อ่าน-เขียนที่ควบคุมพฤติกรรมของเคอร์เนลในโอ๊ะโอ
/proc/sys/kernel/perf_event_max_sample_rate ไฟล์อ่าน-เขียนที่ควบคุมอัตราตัวอย่างสูงสุดของเหตุการณ์ประสิทธิภาพ
/proc/sys/kernel/perf_event_paranoid ไฟล์อ่าน-เขียนที่ควบคุมการใช้งานระบบกิจกรรมประสิทธิภาพโดยผู้ใช้ที่ไม่มีสิทธิ์
/proc/sys/เคอร์เนล/pid_max ไฟล์อ่าน-เขียนที่มีค่าการตัดการจัดสรร PID
/proc/sys/kernel/random/boot_id ไฟล์แบบอ่านอย่างเดียวที่มี ID สุ่มใหม่ในการบู๊ตแต่ละครั้ง
/proc/sys/kernel/randomize_va_space ไฟล์อ่าน-เขียนที่กำหนดนโยบายการสุ่มโครงร่างที่อยู่สำหรับระบบ
/proc/sys/kernel/sched_child_runs_first ไฟล์อ่าน-เขียนที่ควบคุมว่างานที่แยกใหม่ได้รับการสนับสนุนในการกำหนดเวลามากกว่างานหลักหรือไม่
/proc/sys/เคอร์เนล/sched_latency_ns ไฟล์อ่าน-เขียนที่มีเวลาแฝงสูงสุด ในหน่วยนาโนวินาที งานอาจเกิดขึ้นก่อนที่จะกำหนดเวลา
/proc/sys/kernel/sched_rt_term_us ไฟล์อ่าน-เขียนที่มีความยาวระยะเวลาที่ใช้โดยขีดจำกัดการดำเนินการ RT ทั่วทั้งระบบในหน่วยไมโครวินาที
/proc/sys/เคอร์เนล/sched_rt_runtime_us ไฟล์อ่าน-เขียนที่มีระยะเวลาสัมพันธ์กับ sched_rt_term_us ที่ระบบอาจรันงาน RT
/proc/sys/kernel/sched_tunable_scaling ไฟล์อ่าน-เขียนที่ควบคุมว่า sched_latency_ns ควรปรับโดยอัตโนมัติโดยตัวกำหนดเวลาตามจำนวน CPU หรือไม่
/proc/sys/เคอร์เนล/sched_wakeup_granularity_ns ไฟล์อ่าน-เขียนที่มีงานรันไทม์เสมือน A ต้องมีมากกว่างาน B ในหน่วยนาโนวินาทีเพื่อให้งาน B ยึดไว้ก่อน
/proc/sys/เคอร์เนล/sysrq ไฟล์อ่าน-เขียนที่ควบคุมฟังก์ชันที่อนุญาตให้เรียกใช้ผ่านคีย์ sysrq
/proc/sys/net/* ไดเร็กทอรีที่มีพารามิเตอร์สแต็กเครือข่ายที่หลากหลาย
/proc/sysrq-trigger ไฟล์แบบเขียนอย่างเดียวที่สามารถใช้เพื่อเริ่มต้นฟังก์ชัน sysrq
/proc/sys/vm/dirty_พื้นหลัง_ratio ไฟล์อ่าน-เขียนซึ่งประกอบด้วยเปอร์เซ็นต์ของหน่วยความจำที่มีอยู่ทั้งหมด (เพจว่างและเพจที่เรียกคืนได้) จำนวนเพจที่เธรดเคอร์เนลฟลัชเชอร์พื้นหลังจะเริ่มเขียนข้อมูลที่สกปรก
/proc/sys/vm/dirty_expire_centisecs ไฟล์อ่าน-เขียนที่กำหนดเมื่อข้อมูลที่สกปรกเก่าพอที่จะมีสิทธิ์เขียนออกโดยเธรดเคอร์เนลฟลัชเชอร์
/proc/sys/vm/drop_caches ไฟล์อ่าน-เขียนที่สามารถใช้เพื่อบังคับให้เคอร์เนลปล่อยแคชที่สะอาด
/proc/sys/vm/extra_free_kbytes ไฟล์อ่าน-เขียนที่สามารถใช้เพื่อเก็บหน่วยความจำว่างเพิ่มเติมระหว่างขีดจำกัดที่การเรียกคืนพื้นหลัง (kswapd) เริ่มทำงาน และขีดจำกัดที่การเรียกคืนโดยตรง (โดยการจัดสรรกระบวนการ) เริ่ม ทำงาน ไฟล์นี้เป็นทางเลือก เนื้อหาและการอนุญาตจะถูกตรวจสอบใน VTS เฉพาะเมื่อมีไฟล์อยู่
/proc/sys/vm/max_map_count ไฟล์อ่าน-เขียนที่มีจำนวนพื้นที่แมปหน่วยความจำสูงสุดที่กระบวนการอาจมี
/proc/sys/vm/mmap_min_addr ไฟล์อ่าน-เขียนที่กำหนดที่อยู่ขั้นต่ำที่สามารถเป็น mmap 'd
/proc/sys/vm/mmap_rnd_bits ไฟล์อ่าน-เขียนที่ระบุจำนวนการสุ่มในที่อยู่ mmap 'd
/proc/sys/vm/mmap_rnd_compat_bits ไฟล์อ่าน-เขียนที่ระบุจำนวนการสุ่มในที่อยู่ mmap 'd
/proc/sys/vm/overcommit_memory ไฟล์อ่าน-เขียนที่กำหนดโหมดการบัญชีหน่วยความจำเสมือนของเคอร์เนล
/proc/sys/vm/page-cluster.php ไฟล์อ่าน-เขียนที่ควบคุมจำนวนเพจสูงสุดที่จะอ่านเพจต่อเนื่องกันจากการสลับในครั้งเดียว
/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/เวลาทำงาน ไฟล์แบบอ่านอย่างเดียวที่แสดงระยะเวลาที่ระบบทำงาน
/proc/เวอร์ชัน ไฟล์แบบอ่านอย่างเดียวที่มีสตริงที่อธิบายเวอร์ชันเคอร์เนล
/proc/vmallocinfo ไฟล์แบบอ่านอย่างเดียวที่มีช่วง vmalloc 'd
/proc/vmstat ไฟล์แบบอ่านอย่างเดียวที่มีสถิติหน่วยความจำเสมือนจากเคอร์เนล
/proc/zoneinfo ไฟล์แบบอ่านอย่างเดียวที่มีข้อมูลเกี่ยวกับโซนหน่วยความจำ

ผู้พัฒนา

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

sysfs

อินเตอร์เฟซ คำอธิบาย
/sys/class/net/*/mtu ไฟล์อ่าน-เขียนที่มีหน่วยการส่งข้อมูลสูงสุดสำหรับแต่ละอินเทอร์เฟซ
/sys/class/rtc/*/hctosys ไฟล์แบบอ่านอย่างเดียวที่แสดงว่า rtc ใดให้เวลาระบบในการบูตและดำเนินการต่อหรือไม่
/sys/อุปกรณ์/ระบบ/ซีพียู/ ไดเร็กทอรีที่มีข้อมูลเกี่ยวกับการกำหนดค่าและความถี่ของ CPU
/sys/kernel/wakeup_reasons ไดเร็กทอรีของไฟล์แบบอ่านอย่างเดียวซึ่งมีเวลาระงับล่าสุดและเหตุผลในการดำเนินการต่อ
/sys/power/state ไฟล์อ่าน-เขียนที่ควบคุมสถานะสลีปของระบบ
/sys/power/wake_lock ไฟล์อ่าน-เขียนที่มี Wake Lock ที่ใช้งานอยู่
/sys/power/wake_unlock ไฟล์อ่าน-เขียนที่มีการล็อคปลุกที่ไม่ได้ใช้งานอยู่
/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 ในรูปแบบไบนารี