VFAST Transactions on Engineering http://vfast.org/journals/index.php/VTSE@ 2020 ISSN(e): 2309-3978;ISSN(p): 2411-6246 Volume 8, Number 1, January-December, 2020 pp. 64-72

COMPARATIVE ANALYSIS OF DIFFERENT OPERATING SYSTEMS USED FOR LOW-END IOT DEVICES 1ZURABIA RIAZ 1University of Management and Technology, Lahore, Pakistan. [email protected]

Abstract-Internet of Things is the new emerging field projected to interconnect billions of devise through the internet. IoT devices divided into high end as well as low end devices. based operating systems can easily handle IoT based high end devices and due to resource based constraints that includes very less memory, energy power for computation of low end IoT devices makes it difficult to develop. In this paper the main focus is on the detail discussions of the operating systems that will satisfy the requirements of IoT devices for low end categories. Comparative analysis will be performed for different and then the by keeping the focus on the OS which are close to Linux and are fit for the low end IoT devices. Keywords: , Low End Devices, embedded systems

1. Introduction:. Internet of Things or IoT can be root as the availability of excessive and multiple devices (things) interconnected with embedded devices to send and receive data via Internet.For communication different standards for communicating protocols at network layer in-combination with IPv6 has been developed. These protocols as a result enable the heterogeneous devices to connect through internet. In context with hardware, IoT is a collected combination of hardware devices which are heterogeneous in nature. After drill-down it is to be characterized that IoT can be categorized into two main categories, High-End IoT devices considered as first category which in general consist of computers with single-board property likewise and Rassberry Pi [1]. These high-end IoT devices have massive resources providing efficient characteristics that can run on any conventional operating system like Linux. In contrast with first category the second category of IoT consist of all the IoT devices which have low-end property, providing such resources that enable these devices forcefully not to run on conventional operating system. Some of the examples for such devices includes , IoT-LAB M3 nodes, TelosB motes [2][3] [4].The paper focuses on comparative analysis for the operating systems that are considered to be as efficient for low-end devices that can handle high hardware resource constrained. Lately Internet Engineering Task Force classified the low end IoT devices into three standardized sub categories depends upon their memory capacity [5]. In Class 0 based devices they commonly have smallest resources in terms of <<100 KB Flash and <<10 KB RAM. Moreover they don’t have suitable Operating Systems so software that run on these devices developed under specific hardware. Class 1 is relatively consisting of medium level of resources ranging from ~10KB of RAM with ~100KbB of Flash. On the other hand class 2 IoT devices have comparatively more resources but still as compared to High end IoT devices these resources are still low. Main focus in this paper holds the comparative review of different operating systems that are specially designed for the devices of both classes 1 and 2. It is also noted that these operating systems survey can be implement as standard de Facto specifically IoT at low end [6]. Here the solutions of class 1 and class 2 devices target the “one size fits all” solutions that will bring comfort and also provide satisfaction in terms of medium memory requirement. The level of comfort includes they compatibility of devices over IP protocols as network point of view as well as in terms of system while communicating the devices through internet. Operating system that involves during this survey are open source Operating system, as well as closed operating systems. The main significant reason behind choosing open source Operating system as a survey because they provide a greater approach to thoroughly examine the overall design and implementation.

64 In order to continue with the flow of the paper; firstly requirements will be analyze according the operating systems designed for low IoT devices. Afterward the technical factors of designing an operating system will be discussed and after that comprehensive study of these operating systems will be incorporated on the basis of categories. Scientist have used mathematical modeling to invent solution to computational problems [22-52].

I. Technical Framework: In order to design an operating system that includes an overall generic model of operating system, its strategy for scheduling, the notion of hardware and flexibility as well as capabilities of the system. i. Generic Model of Operating System: The overall architecture for the operating system based on the choice of kernel. The choice of kernel plays a significance role in the modularity as well as architecture of the system. Figure 1 represents the overall architecture for IoT operating system. Different kernel approaches like exokernel, and monolithic has been discussed while choosing the operating system for IoT. In exokernel the main focus is on avoiding the conflicts among resources and examines the different access points between the applications and hardware. Whereas in microkernel by using the little memory; it provides more functions multiple features that provide huge amount of space and flexibility, robustness. Lastly in monolithic approach the development of components of the system that as a result helps in designing an efficient system. It is now by choice to choose either microkernel which is more flexible as well as robust or monolithic kernel that reduces complexity and improve efficiency. One can also go for both as hybrid.

Applications

Low Power network Stack

Libraries e.g. IEEE802.15.4, IPv6, RPL, 6LoWPAN Kernel Device drivers Device (e.g., crypto, FS) crypto, (e.g., Supporting e.g., Scheduler, tasks, Locks tasks, Scheduler, e.g., e.g., network interfaces, Sensors interfaces, network e.g.,

Hardware

Figure 1: Typical components of an OperatingHardware Systems Abstractionfor lowLayer-end IoT devices, including a common low-power {e.g.,IPv6 GPIO, protocol UART) stack.

ii. Model for scheduling: Scheduler is also an important yet most crucial part considered in operating System. Scheduler in other words affects the real-time capabilities, energy efficiency or overall model of programming. An operating system can provide opportunity to select different schedulers during build time. Typically schedulers are divided into two type non-preemptive and preemptive schedulers. During non-preemptive schedulers threads are responsible to yield themselves due to no other task and also at some rare cases even the kernel is not able to generate an interrupt for task. Whereas during preemptive scheduler; this scheduler can interrupt non kernel task and allow another task to execute with in the limited time. In different scenarios while assigning the time for each task; this scheduler requires a periodic tick timer which generally termed as Systick. By doing this prevents IoT based devices to reach at the in-

65 depth mode of power save. Moreover at each Systick the MCU can pass into fully active mode. In combination of OS based time slice scheduling and helps to execute multiple task parallel. iii. Allocation of Memory: Memory is considered to be the scarce resource use for IoT, whereas memory handling in a sophisticated way considered as an important factor. Memory allocation in terms of static and dynamic should be answered. As memory allocation affects the overall designing criteria of the system. During memory allocation in static needs over provisioning which reduces the system flexibility and also requires changes at run time level? Whereas in dynamic memory allocation the system is quite complicated due to multiple functions like malloc() that implemented in the libraries at non-deterministic manner so for making dynamic memory allocation as useable with in real time applications there must a need of designing an operating system that provides deterministic approach for functions of malloc() i.e. TLSF [7]. The other reason that makes dynamics memory location complicated there is a need to handle the situation of out of memory which is difficult to deal at run time. In addition to this, during the implementation of heap built on malloc function creates fragmentation in the memory that on the other hand run the system as out of memory faster. iv. Buffer Management for Network: Network stack is considered to be as the major part of Operating system use for IoT devices. In this tack memory chunks like packets are share in-between each layer. This can be done by using either passing the pointers with in the layers or by copying memory using [memcpy()] functions. Copying memory is quite expensive in terms of memory based as allocation for a resource to do it. By giving this task at upper layers will makes the development of the application more complicated as well as provide inconvenience. On the other hand if it’s done at lower layer like will the system inflexible. In order to resolve this issue the ideal approach is to build a central based memory manager for the operating systems like TinyOS and RIOT for IoT devices [8][9]. . Model for Programming: In order to design a programing model Event-driven systems can be considered as more reliable as they are efficient in terms of memory as well as provide an ease for designing the applications by using multithreading based system. Programing Language: there can be a choice to choose programing language either standard programing language or Operating System specific based language. ANSI for C and C+ are the languages used for standard programing languages which is simpler, portable and can be used as renowned tool for development. Whereas in operating system specific approach; it enables the extensions for language and also increase the safety and performance of the system.

II. Comparative Analysis: In this part the overview of the numerous operating systems will be discussed that considered to be as ideal and provide promising results in order to design an operating system for general IoT devices. An overall discussion on Open source operating systems and closed source operating system for the IoT devices will be done. i. Open source operating Systems: Following is the in-depth details of few popular operating systems that specially designed for IoT devices:

1. [10][11], was developed in 2002 used 8 bit memory constrained MCU’s initially build for WSN based operating system, but due to the improvement sin technology it is now improvised to MCU with 16 bit and for IOT devices like ARM Contiki operating system provide 32 bit MCU. It also consists of event handling Non preemptive scheduler and that support lightweight pseudo threads. As is is standard programming sp Photothreads macro based abstraction has been used [12]. BSD based license code for Contiki in GitHub and different platforms are also available. Features like several stacks includes uIP, to support IPv6, RPL, 6LoWPAN and CoAP that provides abstraction for distributed programming make Contiki open source operating system as an ideal and mostly used during modes constrained. 2. RIOT was developed in 2012; is typically designed and develop by keeping all the major requirements which is important for IoT that targeted on designing a programing API and model which is friendly. RIOT is similar to Linux as it is based on microkernel Real time operating system, provide support for multithreading and inherited FireKernel [13] architecture. While programing language uses ANSI99 inscribed in C whereas other libraries are built and implemented in C++ language. for RIOT is also available in GitHub. Features like full 6LoWPAN as network based grnc stack and port for 6TiSCH

66 OpenWSN [14] as well as CCN-lite networking port making RIOT to progressively grow in the community of open source. 3. In 2002 FreeRTOS [15] was developed including huge amount of MCU’s. To support multithreading microkernel based preemptive scheduling has used. Currently Real Time energies are developing FreeRTOS and open source code only for kernel can be extracted from project page whereas GPL is allowed for commercial use and contains closed source. 4. TinyOS [16] was developed in 200 that is open source and can be used with Contiki for constrained used. With the combination of Contiki OS TinyOS is considered to be more reliable for applications based on WSN, aiming the platforms for 8 and 16 bit platform. nesC and TinyOS uses abstraction based programing and that secure them from bugs as well as it enhance the efficiency of memory by minimizing the actual linked code. It lacks the developer community due to complex design and customized program based language making it difficult to learn the codes. Event driven approach has be followed for the numerous components and modules that were configure on the basis of requirements. GitHub provides the BSD license code online downloadable and 6LoWPAN stack is implemented on BLIP network. 5. OpenWSN [14] was developed in 2010by growing which is considered as worldwide community for open source.it consist of a basic scheduler with network stack of 6TiSCH that includes the implementation standard of IEEE 802.15.4e MAC, supporting board support package. Due to easy and simple abstraction in hardware enables it to run on large number of hardware platforms design for IoT devices. Under BSD license the source code for OpenWSN is available in GitHub.

Table 1Comprehensive Analysis of Open source Operating Systems for IoT Low End Devices

Name Architecture Scheduler Model for Target Supported MCU’s Language Network Stack` License programming Device Contiki Monolithic Preemptive Event driven, Class 0,1 AVR, MSP430,ARM7, C uIP, RIME BSD Protothreads ARM Cortex-M, PIC32,6502 RIOT Microkernel Preemptive, Multithreading Class 1,2 AVR, MSP430,ARM7, C, C Gnrc, LGLv2 RTOS Tickless ARM Cortex-M, ++ OpenWSN, ccn lite FreeRTOS Microkernel Preemptive, Multithreading Class 1,2 AVR, MSP430,ARM7, x86, C none Modifie RTOS optional 8052, Renesas d GPL tickless TinyOS Monolithic Non- Event driven Class 0 AVR, MSP430, pc27ax nesC BLIP BSD Preemptive OpenWSN Monolithic Non- Event driven Class 0 - MSP430 C OpenWSN BSD Preemptive 2 ARM Cortex-M, uClinux Monolithic Preemptive Multithreading > Class 2 ARM7, ARM Cortex-M, C Linux GPLv2 Motorola, nanoRK Monolithic Preemptive Multithreading Class 0 AVR, MSP430,, C None Dual License Chibi Microkernel Preemptive Multithreading Class 1 , AVR, MSP430 C None Triple 2 ARM Cortex-M, License CoOS Microkernel Preemptive Multithreading Class 2 ARM Cortex-M C None BSD RTOS Nut/OS Monolithic Non- Multithreading Class 0, AVR, ARM C Native BSD Preemptive 1

6. Operating system including Android [17] and Brillo [18] are generally mobile based operating system officially designed b Google. It basically Linus based variant aiming for different smart mobiles and Tablets but it can also use for other smart electronic devices like watches and TV’s. The core area of Android is open source required for GPL Linux. Whereas device driver and other hardware supports are closed source. Correspondingly like Linux Android based systems are not able to run with in the IoT low end devices of class 1 category. So in 2015 Google introduced a slimmed version of Android named it as Brillo [18] that is capable enough to run on IoT by providing memory equals to few 10s of MB.

67 7. uClinux [19] was developed in 1998 with source code which can be easily available at Sourceforge. It is actually ports designed for Linux 2.x kernel of CPU that doesn’t contain MMU and it also holds minor footprints for memory than Linux. Whereas it is enriched with numerous features of Linux that includes TCP/IP sull stack, API’s and an outstanding support for . The only drawback in this OS is memory based requirement that is not suitable for the IoT devices of lowend class 1 category [5]. 8. nanoRK [19] was developed in 2005 in the platform of MSP430 which mainly focuses on the reservations of the resources for the task. This is Real-Time OS designed for WSNs. 9. Operating system Chibi [20] is also Real-Time OS that provides efficient performance of MCU (8,16,32 Bit). It was developed in 2007 providing exception by linking modified by GPL. 10. CooCox or CoOS [17] was developed in 2009 is an open Real-Time OS designed for ARM Cortex-M based platform providing a complete IDE. 11. Nut/OS is mainly focused on constrained base devices that can be wired with connection. It’s an emerged Real-Time OS named as Liquorice [21]. 12. Enterprise based OS ERIKA [18] focuses on embedded systems which are automated, providing exception by linking licensed by GPL version 2. MCU’s of 8,16,32 bit specially for multicore has been supported by ERIKATable-1 express the comparative analysis of all the popular operating System (open source) on the basis of their architecture, scheduling, network stack, programming language, programming model, Target devices of Low end IoTs on the basis of class categories defined by Internet Engineering Task Force [5]

Table 2 Comparative analysis of open source Operating system on the basis of features

RTOS Hardware Energy Name Category MCU without <32 KB 6LoWPAN Scheduler Abstraction Efficiency MMU RAM Layer Contiki Event Driven Fully Fully Fully No support Fully Fully supported supported supported supported supported RIOT Multithreading Fully Fully Fully Fully supported Fully No support If supported supported supported supported part of OpenWSN FreeRTOS RTOS Full support Fully No support, Fully supported No support No support, supported available available from from third third parties parties uClinux Multithreading Fully No No support No support Fully No support supported support supported Android Multithreading No support No No support No support Fully No support support supported but Limited portability

Table 2 explains the comparative analysis of different open source operating systems on the basis of their special features and specification. In other words Contiki, RIOT and FreeRTOS are considered to be more reliable and good mac to fulfill the requirements as described in technical framework in a best way whereas uClinux and android cannot be considered as the best solutions. ii. Operating System Category for IoT Devices: By keeping the no technical requirement of an ideal operating system as Security and trustworthiness regarding code designing for IoT; the open source operating systems divided into three categories 1) event handling 2) Multithreading 3) Pure Real Time Operating Systems. Although these categories somehow overlap but on the basis of their unique characteristics and features these categories can be easily distinguish.

 Event Handling Operating System- In this category the main approach is focuses on the area of WSN. In this model systems pointed on events on the basis of events. Kernels are equivalent to countless loops that handle the events of the same context. Event handler runs after completion of the events. Contiki or TinyOS are the suitable operating systems for this category. With the case study and research Contiki is more prominent and promising operating systems for this category.

68  Multithreading operating system- In this category the threads that runs and that were managed between each stack has been observed. Additionally; scheduling has to be performed in between the context switching in each that can be handled and interrupted at any point. Stack based memory cannot be shared in between these threads. Multithreading also use overheads that were caused by over provisioning as well as due to context switching run time overheads are used. Operating systems including RIOT, nuttX, eCos, or ChibiOS are the open source OS that included in this category. With the case study and research RIOT is more prominent and promising operating systems for this category.  Pure Real Time Operating Systems- the main focus on this category holds the fulfillment of the requirements with reference to real time commercial purpose. For this category formal certificates, standard and verifications are considered to be as important. Programming based model imposed by developers has been designed for these verifications and model checking. Due to these restrictions it creates inflexibility and enables to port into different hardware based platforms. Operating systems including FreeRTOS, eCos, RTEMS, ThreadX, are the open source OS that included in this category. With the case study, research and wide usage of FreeRTOS open source operating system is becoming more prominent and promising operating systems for this category.

iii. Closed Source Operating Systems: After explaining the in detail discussion and comparative study on open source operating system; now let’s take an overlook of most popular closed source operating system which are suitable and designed in order to fulfill the requirements of IoT. Although being closed source nature yet many vendors can also offer some offerings to the customers like the academic institutes or registered users of the source code with limited access. Following are the some listed closed sources OSs that domain specified and are adoptable which can easily run for IoT devices of low end class 0 and Class 1.

 ThreadX  QNX  VxWorks  Wind River Rocket  PikeOS  embOS  Nucleus RTOS  Sciopta  μC/OS-II and μC/OS-III  μ-velOSity  Windows CE  LiteOS Huawei

Conclusion: In this review summery; there is complete analysis that has been done in-correspondence to design an operating system for IoT devices of low end categories. These low end devices are resource constrained and are not capable of running on traditional operating systems like Linux. Different technical aspect for designing these operating systems has been disused and them comprehensive survey has been performed on all the available operating systems that can be suitable for the Low End IoT devices. Moreover the review; mainly focuses is on open source operating system with reference to Low End IoT devices. These references primarily focus on the source code, trustworthiness, high potential for transparency and security. In terms of having the full benefits of open source with respect to its trustworthiness, it is important to deploy binaries of these open source tools in the devices of IoT. These binaries deployments can also be done by using third party server/clients. According to the recent studies [24]; it is to be notify hat there is a need of strong SMEs due to the rapidly growth of open source operating systems for IoT produces the high chance of bugs and errors to be fixed properly. Additionally; in this survey three major categories of Operating Systems has been highlighted that provide a potential in order to become an efficient operating system like Linux for IoT devices. Firstly multithread operating systems are considered to be as more prominent that are technically close to Linux, within this category RIOT open source operating systems is considered to be as more prominent. In event driven operating system category the main paradigm is different programming that provides less resource and fits perfectly with in the devices, within this category Contiki open source operating systems is considered to be as more prominent. Real time operating systems is the third category that promises on the worst

69 case of execution time and interrupt latency, FreeRTOS is considered to be as more prominent open source operating system for RTOS category. Moreover some popular closed source operating systems are also highlighted that can be considered as an ideal approach for these IoT devices. It can be concluded that with the plethora of numerous operating system designed for Internet of Things allow the users to choose the best operating systems according to their criteria. Within this survey it is also observed that apart from constraints and requirements for the designers to develop multiple application and platforms for IoT devices. Moreover IoT is rapidly developing and there is a need of more development for IoT based applications; so for that purpose architecture and operating system capabilities should be taken as one of the major feature for ideal IoT based operating system. REFERENCES [1] Halfacree, G., & Upton, E. (2012). Raspberry Pi user guide. John Wiley & Sons. [2] Jaldén, J., Moreno, X. C., & Skog, I. (2018, April). Using the Arduino Due for teaching digital signal processing. In 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 6468-6472). IEEE. [3] Des Rosiers, C. B., Chelius, G., Fleury, E., Fraboulet, A., Gallais, A., Mitton, N., & Noël, T. (2011). Very large scale open testbed. [4] Sha, M., Gunatilaka, D., Wu, C., & Lu, C. (2015, February). Implementation and experimentation of industrial wireless sensor-actuator network protocols. In European Conference on Wireless Sensor Networks (pp. 234-241). Springer, Cham. [5] Mirani, L. (2014). Chip-makers are Betting that Moore’s Law Won’t Matter in the Internet of Things. [6] Masmano, M., Ripoll, I., Crespo, A., & Real, J. (2004, July). TLSF: A new dynamic memory allocator for real-time systems. In Proceedings. 16th Euromicro Conference on Real-Time Systems, 2004. ECRTS 2004. (pp. 79-88). IEEE. [7] Castellani, A. P., Ministeri, G., Rotoloni, M., Vangelista, L., & Zorzi, M. (2012, June). Interoperable and globally interconnected Smart Grid using IPv6 and 6LoWPAN. In 2012 IEEE International Conference on Communications (ICC) (pp. 6473-6478). IEEE. [8] Petersen, H., Lenders, M., Wählisch, M., Hahm, O., & Baccelli, E. (2015, May). Old wine in new skins? Revisiting the software architecture for IP network stacks on constrained IoT devices. In Proceedings of the 2015 Workshop on IoT challenges in Mobile and Industrial Systems (pp. 31-35). [9] Dunkels, A., Gronvall, B., & Voigt, T. (2004, November). Contiki-a lightweight and flexible operating system for tiny networked sensors. In 29th annual IEEE international conference on local computer networks (pp. 455-462). IEEE. [10] Dunkels, A., Schmidt, O., Voigt, T., & Ali, M. (2006, October). Protothreads: Simplifying event-driven programming of memory-constrained embedded systems. In Proceedings of the 4th international conference on Embedded networked sensor systems (pp. 29-42). [11] Will, H., Schleiser, K., & Schiller, J. (2009, October). A real-time kernel for wireless sensor networks employed in rescue scenarios. In 2009 IEEE 34th Conference on Local Computer Networks (pp. 834-841). IEEE. [12] Barry, R. (2003). FreeRTOS, a FREE open source RTOS for small embedded real time systems. [13] Levis, P., Madden, S., Polastre, J., Szewczyk, R., Whitehouse, K., Woo, A., ... & Culler, D. (2005). TinyOS: An operating system for sensor networks. In (pp. 115-148). Springer, Berlin, Heidelberg. [14] Alliance, O. H. (2011). , Android. http://www. android. com/. [15] Chandra, T. B., Verma, P., & Dwivedi, A. K. (2016, March). Operating systems for internet of things: A comparative study. In Proceedings of the Second International Conference on Information and Communication Technology for Competitive Strategies (pp. 1-6). [16] ZHANG, X., LIU, S., ZHUANG, Z., & XU, W. (2014). Design of Embedded Vehicle Traveling Data Recorder. Journal of Test and Measurement Technology, (5), 6. [17] Afshar, S., Verwielen, M. P., Gai, P., Behnam, M., & Bril, R. J. (2016, July). An implementation of the flexible - model in Erika Enterprise on a multi-core platform. In Proc. 12th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT) (pp. 55-60). [18] Basiliere, P., & Tully, J. (2014). Gartner study: Makers and startups are the ones shaping the internet of things. Maverick Research, Gartner.

70 [19] Kyle, D., & Brustoloni, J. C. (2007, November). Uclinux: a linux security module for trusted-computing- based usage controls enforcement. In Proceedings of the 2007 ACM workshop on Scalable (pp. 63-70). [20] Zhang, S., Kobetski, A., Johansson, E., Axelsson, J., & Wang, H. (2014). Porting an autosar-compliant operating system to a high performance embedded platform. ACM SIGBED Review, 11(1), 62-67. [21] Xiao-ping, Y. A. N. G. (2009). Principle and Implementation of NUT/OS. Computer Knowledge and Technology, 2009(36), 97. [22] Khan, Y. D., Ahmad, F., & Anwar, M. W. (2012). A neuro-cognitive approach for iris recognition using back propagation. World Applied Sciences Journal, 16(5), 678-685. [23] Ahmad, F., Fakhir, I., Khan, S. A., & Khan, Y. D. (2014). Petri net-based modeling and control of the multi- elevator systems. Neural Computing and Applications, 24(7-8), 1601-1612. [24] Khan, Y. D., Ahmad, F., & Khan, S. A. (2014). Content-based image retrieval using extroverted semantics: a probabilistic approach. Neural Computing and Applications, 24(7-8), 1735-1748. [25] Khan, Y. D., Ahmad, F., & Khan, S. A. (2013). A Survey on use of Neuro-Cognitive and Probabilistic Paradigms in Pattern Recognition. Research Journal of Recent Sciences, 2(4), 74-79. [26] Akmal, M. A., Rasool, N., & Khan, Y. D. (2017). Prediction of N-linked glycosylation sites using position relative features and statistical moments. PloS one, 12(8), e0181966. [27] Ehsan, A., Mahmood, K., Khan, Y. D., Khan, S. A., & Chou, K. C. (2018). A novel modeling in mathematical biology for classification of signal peptides. Scientific reports, 8(1), 1-16. [28] Khan, Y. D., Rasool, N., Hussain, W., Khan, S. A., & Chou, K. C. (2018). iPhosT-PseAAC: Identify phosphothreonine sites by incorporating sequence statistical moments into PseAAC. Analytical biochemistry, 550, 109-116. [29] Khan, Y. D., Batool, A., Rasool, N., Khan, S. A., & Chou, K. C. (2019). Prediction of nitrosocysteine sites using position and composition variant features. Letters in Organic Chemistry, 16(4), 283-293. [30] Butt, A. H., Rasool, N., & Khan, Y. D. (2018). Predicting membrane proteins and their types by extracting various sequence features into Chou’s general PseAAC. Molecular biology reports, 45(6), 2295-2306. [31] Ghauri, A. W., Khan, Y. D., Rasool, N., Khan, S. A., & Chou, K. C. (2018). pNitro-Tyr-PseAAC: predict nitrotyrosine sites in proteins by incorporating five features into Chou’s general PseAAC. Current pharmaceutical design, 24(34), 4034-4043. [32] Khan, Y. D., Jamil, M., Hussain, W., Rasool, N., Khan, S. A., & Chou, K. C. (2019). pSSbond-PseAAC: Prediction of disulfide bonding sites by integration of PseAAC and statistical moments. Journal of theoretical biology, 463, 47-55. [33] Khan, Y. D., Rasool, N., Hussain, W., Khan, S. A., & Chou, K. C. (2018). iPhosY-PseAAC: identify phosphotyrosine sites by incorporating sequence statistical moments into PseAAC. Molecular biology reports, 45(6), 2501-2509. [34] Hussain, W., Khan, Y. D., Rasool, N., Khan, S. A., & Chou, K. C. (2019). SPalmitoylC-PseAAC: A sequence-based model developed via Chou's 5-steps rule and general PseAAC for identifying S- palmitoylation sites in proteins. Analytical biochemistry, 568, 14-23. [35] Khan, S. A., Khan, Y. D., Ahmad, S., & Allehaibi, K. H. (2019). N-MyristoylG-PseAAC: sequence-based prediction of N-myristoyl glycine sites in proteins by integration of PseAAC and statistical moments. Letters in Organic Chemistry, 16(3), 226-234. [36] Butt, A. H., Rasool, N., & Khan, Y. D. (2019). Prediction of antioxidant proteins by incorporating statistical moments based features into Chou's PseAAC. Journal of theoretical biology, 473, 1-8. [37] Awais, M., Hussain, W., Khan, Y. D., Rasool, N., Khan, S. A., & Chou, K. C. (2019). iPhosH-PseAAC: Identify phosphohistidine sites in proteins by blending statistical moments and position relative features according to the Chou's 5-step rule and general pseudo amino acid composition. IEEE/ACM transactions on computational biology and bioinformatics. [38] Rasool, N., Husssain, W., & Khan, Y. D. (2019). Revelation of enzyme activity of mutant pyrazinamidases from Mycobacterium tuberculosis upon binding with various metals using quantum mechanical approach. Computational biology and chemistry, 83, 107108. [39] Rehman, K. U. U., & Khan, Y. D. (2019). A Scale and Rotation Invariant Urdu Nastalique Ligature Recognition Using Cascade Forward Backpropagation Neural Network. IEEE Access, 7, 120648-120669. [40] Butt, A. H., & Khan, Y. D. (2019). Prediction of S-Sulfenylation sites using statistical moments based features via Chou’S 5-Step rule. International Journal of Peptide Research and Therapeutics, 1-11.

71 [41] Ilyas, S., Hussain, W., Ashraf, A., Khan, Y. D., Khan, S. A., & Chou, K. C. (2019). iMethylK-PseAAC: Improving Accuracy of Lysine Methylation Sites Identification by Incorporating Statistical Moments and Position Relative Features into General PseAAC via Chou’s 5-steps Rule. Current Genomics, 20(4), 275-292. [42] Barukab, O., Khan, Y. D., Khan, S. A., & Chou, K. C. (2019). iSulfoTyr-PseAAC: Identify tyrosine sulfation sites by incorporating statistical moments via Chou’s 5-steps rule and pseudo components. Current Genomics, 20(4), 306-320. [43] Khan, Y. D., Amin, N., Hussain, W., Rasool, N., Khan, S. A., & Chou, K. C. (2020). iProtease-PseAAC (2L): A two-layer predictor for identifying proteases and their types using Chou's 5-step-rule and general PseAAC. Analytical biochemistry, 588, 113477. [44] Malebary, S. J., Rehman, M. S. U., & Khan, Y. D. (2019). iCrotoK-PseAAC: Identify lysine crotonylation sites by blending position relative statistical features according to the Chou’s 5-step rule. PloS one, 14(11), e0223993. [45] Butt, A. H., & Khan, Y. D. (2019). CanLect-Pred: A Cancer Therapeutics Tool for Prediction of Target Cancerlectins Using Experiential Annotated Proteomic Sequences. IEEE Access, 8, 9520-9531. [46] Akmal, M. A., Hussain, W., Rasool, N., Khan, Y. D., Khan, S. A., & Chou, K. C. (2020). Using Chou's 5- steps rule to predict O-linked serine glycosylation sites by blending position relative features and statistical moment. IEEE/ACM Transactions on Computational Biology and Bioinformatics. [47] Hussain, W., Rasool, N., & Khan, Y. D. (2020). A Sequence-Based Predictor of Zika Virus Proteins Developed by Integration of PseAAC and Statistical Moments. Combinatorial chemistry & high throughput screening, 23(8), 797-804. [48] Hussain, W., Rasool, N., & Khan, Y. D. (2020). Insights into Machine Learning-based approaches for Virtual Screening in Drug Discovery: Existing strategies and streamlining through FP-CADD. Current Drug Discovery Technologies. [49] Shah, A. A., & Khan, Y. D. (2020). Identification of 4-carboxyglutamate residue sites based on position based statistical feature and multiple classification. Scientific Reports, 10(1), 1-10. [50] Amanat, S., Ashraf, A., Hussain, W., Rasool, N., & Khan, Y. D. (2020). Identification of Lysine Carboxylation Sites in Proteins by Integrating Statistical Moments and Position Relative Features via General PseAAC. Current Bioinformatics, 15(5), 396-407. [51] Mahmood, M. K., Ehsan, A., Khan, Y. D., & Chou, K. C. (2020). iHyd-LysSite (EPSV): Identifying Hydroxylysine Sites in Protein Using Statistical Formulation by Extracting Enhanced Position and Sequence Variant Feature Technique. Current Genomics, 21(7), 536-545. [52] Naseer, S., Hussain, W., Khan, Y. D., & Rasool, N. (2020). iPhosS (Deep)-PseAAC: Identify Phosphoserine Sites in Proteins using Deep Learning on General Pseudo Amino Acid Compositions via Modified 5-Steps Rule. IEEE/ACM Transactions on Computational Biology and Bioinformatics.

72