The scheduler is the key component of the Linux kernel. What makes thescheduler crucial is that scheduler serves as a mediator between system resources such as CPU, and requests. It schedules and manages processes to have access to resources based on different data structures and algorithms. It is very important for a scheduler to make the best use of system resources. From the beginning of Linux history, there have been a variety of different schedulers. Some are still in use, while some have become out of date. CFS and O(1) are two common schedulers which are still serving users. Since these two schedulers have different designs and performances, it is necessary to discover the differences between them, because users could then choose different schedulers based on their requirements.This thesis compares CFS and O(1) with respect to the theoretical differences, by literature survey, and performance differences by testings. Differences then are presented in this thesis, and based on the results from testings, some recommendations are made to users.